ダウンロード
メニューを閉じる -

SyncChain: 改善されたセキュリティおよび有用性のための同期化サイドチェーン

[TL;DR] 当社は、SyncChainという新型のマージマイニングされたサイドチェーンを発明しました。これにより、迅速なペグインおよびペグアウトが可能になり(ビットコインとRSK間ではペグインに最短で30分、ペグアウトに最短で2時間)、ペグを二重使用から無条件に防護するためにパラメータ化することが可能です。これは、数百ものブロック確認を必要とし、セキュリティが仮想経済学の仮定にのみ基づく既存のサイドチェーンからの大きな改善です。2016年に公開したアイデアに基づいて構築されたSyncChainプロトコルは、ペグアウトをロック解除するために使用される方法と直交していますが、興味深い設計の一つとしては、フェデレーション型 SyncChainの作成が挙げられます。最後に、RSKがビットコインSPV-サイドチェーンからビットコイン SyncChainに移行する長所と短所について説明し、SyncChainネットワークのアップグレードに関する暫定的な計画を定めます。

はじめに

RSKが最初に設計された時、設計の主な目標は、ビットコインの障害がRSKに影響することを防ぐために、可能な限りRSKをビットコインから独立させておくことでした。2015年から2016年の間、ビットコインはは継続的な圧力下にあり、論争の的となるハードフォークの脅威にさらされていました。また、トランザクション手数料が高騰し、安価な決済を必要とする金融包摂に対するビットコインの使用を妨げていました。これらの理由から、RSKは取引先のような オーバーレイ・プロトコルになるよりも、マージマイニング・コンセンサスを採用しました。マージマイニングは、オーバーレイが提供しない完全な独立(ビットコイン・ブロック反転からの場合を含む)を提供します。全く同じ理由で、当社は異質のコンセンサスを提供するためにSPVプルーフを使用しました。

ビットコインが酷評されるリスクは、時間とともに薄れていきます。したがって、当社は双方向ペグの要件を再考し、より良い代替案を模索するための設計スペースを見直すことが可能です。

SPVブリッジのセキュリティ

 

過去のブログ投稿において、当社はRSKペグ動作の仕組みを分析しました。RSKペグの特性の一つは、ビットコイン・ブロックチェーンの反転がRSKブロックチェーンの反転を意味しないことです。したがって、二重使用を防ぐため、RSKはビットコインのブロックチェーンが過去のペグアウトのトランザクションをリバートしないことを確実にします(例えば、100ビットコインのブロック確認を待つなど)。例えば、マージマイニングのエンゲージメントを約50%、RSKハッシュレートの51%((ビットコインのハッシュレートの25%))を占める、Malloryと呼ばれる悪意のある大きなマイニングプールがあると仮定します。Malloryは、偽のヘッダーのみのブロックチェーンを作成するためにハッシュレートすべてを使用して、ブリッジにMalloryがアサートするどのような虚偽のトランザクションも受け入れさせます。この偽のヘッダーチェーンは有効なビットコイン・ブロックチェーンではないため、Malloryがビットコイン・ブロックチェーンを混乱させることはありませんが、攻撃の準備中にブロックリワードを収集することはありません。RSKは現在、この攻撃から守られています。なぜなら、ローカルの最適チェーンがブリッジ・コントラクト内に読み込まれたビットコインの最適チェーンと一致しない場合、フェデレーション・ファンクショナリがペグイン登録メッセージを発行しないためです。しかし、SPVベースのペグインが最大限に分散されていており、フェデレーションからの干渉が排除された場合は、攻撃は成功する可能性があります。当社はこのことを、「偽ペグイン」攻撃と呼びます。防護されていないRSKのバリアント内で偽ペグインをMalloryに対して実行するには、約1千万米ドル相当の電力が必要です。偽ペグイン攻撃は、ビットコインののコインベースを見れば「マイナー不在」に起因しているように思われますが、Malloryはシステムがハッキングされたと主張し、知らない誰かにその責任を転嫁する可能性があります。

さらに、ペグイン二重使用攻撃もあります。この攻撃では、代替ブリッジコントラクトに最適チェーンにを要求し、同時にフェデレーション・ファンクショナリを分離して、この代替の最適チェーンが存在する唯一ものであるとファンクショナリに信じさせる必要があります。この攻撃コスト同様に1千万米ドル相当の電力とファンクショナリのハッキングですが、この略奪はもはや恣意的なビットコイン生成ではなく、最初の投資額を倍にするためだけのものです。

