ビットコインマガジン
[[alloc] init] プライベートビットコイントランザクション用のシールドされたビットコイン提案をリリース
シールドされたビットコインは、[[alloc] init] 研究者のクララ・シケルマン、ミーシャ・コマロフ、アレクセイ・モスクビンによって提案された提案であり、オペレーター、ソフトフォーク、またはビットコインコンセンサスへのその他の変更を必要とせずにシールドされたビットコイントランザクションを可能にする、ビットコインベースレイヤー上の新しいプライバシーメタプロトコルです。ホワイトペーパーはこちら、ブログ発表はこちらからご覧いただけます。
このプロトコルは、システムへの資金の出入りをビットコイン PIPE に依存しながら、強力なプライバシー保護トランザクションのためのトランザクション構造とインデックス プロトコルを定義します。 PIPE メカニズムの詳細については、この記事の最後で説明します。
そのデザインはまさにビットコインを反映しています。 UTXO (メモ) に相当するものがあり、トランザクションは通常のビットコイン トランザクションと同様にメモを入力として消費し、証人は消費された入力が適切に承認されていることを証明し、ノード (メタプロトコルの場合はインデクサー) がトランザクション履歴を解析し、どのコインが使用されたか、どのコインが使用されなかったのかの現在の状態を構築します。
ただし、詳細はすべてまったく異なります。
シールドされたビットコイン トランザクションは、OP_RETURN、証人フィールド、またはその他のデータ伝送方法を使用して、ビットコイン トランザクションに含まれるプレフィックス (「shbtc:」など) を持つ単なるデータの塊です。それはビットコインにとって何の意味も持たず、ビットコインネットワークはビットコインを検証したり、ビットコインに対するルールを強制したりすることは何もありません。無効なシールド ビットコイン トランザクションがオンチェーン上に存在する可能性は十分にあり、検証に失敗したトランザクションを無視し、ネットワーク残高の状態の更新に適用することを拒否するのは、ブロックチェーンを受動的に監視するシールド ビットコイン インデクサー (ノードと読みます) の仕事です。
インデクサーは、ビットコインが UTXO で行うように、未使用のノート セットからノートを削除しません。ヌルファイアセットを使用します。これは、ユーザーがどの紙幣が使われたかを明かさずに、紙幣が使われたという暗号化された証拠と無効化を公開投稿する方法です。その考え方は、ノートが「未使用ノート セット」にあるかどうかを確認するのではなく、ヌリファイアがすでに使用されているかどうかを確認するということです。インデクサーは、永久に成長し、作成されたすべてのノート出力にのみ追加できるマークル ツリーを構築し、その後、ヌリファイア セットを作成します。
このプロトコルを使用するために必要なのは、ビットコイン ノードとシールドされたビットコイン インデクサーだけです。資金を回収するためにサービスプロバイダー、コーディネーター、またはオフチェーン国家は必要ありません。オンチェーンのビットコインと同じように機能し、必要なのはノード/インデクサーとキーだけです。
各ユーザーのウォレットはマスター秘密鍵を派生し、そこから関連する他のすべての鍵セットが作成されます。
これは、ビットコインの HD ウォレットと非常に似た方法で考えてください。この関係を使用して、多くのアドレス セットを生成できます。 sk_spend は秘密キー、sk_nf はメモ出力を無効にするために使用され、vk_in は受信メモを復号化して表示するために使用され、vk_out は送信トランザクションを表示するために使用され、sk_view は受信アドレスを生成するために使用されます。
ユーザーが誰かに資金を送金するためにアドレスを提供したい場合、派生値と同様の多様化値 d を生成し、その値を sk_view キーに対して乗算します。結果として得られる公開キー、pk_d および d はユーザーのアドレスです。
次に、送信者はランダムな値 r_seed を生成します。これは、メモ出力の暗号化と無効化に必要です (これについてはすぐに説明します)。トランザクション出力には、出力の値、受信者が送信者に与えた d 値、送信者の r_seed 値の 3 つの暗号化されたもののみが含まれます。送信者は、秘密の一時キーのペアと受信者の公開キーを使用して、共有秘密を作成します。双方は、自分の秘密キーと相手の公開キーを乗算することで、同じシークレットを生成できます。メモの出力はこの共有秘密を使用して暗号化され、一時的な sk_eph は暗号化されずに含まれるため、受信者は共有秘密を生成できます。
この図の入力側では、有効なトランザクションを行うには 2 つのものが必要です。1 つは消費されたノート出力の公開ヌルファイア、もう 1 つは、1) ノート出力はノートのマークル ツリーに含まれている、2) トランザクションは適切な sk_spend キーによって承認されている、3) ヌルファイアは正しく導出されている、4) インフレーションは発生していないことを証明するゼロ知識証明です。
上の画像でお気づきかと思いますが、ヌリファイアは sk_nf キー、r_seed から導出された ρ 値、およびノート出力のマークル ツリー内のノートの位置を使用しています。ゼロ知識証明により、使用済みノートを削除する代わりに単純に繰り返しの無効化子をカウントできる理由がすべて保証されます。ヌリファイアーがどのノート出力に対応するかは決してわかりませんが、すべてのトランザクションのゼロ知識証明により、セットに追加された各ヌルファイアーが有効なノート出力からのものであることが保証されます。リピートがない限り、同じ二重支払い保証が提供されます。
このプロトコルを使用すると、基本的に暗号化されたメタプロトコル トランザクションをビットコイン ブロックチェーンに埋め込むことができますが、それでも、何も二重に使われておらず、何もないところからコインがつり上がっていないという保証も提供します。
これは実際、プライバシー特性の点で非常によく設計されたシステムであり、Zcash シールド プールなどと同等です。メタプロトコルに出入りする際にはプライバシーに関する考慮事項があり、これらについては今後の文書リリースで詳しく説明される予定です。コインジョインの場合のように、プライバシーの測定や定期的なリミックスを心配する必要はありません。
それで、ペグ。その目的は、監視暗号化スキームである PIPEs v2 を使用してペグを構築することです。 PIPE を使用すると、特定の条件 (UTXO の状態、トランザクションが確認されたことなど) が満たされたことを示す ZK 証明を提供できない限り、キーを漏洩しないプログラム/メカニズムで秘密キーを暗号化できます。これにより、運営者、連盟、または第三者が資金を管理しなくてもペッグが機能することが可能になります。
これには、ビットコインへのソフトフォークやプロトコルの変更は必要なく、完全にオフチェーンで行われます。
Shielded Bitcoin の計画とその作業の次の部分は、ユーザーが PIPE の暗号で制御されたキーを使用して Shielded Bitcoin に資金を入金できるようにするペギング メカニズムです。その後、オンチェーンで確認された正当なペグアウト トランザクションの ZK プルーフを生成することでロックが解除されます。
現在、システムのこの側面を定義する文書の作成作業が進行中であり、近い将来リリースされる予定です。