今さら聞けないイーサリアムの「2つのアドレス」の基本知識を伝授!

イーサリアムのアドレスは、取引所の送金アドレスと、ICOとゲームに参加する為のアドレスは違うものだとご存知でしょうか? 

イーサリアムを送金の際アドレスのことでお悩みになる方は少なくないようです。

イーサリアムのアドレスには独自の仕様があるのです。

こちらの記事では、相手へ送金する際にトラブルにならないためのポイントと、アドレス生成方法、送金で問題が起きてしまった時の対処方法等についてご紹介していきます。

1. イーサリアムのアドレスは「EOA」と「コントラクトアドレス」の2種類

仮想通貨におけるアドレスとは預金口座番号のようなものですが、イーサリアムではほぼ同じ見た目の、「口座のようで口座ではない」アドレスが存在します。

以下、「普通口座としてのアドレス」「よく似ているがそのままでは入金できないアドレス」があることをご説明していきます。

1-1. EOAは送金用のアドレス

EOA」とは、「Externally Owned Account」の略です。

イーサリアムを送る・受け取る際に使用されるアドレスで、「0x」で始まるのが特徴。

他の仮想通貨で言えば、この「EOAアドレス」が、普通のウォレットアドレスに相当します。

この「EOA」とは、ごく簡単に言うと、「ただ貯めておく」ためのいわば自分の銀行口座です。一般的には、単に「ウォレットアドレス」とも言われ、購入・他人から受け取るETHについては、こちらの自分のウォレットアカウントに入れます。

イーサリアムでは、アドレスの文字数(桁数)は42文字(桁数)の固定長で設定されています。

形式は以下のようなもので、エンコードは独自のアルゴリズムによって生成されます。

0xb079fa09E8RfDFb3032bC0aD8f35Eb3e6hh506A9

 

例えばビットコイン(BTC)などの仮想通貨でもこのような形式のアドレスがありますが、イーサリアムでもその機能は同じで、平たくいえばイーサというお金を受け取る口座番号であるといえるでしょう。

また、ビットコインがそうであるように、アドレスの残高は公開されており、アドレスを参照することで該当アドレスのETH残高や取引記録を確認することが可能です。

イーサリアム・ネットワーク上の情報を確認しよう! 
こちら「etherscan」というサイトは、イーサリアム・ネットワーク上のそれぞれのアドレス、トランザクション、ハッシュやトークン情報を入力するだけで情報が誰でも見られるようになっています。
有効なアドレスを入力すれば、現在の残高(Ether)や、過去10回の取引(トランザクション)も確認できます。

1-2. スマートコントラクトを実行するコントラクトアドレス

そしてもう一つ、イーサリアムの世界では「コントラクトアドレス」というものがあります。

“Contract Address”、これはイーサリアム上でスマートコントラクトを実行するときに使うアドレスです。

スマートコントラクトはDappsと呼ばれる分散アプリケーションを使い、イーサリアム仮想マシン(EVM)の上で実行されるプログラムのこと。

EOAとの大きな違いは、コントラクトアドレスには「データも送信できる」という点です。

簡単な例を挙げると、あらかじめ決められた期日までに指定のアドレスに契約金額同等のETHが送付されたとき、人手を介さず自動的にデジタル商品(ダウンロードのパスワードが送られる・認証手続きの一部が行われる)が購入者へ送られることが挙げられます。

それぞれのコントラクトには口座があり、プログラムが実行される際に使われます。これを「コントラクトアドレス」と呼んでいます。

しかし、コントラクトアドレスの送受信は自動化されており、人間が手を加えることはありません。

※稼働させるためには燃料(費用)がかかります。これを「GAS(ガス=燃料)」と呼んでいます。

当然、「自分の財布・口座」はユーザ自身でコントロールすることができますが、「コントラクト(契約)」はユーザーが勝手にいじることはできず、コンピュータのプログラムによって全自動で制御されているのです。

これら「コントラクト」は、私達の現実の世界で、たとえば大家さんと店子が賃貸借契約を結び、定期的に家賃を入金するという取引のように、ブロックチェーン上でお金(ETH)を交換するためのルールなのです。

 

イーサリアムでの様々なコントラクトを利用するために「Dapps」というアプリケーションが使われますが、これらを利用するためには「コントラクトアドレス」が必要です。

そして最終的に個人ユーザーがETHの入金を受けるためなどの「手元の口座」が、EOAなのです。

2. イーサリアムのゲームやICOに参加する方法

Dappsゲームやイーサリアム内のICOに参加するには、コントラクトアドレスへの送金が必要です。

実際に、イーサリアムをコントラクトアドレスへ送金してみましょう。

気を付けるべきポイントは2つ。

  1. 必ず「秘密鍵」を付けた状態でコントラクトアドレスに送金をすること
  2. ゲームの場合、ウォレットが限定されているのであらかじめ確認を

1. 日本国内の仮想通貨取引所からコントラクトアドレスへ直接送金を行うことはできません。必ず一度イーサリアムをウォレットへ移動させ、そこからコントラクトアドレスへ送金をしましょう。もしも、秘密鍵がないままコントラクトアドレスへ送ってしまった場合送金エラーが発生します。