これと反対の攻撃は、ペグアウト二重使用です。この攻撃では、Malloryはペグアウトを実行し、ペグアウト命令のトランザクションがあるポイントまでRSKブロックチェーンをリバートさせます。同様に、この攻撃の電力も高コストですが、盗まれるビットコインの額が十分に高ければ、リスクは存在します。RSKには、「自由な」マージマイニング攻撃を防ぐための分散型アラートを可能にArmadilloと呼ばれるネットワーク監視ツールがあますが、この攻撃はそれでも可能であることに留意してください。

SPVブリッジのもうひとつの短所は、ペグインおよびペグアウトのために、100ビットコイン・ブロックの確認(または同じ累積難度と同等のRSKブロック)が必要とされることです。このことによって、有用性が損なわれます。セキュリティおよび有用性において、SPVブリッジ以上の改善は可能でしょうか?

双方向ペグのセキュリティ

双方向ペグの設計を比較するために、二重使用攻撃やマイナーによるビットコインの単純な盗難に対する8つの防護を定義します。他のグループからの攻撃は考慮していません。これらの防護は、二つのプルーフオブワーク・ブロックチェーン間でクロスチェーン・トランスファーを受け入れるあらゆるペグ・システムSに適用されます。また、これらの防護は、セキュリティ仮説や攻撃コスト(攻撃者の仮定予算)のいずれかに基づいて定義されることになります。防護は最強(1)から最弱(8)まで順序付けられますが、システムは2種類以上の防護を提案する可能性があります。システムSは、システムがペグインおよびペグアウトに対して異なる防護を適用する可能性があるため、説明された保護の組み合わせによって完全に 特徴づけられない可能性があります。ペグアウトは常により弱いサブプロトコルであり、攻撃者は攻撃にあたり最も弱い場所を選択するため、このセクションで説明するすべてのプロトコルについては、ペグアウト・セキュリティに焦点を当てます。また、システムは健全性と活性について異なる仮説を必要とする可能性がありますが、この分類では健全性に焦点を当てます。尚、シンプルにするために、ネットワークにおけるその他の補足的な攻撃(例えばノードを隔離する可能性)については無視します。一般的に、二重使用攻撃は攻撃者にブロック報酬の損失を引き起こさないことに留意してください。たとえば、攻撃者が新規の最適チェーンを非公開に作成するためにブロックチェーンをリバートした場合は、この新規のチェーンは攻撃者自身に報酬を支払い、その他のマイナーの報酬だけが失われます。このルール唯一の例外は、Armadilloにより行われる防護、または受信時間ごとにブロックをスコアリングする(一般的には壊れた)コンセンサス・アルゴリズムのみです[1] [2] [3]

ビットコインは他のサイドチェーンの累積プルーフオブワークを評価できないので、私たちは静的または動的な複数のサイングループがペグアウトおよびペグインにサインするためにいくつかのフォームがあると仮定します。ただし、ペグされたコインを受け取る悪意ある複数の署名所有者が関与する攻撃は無視します。ここでは、キー所有者が100%正直であるか、RSKのように秘密鍵にアクセスするのを防ぐハードウェア・セキュリティ・モジュール(HSMs)を実行していると仮定します。

下記の表では、RSKを他の種類の双方向ペグと比較していますが、マージマインのサイドチェーンにビットコインを接続するように修正しています。そうすることで、プロトコルの公平な比較を行うことができます。

 

最初の防護は「無条件セキュリティ」であり、これは、Sのプロトコルのルールの下では、二重使用は発生し得ないことを意味します。テキストは「コンピューターによる実行不可(2)」で、攻撃者が難しいコンピューター上のタスクを実行できないという仮定に基づいて、Sで二重使用が不可ということを表しています。次の保護は「ビットコインM.A.D」です(3)。M.A.D.は相互確証破壊を意味しています。プロトコルはビットコインM.A.Dによって保護されており、二重使用を実行するには攻撃者がメインチェーンをリバートしなければならないようになっています。それによってメインチェーンのネイティブトークン価格が影響を受け、メインチェーンが無害のままでいるための長期マイナーインセンティブがペグにも適用されます。(5)と同じ概念は、サイドチェーンに適用できます。「長期攻撃認識」保護(4)は、ネットワークがマイナーの共謀グループの悪意あるアクションを事前に発見できる場合です。RSKとArmadillo監視システムには、長期攻撃認識の仮想経済バリアントがあります。つまり、攻撃者は攻撃準備をしていることを露呈するか、非公開で作成したブロックへのブロック報酬を放棄する必要があります。次の保護は、「ビットコイン・ブロック報酬の損失」(7)で、SPVプルーフに基づくすべての仮想経済システムを示しており、攻撃者は、システムをだまして、反対側のチェーンでロックされていなかったチェーン内のコインのロックを解除するために、偽のトランザクションでブロックをマイニングする必要があります。現在のRSKペグ・プロトコル(Armadillo監視システム付き)にはこの保護機能があり、XCLAIMおよびTBTCにもあります。その他のカテゴリーはそれぞれ仕様の通りです。

