スマートコントラクトの解釈: Harmony のクロスチェーンブリッジはどのようにして 1 億ドルを盗んだのか?
十四君
2022-07-11 10:11
本文约4195字,阅读全文需要约17分钟
2022年6月24日、レイヤー1パブリックチェーンHarmonyによって開発されたイーサリアムとHarmony間の資産クロスチェーンブリッジであるHorizo​​nが攻撃され、約1億米ドルの損失が発生しました

抽象的な

副題

抽象的な

2022年6月24日、レイヤー1パブリックチェーンHarmonyによって開発されたイーサリアムとHarmony間の資産クロスチェーンブリッジであるHorizo​​nが攻撃され、約1億米ドルの損失が発生しました。

  • 一体何が起こっているのでしょうか?

  • ハッカー攻撃が発生した日は、「公証人の秘密鍵が盗まれた」と結論付けることができますが、VIP がそれをクリックしたのですから、チャットに来てもいいでしょう。心配しないでください。コアのソースコードはありますが、記事全体が現地語で書かれており、理解しやすいです。

  • Horizo​​n 契約監査報告書の解釈

盗難理由の再分析とまとめ

1. クロスチェーンブリッジの技術原理

クロスチェーンは、その名のとおり、異なるブロックチェーン間で資産情報をどのように転送するか、相互運用性とも呼ばれる問題であり、現在、さまざまな定義を持つ 50 以上のクロスチェーン ソリューションが存在します。「iosgから-

マルチチェーンの流動性を収集できるクロスチェーンブリッジソリューションのリスト

副題

1.1. クロスチェーン ソリューションとは何ですか?

一言で言えば、別のチェーン上で一定の資産価値を実現するには、「価格」によるアンカーリングと「物理」によるアンカーリングの 2 つの主要な方法があります。

一見すると複雑そうに聞こえますが、実際には価格によるアンカリングとはUSDTなどの安定通貨を各種パブリックチェーン上で運用しており、米ドルと1対1でアンカリングされているため、クロスチェーン資産の一種でもあります。

  • あらゆる種類のステーブルコインとは別に、より直観的なクロスチェーンソリューションは物理的なアンカリング、つまり流動性の総量が一定であり、多くのソリューション(公証人、サイドチェーン、リレーチェーン、ハッシュロックなど)があります。 、公証人モデルに焦点を当てます。

  • 公証人モデルには、「誰が公証人であるか」に基づいた 3 つの区別があります。

  • 取引所による保証: たとえば、Binance はコインを引き出し、あらゆる種類の取引は集中取引所で実行され、コインは現金化されます。

流動性プールのブリッジング タイプ: Bridge.connext、o3swap など

コントラクトロックキャストタイプ:各種公式ブリッジ一般ソリューションpolygon/arbitrum/avax/celer、および今日の主人公ハーモニー

取引所が暴走するのではないか、流動性が枯渇するのではないか、公証人の秘密鍵が盗まれるのではないかなど、上記のすべてにはそれぞれ長所と短所があり、現時点ではこれらを完全に実現するクロスチェーン ソリューションはありません。不可能な三角形。

画像の説明

「総流動性と取引高、o3swap公式ウェブサイトより」

副題

1.2. Horizo​​n Bridge のクロスチェーン原理

Harmony が開発した Horizo​​n ブリッジは、かなり標準的な公証錠鋳造タイプです。

ロックされたキャストが信頼できるのはなぜですか?

ブロックチェーン上のコントラクトは不変であるため、バックドアがなければ、Boring Ape公式が0番地にすべての権限を移すのと同じように、一度デプロイしても動作に影響を与えることはありません。所有権、いいえ いずれにせよ、新しいサルをさらに鋳造することができ、その総流動性はロックされます。

  • 同様に、異なるパブリックチェーン間で契約は異なりますが、10 ETHがイーサリアム上の契約でロックされている場合、10 wETHは別のパブリックチェーン上の同じ信頼できる契約で解放され、実際、全体の流動性は固定されます。 wETH をいつでもイーサリアムに戻して ETH と交換できる限り、wETH は ETH と同等の価値を持つと考えることができます。

  • したがって、その中心的な動作は次のとおりです。

  • バーンアンドリリース: チェーン B はパッケージング トークンを破壊します + チェーン A は同量のベーシック トークンの流動性をロック解除します