2. ゲームに参加する場合、あらかじめゲームの公式サイトを読みましょう。「Metamask」や「Coinbase Wallet」でないと遊ぶことができない仕様の場合があります。

こちらの記事ではMyEtherWallet(マイイーサウォレット)を使い、コントラクトアドレスへ送金する方法を説明します。

MyEtherWalletは秘密鍵が与えられますので、これであればETHICO案件などへ送金できます。

また、イーサリアムのデスクトップ・ウォレットとしてイーサリアム(ETH)のみならずERC20トークンにも対応しています。

2-1. 仮想通貨取引所からMyEtherWalletへ送る手順

(1) https://www.myetherwallet.com/にアクセスしましょう。

トップページに大きな入力欄があるので、ここでパスワードを(9文字以上)入力します。このパスワードは紙などにメモをし、オフラインで控えておきましょう。

そして「Create New Wallet」のボタンをクリックします。

(2) 次に「Keystoreファイルのダウンロード」を要求されます。

必須ですのでこれをダウンロードして保存してください。ダウンロードが済まないと次のページに進むことができません。

(3) 自分用の「秘密鍵」が出てきます。

Save Your Private Key」と書かれた下の長い英数字の羅列です。上述のパスワードとともにしっかり保管しましょう。

Print Paper Wallet」をクリックすると印刷が可能です。

一番下にある「Save Your Address」を選択して、アドレスを取得します。

 

プライベートキー(秘密鍵)を選んでダウンロードしたキーをペーストすると、自分のEOAアドレスを得ることができます。

このようにしてMyEtherWalletでアドレスを取得した後、日本国内の仮想通貨取引所からこのEOAアドレスへETHを送付してみましょう。

 

(4) 今回はbitFlyer(ビットフライヤー)を例にしてご説明します。

まずは自分のアカウントでイーサリアムを購入します。

当然ながら本人確認が出来ないと出金が出来ませんので、必要な本人確認等手続きを済ませておきましょう。

bitFlyerアカウントへログインし、 画面左側のメニューにある「入出金」をクリックします。

「イーサリアム」ではなく「ETHご送付」という選択肢があるのでこれをクリックし、ラベルおよび送付先アドレスを正確に入れて「追加する」をクリックしてください。

ラベルは自由に名前を付けられますので、自分がわかりやすい名前を入力しましょう。

「イーサリアムアドレス」へは送付先となる「MyEtherWallet」のEOAを入力するので、間違えないよう気を付けてくださいね。

次に送りたいETH額を入力します。

最後に「外部アドレスに送付する」をクリックして送金処理を完了させます。

2-2. MyEtherWalletからコントラクトアドレスへ送付する手順

 (1) MyEtherWalletを開き、ETH・トークンの送出を選択します。

ウォレット作成時にダウンロードしたファイルを選択し、パスワードを入力

(2) 「Keystore File」を選び、MyEtherWalletで、アドレスを作成時にダウンロードした「UTC–2018-(日付)」という長いファイル名のファイルを選択します。

(3) 作成時に決めたパスワードを入力し「Unlock」をクリックします。

(4) 次に送り先のコントラクトアドレスを入力します。指定されているコントラクトアドレスをコピー&ペーストで入力してから下にある欄にて送金額を入力します。

(5) Gas Limitについては最適な数値が自動的に与えられるので、特に指定しなくても大丈夫です。ここを大きくすることで送金の優先度が高くなり早く送れます。

(6) この後に「Generate Transaction」という画面が現れますので、もう一度送付するコントラクトアドレスが正しいか確認をして、クリックします。

(7) これでコントラクトアドレスへ送金されました。

3. イーサリアムの送金を間違えてしまった場合の対処方法

イーサリアムを送金する際に、間違って仮想通貨取引所のアドレスからコントラクトアドレスへ送ってしまった場合は、どのように対応すれば良いのでしょうか。

仮想通貨取引所のアカウントに入っているイーサリアムをICO案件で示されているアドレスに直接送金するとほとんどの場合失敗します。

おそらくそのアドレスはEOAではなく「コントラクトアドレス」です。

そうすると送金することができません。ただし「消えてしまう」わけではなく、送金ができないという状況になるのです。

この場合は、秘密鍵のつくウォレットから再度送付してください。

まとめ

こちらの記事ではイーサリアムの2つのアドレスについてを解説しました。

イーサリアムのアドレスは

  • 出金・送金専用のアドレスEOA
  • スマートコントラクトを実行するためのコントラクトアドレス

2種類があり、見た目は似ていますがそれぞれ用途が違います。

DappsゲームやICOに参加する際は、秘密鍵の付いているウォレットMyEtherWalletやMetamaskでアドレスを作成し、こちらからコントラクトアドレスに送金をして参加しましょう。

また、送金の際はパスワードや秘密鍵はオフライン上で管理をし、しっかり保管をしましょう。

こちらの記事を参考にゲームなどに参加してみてくださいね。