SyncChainの設計 

SyncChainは、仮想経済学によって提供されるものよりもはるかに強力なセキュリティ保証を提供します。SyncChainは、ペグインとペグアウトに無条件のセキュリティを提供します。SyncChainによって二重使用のリスクを排除できるため、マージマイニング・ネットワークに過度の負担をかけることはありません。本ホワイトペーパーでは、SyncChainの全バリエーションの設計について説明しました。今回の短縮版ブログ記事では、SyncChainの背後にある考え、およびその最も単純なバリエーションのみをご紹介します。すべてのバリアントは3つの構成要素に基づいています。遅延型デュアル・ペアレンティング、ペグ・トランザクションのリンクおよびコインベースのアンカリングです。SyncChain(デュアル・ペアレンティング)の背後にある根本的な考えについては、2016年のブログ投稿でその概略が記載されています。これはサイドチェーンブロックがサイドチェーンの親とメインチェーンの親の両方を指定する必要があるということが狙いです。サイドチェーン・ブロックのプロセス前の生来の状態は、両方の親が処理された後の状態に対応し、どの親がリバートしても、サイドチェーンの子ブロックがリバートします。しかし、メインチェーンブロックがリバートすると多くのサイドチェーン・ブロックがリバートする可能性があるため、このテクニックはメインチェーンよりもブロック率が高いサイドチェーンには使用できません。そのため、より高いブロック率をサポートしながら、長期のリバートに煩わされない新しい形の絡み合いが必要です。

遅延型デュアル・ペアレンティング

デュアル・ペアレンティングは、メインチェーンとサイドチェーンを絡み合わせる手法の一つです。このテクニックは、各サイドチェーン・ブロックに二つの親を持たせる(一つはサイドチェーンに、もう一つはメインチェーンに)ことに基づいています。しかし、ここではこのテクニックをそのまま使用せず、遅延型デュアル・ペアレンティングと呼ぶデュアル・ペアレンティングの変化形を使用します。まず、用語を簡素化するために、ここではメインチェーンの親を「チェックポイント」と呼びますが、当局 [4][5]に基づくその他のチェックポイント・システムとSyncChainのチェックポイントを読者は混同すべきではありません。DDPによって、このチェックポイントは、タイムスタンプおよびメインチェーン・ブロックの確認カウントに基づいて、いくつかのブロック(平均してKブロック)分、遅延するように設定されます。例えば、現実的なKの値は3で、平均30分チェックポイントを遅延させます。以下の図は、K=3の例を示しています。

遅延型デュアル・ペアレンティング

先に述べたように、即時の絡み合いの問題は、ビットコイン・ブロックのリバートが自動的に約20RSKブロックのリバートを引き起こすことで、これはUXの観点からは許容できませんが、より重要なことに、トランザクションの決済セキュリティリスクです。遅延型チェックポイントにより、RSKブロックチェーンは、Kより多くのメインチェーン・ブロックがリバートされた場合のみにリバートされます。説明を簡素化するために、このブログ投稿全体で、RSK平均ブロック・インターバルは30秒、ビットコイン平均ブロック・インターバルは10分と仮定します。その結果、R > Kの時、ビットコイン・ブロックチェーンがRブロックをリバートする場合、RSKブロックチェーンは(R-K)X20ブロックをリバートすることになります。下記の図では、一つのビットコイン・ブロックがリバートされるだけではRSKには驚くような移動がないことが分かります。

一度のメインチェーン・ブロックのリバートは、SyncChain上の反転を引き起こしません

