序文
最近頻繁に発生するクロスチェーンのセキュリティ問題は市場の幅広い注目を集めていますが、この記事では製品設計の観点から始めて、なぜこの分野で製品のセキュリティ問題がこれほど多く発生しているのかを読者に伝えたいと考えています。この記事で指摘されている問題は、すべてのプロジェクトに存在するわけではないことを宣言しておく必要があります。問題のほとんどは、関連する対処戦略を備えてすでに設計されています。この記事の主な目的は、より多くの人がこのトラックを理解できることを願うことです。 。
この記事の執筆ロジックは、まず一般的なクロスチェーン ブリッジがどのように設計されているかを明確に説明し、クロスチェーン ブリッジに対する読者の理解を深め、次にこれらのクロスチェーン ブリッジが遭遇する可能性のあるセキュリティ問題を要約することです。
1: 常に変化するクロスチェーン ソリューション
前回の調査報告書では実際に数種類の情報クロスチェーンソリューションを皆さんに説明してきましたが、最終的にどのようなプレゼンテーションになろうとも、プロダクトデザインの観点からはサイドチェーン(本文では広義のサイドチェーン)のみを話します。ロールアップの仕組みは、サイドチェーン、ハッシュタイムロック、公証人の 3 つのメカニズムに要約することもできます。
(1) 側鎖
3 つのスキームの中で、サイドチェーン スキームは、さまざまなロールアップやポルカドット パラチェーンなど、最も高いセキュリティを備えています。セキュリティはメインチェーンとサイドチェーンの間で共有されます。
ただし、サイドチェーン スキームでは通常、元のチェーンとターゲット チェーンが同型である必要があるため、適用できるシナリオははるかに少なくなります。これは、セキュリティを共有できないクロスチェーン ソリューションには問題が多すぎるため、Vitalik がマルチチェーンには同意するがクロスチェーンには同意しない理由でもあります。
(2) ハッシュタイムロック
このソリューションは、最も分散化されたピアツーピアの異種クロスチェーン ソリューションであると主張していますが、コストが高く、ユーザーの待ち時間が長すぎるため、現在の導入率は高くありません。そして、通貨交換の中間ノードとして機能するサードパーティが依然として必要な場合、セキュリティと分散化の要件を満たす、いわゆる中間コンセンサス層も必要になります。
(3) 公証人の仕組み
これは現在最も一般的に使用されているヘテロジニアス クロスチェーン ブリッジ ソリューションであり、市場に出回っているほとんどの製品は基本的に同じ起源を持ち、製品設計の観点からはほとんど違いがありません。主な違いは、情報検証の方法と手順、公証人のコンセンサスアルゴリズム、エスクローウォレットの署名アルゴリズムなどに焦点を当てることができます。ユーザーエクスペリエンスと安全性の点では大きな違いはありません。したがって、セキュリティの観点から見ると、直面するセキュリティ リスクにも多くの共通点があります。
この記事では、公証人メカニズムのクロスチェーン ブリッジが直面するいくつかの一般的なセキュリティ リスクの要約と分析に焦点を当てます。
2: 公証人機構の積論理プロセス
公証メカニズムが直面するさまざまなリスクを理解する前に、このタイプのソリューションの設計ロジックを製品の観点から理解する必要があります。
(1) 簡単な紹介
このソリューションは、設計哲学の観点から見ると、実際には非常にシンプルです。クロスチェーンの異種資産のニーズに直面したとき、最も直観的な解決策は実際には「マッピング」です。マッピングとは、ユーザーAがETHをイーサリアムからFantomに送金することを意味します。アセットを物理的に転送したり、Fantom で再発行したりする必要はありません (できません)。代わりに、まずユーザー A の ETH を移動できないアドレスに保管し、次にこのアドレスに保管されているユーザー A の ETH の量に応じて、Fantom 上で対応する 1:1 マッピングされたアセットを発行します。マッピングされた資産は、元のイーサリアム チェーン上でそれらの ETH を使用する権利を表します。 1:1 アンカーにより、Fantom のユーザーもこのアセットの価値を認識します。
最も簡素化されたクロスチェーンプロセス
(2) 設計の難しさ
これには多くの問題がありますが、最大の問題はマルチシグネチャウォレットの管理です。イーサリアムから Fantom への ETH クロスはデポジットであり、ユーザー A がクロスバックしたい場合はコインを引き出す必要があるためです。
分散化と入出金の安全性が最大の課題となっている。
1: お金は誰が管理するのですか?
2: 誰が始めますか?
3: 取引を監視するのは誰ですか?
4: ユーザーが実際に送金していることを確認するにはどうすればよいですか?
5: ユーザーのお金が本当にユーザー自身が引き出したいものであることを確認するにはどうすればよいですか?
6: リプレイ攻撃を防ぐにはどうすればよいですか?
7: 失敗したトランザクションを再度送信するにはどうすればよいですか?
8: マルチ署名マネージャーが悪事を働いたらどうなりますか?
9: ダウンタイムが発生した場合はどうすればよいですか?
あえて考えませんが、考えれば考えるほど複雑な気持ちになります。クロスチェーンブリッジの技術には、マルチシグネチャだけでなく、アセット発行、クロスチェーンモニタリング、非同期検証も含まれ、さらには独立した中間コンセンサス層(新しいチェーン)を発行する必要もあります。
したがって、ユーザーのわかりにくさをさらに単純化するために、クロスチェーンプロセス全体を入金と出金の 2 つの部分に分けます。以下についてさらに詳しく知るために:
(3) プロセスのさらなる改良
1: コインを入金する
まず最初に宣言しておきますが、以下の図に描かれているプロセスは、慎重な議論をせずに私が推測した設計計画にすぎません。その目的は、設計ロジックで起こり得るセキュリティ問題を調査することであり、最終的な計画として採用することはできません。全部でたらめ。
図に示すように、元のチェーンからターゲット チェーンへの入金トランザクションには、原則として次の手順が含まれます。
(1) ユーザーがホスティングアドレスにリチャージする
(2) リスナーがトランザクションを監視した後、BP (コンセンサスノードはマルチシグネチャ管理者でもある) がトランザクションを開始します。
(3) 契約書は BP 署名の正確性を検証します。
(4) ノード耐障害性機構の有無
(5) コールバックがない場合、コールバックがある場合は、マッピングされたアドレスの関係に従ってターゲット チェーン アドレスをリチャージします。
(6) BPはリチャージトランザクションを確認します
(7) Byzantiumを通過後、ターゲットチェーン上のユーザーのアドレスにマッピングトークンを転送します。
このプロセスは一般的な異種クロスチェーンを議論することを目的としているため、anyswap や他のソリューションと比較して、ユーザーが中間コンセンサス層でアドレス関係をバインドできるようにするステップが追加されていることに注意してください。これは主に、異なる異種チェーン トランザクションに情報を添付する方法が異なることが原因であり、これを均一に処理するには、ユーザーが最初にマッピング関係をバインドできるようにすることをお勧めします。
EVM チェーン上のトランザクションを処理している場合は、この手順は必要ありません。トランザクションの開始時にターゲット チェーンのアドレスをアタッチするだけです。
本題に戻ります。上記のプロセスから、2 番目のステップ以降、さまざまな状況でさまざまな論理検証の問題や処理の問題が発生することがわかります。
主な検証ロジックには次のものが含まれます。
(1) トランザクションをリッスンした後、アセット マッピングを開始し、ユーザー A のターゲット チェーンに転送するトランザクションを確認します。
(2) ターゲットチェーン取引の開始と取引結果の検証
もちろん、私のプロセスで描いた検証ロジックに加えて、偽造通貨のリチャージ問題の検証や、さまざまなトークンを呼び出すときに実行する必要がある特別な処理の問題も含める必要があります。将来発生する可能性のある潜在的な安全上の危険をよりよく要約するために、コインを引き出すプロセスを引き続き理解しましょう。
2: コインを引き出す
コイン引き出しによって示されるプロセスは、ターゲット チェーン資産を元のチェーン資産に戻すロジックです。現在、多くのトークンには複数のチェーン バージョンがあることに注意することが重要です。これは、多くのトークンが複数のチェーン上にあることを意味します。ネイティブ トークンを所有する。したがって、一部の橋梁プロジェクトでは資産プールが設定されることがよくあります。十分な資金プールの場合、ユーザーはanyDAIなどのマッピングされた資産の存在を感じず、それらをターゲットチェーンバージョンのトークンに直接置き換えますが、これは全体的なロジックには影響しません。したがって、分析は次のように続きます。
図に示すように、ターゲット チェーンから元のチェーンへのトランザクション フローは次のとおりです。
(1) ユーザーがトランザクションを開始します(同量のマッピングされた資産をターゲットチェーン上のエスクローウォレットに転送します)
(2) BP の身元を確認し、BP が出金リクエストを開始します。
(3)出金権限と署名の確認
(4) Byzantium通過後にオリジナルチェーン上のコイン出金リクエストを完了し、オリジナルチェーンの保管ウォレットからユーザーAに送金する
(5) 途中でノード検証エラーやダウンタイムが発生した場合、ロールバックして再起動する必要がある
上記のプロセスからわかるように、ここで必要となる主な検証ロジックは次のとおりです。
(1) 開始と署名権限の検証
(2) 問題発生後の耐障害性の仕組み
(4) セキュリティリスク
1: 設計ロジックにおけるセキュリティの問題
クロスチェーン ブリッジの設計をより注意深く理解すると、クロスチェーン ブリッジの設計ロジックには多くの課題があることがわかります。要約すると、主に 3 つの問題があります (関連する盗難事件は次のマークでマークされています)。質問は終わりです)
(1) 保証金
a) コインチャージ契約の権限には抜け穴があり、チャージされたお金が直接送金されることになります。これは、ほとんどすべての契約プロジェクトが直面する愚かな質問です。
b) 偽造通貨のリチャージの問題。一部のプロジェクトではクロスチェーン トークンの信頼性が検証されておらず、その結果、fakeTOKEN -> realTOKEN (anyswap) が発生します。正直に言うと、これは少し愚かです。
c) 偽造通貨トップアップの問題、ETHなどのネイティブ資産はERC20契約とは異なり、多くの攻撃はETHの不適切な取り扱いによるもので、結果的に偽ETH→本物ETHとなり、そのためWETHなどのラップ資産が人気となっている。 (ソーチェイン)
d) 異なるトークンはすべて ERC20 標準であり、特定の実装方法が異なるか、追加のロジック (リベース、フォールバックなど) があるにもかかわらず、開発者は適応時に (WETH、PERI など) の十分な調査を行っていません。 、OMT、WBNB、MATIC、AVAX) などは、転送完了後に送信者のカスタム フォールバック関数を呼び出して追加の操作を実行します。これにより、クロスチェーン ブリッジの判断が複雑になります (anyswap 2022.1.18)
(2) クロスチェーンメッセージ転送
a チェーンの入金が完了し、b チェーンの資産がアカウントに到着する前に、クロスチェーン ブリッジは独立したブロックチェーン システムのように処理されます。これには、一般に dpos を使用するコンセンサス メカニズムが必要です。以下はすべて想定されています。 dpos を使用する 検討すべき問題点はありますが、すべてのノードがプロジェクト側に属しているのではないかと思われ、そもそも集中化のリスクがあります。
a) コイン入金メッセージを監視するために、ランダムにクロスチェーン処理提案を最初に開始するのは誰ですか?それとも交代で?それとも中間コンセンサス層によって生成されるブロックの順序に従っていますか?
b) 複数の公証人はどのようにしてデポジットの正確性を検証しますか? データ ソースがすべて infura などのデータ プロバイダーからのものである場合、infura は単一リスク ポイントです。最も安全なのは独自のノードを維持することですが、これには多大なコストがかかります。
c) クロスチェーン処理が完了したこと (b がアカウントにアップロードされたこと) を確認する方法。処理が完了していない状況がいくつかあります。
i. クロスチェーンブリッジが処理を開始しなかった
ii. クロスチェーンブリッジが処理を開始したが、検証とコンセンサスが失敗した
iii. クロスチェーン ブリッジの検証は合格しましたが、B チェーンではトランザクションが開始されませんでした。
iv. b チェーン上にトランザクションがあるが、失敗した場合 (資金不足またはその他の状況)
(3) 多重署名検証の問題
頻繁に問題が発生し、最も被害が大きかった領域。そのほとんどはコード ロジックの問題です。
a) 3/5 シグネチャ。マルチシグネチャ リストにないシグネチャをランダムに構築します。これも +1 (チェーンスワップ) です。
b) 名目上はマルチシグである集中化の問題は、実際にはプロジェクト当事者の手に委ねられており、集中化の大きなリスクをもたらします。
c) 署名検証方法。チェーンごとに開発モードが異なり、開発者がドッキング時に見逃すことは避けられません。ワームホールの例: solana 上の検証署名関数はシステム コントラクト内の関数であり、システム コントラクトは通常どおり呼び出される必要があります。 , システム コントラクトのアドレスは、コード内にハードコーディングする必要があります。ここでは、システム コントラクト アドレスをパラメーターとして渡します。ハッカーが通貨を引き出すとき、偽のシステム コントラクト アドレスを渡します。これにより、署名検証が回避され、通貨が引き出されます。スムーズに通貨を交換できます。
(4) 返金
a) (2)-c で述べたように、クロスチェーン状態にはさまざまな可能性が考えられますが、いずれにしても、ユーザーに返金方法を提供する必要があります。 , そして、anyToken をターゲット チェーン上のユーザーに送信し、ソース チェーンの anyToken を書き込みます。この目的は、問題がどこにあっても、ユーザーが anyToken を保持することで自分の資産を表現できるようにすることです。このプロセスには 3 つのチェーン (ソース、ターゲット、クロスチェーン ブリッジ) と 4 つのアセット (ソース チェーンとターゲット チェーン上の元のトークン/anyToken) があり、コード ロジックの問題が非常に発生しやすくなります。
b) Thorchain の脆弱性は 2021 年 7 月 23 日に明らかになり、ハッカーはコード ロジックの問題を利用して、膨大な量の偽のリチャージを構築しました。クロスチェーン ブリッジでは処理できなかったため、返金ロジックに入り、ハッカーは巨額の損害を受けました。返金。
2: その他のセキュリティリスク
ただし、論理的なプロセスによって示される問題はビジネス ロジックの問題だけであり、すべてではありません。
セキュリティの観点からは、他の 3 つのリスクも考慮する必要があります。
(1) システミックリスク
たとえば、元のチェーンのデポジットは最初は成功しましたが、その後ロールバックされました。これは大きな問題です。V 神は、資産が Solana から Ethereum に移転されることについて議論しました。クロスチェーンが完了した後、Solana はロールバックします。 、そしてユーザーの資産は2倍になります。
しかし、イーサリアムとセキュリティを共有するロールアップなどのレイヤー 2 には、この問題はありません。
(2) フロントエンドリスク
a) 偽造 URL (oxdao.fi 0xdao.fi oxdai.fi など)
b) Xss 攻撃、つまりクロスサイトスクリプティング攻撃は、 wwwなどのコード インジェクション攻撃です。xss を防ぐよう注意してください。このコードはページ上で実行され、ユーザーがハッカーの転送の署名を承認することになります。トランザクションなので、不明なソースからのリンクを開かないでください。
c) Cors クロスサイト サービス攻撃: 厳密な同一オリジン ポリシーの下では、ブラウザーはこのサイトからのコンテンツのみをロードできます。つまり、 www.xxxx.financeサイトに表示されるすべてのコンテンツと呼び出されるインターフェイスは xxxx からのものである必要があります。 Finance ドメイン名ですが、現在のプロジェクトのほとんどではクロスサイト呼び出しが許可されています。つまり、xxxx フロントエンドはクイックスワップ インターフェイスを呼び出すことができ、その逆も可能であり、これは開発に利便性をもたらしますが、リスクももたらします。
xxxx.finance にアクセスし、ブラウザのキャッシュに機密データを保存してから悪意のある Web サイトにアクセスした場合、xxxx の同一生成元ポリシーが制限されていない場合、この悪意のある Web サイトは xxxx のキャッシュに保存されているデータを自由に取得できます。 。
(3) 追加機能のリスク
一部のクロスチェーン ブリッジ プロジェクトは、クロスチェーンのアセットを提供するだけでなく、クロスチェーンのコントラクト コールも提供するため、さらに複雑になります。
攻撃者は a チェーン上の b チェーン上の x コントラクトへの呼び出しを開始し、クロスチェーン ブリッジは x コントラクトに関係なくそれを直接呼び出します。予想外に、x コントラクトはクロスチェーン ブリッジの多重署名コントラクトです。 bチェーン上のマルチシグネチャアカウントを攻撃者自身のアドレスに変更するもので、実行成功後はハッカーがbチェーン(ポリネットワーク)上のクロスチェーンブリッジの資金を自由に制御できるようになります。
3: 結論
1: このレポートの目的は、ユーザーがクロスチェーン ブリッジのセキュリティ リスクをより明確に理解できるようにすることであり、クロスチェーン ブリッジがどのように攻撃されるかについて悪意を持って描写するものではありません。
2: 公証メカニズムのクロスチェーン ブリッジ ソリューションは、少なくとも現時点では、最高のエクスペリエンス、最も広い適用範囲、そして最も低いコストを備えたソリューションです。そして、どんな製品も傷跡から成熟するまでのプロセスを経るものであり、ブロックチェーン製品に対する攻撃は多くの場合「論理的な問題」です。これらの質問は、時間と経験とともに改善されるはずです。