Electrumの使い方(応用編2・マルチシグネチャ)

Electrumでは、マルチシグネチャアドレスを作成することによって二段階認証的に送金を行いセキュリティを高めることができます。

自分が管理する二台の端末を利用する方法と第三者のサービスに秘密鍵の1つを渡す方法の二つがあります。特に前者は、コールドストレージ機能と組み合わせて利用することにより、非常に高いセキュリティを保つことができるのでおすすめです。また、オフライン環境のPCが用意できずコールドストレージ機能が利用できない場合にもマルチシグネチャ機能は利用できるので便利です。

マルチシグネチャウォレットは通常のウォレットと比べてやや複雑でシードの紛失による資産を失うリスクも高いため、特に初めて使う方は、試しにテスト用の空のマルチシグネチャウォレットを作って復元作業まで行い何をバックアップしてどうやって復元すればいいのか実際に確認したり、少額だけ送金作業を試すなど本番利用の前にイメージを掴んでおくのが重要です。

マルチシグネチャによる二段階認証

①2台の端末による二段階認証

複数台の自分が所有している端末を使ってマルチシグネチャウォレットを作成する方法です。後半で説明する方法は1台の端末のみでできるので便利ではありますが、外部のサービスに依存する必要がありややセキュリティが低下することや追加の手数料がかかるため、通常はこちらの①の方法をおすすめします。

ここでは一番持っている方が多いと思われる1台のPCと1台のAndroidによるマルチシグネチャウォレットを例として説明します。

これから説明する作業は2台の端末で同時並行で行ってください。まずは、ウォレットを新規作成します。作成画面で「Multi-signature wallet(マルチシグウォレット)」を選択し次へ進みます。

マルチシグネチャの形式を指定します。用途や利便性を考えて自由に設定できますが、ここでは、そのまま2 of 2(2の共同署名者から2の署名が必要:1つのアドレスに対し2つの秘密鍵が存在し送金のためにはそのうち2つの秘密鍵が必要となる)として、次に進みましょう。

「Create a new seed(新しいシードを作る)」を選択すると、通常のウォレットと同様に復元用のシード(seed)が表示されるのでメモしてください。2つの端末それぞれで別々のシードが表示され、マルチシグネチャウォレットの復元には2つのシード両方が必要となります。やや面倒で紛失には十分気を付ける必要がありますが、その分セキュリティはより高くなります。

確認のためにシードを入力して次に進んだら、ウォレットのマスター公開鍵(ウォレット内のすべてのアドレスと結びついている文字列、秘密鍵の情報は含まれない)が表示されます。マスター公開鍵は次の画面で使用するのでメモ・メール・USBメモリ等で書き写せる用意をしておきましょう。カメラで読み取れる場合はQRコードで保存すると便利です。

続いてもう一方のPCの鍵情報を入力するための選択肢が表示されます。「Enter cosigner key(共同署名者の鍵を入力)」を選択しましょう。

先ほどメモをとっておいたもう一方の端末のマスター公開鍵をお互いに貼りつけましょう。なお、「Enter cosigner seed(共同署名者のシードを入力))」を選択し、両方の端末のシードを入力した場合、2つのシードが単一のウォレット内に保存されるため、もう一方の端末での承認を必要とせずマルチシグウォレットの意味が実質的になくなります(1つの端末が壊れてもこの方法で資産を復元することができます。)。

ウォレットの暗号化の設定を終えればウォレットの作成が完了です。ウォレット名の横に「2of2」と表示されておりマルチシグウォレットであることがわかります。念のためアドレスタブを確認して、両方の端末でアドレスが一致することを確認しておくと良いでしょう。なお、segwitアドレスの場合は通常のウォレットと同様にbc1qから始まるアドレスですが、レガシーアドレスでマルチシグネチャウォレットを作る場合は、1ではなく3からはじまるアドレスになります。

マルチシグネチャウォレットのビットコインの受け取りは、通常のウォレットと全く同じ手順で相手に受け取り用のアドレスを伝えるだけです。

送金時はコールドストレージ機能と同様に二つの端末間で取引データを移動させることになります。

ただし、コールドストレージを利用せず2つのオンライン環境の端末でマルチシグネチャウォレットを利用する場合は、Electrumのサーバーに一部だけ署名された取引データを送信することにより、簡単に2つの端末間で取引データのやりとりが行えます。

この機能はCosigner Pool(共同署名プール)と呼ばれ、両方の端末で上部メニューの「ツール」→「プラグイン」から「共同署名プール」にチェックを入れれば利用可能です。

※ただし、この機能は不安定でうまく動作しない場合もあるようなので、利用できないときは他の方法で取引データを移しましょう。

実際に送金してみましょう。一方の端末(コールドストレージ機能を利用する場合はオンラインPC)で通常通り送金を行おうとすると上のような画面が表示されます。状態が「部分的署名済み(1/2)」となっており、2つの秘密鍵のうち1つしかまだ署名が行われていないことが分かります。

取引を送信するにはもう一方の端末に取引を移し、さらに2つ目の署名を行う必要があります。取引を移すには、「エクスポート」→「QRコードの表示」でQRコードを読み取るか、「エクスポート」→「ファイルへエクスポート」でUSBメモリ等で移すか、「共同署名者に送信」でCosigner Pool(共同署名プール)を利用してサーバーに送信するかの3つの方法があります。

ここではPCで最初に署名した後にAndroidでQRコードを読み込みます。「Send」タブの「Scan」をタップしてQRコードを読み込んでください。USBメモリでPCに移す場合は、移動先のPCの上部メニューの「ツール」→「取引情報を読み込む」→「ファイルから」を選択してください。取引データが読み込まれると上のような画像が表示されます。

Sign(署名)を選択して取引データに署名してください。