Kの最小値は1で、確認用の追加ブロックが1つある場合にのみブロックにチェックポイントを設定可能となることを意味します。

デュアルノード

SyncChainは、各サイドチェーン・クライアントがメインチェーン・ノードおよびサイドチェーン固有のノードの両方のインスタンスを実行することを要求します。SyncChainを発明した主な理由は、無効なビットコイン・ブロックチェーンのブランチがSPVベースのブリッジ・コントラクトに有効なSPV(ヘッダーのみの)チェーンとして提示されるのを防ぐためです。なぜなら、SPVプルーフは正直なネットワークから隠されることが可能で、M.A.D.テンションを緩和することになるからです。テンションを最大化するために、マイナーが攻撃のためのマイニングブロックを開始するとすぐに、かつ攻撃が終了する前に透明性がマイナーを検出し、裁き、そして最終的に罰することを望んでいます。したがって、ブリッジをブロックするものはペグインまたはペグアウトを検証するために受け入れ、ブロックは完全に公開され(ヘッダーとトランザクションペイロードの両方)、これらのブロックは、ビットコインコアリファレンスソフトウェアで定義されているビットコインブロックチェーンに含めることを確実にしなければなりません。したがって、SyncChainノードはメインチェーン参照ノードをサイドチェーンのみのノードとともに実行する必要があります。言い換えると、SyncChainノードはbitcoindのインスタンスおよびrskjのインスタンスを実行します。

ユーザーは引き続きサイドチェーンのみのノード(rskj)のみを実行できますが、ペグインおよびペグアウトを認証できなくなります。その意味では、ペグインまたはペグアウトのトランザクションがあるとすぐに、SPVクライアントが得るのと同じセキュリティー・モデルで、自動的にSPV「軽量」ノードになります。

遅延型のデュアルペアレントを作成するためには、チェックポイント選択アルゴリズム(CSA)が必要です。CSAは、チェックポイントを選択し、チェックポイントが正確に選択されたかどうかを認証するコンセンサス・アルゴリズムです。CSAは、基本的に、ブロック・タイムスタンプに基づいて決定を行わなければなりません。しかし、ビットコインのブロック・タイムスタンプは実測時間を反映せず、グローバルクロックについてはさらに反映しません。SyncChainホワイトペーパーでは、2種類の単純なRTAアルゴリズム(MedianTime11AdjustedTime)を紹介しているため、ここでは再度説明を行いません。

チェックポイントおよびブロック・プロセシング

サイドチェーン・ブロックのヘッダーにおいて、チェックポイントはメインチェーン・ブロック番号(checkPointBN)およびメインチェーン・ブロック・ハッシュ(checkPointHash)によって定義されます。スペースを節約するために、ハッシュ・ダイジェストのサイズを縮小したヘッダーを使用することが可能です。

すべてのサイドチェーン・ノードは、RSKブロック・ヘッダー内のチェックポイントの正確性を監視するために、メインチェーン・ノード(RSKの場合、bitcoind)を実行しなければいけません。もしもRSKチェックポイント・ハッシュがブロック番号によって参照されたビットコイン・ブロック・ハッシュと一致しなければ、RSKブロックは「一時的に無効」となります。RSKブロックは、ビットコインの最適チェーンが再編成されれば、後に再考されることが可能です。

すべてのビットコイン・ブロックがチェックポイントとなるわけではありません: checkPointBN値はすべてのブロックをカバーせず、ギャップがあります。ブロックのcheckPointBNがビットコイン・ブロック内のペグイン・トランザクションを参照、またはブロックをスキップすることでペグイン・トランザクションを飛び越える時、RSKコンセンサスは、ペグインされた関連コインがすぐにリリースされるために、ブリッジ・コントラクトにペグイン・メッセージを送信するトランザクションを関連するRSKブロックが含んでいることを要求します。そのコンセンサスはまた、そのペグイン・トランザクションがその他より優先されることを命令します。つまり、ブロック内においてそれらが優先されるということです。

ペグ・トランザクション・リンク 

