
著者: ICPリーグ
2021 年 9 月 15 日、インターネット コンピュータ ガバナンス システム NNS提案 20586この採用により、DFINITY Foundation は暗号化部分の開発を継続し、インターネット コンピュータ ネットワークを BTC ネットワークと直接統合できるようになります。この統合により、インターネット コンピュータのソフトウェア コンテナ (キャニスター) がビットコイン メイン ネットワークの BTC を直接保持して送信できるようになり、ビットコイン ネットワークにスマート コントラクトも導入されます。
最初のレベルのタイトル
▍直接統合とは
キャニスターがビットコイン ネットワーク上でビットコインを直接受信して保持できるようにします。
キャニスターがビットコイン ネットワーク内の独自の UTXO をトレースおよびクエリできるようにします。
キャニスターは、ビットコイン トランザクションを作成し、他のキャニスターからビットコイン トランザクションを受け入れ、トランザクションをビットコイン ネットワークに転送できます。
キャニスターはチューリングが完了しているため、キャニスターがビットコインを直接保持できるようになると、ビジネスを作成し、ビットコイン ネットワークを使用した他のキャニスターとのビットコイン トランザクションを含む、他のビットコイン ユーザーといつ取引するかを決定することができ、ビジネスはネットワーク内の IC 上で実行されます。
したがって、ビットコインネットワーク上の流動性を利用して、仲介者やブリッジを介さずにインターネットコンピュータ上でスマートコントラクトを実行することが可能です。
最初のレベルのタイトル
▍ECDSA のしきい値署名が必要です
ECDSA 署名はビットコインおよびイーサリアムのネットワークで広く使用されているため、インターネット コンピューター上のキャニスターはビットコインまたはイーサリアムの公開鍵を持ち、他のパブリック チェーン ネットワークにトランザクションを送信するための ECDSA 署名を作成できる必要があります。
明らかに、ビットコイン公開鍵に対応する鍵はコンテナ状態に保存すべきではなく、たとえキャニスターがデータをカプセル化するように pirvate を設定できたとしても、鍵は依然としてすべてのノードに公開される可能性があります。キャニスターの状態は、すべてのブロックチェーンと同様に、インターネット コンピューターの信頼モデルの下ではサブネットのノード間で共有されるため、悪意のあるノードが存在する可能性があり、悪意のあるノードが資産を盗む攻撃を通じて署名キーを取得する可能性があります。
最初のレベルのタイトル
▍リスクと課題
ここでの主な課題は、しきい値 ECDSA 署名スキーム用の安全なマルチパーティ計算プロトコルを定義して実装し、それをインターネット コンピュータ プロトコルと統合することです。
ECDSA 署名プロトコルのしきい値を取り巻くさらなる課題は、安全な分散キー生成プロトコルと、秘密署名キーの安全なキー バックアップおよび回復スキームです。
最初のレベルのタイトル
▍解決策
上記の 3 つの要件を確認してみましょう。
キャニスターがビットコイン ネットワーク上でビットコインを直接受信して保持できるようにします。
キャニスターがビットコイン ネットワーク内の独自の UTXO をトレースおよびクエリできるようにします。
キャニスターは、ビットコイン トランザクションを作成し、他のキャニスターからビットコイン トランザクションを受け入れ、トランザクションをビットコイン ネットワークに転送できます。
機能 (1) の場合、キャニスターはビットコイン アドレスの導出元となるしきい値 ECDSA 公開キーを持っている必要があります。
機能 (2) では、ビットコイン ブロックチェーンを検証および追跡するために、ビットコイン ブロックをインターネット コンピューターに抽出する必要があります。ブロックチェーン上の後続のブロックに十分な作業が完了すると、トランザクションとその UTXO が抽出され、要求に応じてキャニスターが利用できるようになります。
機能 (3) の場合、インターネット コンピューターは、ビットコイン スマート コントラクト コンテナからのアウトバウンド トランザクションをビットコイン ネットワークに確実に送信できるアウトバウンド通信チャネル (アウトバウンド通信チャネル) を確立する必要があります。
Threshold ECDSA は機能的にビットコインから完全に分離されており、別個の機能として IC 上に構築されており、キャニスターはこれを通じてトランザクションに署名するための公開キーと API を取得し、ビットコインをサポートするスマート コントラクトを可能にします。
最初のレベルのタイトル
▍ビットコインネットワークのステータスを確認する方法
インターネット コンピューターは他のネットワークからブロックを導入し、それらが正しいこと (形式、難易度など) を検証し、一定回数の確認後にトランザクションを処理して最終性を保証します。セキュリティは次のものに依存しますインターネットコンピュータとビットコインネットワーク他の要因ではなく、正常に機能していること。ビットコインの状態は主に、ビットコインを保持する各キャニスターの現在の残高を追跡するために使用されます。
ただし、ビットコインとイーサリアムのノードはコピー上では実行されず、ビットコインとイーサリアムの P2P ネットワークからブロックを取得するための特別なアダプターのみがコピー上で構成されます。アダプターはメイン ネットワークと同じコンセンサスの下にあるため、レプリカは同じ状態になり、システムは必要なセキュリティ プロパティを維持します。
インターネット コンピュータとビットコイン ネットワーク間の中継は、可能な限り分散された方法で IC ノード上に実装されます。ビットコイン統合をサポートする IC サブネット内の各ノードは、ビットコイン通貨ネットワークのノードのグループにランダムに接続されます。 。このアプローチにより、高度に分散された方法でビットコイン ネットワークの複数のノードにトランザクションを迅速に分散することもできます。
関連するセキュリティ上の懸念について、DFINITY は、信頼できないコンテンツを高度に制限されたサンドボックスで解析するなど、危険なタスクを実行するコードをサンドボックス化する予定です。これにより、誰かが悪意のあるネットワークにサービスを提供して応答した場合でも (たとえば、攻撃者のビットコイン ノードに接続する) ことが成功します。リモートコード実行攻撃を開始しましたが、サンドボックスから抜け出して実際の被害を引き起こすことができませんでした。
最初のレベルのタイトル
▍ビットコイン統合後
前述のアダプター ネットワーク アーキテクチャは、非常に一般的な方法で構築されています。これらの機能はすべて、I2C プロトコル スタックの一部である単一の統合アーキテクチャによって提供されます。したがって、ビットコインの統合以外にも、いくつかの目的に使用できます。
ここでのもう 1 つの重要な用途は、将来のイーサリアム統合です。
コンテナが http 呼び出しを行ったり、任意のネットワーク接続を行ったりできるようにします。
さまざまなプロトコル (BTC、ETH、http、TCP…) は、ネットワーク レベルなどでアーキテクチャ コンポーネントの大部分を共有し、各プロトコルは独自のプロトコル アダプターを受け取ります。このようにして、IC プロトコルとの結合を最小限に抑えながら、アーキテクチャを高度にモジュール化しながら強力な状態に保つことができます。
現在の計画では、まずビットコインの統合を行い、次にイーサリアムの統合を行う予定です。ビットコインやイーサリアム P2P ネットワークに接続するための専用アダプターなど、これらのブロックチェーンに固有のコードを導入します。現時点では、これら 2 つのブロックチェーンのみサポートが追加されます。統合が大成功し、コミュニティがライトコイン、ドージコイン、その他のネットワークの統合を求めた場合は、もちろんそれに投票することができます。
ビットコインとの統合により、外部 HTTP 呼び出しを行う機能の基礎が築かれます。DFINITY は、最初のレベルのタイトル。
副題
9月15日の更新:
副題
9月22日の更新:
10月4日更新
しきい値 ECDSA 機能の実装: データ型、アーティファクト プールのしきい値 ECDSA アーティファクト、トランザクションの作成と検証など、「ベース」のかなりの部分が実装されています。これまでのところ、上記の実装はすべてシミュレートされた状態で実行されています。一部の暗号化プリミティブは並行して実装されていますが、これまでのところコンセンサスに統合されていません。
副題
10月19日の更新:
副題
10月31日の更新:
11 月 20 日のマイルストーンを設定した後、この機能が最終的にリリースされるのはおそらく来年になる可能性が高いことがわかりました。現時点で適切な見積もりを行うことは困難ですが、計画は第 1 四半期に行われる予定です。
副題
11 月 4 日の更新:
ECDSA しきい値の鍵管理に関する最終決定はまだ議論の余地があります。
単一サブネット上のすべてのキャニスター鍵は、この 1 つのマスター鍵から取得されます。
同じマスター キーが異なるサブネットに展開されている場合、このキーのセキュリティは、キーが展開されているサブネットのセキュリティの弱点に依存します。これは、特定のマスター キーをホストするには、十分に安全なサブネットを使用する必要があることを意味します。
副題
11 月 6 日の更新:
コミュニティは、キャニスターがビットコインメインネットを使用するかテストするかを選択できるオプションを公式が提供することを提案しました。これにより、ビットコイン メインネット上でトランザクションを実行せずにコンテナ コードをテストすることが容易になります。
しきい値 ECDSA 機能は 2022 年まで引き継がれる可能性があり、これによりビットコイン統合の展開も遅れることになります。コミュニティは、ビットコイン機能が予定より早く完成した場合、ECDSA のしきい値なしでビットコイン機能にアクセスできるようにし、実装中に ECDSA 機能の開発をシミュレーションすることで、ビットコイン関連機能のロールアウト時間を短縮することができると提案しました。
副題
11 月 12 日の更新:
しきい値 ECDSA: 暗号化およびコンセンサス メカニズムのエンジニアリング チームは現在、コンセンサス メカニズムと ECDSA 署名の間の最初の統合に取り組んでいます。これは、しきい値 ECDSA 署名に必要な最小 4 ノードのサブネットワークを検証する主要なマイルストーンです。私たちはこのマイルストーンの締め切りを来週末に設定しました。これまでのところ順調に進んでいます。
ビットコイン アダプターとビットコイン システム コンポーネントのプロトコル統合: 今週、エンジニアリング チームは大幅な進歩を遂げ、ネットワーク層のビットコイン アダプターと実行層のビットコイン システム コンポーネント間のプロトコルが機能し始めました。つまり、ビットコイン システム コンポーネントはアダプターからブロックをフェッチでき、アダプターはリクエストとプリフェッチされたブロックを照合し、一致する場合は新しいビットコイン ブロックを提供し、システム コンポーネントによって処理されます。ビットコイン システム コンポーネントからのブロック リクエストには、システム コンポーネントが持つビットコイン ブロックチェーンのビュー内のすべてのブロック ハッシュが含まれます。アダプタは、そのブロックがシステム コンポーネントのローカル ビューのブロックと「上にある」ブロックに一致する場合、ビットコイン ブロックで応答します。このプロトコル レベルの統合は、IC スタックではなく、ビットコイン システム コンポーネントに「直接」接続する単一のアダプターを通じて行われます。これは、ビットコイン関連の機能の中核部分がこれら 2 つの主要コンポーネントで動作していることを意味しますが、新しい通信メカニズムは引き続き開発されるでしょう。
副題
11 月 19 日の更新:
副題
11 月 20 日の更新:
副題
11 月 26 日の更新:
事前署名プロトコルのコンセンサス機能と暗号プリミティブの統合が完了し、暗号機能も追加されました。その中でも、事前署名は最も敷居の高い ECDSA 関数実装の最も複雑な部分であり、現在もまだ「解決」する必要があるショートカットをエンドツーエンドで作業しています。これらのショートカットは、署名プロトコルの実装後に完全に機能するようになります。
事前署名をより具体的にするために、Grafana ダッシュボードを通じて機能を視覚化しました。詳細は以下のとおりです。
副題
文章
副題
11 月 29 日の更新:
タップルートおよびしきい値の Schnorr 署名は、しきい値 ECDSA の次のステップになる可能性がありますが、まだ明確な決定は下されていません。 Threshold Schnorr を実装する場合、Threshold ECDSA 作業の相乗効果を最大限に活用できますが、キー導出スキームを含むプロトコル仕様を定義し、そのセキュリティを証明し、(相乗効果を活用する) システム設計を作成し、実装する必要があります。それ。
最初のレベルのタイトル
▍リソース
https://forum.dfinity.org/t/threshold-ecdsa-signatures/6152
https://forum.dfinity.org/t/direct-integration-with-bitcoin/6147