よこのじ(@yokonoji_work)です。
イーサリアム(ETH)やERC-20などのトークンをより安全に保管するために、マルチシグ ウォレット(Multisig Wallet)を使った保管方法を紹介します。
この記事では、予測市場プラットフォーム Gnosis(グノーシス)の提供するGnosis Safeというウォレットを例に使い方を説明していきます。
マルチシグはチーム管理のものと思われがちですが、個人でもセキュリティを高める方法として有効です。安全に暗号通貨(仮想通貨)を保管したい方は参考にしてください。
マルチシグとビットコイン
マルチシグとは、複数の鍵を使ってトランザクションの許可を行う仕組みです。
次の図では、3つの鍵のうち2つの鍵が揃えば送金が可能なため、2 of 3 という管理方法になっています。この仕組みをチーム内で使うのが、一般的な利用方法です(bitbankなどの取引所もマルチシグを利用しています)。
しかし、マルチシグはチームだけのものではありません。個人でもセキュリティを高めるために検討したい管理方法です。
マルチシグを個人で使う場合は、2段階認証(2要素認証 2FA)のようにセキュリティを高める使い方ができます。
- 鍵1:メイン端末に保管(例えば、スマートフォン)
- 鍵2:サブ端末に保管(例えば、パソコン)
- 鍵3:紙などで予備として保管
このように2 of 3 で管理すると、1つの秘密鍵が流出することはあっても、複数の秘密鍵が同時に流出することは考えにくいため安全です。また、うっかりと秘密鍵を紛失しても、予備の秘密鍵を使って送金が可能なので安心感があります。
ビットコインの場合は、標準的な機能としてマルチシグの仕組みを持っています(アドレスの先頭が3)。そのため、マルチシグ対応のウォレットは割と簡単に見つけることができます。
- BitGo:Web版のみ(メール登録が必要)
- Copay:日本語表示とシンプルなインターフェース iOS/Windows, Mac, Linux
- GreenAddress:英語のみで扱いにくいAndroid/Windows, Mac, Linux
ただし、マルチシグは署名の数が増える分だけコストが高くなるので、個人には普及していない印象です。
余談ですが・・・
イーサリアム、ビットコインの秘密鍵は78桁分ものパターンが生成可能です。1兆が13桁ということを考えると、とんでもなく多くの秘密鍵ができることになります。
そのため、総当たり攻撃で被害を受けることは考えにくいです。例えば、攻撃用のコンピュータに2億円つぎ込んでも数えられないほどの年数が必要です。
約 310,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000年
モバイルウォレットやハードウェアウォレットのように、秘密鍵を直接入力することがない方法を使って、秘密鍵が流出させないことがより重要だと分かりますね。
マルチシグ対応のイーサリアム ウォレット
ビットコインとは違い、イーサリアム(Ethereum)には標準的にマルチシグの機能は備わっていません。そのため、スマートコントラクトを使ってマルチシグを実現しています。
イーサリアム(ETH)やERC-20トークンをマルチシグで保管できるウォレットは、次のようなものがあります。
Mist:Ethereum Foundationが公開するウォレットです。公式によるマルチシグ ソースコードのため安心感はありますが、Mistはデスクトップウォレットなのと、ブロックチェーンデータをすべてダウンロードするフルノード型なので使い勝手が良くありません。
BitGo:ビジネスアカウントへの登録でイーサリアムのマルチシグ管理が可能です。
Unchained Capital:最小機能のシンプルな設計にすることでセキュリティを確保する思想により作られました。そのため、2 of 3のみ、Trezor OneかLedger Nano Sのみ利用可能といった仕組みになっています。「Ethereum Multisig」で新規作成(Publish New)することができます。
Parity:Parityのウォレットでもマルチシグは可能です。しかし、過去に15万ETHが盗まれた重大なバグがあり、さらにその修正コードに含まれていたバグで30万ETHが凍結状態となりました。これらの事件から信頼を失っており、推奨されないウォレットになっています。
Gnosis:Gnosis Multisig Walletというマルチシグ ウォレットがあり、多くの有名プロジェクトが利用しています。ConsenSysのソースコードが元になったもので、業界の中で信頼されています。
- Aragon 0xcafe1a77e84698c83ca8931f54a755176ef75f2c
- Bancor 0x5894110995b8c8401bd38262ba0c8ee41d4e4658
- Golem 0x7da82c7ab4771ff031b66538d2fb9b0b047f6cf9
- MysteriumDev 0x7e6614722614e434c4df9901bab31e466ba12fa4
- District0x 0xd20e4d854c71de2428e1268167753e4c7070ae68
GitHubのコードをデプロイ(展開)することでデスクトップ環境で利用することもできますが、GnosisはWebインターフェースのウォレットも用意しています。
ただ、Gnosis Multisig Walletも今となっては旧型です。今はコストとUIが改良されたGnosis Safeがあります。
旧型のGnosis Multisig Walletはテストネットワークでも使えますので、マルチシグウォレットをとりあえず体験してみたい方は使ってみてください。
- Gnosis Multisig Wallet
- Metamask(メタマスク)
- RopstenテストネットワークのETH(Ropsten Ethereum Faucet/MetaMask Ether Faucet)
これらを用意して、「Guide To Using The Gnosis Multisig Wallet- ETH」を参考に使ってみてください。
[adchord]
Gnosis Safeの使い方
紹介したイーサリアム マルチシグ ウォレットのうち、おすすめはGnosis Safeです。
Gnosis Safeは、Gnosis Multisig Walletのコントラクト設計を見直すことでガスコストが低減されています。多くの有名プロジェクトの資産を保護してきた実績があり、優れたUIのスマホアプリがあり。今のところ最も使いやすいマルチシグ ウォレットだと思います。
なお、これから紹介するのはGnosis Safe Personal Editionで個人向けに最適な設計がされたものです。そのため、先ほど説明した2 of 3ではなく、スマホとパソコンを使った2 of 2の方式です。また、管理が必要なアカウントは1つだけなので、保管する鍵(リカバリーフレーズ)も1つだけです。
3つの鍵のうち1つの鍵をなくしても予備があるから大丈夫、という使い方をしたい方の要望に沿うものではありませんが、総合的にみておすすめなGnosis Safeを紹介させていただきます。そのような使い方をしたい場合は、旧型のGnosis Multisig Walletであれば実現できます(旧型も不具合などがあったわけではないので使用に問題はありません)。
マルチシグ コントラクトの作成
それでは、マルチシグ ウォレットを作りましょう。
①まず、アプリとChrome拡張機能をインストールしてください。
- アプリ:Google Play/App Store
- Chrome拡張機能:chrome ウェブストア
②アプリをインストールしたら、最初にパスワードの設定してください。
③新しいウォレットを作成します。
④リカバリーフレーズの保管と確認
「Recovery phrase」をタップすると、リカバリーフレーズが表示されます。
このリカバリーフレーズを誰にも見られないように、安全に保管してください。
右上の「Next」をタップすると Word #7、Word #1のように、12ワードのうちの指定の箇所にあるワードの入力を求められますので、入力してください。
⑤Chrome拡張機能と連携させる(オプション機能)
拡張機能とコネクトすると、スマホ側のアプリとパソコン側の拡張機能の両方で許可をすることでトランザクションの送信が可能となります。これにより、スマホだけで許可を与えるよりもセキュリティが高まります。
この設定がマルチシグになりますので、必ず設定しましょう。
パソコン側で拡張機能のアイコンをクリックして、パスワードの設定を行ってください。スマホと別のパスワードであればより安全です。
パスワードを設定したら、スマホとの接続用のQRコード表示画面に移動します。
パソコン側でQRコードを表示させたら、スマホ側で「Scan」からカメラを起動してQRコードを読み取ってください。これで接続完了です。
⑥コントラクトの作成
いよいよ、マルチシグ ウォレット作成を完了させます。
リカバリーフレーズ保管と拡張機能との連携(オプション)が完了したら、「Next」で次の画面に進んでください。
イーサリアムのマルチシグ ウォレットはスマートコントラクトにより実現する機能です。そのため、ブロックチェーンにコントラクトを書き込むための手数料(fee)が必要です。
ここで、画面下に表示されているアドレスが、あなたのマルチシグ ウォレットのアドレスとなります。そのアドレスに表示されているfeeより少し余裕をもたせたETHを送ってください(画像の0.01286…ETHがfeeです)。
送金トランザクションが通ると、ウォレット作成のプロセスが進みますので、しばらくお待ち下さい。
これでウォレットの作成は完了です。
こちらはAndroid版アプリでウォレットを作成する手順が紹介されている公式の動画です。iPhoneアプリでもほぼ同じですので、流れを掴むために一度確認してみてください。
マルチシグ送金の手順
マルチシグによる送金の手順を確認しましょう。
スマホ側での送金手順は他のウォレットと変わりありません。
送金額と送金先のアドレスを指定すると、次のような画面に移行します(Awaiting confirmation…のバーが左右を往復して待ちの状態です)。
このとき、パソコン側で送金確認画面が現れます。拡張機能のパスワードを入力してロックを解除し、「CONFIRM」をクリックすることでトランザクションが許可されます。
送金手数料は20~40円なので通常のウォレットと比べると送金コストは高くなっていますが、2重の承認によりセキュリティを確保できるのであれば許容できます。
送金についても公式の動画がありますので、ご確認ください。
開発者向けには Gnosis Safe ドキュメント があります。
Gnosis Safeのセキュリティ
実際に送金やウォレットのリカバリー(復元)を行ってみて分かった、Gnosis Safeのセキュリティの高いところをお伝えしたいと思います。
ウォレットの秘密鍵を直接扱うことはない
秘密鍵はアプリ内部に保管されており、秘密鍵を直接入力することはしません。そのため、キーロガーなどで秘密鍵が盗み見されることはありません。
スマホとパソコンの二重セキュリティ
Gnosis Safeの肝となるマルチシグ機能は、スマホ側とパソコン側の両方で許可がないとトランザクションが発行されない仕組みです。スマホが他人に盗まれてアプリのパスワードが解かれたとしても、資産は守られます。
リカバリーフレーズでパソコンとの再連携を含めた復元は可能ですが、リカバリーフレーズは設定時に表示された以降は表示されないので、スマホを盗まれたとしても復元されることはありません。
リカバリーフレーズの総当たり攻撃にも強い
一般的なウォレットであればリカバリーフレーズだけでウォレットが復元でき、しかも、互換があれば他のウォレットアプリでも復元が可能です。そのため、攻撃の意図がないとしても、他人がうっかり誤入力したリカバリーフレーズがあなたのリカバリーフレーズと一致する可能性はゼロではありません(一致する可能性は低いですが)。
その点、Gnosis Safeはスマートコントラクトのウォレットなので、一般的なウォレットとは互換がありません。他のウォレットで誤入力したものがあなたのリカバリーフレーズと一致したとしても、あなたのウォレットとは別のウォレットが復元されるだけです。
しかも、Gnosis Safeの復元には「アドレス」と「リカバリーフレーズ」の2つが必要です。Gnosis Safe上で他の人が入力した情報があなたの「アドレス」と「リカバリーフレーズ」に一致することはないでしょう。
リカバリーフレーズからアドレスを生成することは可能なので、ハッキング専用のプログラムを使って総当たり攻撃をすることは可能ですが、リカバリーフレーズ -> アドレスの処理には多少の時間がかかるので現実的な攻撃手段ではありません。
総当たり攻撃でやられてしまう、ということも考えなくて良さそうです。
ちなみに、リカバリーフレーズのみを変更することもできます(リカバリーフレーズの変更もパソコンとの2重許可が必要なので、スマホを落としても勝手に変更されることはありません)。
[adchord]
Gnosis Safeの使い勝手
Gnosis Safeの使い勝手についても少し感想をお伝えしたいと思います。
Gnosis Safeは、初心者でも安全に資産を保管できるウォレットとして作られています。そのため、Gas limitやGas price、秘密鍵を操作する設定はありません。これらの少しややこしいところを考えなくていいので、気持ちよく使うことができます。
また、取引に必要な手数料はすべてGnosis Safeのウォレットから支払われます。
通常のマルチシグ ウォレットでは、署名するための外部ウォレットからトランザクションfeeが支払われますので、各ウォレットにガス分のETHを保有しておく必要があります。しかし、Gnosis Safeではマルチシグ ウォレットからfeeが支払われますので、扱いやすいマルチシグ ウォレットになっています
今後はfeeの支払いにGnosisのOWLトークンやDAIが利用可能になるようですよ。
イーサリアム マルチシグ ウォレットのまとめ
イーサリアム マルチシグ ウォレットで最もおすすめしたいGnosis Safeの使い方をご紹介しました。
Web 3.0の世界で様々なアプリケーションを使っていくには、連携対応がされているLedger Nano SやTrezorが適していますが、”保管”することだけを考えるのであればGnosis Safeはとても良い手段と思います(ハードウェアの購入費用もかかりませんしね)。
- ウォレットの秘密鍵を直接扱うことはない
- スマホとパソコンの二重セキュリティ
- リカバリーフレーズの総当たり攻撃にも強い
ただし、スマートコントラクトによるウォレットなので、ウォレット作成時に約100~200円かかるのと、送金も通常のウォレットより10倍高い手数料20~40円がかかります(2/28時点)。そのため、長期間動かさない資産の保管用にするのが良いでしょう。
メリットとデメリット、そして用途を考慮して保管方法の選択肢としてみてください。
ちなみに、MEWconnectというスマホをハードウェアウォレット化できるMyEtherWalletのウォレットがあります。
このアプリも秘密鍵をアプリ内部に持ち、直接秘密鍵を扱うことはありません。代わりにパソコン側に表示されたQRコードを読み取ることでトランザクションを許可しますので、セキュリティが高いです。
しかし、リカバリーフレーズを他のウォレットで入力して復元すると、ただのウォレットとなります。この点が分かりましたので、長期的な保管ならGnosis Safeが良いかなと思った次第です(24ワードのリカバリーフレーズなので、他の人が偶然一致させることはありえないのですが)。
[adchord]