すべてのビットコインのペグインおよびペグアウト・トランザクション’はお互いにリンクしています。それはいくつかの理由により、そうなっています。一つは、攻撃者自身がペグインまたはアウトしている場合、ペグの複数サインからの二重使用投資にビットコインおよびRSKブロックチェーンを再編成する攻撃を避けるためです。リンクはその攻撃サーフェスを大いに減少させます。しかし、第二の理由は、ペグアウトがどのように守られ、ペグアウトの二重使用が不可能であることを私たちに証明させるのを可能にすることに関連しています。以下の図は、RSKのようなフェデレーションのサイドチェーンのためのペグインおよびペグアウトを示しています。ペグのファンドはフェデレーションの複数サインによって守られており、この複数サインのプライベート・キーを持つ人たちはファンクショナリと呼ばれます。表示されたチェーンでは、後で説明する二つの追加のリンクインおよリンクアウトと呼ばれる内部トランザクションがあります。赤いラインは、「ダミー」のインプット/アウトプットを使用するリファレンスのチェーンに対応しています。ファンクショナリによってサインされたすべてのトランザクションは、このチェーンに関連付けられます。各トランザクションは一つのダミー・インプットを消費し、一つのダミー・アウトプットを作成するため、常に一つだけの使われないトランザクションがあります。この特別なUTXOをloken(link tokenの短縮)と呼びます。lokenを消費および作成するトランザクションのチェーンを参照するために「lokenチェーン」を使います。lokenの価値は、ビットコイン・ダストの制限を超える小さな値です。

lokenチェーン

会員を追加または削除することによってフェデレーション・ファンクショナリをアップグレードする時には、注意を払うべきです。RSKにおいて、これはファンドが自動的に古いフェデレーションの複数サインから新しいものに移動するプロセスを長く強制的に遅らせる誘因となります。SyncChainに導入された移動プロセスをまだ私たちは提案していませんが、それを安全に行うことができると考えています。

ペグイン

すべてのペグインおよびペグアウトを制御するブリッジ・スマートコントラクトは、ペグイン・トランザクションで受け取ったコインを異なるUTXOに転送することを自動的にファンクショナリに命令します。UTXOのアドレスはペグインのものと同じでも異なっても構いませんが、同じフェデレーションによって同等に管理されます。この受け取ったコインの初期転送は、リンクインと呼ぶビットコイン・トランザクションにおいて実行されます。リンクイン・トランザクションは、lokenを消費し、新しいlokenを作成します。次の図例は、メインチェーン・ブロック1におけるユーザー起動のトランザクション(図内の「ペグイン Tx」)が、ブロック1がサイドチェーン・ブロックAによってチェックポイントされる時、どのようにブリッジからのアクションを引き起こすかを示しています。最初のアクションは、3つのサイドチェーン・ブロックの初期待機期間で、その後、ブロックBで、ブリッジがフェデレーション・ファンクショナリにリンクイン・トランザクションにサインし、ブロードキャストするように命じます。その直後ペグイン・ファンドを消費し、最終的な複数サイン・ペグアドレスにペグインファンドを移動させます。

ペグインプロセス

サイドチェーン・コインはブロックAにおいてすぐにリリースされますが、リンクイン・トランザクションがメインチェーンにおいて含まれるまでペグアウトは起きません。

ペグアウト

前回の記事では、プルーフ・オブ・ワークサイドチェーンは、ペグインおよびペグアウトプロセスにおけるマイナーの協力なしには、ペグインとペグアウトの完全なアトミシティを提供できないことを示しました。攻撃者は代わりにメインチェーン、次にサイドチェーン、そしてその後メインチェーンをリバートし、最終的にメインチェーン・トークンとサイドチェーン・トークンの両方を保持することに成功してしまいます。次に、マイナーの助けなしに仮想経済の保護を実現する方法と、マイナーの助けを借りて無条件の完全保護を実現する方法を示します。

恐らくPBFTタイプのコンセンサスに基づくLiquidなどの完全フェデレーション型サイドチェーンシステムには決済ファイナリティがあるため、ペグアウトの完全なアトミシティを提供できないことに注意してください。Liquidでのトランザクションが決済されると、ビットコインがリバートしても、サイドチェーンはネットビットコインのベストチェーンに一致するようにリバートすることはありません。

ペグアウト・プロトコル

私たちは、標準的なナカモト・コンセンサスへの追加となる異なった仮説に基づいて、M.A.D.および無条件保証を得るための3つの異なるプロトコルを発見しました。次のセクションで、それぞれについて簡単に説明します。

  • More-Populous-Chain-Wins (MPCW) SyncChainのためのペグアウト
  • T-Synchronized (TS) SyncChainのためのペグアウト
  • GHOST-CSC(T-synchronizedではない)SyncChain向けのペグアウト

