Skip to main content
ブリッジは、ネットワークが自分で作ったのではない資産に触れる場所です。このアーキテクチャの他の部分はすべて、ブロックをリプレイすれば誰でも正しさを検証できる閉じたシステムです。ブリッジはそうなれません。その半分が、独自のバリデータ、独自のファイナリティ、独自の故障モードを持つ別のチェーンの上にあるからです。 この非対称性が設計を決めています。入金と出金は対称な操作ではなく、出金は技術的に必要な速度よりも意図的に遅くしてあります。

ロール

外部チェーン
Intention
ブリッジコントラクト資産を保管 · 解放前に署名を検証資金が実際に依存している部分
バリデータ外部チェーンを観測し、見たものに署名
ファイナライザ権限ではなく中継役。バリデータが署名していない出金は作れない
ガバナーバリデータ集合とパラメータ。安全に自動化できないもの
出金が実行可能になるのは、十分な数のバリデータ署名が集約されてからです。コンセンサスと同じ信頼前提を、チェーンの境界をまたいで適用しています。
入金イベント
集約署名
出金トランザクション
バリデータは外部チェーンを観測し、見たものに署名します。出金が実行可能になるのは、十分な数のバリデータ署名が集約されてからです。コンセンサスと同じ信頼前提を、チェーンの境界をまたいで適用しています。 ファイナライザは外部チェーン側にトランザクションを送信します。権限ではなく中継役です。いつ送信するかを選べますし、送信に失敗することもありますが、バリデータが署名していない出金を作り出すことはできません。 ガバナーは管理操作を行います。バリデータ集合の変更、パラメータの更新です。その権限は、安全に自動化できないものだけです。 ブリッジコントラクトは外部チェーン側で資産を保管し、何かを解放する前に署名を検証します。ユーザーの資金が実際に依存しているのは、この部分です。

入金

入金は簡単な方向です。資金は外部コントラクトにロックされ、コントラクトが入金イベントを発行します。バリデータがそれを観測し、その入金の反映はIntention上のプロトコルネイティブなトランザクションになります。 その反映が通常のトランザクションである以上、カーネルが保証するものをすべて引き継ぎます。正規の順序で実行され、アカウントへの影響はそのトランザクションに帰属し、他のあらゆる状態変化と同じ出力の中に現れます。強制決済が迫ったポジションの証拠金を回復させる入金は、同じ実行ステップの中でクリアリングハウスから見えます。あとの突合処理ではありません。 待ち時間は外部チェーンのファイナリティによるもので、Intention側のものではありません。入金は、送金元チェーンの確認数の要件が満たされた時点で反映されます。

出金

出金は危険な方向であり、間に異議申立期間を挟む二つのフェーズで進みます。
Intention上でリクエスト
バリデータが署名し、コントラクトに登録支払いは行われない
異議申立期間設定された期間の経過が必要
確定資金を解放
無効化資金が動く前に取り消し
待たせる理由壊滅的なブリッジ事故はどれも同じ構造です。攻撃者が出金を承認する能力を手に入れ、資金は同じブロックの中で消えます。異議申立期間は、瞬時で不可逆な損失を、監視と人間が動ける時間の窓に変えます。その代償として、正当な出金も待たされます。
経過
異議あり
リクエストはバリデータが署名し、外部コントラクトに登録されます。この時点では支払いは行われません。設定された期間がまず経過する必要があり、その間に出金は無効化できます。資金が動く前に取り消されるということです。 これは性能上の見落としではありません。壊滅的なブリッジ事故はどれも同じ構造をしています。攻撃者が出金を承認する能力を手に入れ、資金は同じブロックの中で消えます。異議申立期間は、瞬時で不可逆な損失を、人間と監視が動ける時間の窓に変えます。その代償として、正当な出金も待たされます。 出金はバッチ処理されます。一件ずつではなく、まとめて申請・確定されるということです。だから外部チェーンの手数料は、出金件数に比例して増えません。 失敗は明示されます。確定できない出金は、黙って何もしないのではなくエラーコード付きの失敗を出力します。そのため滞留と拒否の違いは、何も起きないことから推測するのではなく観測できます。

止める手段

何かがおかしいときのための仕組みが二つあります。 無効化は、異議申立期間中の特定の出金を取り消します。狙いを定めた対応です。 ロックは大雑把なほうです。指定されたロールがブリッジをロックでき、実行に必要な当事者の数自体がパラメータになっています。これは「何かがおかしいが、それが何かはまだ分からない」ときの仕組みです。個々のトランザクションを裁定するのではなく、流れそのものを止めます。
これらの制御があるからこそ異議申立期間が意味を持ちますが、同時にこれらは現実の信頼前提でもあります。ブリッジをロックできる当事者は、正当な出金を止めることもできます。これは意図的なトレードオフです。ブリッジは壊滅的かつ不可逆に壊れるものであり、止められることのほうが、決して止まらないと保証できることよりも価値があります。リスク開示を参照してください。

バリデータ集合の変更

外部コントラクトは、バリデータが誰なのかを知っている必要があります。つまりバリデータ集合の変更は、境界を越えて伝播しなければなりません。変更は提出された瞬間に有効になるのではなく、提案されたのち別のステップで確定されます。出金と同じ二段階の形であり、理由も同じです。

リスクが実際にある場所

ブリッジはユーザーが資金を失う場所なので、はっきり書いておきます。
  • Intention上では、ブリッジは特別なものではありません。反映された入金は、通常の保証を持つ通常のトランザクションです。
  • 外部チェーン上では、コントラクトと署名しきい値に依存します。これはコンセンサスとは別のセキュリティモデルであり、個別に監査されています。ブリッジは第三者レビューの対象となっているコンポーネントです。
  • その間では、バリデータが正しく観測することと、ファイナライザが送信することに依存します。どちらも出金をでっち上げることはできませんが、どちらも遅らせることはできます。
対応チェーン、対応資産、確認数の要件、異議申立期間の長さは、リリースごとに変わる運用パラメータです。正となる値は、送金するその時点で取引所の入金・出金ダイアログに表示されているものです。入金と出金を参照してください。

次に読む

資金を入金する

ユーザー側から見た入金の手順と、現在の対応チェーンおよび所要時間です。

取引以外の手数料

出金にいくらかかるのか、なぜ入金が無料なのかです。

クリアリングハウス

入金が着金した瞬間に証拠金へ与える影響です。

リスク開示

ブリッジの信頼前提をリスクとして明示します。