公証人: A チェーン ロック イベントの検出を担当し、B チェーン ミントに移動してアンカー トークンを鋳造し、ターゲット アドレスに転送します。

Horizo​​n ブリッジのプロセスの概略図 (公式 github より)

画像の説明

砂丘からの地平線鎖橋の TVL ダイアグラム

最初のレベルのタイトル

2. Horizo​​n Bridge契約監査報告書の解釈

多くの Web3 プロジェクトでは、事故が 100% 安全ではない場合、基本的に 0 の値に等しいため、契約の安全性をチェックするために、通常、さまざまな攻撃シナリオをテストおよびシミュレーションし、セキュリティ レビューを実施します。契約の安全性を確保するためのチェックリスト。

開発には数日しかかかりませんが、十分な信頼性を得るには多くのプロセスがあり、コストがかかります (一般的な見積もりは時間に基づいて 10 W から始まります)。

監査レポートの中核となる情報は、リスク名、脆弱性の説明、リスクレベル、セキュリティ推奨事項、修復ステータス、監査結果などです。

Horizo​​n Bridgeの契約監査報告書が老舗監査法人ペックシールドによって実施され、5つの脆弱性が発見された

2.1. 低および中リスク ポイント 1 - 互換性が不十分

3 行のコードにバグが含まれる可能性があることを想像するのは難しいでしょうか?

実際、トークンをロックするロジックは非常に単純で、ユーザーが金額とターゲットアドレスを設定すると、源泉徴収権限を承認した後、コントラクトはUSDTをこのコントラクトに転送してロックし、ロックされたイベントを送信します。チェーンの下にある公証人は、資産がロックされていることを知ることができます。

しかし、それが「デフレ」トークンだったらどうなるでしょうか?安全な転送中に金額が減少した場合はどうすればよいですか?ロックアップ量がBチェーンのリリース量を下回ってしまう恐れがあります。【ソースコード解釈】あなたが購入したNFTとは一体何ですか?

以前の記事を読むことができます。

【ソースコード解釈】あなたが購入したNFTとは一体何ですか?

標準プロトコルでは、仮想関数をフックメソッドとして転送前後のロジックを追加することにより、トークンによっては、流通量を制御しデフレを実現するために、ここ_beforeTokenTransferでトランザクションロスが増加する可能性があります。

もちろん最終的にはハーモニーの修正や最適化が行われているはずで、実際のロック量の算出には転送前後で2回残高を読み取る方法が用いられている。

それにしてもこのコード、3 行のコードにバグだけでなく 2 行もバグがあるとは想像しにくいでしょうか。【ソースコード解釈】あなたが購入したNFTとは一体何ですか?

【ソースコード解釈】あなたが購入したNFTとは一体何ですか?

実際、安全な Mint を実現するために、標準プロトコルでは mint がアドレス 0 にアクセスすることを禁止しています。lockingToken 時に宛先アドレス受信者にアドレス 0 が入力されている場合、B チェーンでのキャストは失敗し、その結果、このコントラクトにロックされますが、クロスチェーン効果はありません。この財務契約には適切な転送方法が予約されていないため、永久にロックされます。

副題

2.3. ハイリスクポイント

本来の手順では、鋳造された資産のロック解除と解放は、指定された公証人のみが実行できます。

これがまさにこのトリックの理由であり、Harmony は最終的に公証人をマルチ署名ウォレットに変更しましたが、変更したのは 3 つだけであり、秘密鍵のうち 2 つが盗まれると暴走する可能性があります。

画像の説明

PeckShield の Horizo​​n Bridge に関する監査報告書

なんというか、変えたって言ってたけど、いつもちょっとおざなりな気がする、ハッカーが資産を盗んだときでも、ハーモニーブリッジはまだ稼働していたということは、秘密鍵も平文で保存されてコピーされていたということだハッカーによって

ブロックチェーン ブラウザの使用ガイドについては、以下を参照してください。Etherscan を見るとき、私たちは何を見ているのでしょうか?

Etherscan を見るとき、私たちは何を見ているのでしょうか?