前の記事では、3つのバリアントすべてについて説明しました。この記事では、TS SyncChainのみについて説明します。RSKのアカウントからビットコインにトークンを戻すために、RBTCをブリッジのスマートコントラクトに転送するペグアウト要求と呼ばれるRSKトランザクションが作成されます。以下の図では、このトランザクションがAとラベルされたブロックに含まれています。短い数(例えば3)のRSKブロック確認の後、ブリッジはフェデレーション・ファンクショナリがサインを入力するためのプレースホルダーを含むリンクアウト・トランザクション・テンプレートを作成します。このテンプレートは、Partially Signed Bitcoin Transaction (PSBT) スタンダードとして使用できます。その後、ブリッジはフェデレーション・ファンクショナリにサインするように要求し、この出来事はリンクアウト要求と呼ばれます。これは、図のRSKブロックBの中で起きます。リンクアウト・トランザクションは、OP_RETURN、ブロックAのブロックハッシュおよびAのブロック番号から構成される特別なデータアウトプットを含んでいなければいけません。このデータ・ペイロードをサイドチェーン・チェックポイント・スロットと呼びます。このスロットは実際のサイドチェーンのチェックポイントを一つ以上含んでいるかもしれません。サイドチェーン・チェックポイントはメインチェーン・チェックポイントとともに相互的チェックポイント・リファレンスを作り出すことに言及しておきます。

ペグアウト・プロセス

ファンクショナリのサインの大多数がリンクアウト・トランザクションのために収集されたら、そのトランザクションはブロードキャストされ、ビットコイン・ブロックチェーンにまもなく含められることが予測されます。図では、これはビットコイン・ブロック4で起きます。このリンクアウト・トランザクションは、lokenチェーンの一部でなければいけません(lokenを消費し、新しいlokenを作成しなければいけません)。 リンクアウト・トランザクションがビットコイン・ブロック4に含まれた後、ブロック4はRSKブロックのチェックポイントによって参照されます(または、チェックポイントによってスキップされますが、同じ効果が得られます)。ブロック4へのチェックポイントは、通常約30分遅延されます。図において、ブロック4はRSKブロックCで参照されています。その後、ブリッジはブロックのいくつかの間待機します(図では166)。待機期間が終わった後、ブリッジはペグアウト・トランザクション・テンプレートを作成し、フェデレーション・ファンクショナリにサインするよう依頼します。ペグアウト・トランザクションは、要求される額を実際にビットコインのユーザーに払い戻す最終トランザクションです。フェデレーションによってサインされたすべての残りのペグおよびリンク・トランザクションについて、lokenチェーンにリンクされます。ペグアウト・トランザクションはビットコイン・ブロックに含まれることになり、これは図のブロック11において発生します。約30分後、RSKチェックポイントによって参照され、他のリンクインまたはリンクアウト・トランザクションのためにLokenが利用可能になります。ペグアウト・プロセス全体には平均して2時間10分かかり、2ラウンドのフェデレーション・サインを必要とし、2つのビットコイン・トランザクションを作り出します。lokenを消費するトランザクションがメインチェーンに含まれるのを待っている間、ペグイン・トランザクションが確認された場合、ペグインは順番を待つことになります。実際、多くのリンクインおよびペグアウト・トランザクションが、一つのloken作成および破壊インプット/アウトプットを持つバッチに参加させられる可能性があります。

ペグアウト・セキュリティ

次のセクションは、論理上起こりえる攻撃について、そしてSyncChainがそれらにどのように抵抗するかを示します。システムを受け入れるあらゆる仮想通貨にとって最も重大な攻撃は、二重使用です。二重使用を試みるために、攻撃者はRSKをリバート、ビットコインをリバート、または両方をリバートしようとする可能性があります。現在、RSKはビットコインのマイナーの35%~50%によってマージマイニングされています。この記事では、私たちはRSKのハッシュレートがビットコインより低いと仮定し、したがって、もしも攻撃者がビットコインをリバートさせたら、マージマイニングであるため、両方のチェーンをリバートさせる機会も得ることになります。

RSKのみをリバートする二重使用のペグアウト 

