これは、プライバシーに熱心なビットコインの教育者、アーマン・ザ・パーマンによる論説です。
長年にわたり、私はさまざまなビットコイン ウォレットをいじくり回し、秘密鍵を安全に保持するために多くの人々を指導してきました。私は「Electrum Desktop Wallet」をお気に入りで最も用途の広いソフトウェア ウォレットとして決めました。
このエッセイでは、Electrum の機能のいくつかと、私の好き嫌いについて概説します。これは、それを使用して最大限に活用する方法に関する詳細なガイドではありません.また、独自のビットコイン キーを保持する必要がある理由についても説明しません。これはあなたが知っていて、そうしたいと思っていることを前提としていますが、なぜそれが不可欠なのかを知る必要がある場合は、「取引所からビットコインを引き出す 6 つの理由」をご覧ください。
私は Electrum の特異性を直接経験し、それらを克服するための解決策を考え出しました。
Electrum は、「パワー」ユーザーである、またはそれを目指している人向けです。非常に多くの制御が可能であり、ソフトウェアに精通しているため、ビットコインのプライバシー/セキュリティの一環として、ほとんどの学生にこのウォレットを教えることにしました メンターシップ コース (ただし、より使いやすいものが必要な人もいます)。エレクトラムの使い方を教えた経験は、人々が直感的に感じるものと難しいと感じるものを理解するのに確かに役立ちました。最初は少数のテスト環境で使用してください。
オペレーティング システム
Electrum は、Windows PC、Mac コンピューター、または Linux PC にインストールできます。重要なのは、ARM チップ コンピューター (Raspberry Pi など) にインストールできることです。
携帯電話にもインストールできますが、モバイル版は機能が貧弱で、ノードへの接続が不安定なため、そのバージョンはお勧めしません。
ダウンロードと検証
プログラムのダウンロードとインストールは、Windows と Mac では簡単ですが、Linux ユーザー、特に
プログラムをテストしているだけの人にとっては、ソフトウェアが問題ないことを確認せずにダウンロードして使用するだけです。大きな懸念事項です (つまり、KYC フリーのビットコインを持っている場合は、コインを特定できないように適切なプライバシーを実践する必要があります)。
実際にこのウォレットを多額の金額で使用することになる場合は、 gpg でソフトウェアを検証する方法を学ぶ必要があります。 こちらでスキルを磨くことができます。 Electrum を安全に/非公開で使用する方法についての私のガイドを待っている間に、それを行うことができます。 (つまり、アイコンをダブルクリックするだけで)コマンドライン(特定のフラグを使用)ではなく、ほぼ確実にランダムなビットコインノードに接続し、ウォレットと潜在的な86億のアドレスをすべてランダムノードの所有者に公開します。所有者は監視会社である可能性があり、そこにはあなたのプライバシーがあります (彼らはあなたの使用済みおよび未使用のアドレスと IP アドレスをすべて取得します)。
これを克服するために、次回の記事で、最初に使い捨てのウォレットをロードし、ネットワーク設定を最適化し (自分のノードまたは信頼できるノードに接続)、その後で実際のウォレットを Electrum にロードする方法.つまり、ネットワーク設定またはノードです。
エレクトラム ウォレットには、アドレスを表示する非常にきれいなレイアウトがありますが、メニューに移動して「アドレスを表示する」をクリックして表示します。次に、最初の 20 個の受信アドレスのリストが緑色で強調表示され (46 億個ありますが、明らかにすべてが表示されているわけではありません)、黄色で強調表示された最初の 10 個の受信アドレスのリストが表示されます (このタイプのアドレスは 46 億個あります)。 )。
他の多くのソフトウェア ウォレットは、アドレスのリストを表示せず、ウォレットにコインを送るように要求された場合にのみアドレスを提供します。これは、物事をシンプルに保つためにユーザーから情報を隠しますが、学習する機会が提示されないため、ユーザーは無知のままになりがちです。携帯電話で Ledger Live または Trezor スイート、または Blue Wallet を使用している多くの人に会いましたが、「変更」アドレスと呼ばれるものは言うまでもなく、無限のアドレスがあることに気づいていません。
Electrum も示しています。それを有効にするには、すべての UTXO のリスト (ただし、「コインを表示する」を選択する必要があります)。
Electrum サーバーが必要
Electrum ウォレットは Bitcoin Core ノードに直接接続できません。これは面倒ですが、electrum の実行速度が向上します。はるかに高速。引き続き Bitcoin Core が必要ですが、Electrum Server と呼ばれるソフトウェアも必要になります (これにはさまざまな種類があり、それぞれに長所と短所がありますが、ここでは説明しません)。一部の人にとっては、Bitcoin Core のインストールは非常に困難です。 Electrum Server のインストールは非常に難しく、かなり専門的である必要があります。
簡単かつ積極的に強化するために、最初のノードに MyNode (私のガイドを見る) または Raspiblitz (見る) my guide) を参照してから、通常の PC へのノードと関連ソフトウェアのインストールに進みます。
これらのパッケージにはいくつかの弱点がありますが、Raspberry Pi 4 に 1 回インストールするだけで多くのアプリケーション (Electrum Server、Lightning、BTCPay Server、Mempool ビューアーなど) を取得できるため、最初は優れています。それ以外の場合は、1 つずつインストールする必要があり、場合によっては検証する必要があります)。費用はすべての機器で約 300 ドルです (ソフトウェアは無料です)。あなたのスキルと興味が進むにつれて、より高度なノードのセットアップを検討することをお勧めします (どれも高価ではありません)。なぜノードを実行する必要があるのか 疑問に思っている場合は、ここに 6 つの優れた理由があります。
ウォレットの作成
先に進む前に、2 種類のウォレットを定義しておくと便利だと思います。さらに:
ソフトウェア ウォレット-これは、ビットコインの秘密鍵とアドレスを管理するプログラムです。例: Electrum、Sparrow、Blue Wallet.Bitcoin ウォレット-これは、ニーモニック シード フレーズ (通常は 12 または 24 ワード) から決定論的に (そして再現可能に) 作成される一意のアドレスのコレクションを意味します。各シード フレーズには 86 億の一意のアドレスがあります。
Electrum はデフォルトで、標準ではないウォレットを作成しますが、これは非常に面倒です。最も一般的なプロトコルは BIP39 (Bitcoin Improvement Proposal 39) と呼ばれ、ほぼすべてのウォレットで使用されます。
つまり、BIP39 ウォレットが作成した 12 または 24 ワードは、他の BIP39 ウォレットと互換性があるため、ソフトウェア (またはハードウェア) ウォレットを紛失した場合でも、互換性のある BIP39 ウォレットに単語をシードします。同じブランドである必要はありません。
しかし、Electrum の開発者には独自の計画があり、業界標準は安全ではないと考えています (彼は BIP39 について非常に非現実的な懸念を抱いています)。 BIP39 の代わりに、Electrum は独自のプロトコルに基づいてウォレットを作成します。これは、他のウォレットがデフォルトで使用するものではありません。残念ながら、Electrum シード フレーズを作成した場合、そのシード フレーズは Electrum でのみ使用できます。
重要なことに、Electrum では BIP39 ウォレットを復元できますが、その方法を知っておく必要があります。ただし、BIP39 ウォレットは作成されません。しかし、これを回避する方法があります。
単純に 1 つのアドレスを Electrum にロードしてその残高を観察することもできます-それはあなたのものである必要さえありません (ただし、残高を使うことについてのアイデアは得られません)。
Electrum を使用してビットコイン ウォレットを作成または復元する場合、どのアドレス タイプを使用するかを選択できます。
p>Legacy-これらのアドレスは 1 から始まります-元の Bitcoin アドレス。 Pay-to-Script-Hash-これらのアドレスはすべて「3」で始まります。 、または「Bech32」)。これらは現在最も一般的に使用されています。それらはすべて「bc1q」で始まります。Taproot。これは新しいもので、Electrum ではまだサポートされていません。 Taproot は 2021 年にソフト フォークされました。アドレスは「bc1p」で始まります。
リストされている最初の 3 つのアドレス タイプは、互いに少し異なるように見える拡張公開鍵を持っています。それぞれ xPub、yPub、zPub で始まります。タップルートは tPub だと思いますが、まだ慣れていません。ビットコインの公開鍵と秘密鍵に関する教育資料については、こちらをご覧ください。 p>
ラベル
この機能は独自のものではありませんが、コインを適切に管理してプライバシーを維持したい場合は非常に重要です。 UTXOにラベルを付けることで、他の人と一緒に使うのを避けたいUTXOがわかります。たとえば、KYCなしまたは混合コインを持っていて、それをKYCコインと一緒に選択し、合計をどこかに送信すると、プライベートコインはKYCコインを所有する人に属していると識別できます(誰かがKYCコインを持っているため)両方を一緒に使う能力)。そうしないでください。ラベルはファイルに保存できるので、ウォレットが重複している場合に別のコンピューターにアップロードできます。
コインの選択
コインの選択は優れた機能です。アドレス ウィンドウに移動して、使用するコインを選択するか、複数のコインをグループ化して使用することができます。他のソフトウェアと同様に、使用するコインを選択しない場合、Electrum は使用するのに「最適な」コインを選択しますが、ソフトウェアは何が最適かを常に認識しているわけではありません。どのコインが合体しないのか、どのコインが粉塵攻撃なのか、どのコインが混ざっているのかわかりません。
送信/受信
ビットコイン支払いの送信プロセスは非常に「微調整可能です。”シンプルに保つことができますが、常に使用することをお勧めする高度なボタンもあります-少なくとも慣れることを学ぶ.ここでは、Bitcoin トランザクションの重要な要素を正確に確認できます。入力 (Tx ID とアドレスを含む)、出力、リストされたアドレスが自分のウォレットにあるかどうか (色分けによる)、マイニング料金とそれを微調整する機能、トランザクションのサイズ (バイト単位)、ロック時間がある場合、および手数料による置換が有効になっている場合。これらすべてが何を意味するのかをすぐに知る必要はありませんが、少なくともそれらはそこにあり、経験を積むにつれて、何を学ぶべきかがわかります.
受け取ったら、行くことができます.受信タブに移動すると、次の未使用のアドレスが提供されます。必要に応じてコピー/貼り付けしたり、QR コードを生成したりできます。または、住所ウィンドウに移動して、表示されている住所を選択して請求書を作成することもできます。右クリックして詳細を選択すると、アドレスの QR コードを作成するボタンが表示されるか、アドレス テキストをコピーすることができます。
アドレスへの支払いが行われ、mempool で待機中になるとすぐに、Electrum はそのアドレスと一緒に支払いを表示します。これは便利です。マイナーを待つ必要はありません。支払いが来ることを知るためにコインをマイニングします。 Electrum では、このような未確認のコインを使用することもできます。
送信者が非常に低い手数料を設定しており、確認に時間がかかる場合は、未確認のトランザクションを別のアドレスに送信することで支払いを急ぐことができます。その 2 番目の (ダウンストリーム) トランザクションでは、高いマイニング料金を追加できます。手数料を徴収するために、マイナーは最初のトランザクション (有利ではない) と、作成した下流のトランザクション (有利) を含める必要があります。最初のトランザクションが有効になるまで、2 番目のトランザクションは無効になるためです (理論的に存在しないコインを使うことはできないため)。この手法は「子が親に支払う」と呼ばれます。
支払いを高速化するために Electrum で可能なもう 1 つの手法は、RBF (replace by fee) と呼ばれます。これは、上記の「親の代わりに子供が支払う」で説明したように、受信者が行うことはできません。代わりに、せっかちな受信者は送信者に RBF を実行するよう依頼する必要があります。送信者は、「使用済み」でまだマイニングされていない元の UTXO をブロックチェーンに再送信します。その UTXO は、別のトランザクション (最初のトランザクションと同じアドレスまたは別のアドレスに支払う) に入れることができ、より高いマイニング手数料がかかります。 2 つのトランザクションのうち、最初にマイニングされた方が有効になり、もう一方は無効になります。
補足として、RBF は詐欺の可能性を許容します。受取人 (商人) が未確認のトランザクションを「支払い受領済み」として受け入れ、支払いの送信者に商品を配送した場合、送信者は元の支払いがマイニングされる前に RBF トランザクションを実行する機会があります。彼らは自分の住所を支払いの受取人として使用し、高額の手数料を追加します。それがマイニングされると、元のトランザクションは無効になり、mempool からすべてのノードによって削除され、マーチャントのウォレットからの残高はなくなります。
マルチシグ ウォレット
Electrum はマルチシグ ウォレットを非常にうまく管理します。 、そしてしばらくの間、それがあなたが使用できる唯一のソフトウェアウォレットだったと私は信じていました.ホット キー (ソフトウェア ウォレット) またはコールド キー (ハードウェア ウォレットを接続) を持つ署名者を持つことができます。マルチシグ公開鍵は、異なる日に、異なるコンピューター (またはハードウェア ウォレット) の異なる場所で一度に 1 つずつ作成できます。これを分散させると、単一障害点/攻撃のリスクが軽減されます。
マルチシグ ウォレットとキーの詳細については、をご覧ください。ここで、将来これらのウォレットを作成するためのガイドを用意します.ウォレットの作成プロセスは優れていますが、一度知ってしまうと関係のない癖がいくつかあります。
次に説明するマルチシグ ウォレットの重要な機能である、部分的に署名されたビットコイン トランザクション (PSBT) を Electrum が処理する方法がとても気に入っています。
PSBTs
Electrum ビットコイン トランザクション単なる一連のテキストで表されます (すべてのコンピューター データと同様に、テキスト自体が 2 進数を表します)。そのテキストをファイル、QR コード、またはクリップボードに保存する機能があります (たとえば、電子メールにコピー/貼り付けするためのテキストとして)。そのテキストは、どこにでも送信できます。そうしたければ、テキストを抽出して電子メール、物理的な手紙、モールス信号、煙信号、ブラック ホールを介した過去の重力波、解釈ダンスなどで送信できます。それはあなた次第です。
Electrum では、署名前、署名後、または部分的に署名されている場合はマルチシグ設定で、そのテキストを抽出して保存することができます。
マルチシグは特に興味深いものです。たとえば、世界中に 3 人のキー所有者がいる場合、コンピューターでトランザクションに署名し、部分的に署名されたビットコイン トランザクションを抽出し、それを電子メール (またはビデオ通話で QR コード) で海外の別の参加者に送信し、インポートして署名することができます。それから、署名とブロードキャストのために第三者に送信します。いいえ、これは Electrum に固有のものではありません。私は Electrum の処理方法が気に入っています。ただし、ワークフローは直感的ではなく、練習が必要です。
Pay To Many (PayJoin と CoinJoin)
隠し機能 (メニューを検索) があり、複数の宛先を選択できます (複数の出力) 支出するとき。たとえば、6.15 ビットコインを受け取り、0.01 ビットコインを 615 人の異なる従業員にすべて 1 回のトランザクションで送信できます。この機能を使用すると、PayJoins を手動で作成できます。これは少数の人々だけが行う、または理解することさえありますが、それでもクールです。
Pay to Many は、独自の手動 CoinJoins を作成することもできます。その内容とその方法について詳しくは、こちらのガイドをご覧ください。
ギャップ制限
すべてのウォレットにあるわけではない重要な機能は、ギャップ制限を設定する機能です。前述したように、すべてのウォレットは 86 億のアドレスの集まりです。ソフトウェア ウォレットはノードに接続し、アドレスにビットコインが関連付けられているかどうかを確認する必要があります。 86 億個すべてをチェックするわけではありません。 Electrum は最初の 20 個のアドレスを要求します。それらが uded の場合、さらに 20 を要求します。ノードが未使用のアドレスを 20 個続けて返すまで、これを維持します。
これは、デフォルトのギャップ制限が 20 であることを説明する方法ですが、これは変更できます。なぜですか?マーチャントは、顧客が支払いアプリを介して自分でビットコイン アドレスを生成できるようにする場合があるため (私の寄付ページのように、ヒント-ヒント).最初の 20 人の顧客が請求書を作成し (それぞれ 1 つのアドレス、アプリによって順次提供されます)、21 番目の顧客が請求書を作成して支払うと、Electrum ウォレットは空に見えます。これは、最初の 20 個のアドレスがクエリされ、未使用であることが判明し、その後 Electrum が検索を停止するために発生します。 Electrum では、ギャップ制限を 500 などに変更できますが、手順はありません。オンラインで調べるか、ここで見つける必要があります。
最初にメニューに移動する必要があります。表示→コンソールを表示し、コンソールに次のコマンドを入力します (もちろん、「500」は別の数字に変更できます):
wallet.change_gap_limit(500)
これでコマンドを実行すると、アドレス ウィンドウに 500 個の新しいアドレスが表示されます。
ウォレットの監視
これらは、ハードウェア ウォレットが接続するために必要な、秘密鍵のないウォレットです。ハードウェア ウォレットを持つほとんどの人は、デバイスに「付属の」コンピュータ上のソフトウェアを使用しますが、通常はオープン ソースではありません。 Electrum は、あらゆるハードウェア デバイスで使用できる代替手段です。
エア ギャップ コンピューター
インターネットに接続できないコンピューターに Electrum をインストールすることができます (Air-ギャップのあるコンピューター)。そのコンピューターを使用して、ハードウェア ウォレットが提供するシード フレーズがシードから正しいアドレスを作成したことを確認できます。
たとえば、BitBox02 ハードウェア ウォレットを購入すると、24 ワードのシードが作成されます。あなたは、そしてそこからアドレスを作成します (関連付けられた秘密鍵はビューから隠されています)。パラノイアのレベル (および保存しているビットコインの量) によっては、組み込みソフトウェアを信頼しないことを選択し、最初は、作成されたアドレスが CEO のものであると想定することもできます。
アドレスが本物であることを確認するには、シード ワードを別のウォレット (Electrum など) に入れる (復元する) 必要があります。 Electrum が同一のアドレスを生成することを確認します。それはとても簡単ですが、Electrum を搭載した古いコンピューターにシードを入力するだけではいけません。可能ですが、実際にすべきではありません。マルウェアがキーストロークを抽出してビットコインを盗む可能性があります。
1 つの解決策は、クリーンで安全なエア ギャップ コンピューター (または
最も安価な方法は、Raspberry Pi Zero を使用することです。パンデミックによる不足が発生する前は、約 10 ドルでした。これらのデバイスの ARM チップは、すべてのソフトウェア ウォレットが互換性があるわけではないことを意味します。 Electrum は素晴らしく機能します。
自分で作成する方法は次のとおりです。シード署名者に似ていますが、Electrum の全機能を備えています。
メッセージに署名/検証
ビットコイン トランザクションは、以前に暗号化されたコインを含む支払いです。住所。 (ビットコインのルールに関して) コインのロックを解除し、公開/秘密キー暗号化を使用してコインを使用できるようにするには、含まれているアドレスへの秘密キーを所有していることを証明する必要があります。これは署名によって行われます (秘密鍵を使用しますが、公開はしません)。
署名されたトランザクション自体がメッセージです。厳密なプロトコルに従っていますが、少しのコンピューター データです。
Bitcoin 以外の公開鍵/秘密鍵暗号を使用すると、実際に任意のメッセージに署名できます。たとえば、アドレス (およびその秘密鍵) を選択した後に署名したメッセージを次に示します。以下は、メッセージ、アドレス、および「署名」をクリックした後に作成された署名 (無意味に見えるテキスト) です。
これで、あなたまたは誰でもアドレスを取得できます。メッセージと署名を Electrum (またはその他のソフトウェア) に入れ、そのメッセージを生成したのが本当に正しい秘密鍵 (アドレスと一致する) であることを確認します (これは、実際にはビットコイン ノードが行う検証と同じタイプです)。任意のビットコイン トランザクション)。検証を実演するために、関連する秘密鍵を取得していない別のウォレットを開きます。 「メッセージの確認」ウィンドウに移動し、上記のようにすべての詳細を入力してから、[確認] をクリックしました:
メッセージの暗号化/復号化
公開鍵/秘密鍵暗号方式でメッセージに署名する代わりに、出力は暗号化されたバージョンの他の誰かの公開鍵/アドレスを使用してメッセージ (つまり、ごちゃごちゃして読めない)。暗号化されたバージョンは、対応する秘密鍵を持っている人なら誰にでも送信できます。これは、プロセスを逆にするために秘密鍵が使用された場合にのみテキストを読み取ることができるためです。
たとえば、あなたは私のビットコイン公開鍵を受け取り、上記のようにこのメッセージを暗号化し、暗号文 (一番下のフィールドのランダムに見えるテキスト)、そして私は公開鍵への秘密鍵を持っているので、暗号化されたメッセージを元の形式に逆にして、あなたの間違った考えのメッセージを読むことができます.
これは公開鍵/秘密鍵暗号の魔法であり、Bitcoin を構成する主要な要素の 1 つです。可能。サイファーパンクが、1990 年代にそれを禁止しようとした米国政府に対して激しく戦い、勝利したことを、私たちは皆感謝すべきです。デスクトップウォレット。うまくいけば、それを使用する方法を学ぶことにあなたの興味をそそりました-私はこれについてのガイドをすぐにリリースします.それまでの間、こちらの演習に従って、非常に基本的なビットコイン トランザクションを練習する価値があるかもしれません。