Defiの安全性に関する分析と考察 ーーPoly Network事件を例としたケーススタディー
8月10日、ブロックチェーンのプラットフォームであるPoly Networkに大規模なハッキングが行われた。この事件の概説、およびそれに伴う考察を以下に述べる。
1. Poly Networkとは
Poly Networkとは、異なるブロックチェーン間の互換性を実現するプラットフォームの一つである。BitcoinやEthereum、Binance Smart Chainなどの間で、既に運用されている。
Ethereum、Binance Smart Chainなどが基礎レイヤーに属しているとすれば、Poly Networkはそれらの互換性レイヤーであるといえる。構造を簡略化すれば、Poly Network上に各対応ブロックチェーン専用のウォレット(Ethereum用ウォレット、Binance Smart Chain用ウォレット…)があり、それぞれに各暗号資産が保管されている。これらのウォレットは、プログラム(スマートコントラクト)によって操作される。そして、各基礎レイヤーのブロックチェーンにおいて、Poly Networkを使用するためのスマートコントラクトを実行、または互換モジュールを組み込むことで、例えばBitcoin上のBTCとEthereum 上のETHをPoly Networkを介して交換できるようになる。
Poly Networkの各専用ウォレットには大量の暗号資産が保管されており、これによって資産の流動性が確保されている。
(Poly Network公式サイト)
2. 事件の推移
今回の暗号資産流出事件では、670億円にのぼる資産が流出した。分散型金融において過去最大額が更新される事態となったが、結果的には、ほぼ全てがハッカーによって返却されている。
事態の推移は次の通りである。8月10日、Poly NetworkからEthereum主要通貨の2,857.59 ETH(約300億円)が流出し、ステーブルコインのUSDtやUSDC、DAIなども流出した。この動きは速やかに検知され、USDtの該当資産が凍結されたり、流出先のアドレスを取引所などのブラックリストに掲載するよう呼び掛けが行われるといった対応が取られた(Ethereumなどの公開型のブロックチェーンでは、送り主のアドレスから宛先アドレスへの資金移動が確認できる)。ハッカーは分散型の流動性プールを提供するCurveでステーブルコインの預金・換金を試みたが、USDtについては、凍結のため叶わなかった。ちなみに、匿名ユーザーが凍結に関する警告をEthereum上の取引を通じてハッカーに伝え、それに対し、ハッカーは流出ETHの一部を当ユーザーに送金している。ブロックチェーンのセキュリティ専門会社であるSlowmistの集計によれば、ハッカーはPoly Networkを介して、最終的にEthereum、Binance Smart ChainおよびPolygonから、それぞれ約300億円、277億円、93億円相当の資金流出に成功した。
( The Analysis and Q&A Of Poly Network Being Hacked, Slowmist)
翌8月11日、脆弱性の分析などが行われる中、ハッカーは資金を返却する旨をEthereum上の取引で表明した。これに対してPoly Networkは資金の返還先をツイッターで提示、追ってハッカーからの返却が徐々に行われた。一部の資金は未だにハッカーの承諾無しには移動できない状態が続いており、調整が続いているようであるが、Poly Networkは被害を受けたユーザーへ資金を全額返却するとしている。
(取引詳細画面の一部, Etherscan)
Poly Networkの運営チームは、8月16日に大規模なアップグレードを適用しながら、ハッカーとの連絡対応も進めているが、ハッカーの行動が善意に基づくものであり、Poly Networkのセキュリティ向上に貢献しているとして、概ね好意的な態度を表明している。ハッカーは脆弱性指摘に対する報奨金として50万米ドルを提示され、本人は受け取りを拒否したが、Poly Networkとしては、いずれにせよハッカーに同額を送金するとしている。さらに、ハッカーの法的責任は一切問わず、またハッカーをPoly Networkの最高セキュリティアドバイザーとして迎え入れる提案もなされている。
なお、ハッカーは公開募金を受け付けており、本稿執筆時点で約1万6千米ドル相当の資金が該当アドレスに集まっている。
3. ハッカーについての情報
複数回に分けて流出資金を返却する間、ハッカーは自らをMr. White Hatと名乗り(White hatは善玉ハッカーのこと)、Ethereum上の取引で質問コーナーを設け、質問に回答した。それによると、今回のハッキングは初めから金銭目的ではなく、愉快犯であり、また暗号資産業界におけるセキュリティに対する姿勢(ハッキングの事後にようやく脆弱性を指摘する専門家の姿勢など)に一石を投じる意図もあった。さらに、誰も信用しないという主義を示しており、脆弱性を誰かしらに指摘すれば、情報を得た人が脆弱性を悪用する危険があったため、今回のハッキングに及んだとのことである。
ステーブルコインを流動性資金としてCurveで利用したことについては、Polyの初動にハッカーを悪者と決めてかかるようなところがあり、それに不満を抱いたため、また預金で得た利息により潜在費用を補うためであるとしている。
ハッカーの身元は現時点で明らかになっておらず、質問コーナーの回答によれば、把握されているのは一時的なメールアドレスやIPアドレスなどである。単独犯であり、若い頃よりセキュリティ業界に携わっている者であるとのことである。
4. 脆弱性の概説
本件は、Poly Network上の流動性確保用ウォレットを管理するスマートコントラクトの管理者に、ハッカーがすり替わることができたことに起因する。スマートコントラクトには実行権限が設定されており、限られたアドレス(ユーザーまたは他のスマートコントラクトを表す)からのみ実行できる仕組みになっている。今回利用されたものも表面上は実行権限の制限がかかっていたが、一般ユーザーが使えるスマートコントラクトにおいて、高レベルな実行権限が与えられたアドレスを変更できる欠陥があった。具体的には、ユーザーが指定したプログラム名(メソッドの名前とシグネチャ)のハッシュ値の先頭4バイトを照合した上で、それを実行する実装になっていた。
そこでハッカーは、このハッシュの一部が、管理アドレスの変更を行うメソッド名およびシグネチャのそれと合致するようなプログラム名を割り出し、これを用いて、Poly Networkの管理者のアドレスを自ら用意したアドレスにすり替えるプログラムを実行することに成功した模様である。ブロックチェーン間の取引はその管理者の電子署名をもって承認されるので、その後はハッカーの思うがままに資金流出が可能となった上、通常のPoly Networkを通じた取引が承認されなくなった。ハッカーはこの手続きをEthereum、Binance Smart ChainおよびPolygonで展開したとみられる。
当脆弱性については8月15日に修正が施され、プログラムが実行前にホワイトリストに従ってチェックされるようになった。PeckShieldとBlockSecが監査を報告している。
5. DeFiの安全性に対する考察
本件に関連して、分散型金融のセキュリティについて考察したい。まず、スマートコントラクトはソフトウェアである以上、複雑さが増すにつれて、欠陥を100%排除することが現実的でなくなることを再確認されたい。今回のPoly Networkについては、セキュリティ監査に2社が携わっていながらもハッキングが成功した現実があり、欠陥の残存が意図的であるかはさておき、未知の欠陥は一般に存在しうるといってよいだろう。また、分散型金融(DeFi)は安全性だけでなく、分散化の程度や実用性(処理速度、使い勝手の良さなど)も高いレベルで求められるため、これらの最適なバランスが今後も追求されると考えられる。
分散化の程度の観点では、例えば、ハッキング後の初動に影響がある。Poly Network事件ではUSDtを発行するTether社が流出したUSDtを速やかに凍結しており、ある程度中央集権的な管理体制であったからこその対処であるといえる。Poly Networkを運営するPoly社も、分散型を含む各取引所にハッカーのアドレスをブラックリスト登録するよう要請したが、資産の凍結に比べると確度は劣るだろう。こういった点で、分散化とセキュリティに関して、議論の余地があるといえる。分散型台帳技術の原点に立ち返れば、分散型・公開型のシステムであるからこそ、ユーザーが高い透明性やデータに対する主権を享受できる点も忘れてはいけない。本件で流出の瞬間からハッカーのアドレスが全世界に公開されている点は重要である。現在主流の一般的な法定通貨で違法な現金取引があっても、同等の透明性は確保できないだろう。
さらに、ハッキング発生時の対応について、被害の拡大防止に加え、ハッカーとの連絡も重要であることがPoly Network事件から読み取れる。ハッカーの意図を初めから善意に解釈する必要はないが、悪意と決めてかかるのも早計であり、労力を賭したハッカーの感情を逆撫でしないよう注意が必要だといえる。敵対せず、前向きな交渉の用意があるという姿勢を早期に打ち出すのが一つの要点と考えられる。
技術的な観点では、Poly Network事件では前述のような管理者のすり替えが可能であったことに加え、異なるブロックチェーンを跨ぐ操作の前後にチェックがなかったことも、ハッキング成功の要因であるとも指摘されており、採用された修正コードもこれに近い発想である。ユーザー側としては、依然、欠陥に対するリスク評価が肝要であるが、特に本件のような事例の蓄積が目的のシステムに反映されているかに注意を払うとよいかもしれない。
最後に、DeFiの参加者間の技術的格差について、コードによる自律的な取引には魅力も多いが、有能なハッカーが経済的優位に立つという構図も、また一考の価値があるだろう。古くから格差と共に発展してきた人類であるが、その要因が人種や身分、また軍事力や経済力と様々挙げられる中で、DeFi分野ではハッキング能力がこれまでになく強力な要因であるともいえる。
いずれにせよ、分散型台帳のセキュリティは未だ発展途上である。時に本件のように実用場面で大きな額を伴って脆弱性が議論されつつ、醸成が続くと考えられる。
まとめ
本稿では、一時的に大規模な資金流出を伴ったPoly Network事件を例にとって、その概説および分散型金融のセキュリティに関する考察を展開した。分散型金融は従来の中央集権型システムにない魅力がある一方で、高い自律性をもって資金移動を担うプログラムに欠陥が存在するリスクを考慮することがユーザーに求められる。分散型金融においては、善意・悪意の両方によって。派手なハッキングを伴って実用的観点から議論が重ねられ、コミュニティと共に成長を続ける性格があることが読者に伝われば幸いである。
【免責事項】
HashKey DX Researchサービス(以下、「当サービス」とします。)における免責事項は、下記の通りです。
本サービスで提供される文章や画像などにつきましては、無断転載することを禁止します。転載する際には、お問い合わせよりご連絡いただけますよう宜しくお願い致します。
当サービスは著作権や肖像権の侵害を目的としたものではありません。著作権や肖像権に関して問題がございましたら、お問い合わせよりご連絡いただけますよう宜しくお願い致します。
本サービスで提供される情報の内容に関しては万全を期しますが、その内容の正確性および安全性を保証するものではありません。
本サービスにて提供される内容によって行為から発生した損害について責任を負うものではありません。
利用者が本サービスで提供される市場調査データを用いて行う判断の一切について責任を負うものではありません。
【お問い合わせ】
HashKey DX Research事務局
research@hashkey.jp
この記事が気に入ったらサポートをしてみませんか?