署名が行われると状態が「Signed(署名済)」に変わり、取引を送信できるようになります。「Broadcast(ブロードキャスト)」ボタンを選択すると取引データが送信され、送金が実行されます。

コールドストレージ機能と併用している場合は取引の送信ができないはずなので、同様に取引情報をUSBメモリ等で移し、オンライン端末上で取引を読み取って送信してください。

片方の端末が故障したときなどのために復元作業も確認しておきましょう。ウォレットを新規作成してウォレットの種類で「マルチシグウォレット」を選択、マルチシグの形式(本ページの例では2of2)を選択したら「既存のシードを入力する」を選択します。

一方の端末のシードを入力後、次の画面で「共同署名者のシードを入力」を選択、もう一方のシードを入力します。ウォレットの暗号化を設定すれば復元完了です。

ウォレット上の表示では2of2とマルチシグとなっていますが、実際は1つのウォレットに2つの秘密鍵が同時に保管されており、通常の非マルチシグのウォレットと同じように1つの端末上だけで送金が可能となります。

なお、機種変更や端末変更でElectrumのマルチシグを移動させたいときは、同時並行ではなく変更後の端末だけで最初の手順からウォレットを作成してください。途中の手順では「新しくシードを作る(Create a new seed)」ではなく「既存のシードを使用する(I already have a seed」を選択してください。また、もう一方の端末のウォレットのマスター公開鍵(Master Public Key)が必要となりますが、PC版は「ウォレット」→「情報」から、Android版は左上のウォレット名をタップすると確認できます。

②1台の端末による二段階認証(外部サービスの利用)

TrustedCoinという外部のサービスを利用することにより二段階認証の設定ができます。これは2of3のマルチシグネチャアドレス(1つのアドレスに対し3つの秘密鍵が存在し、送金のためにはそのうち2つの秘密鍵が必要となるアドレス)を作成し、3つのうち1つの秘密鍵をTrustedCoinに預けるものです。

ユーザーのPCには通常1つの秘密鍵のみが含まれており、2つの秘密鍵を算出できる1つのシードを紙媒体でバックアップ・復元用に保管しておくことになります。3つのうち2つの秘密鍵を自分で所有しているので、TrustedCoinがサービス停止しても出金できなくなることはありません。

実際の送金の際にはスマートフォンアプリのGoogle Authenticator(Google認証システム)を利用することになります。バックアップのシードをしっかりと保存しておけば、スマートフォンを紛失してもウォレットを復元することが可能です。

なお、この二段階認証を利用するには送金毎にTrustedCoinに少額の手数料(BTCの価格等を考慮して数十送金に1回のみかかるなど変動)を支払う必要があります。

まずは、ウォレットを新規作成します。作成画面で「2段階認証のウォレット」を選択し次へ進みます。

最初に説明したような2 of 3のマルチシグネチャアドレスや送金毎にTrustedCoinに支払う料金などに関する説明が書かれています。よく読んで次へ進みましょう。

「新しいシードを作る」を選択すると、12単語のウォレット復元用のシードが表示されます。このシードさえ覚えておけばTrusted Coinが停止したり、スマートフォンを紛失してもビットコインを失うことはありません。逆に言えば、シードを盗まれると二段階認証の意味がなくなるので厳重に保管しましょう。

メモの間違いがないようにシードを入力して次に進みましょう。

通常のウォレットと同様にウォレットの暗号化を設定後、オンライン環境でなければウォレットが作成できない旨の注意点が表示されます。オンラインであることを確認の上次に進みましょう。

TrustedCoinを利用するため、メールアドレスを登録する必要があります。メールアドレスを入力して次に進みましょう。

次にスマートフォンに事前にインストールしておいたGoogle Authenticator(Google認証システム)を利用してQRコードを読み取りましょう。アプリ上に表示されている6桁のコードを入力すれば完了です。

ウォレットの作成が完了しました。このように作成されたウォレットは右下にTrustedCoinのマークが表示され、ウォレット名の横に2faと表示されていることが分かります。

ビットコインの受け取り時には通常のウォレットと同様に使用することができます。

BTC価格などに応じて初回は無料の場合もありますが、20送金に1回、100送金に1回など送金時に「Additional fees」として追加の手数料がかかることがあります。

Google Authenticator(Google認証システム)内のコードを入力するまで送金はできません。

復元はウォレットを新規作成して「2段階認証のウォレット」→「既存のシードを使用する」で可能です。途中Google Authenticatorを有効にするかどうかの選択肢が表示されます。別の端末にウォレットを移行させたり認証用のスマホを紛失したりなど再度同じ2段階認証ウォレットを作り直したい場合などは上の「Keep」を、TrustedCoinがサービス停止となった際など2段階認証の機能をオフにしたい場合は下の「Disable」を選択しましょう。

※通常の2of3のマルチシグネチャウォレットの場合、2つのシード(→マスター秘密鍵)と3つ全てのマスター公開鍵が資産の復元に必要となります。ただし、ElectrumのTrustedCoinを利用した2段階認証ウォレットは、1つのシードに2つのマスター秘密鍵(ウォレット上には1つのマスター秘密鍵のみ保存)の情報が含まれているのに加えて3つ全てのマスター公開鍵が1つのシードから算出可能であるため、TrustedCoinのサービスが停止しても1つのシードから復元できる原理になっています。

最終更新日: 2023年01月24日

コメント欄

コメントシステムを試験的に変更し、メールアドレスの入力やSNSからのログインを廃止しました。投稿後5分以内であれば編集や削除が可能です。その後に削除したいコメントがあれば依頼していただければこちらで削除いたします。

質問については出来る限りお答えしていますが、個人が運営している関係上対応の遅れや見逃し等限界もあるのでご了承ください。