RSKをリバートすることは、RSKのハッシュレートがビットコインのそれよりも低いため、最も簡単な二重使用への道のように見えます。RSKブロックがビットコイン・ブロックに依拠しているため、ペグイン・トランザクションがどのように同期化されるかを私たちはすでに見てきました。しかし、その他の傾向においては、同期化は保証されていません。したがって、ペグアウトのために私たちはリンクアウト・トランザクションがビットコイン上で発生するように強制します。リンクアウト・トランザクションのタイムスタンプは、一致するペグアウト要求の実行なしでRSKが越えることができない限界を確立しています。

ナカモト・コンセンサスは、トランザクションが完了したと考えられる時を除き、あらゆるブロックチェーン対処への明確なルールを確立しています。これは各ユーザーに委ねられおり、唯一の与えられたガイダンスは、ブロック確認が多いほど、リバートの可能性が低いということです。ペグアウトの二重使用ができなことを保証するためには、サイドチェーン内でトランザクションを受け入れるために満たさなければいけない条件をナカモト・コンセンサスに追加する必要があります。最初に、定義を紹介します:ローカルの最適チェーンが現在のローカル時間よりT秒遅れている場合、ネットワーク・ノードはT-シンクロナイズされています。SyncChainを作るためには、サイドチェーンが以下の新条件を満たすことが必要です: それは、T-シンクロナイズされた場合のみ、トランザクションが落ち着いたとしてノードが受け入れることです。さらに、大量の累積ディフィカルティによって確認されている場合、トランザクションWを受け入れることもできますが、今は最もシンプルな考えられる定義を使用します。

T-シンクロナイズの特性のため、サイドチェーンをリバートするあらゆる攻撃は、ブロックCのタイムスタンプより後で、ブロック4がチェックポイントされているタイムスタンプを持つ少なくとも一つのサイドチェーン・ブロックを追加しなければいけません。 したがって、ブロック4とブロックCの間の時間がTより大きければ、攻撃者チェーン(サイドチェーン上の)はトランザクションを確認することが決してできません。これは、ノードのローカル時刻がリバートされなかったことを想定しています。

ビットコインおよびRSKのリバート(ペグアウトtxを後に再生)による二重使用ペグアウト

二重使用攻撃が実行される可能性がある一つの方法は、ビットコイン・ブロックチェーンをリンクアウト・トランザクション前にリバートしようとすることです。そして、同時にRSKブロックチェーンをペグアウト要求前にリバートし、リンクアウトおよびペグアウト・トランザクションの両方を持つ新しいビットコイン・ブランチをずっと後のブロックで作成します。例えば、攻撃者は10ビットコイン・ブロックをリバートし、ペグ・トランザクションなしで別の10ブロックをマイニングして、最後にリンクアウトとペグアウトの両方を含む11個目のブロックを追加します。正直ではない合理的マイナーを想定すると、10ブロックのリバートにはおよそ150万USD (1) の費用がかかるため、それがペグアウト・トランザクションが転送できる最大額になります。しかし、無条件のセキュリティを望まない場合は、アンカリングを使用してより良い対応をしなければなりません。アンカリングにより、リンクアウト・トランザクションが将来のブロックに移動するのを防ぐことができます。

ペグアウト・アンカリング

特定のブロックにトランザクションを固定する最も簡単な方法は、ビットコインに新しいオプコードOP_CHECK_INPUT_BLOCK_HASH を与えることです。消費されたインプットが作成されたブロックのハッシュと与えられたブロック・ハッシュが一致しなければ、stackにおける論争としてブロック・ハッシュを受け取り、そのブロックを無効化します。この新しいオプコードは、他のオプコードよりも互換性の低いビットコインを生成する可能性があるため、ビットコインコミュニティに受け入れられるとは考えていません。同じ効果が得られる別のオプコードは、OP_CHECK_INPUT_BLOCK_TIMEです。このオプコードは、消費されるインプットに一致するブロックがオプコード論争より高いタイムスタンプを持つ場合、トランザクションを無効化します。対照的に、このオプコードは、代用性をよりはりかに少なく変更します。しかし、新しいオプコードなしで、同じ結果を得る方法がまだあります。それは、リンクアウトとペグアウト・トランザクション・ブロックの間にあるブロックBに存在するコインベース・トランザクションからのアウトプットをペグアウト・トランザクションにおいて消費することです。そのペグアウト・トランザクションは、Bがリバートされたら無効となり、リンクアウトを取り除く唯一の方法は、Bをリバートすることです。その欠点は、コインベース・トランザクションのアウトプットには100ブロックの償還期限 があるため、この束縛はペグアウトのための100ブロックの遅延をもたらします。そのペグアウト・トランザクションが100ブロック期間前に含まれるのは不可能な一方で、そのペグアウト・トランザクションはそれよりずっと前にサインおよび公開されることが可能となります。このため、ユーザーにはそのペグアウト・トランザクションが実行されるという非常に強い保証があります。そのペグアウトをコインベースに結びつけるために、RSKマージマイナーが1サトシ (2)の金額を特定のフェデレーション・アドレスに支払う追加なアウトプットを含め、そのサトシがそのペグアウト・トランザクションで消費されるよう、RSKは要求することができます。

