最新の墨汁マガジン

イーサリアム基礎講座イーサリアムウォレットを安全に管理する ~Gethでアカウントを作成する方法~

コンテンツの概要

MyEtherWalletやMetamaskなどは、イーサリアムネットワークのEOAアカウントを管理するUIを提供するサービスです。ローカル環境で手軽かつ安全にローカル環境でイーサリアムアカウントを作成できるDAppsの”Ethereum Wallet”は、Keystoreの管理もしやすかったものの、イーサリアムブロックチェーンを同期できない問題があります。
本稿では、Gethのインストールの仕方、Gethを利用してイーサリアムアカウントを作成する方法、Keystoreの管理、もしもの時にパスワードを紛失してしまったことを考慮し、Keystoreから秘密鍵を生成して保管しておく方法について詳しく解説を行います。

目次
  • 1. MistとEthereum Walletの開発終了
  • 2. Ethereum Walletでブロック同期ができない問題
  • 3. 保管に最適なHDDとUSBメモリ
  • 4. Gethをインストールする
  • 5. Gethの使い方
    • 5-1. イーサリアムのブロック同期ができるか確認する
    • 5-2. 安全にイーサリアムアカウントを作成する
    • 5-3. Keystoreの保存場所
  • 6. Keystoreからイーサリアムアカウントを復元する
  • 7. 念の為Keystoreから秘密鍵を生成する

イーサリアムウォレットの仕様についての詳しい解説はこちら

 

MistとEthereum Walletの開発終了

イーサリアムウォレットは、イーサリアムファンデーションにより提供されるDappsで、わかりやすいインターフェイスにより簡単にイーサリアムのアカウントをKeystoreで管理することができます。ですが、初期のDappsブラウザであるMistが開発停止となり、2018年7月24日の公開を最後にアップデートが行われなくなってしまいました。

 

 

Ethereum Walletでブロック同期ができない問題

イーサリアムブロックを同期するためのクライアント”Geth”の開発が進むにつれ、イーサリアムウォレットのバックで動くGethを最新のバージョンにアップデートしても、イーサリアムウォレットでブロック同期ができない問題があります。

このように、起動時に最新のブロックを同期できても、ノードが見つからずにRemote状態になってしまいます。これは、「地方でノードが見つからない」や「ライトモードだからブロック同期できない」などが原因ではなく、イーサリアムウォレット自体の問題となります。

そのため、ローカル環境で安全にKeystoreファイルを作成するには、Gethでコマンドを使用して行う必要があるのです。

 

保管に最適なHDDとUSBメモリ

私がハードウェアウォレットを使用しない理由として、ニーモニックフレーズを安全に管理しなければならないからです。例えばLdger NanoやTrezorは署名をハードウェアウォレット内で行うことができるという利点はあるものの、破損リスクや紛失リスクを避けるには3~4個のハードウェアウォレットを用意する必要があり、多くのコストが必要となります。

それに伴いニーモニックフレーズを安全に保存するためにHDDやフラッシュメモリなどを複数用意が必要であり、Keystoreの管理リスクと同じとなるのです。そのため、Keystoreは複数保管や分割保管などを管理できることから、HDDとフラッシュメモリを複数使用して管理を行っています。

 

フラッシュメモリはデータの長期保管に適さないため、普段使いは便利ですがHDDでのバックアップがより安全となります。

HDDはWestern Digitalが最大手なので、Western Digital製を選ぶのが最適でしょう。

 

また同じHDDを2つ買うと製造元による不具合や破損リスクがあることから、別メーカーのものを用意するとより安全となります。シリコンパワーのポータブルHDDは防水かつ、耐衝撃となるのでWDとは別に保有していると安心でしょう。

 

 

また、USBメモリは業務用のSLCを採用したものが最適であり、Transcendの512MBが最適です。価格のやすいUSBメモリは、MLCやTLCなのでデータ寿命が短くなるという問題がありますが、安価になります。

 

 

普段使いの場合ならMLCのUSBメモリで十分となります。オリジナルデータとして、1つ保管する場合にはSLCのUSBメモリ、普段使いでKeystoreのみ参照用等の場合はMLCにしましょう。

 

 

Gethをインストールする

ではGethをインストールしてアカウントを作成してみましょう。まず、Github上にあるGethは

*ここから先はオンラインサロン会員専用です