副題

  • wallet1:0x0d043128146654C7683Fbf30ac98D7B2285DeD00

  • wallet2:0x9E91ae672E7f7330Fc6B9bAb9C259BD94Cd08715

  • wallet3:0x58f4baccb411acef70a5f6dd174af7854fc48fa9

3.1. 重要な情報

  • MultiSigWallet:0x715cdda5e9ad30a0ced14940f9997ee611496de6

  • 攻撃者のウォレット

  • クロスチェーンブリッジ関連のアドレス

  • ETHボールトアドレス: 0xF9Fb1c508Ff49F78b60d3A96dea99Fa5d7F3A8A6

ERC20 ボールト アドレス: 0x2dccdb493827e15a5dc8f8b72147e6c4a5620857

盗まれた公証人の住所: 0x812d8622c6f3c45959439e7ede3c580da06f8f25

3.2. 盗難プロセスの分析

13100 イーサを盗みます。詳細についてはトランザクションのリンクを参照してください (付録に引用)

実行は特定のトランザクション ID を確認するためです (マルチ署名投票の一部)

公証人による確認 → 確認待ちの公証人の数が基準に達 → 国庫資産のロックを解除し、目的の住所に移管

マルチサインコントラクトの契約コードのロジックを見ると、この関数はnotconfirmed判定を行うため、以前にシステムで設定した公証アドレスのみを呼び出すことができることがわかります。

その後executeTransactionメソッドを実行し、その後isconfirmedメソッドを呼び出して判定し、トランザクションを認証する管理者が2人になったら内部でEthManagerコントラクトのunlockEthメソッドを呼び出し、最後にETHが攻撃者のウォレットに送信されます。

秘密鍵の盗難以外には、このような単純かつ単純な契約には特にエラーの可能性がないことは明らかです。

ちなみに、クロスチェーンブリッジのETH保管庫の残高を見てみたところ、まだ94イーサリアムがあり、ERC20保管庫にはまだ30万ドルの各種トークンが残っています。

4. 考え方のまとめ

4.1 泥棒はどうなる?

ハーモニーは即座に100万ドルを提示し、ハッカーに資産を返還し、責任を追及しないことを約束したが、たとえハッカーが戻ってきて役人が追及しなかったとしても、他のソーシャルチームが訴追することになるため、ハーモニーにとって最善の道である。ハッカーは、盗まれた資産をカバーするためにあらゆる手段を講じることになります。

6 月 29 日の時点で、攻撃者は一般的なコイン ミキサーである Tornado Cash に約 35,000 ETH (約 3,900 万ドル) を送金していましたが、ブロックチェーンは公開台帳であり、あらゆる取引はハッキングされる可能性があります。 100 人の取引のデータを分析すると、最終的にどの資金がどの人の手に渡るかを正確に判断できません。

4.2. より安全にするにはどうすればよいですか?

最適化するために、分散ホスティングの方法を採用することができ、MPC (Multi-Party Computation) 公証ネットワークにホストされ、セキュリティを確保するために同時に悪事を行うノードは一定の割合に制限されます。

公証人が不足している場合でも、アバランチブリッジに採用されているSGXトラステッドコンピューティングテクノロジーを参照できます

Avalanche Bridge: Intel SGX によるクロスチェーン資産の保護

引用:

iosg-本質的には、依然としてセキュリティの重要性に無関心であり、クロスチェーンブリッジのオープンソースコードで書かれた実行計画は、2年前に使用可能なチェーンブリッジを実現しましたが、それ以上の最適化は長い間行われていませんでした。

引用:

マルチチェーンの流動性を収集できるクロスチェーンブリッジソリューションのリスト

Horizo​​n Bridge 公式 GIT: https://github.com/harmony-one/ethhmy-bridge

https://etherscan.io/tx/0x27981c7289c372e601c9475e5b5466310be18ed10b59d1ac840145f6e7804c97

Horizo​​n チェーン ブリッジの TVL 図: https://dune.com/queries/118245

https://docs.harmony.one/home/general/bridges/horizon-bridge/audit

トランザクションリンクの盗用:

https://medium.com/avalancheavax/avalanche-bridge-secure-cross-chain-asset-transfers-using-intel-sgx-b04f5a4c7ad1

十四君
作者文库