(1) crypto51.appウェブサイト参照

(2) コインベース・トランザクションはブロックに含まれる前にネットワークを越えて転送されないので、「ダスト」制限をオーバーパスする必要はありません

コインベース・アンカリングのあるペグアウト・プロセス

RSKのSyncChainへの移行

SyncChainはSPVサイドチェーンに多くの利点を提供しますが、いつ、そしてどのように移行できるかを述べるのは時期尚早です。利点はありますが、移行リスクもあります。コード化、テスト、シミュレーションおよびセキュリティ監査によって、各設計決定を確認しなければいけません。しかし、有用性とセキュリティ両方から多くの利点を提供するこのようなクリーンなデザインがあることは安心です。すべての開発段階が完了となり次第、私たちはSyncChainへの移動への話し合いを開始し、願わくば、RSKコミュニティからのフィードバックとともに2020年か2021年には移動を見る可能性があります。

要約

この投稿では、私たちはSyncChain、ペグイン時間を16時間から30分に32倍の削減を可能とする新しい種類のサイドチェーンを提示しました。レート制限を維持し、一時間に38BTC以上が転送されないのであれば、ペグアウト時間も16時間から約1.6時間に削減可能です。さらに、現在RSKが仮想経済セキュリティのみで必要とするよりも少ない16時間のペグアウトで、無条件のペグアウト・セキュリティを提供するコインベース・アンカリングを使用するバリアントも提示しました。また、数時間のうちにレート制限なしで無条件セキュリティ付きのペグアウトを可能にするビットコインのための新しいオプコードOP_CHECK_INPUT_BLOCK_HASHを提案しました。

現在のRSK SPVペグも、より低いペグアウトとペグインのブロック確認を成し遂げることができとしても、マージマイニング・エンゲージメントが増えたら、SyncChainは同レベルのエンゲージメントでより低い数の確認を提供します。

SyncChainはまた、その他の派生的な利点も提供します。例えば:

  1. RSKがrskj内のコンセンサスで作動するコードの量を減少させます: いくつかのコード機能性は現在、bitcoindによって直接提供されています。
  2. 選択されるプロトコルによっては、無条件セキュリティを提供するか、RSK上の攻撃をビットコイン上の攻撃: ゲーム理論におけるM.A.D.特性になるように強制します。
  3. クロスアドレスのペグインを可能にします(例えば、ビットコインから直接クラウドファンドへの投資)

 

SyncChainにはいくつかの小さな欠点もあります。例えば、SyncChainは短い決済ファイナリティを提供することができません。長所と短所を考慮した上で、SyncChainはビットコイン・サイドチェーンにとって確実により優れています。

参考資料

[1] Ren Zhang および Bart Preneel。発行または消滅:ビットコインにおける利己的なマイニングに対する後方互換防御。RSA会議での暗号作成者のトラックにおいて、277~292ページ。Springer、2017年

[2] 51%攻撃に対する保護を高めるためのサトシ・コンセンサスの修正案。遅延されたブロック提出のためのペナルティー・システム。

https://www.horizen.global/assets/files/A-Penalty-System-for-Delayed-Block-Submission-by-Horizen.pdf

[3] チェーン再結成の遅延

 https://bitslog.com/2013/06/26/the-bitcoin-eternal-choice-for-the-dark-side-attack-ecdsa/

[4] 台帳チェーンを通したトランザクションの最終決定(https://ieeexplore.ieee.org/document/8975825またはhttps://github.com/MuhammadNurYanhaona/checkpoint-paper/blob/master/checkpoint-paper-reviewed.pdf)

[5] チェーンによるプルーフ・オブ・ワーク台帳の保証(https://eprint.iacr.org/2020/173.pdf)