見出し画像

AxieInfinityハッキング事件からブロックチェーンのトリレンマを考える

サービスの提供において、効率化は非常に重要です。不要なフローを削り、速度を速く、効率的にすることで、サービスを安価に提供し、ユーザービリティに貢献することができます。しかしながら、ブロックチェーンの分散化技術において、一方的な効率化は時にセキュリティを犠牲にしてしまうことを覚えておかなければなりません。
ブロックチェーンにおけるトリレンマという言葉がありますが、Ethereumの創業者のVitalik氏は「スケーラビリティ」「分散化」「セキュリティ」という3つの概念、全ては同時に実現されないことを提唱しています。例えば、ノードが分散すると検証や全ノードのネットワーク同期に時間的なコストが生じ、処理速度が低下することでスケーラビリティが犠牲になりますが、代わりに高い分散性による非中央集権化と高い検証力によって高次元のセキュリティが担保されます。よく議論されることとして、ブロックチェーンは圧倒的に速度が遅いことが問題視されますがこれらのトレードオフを行なっているからです。逆に、意思決定に関しては、中央集権的なシステムは非常に効率的ですが、単一障害点を持ちます。Layer2ソリューションなどは、これらのバランスを実現するために用いられていおり、メインチェーンほどのセキュリティを担保しない代わりにスケールするような構造を取れるというメリットがあります。(Bitcoinのライトニングネットワーク、EthereumにおけるPolygonなどがそれに当たります)

AxiiInfinityのハッキングとトリレンマの関係

先日、AxiiInfinityというブロックチェーンゲームがハッキングされ、被害額が6億ドルを超えたことが発表されました。これまで多くのハッキング事件が起きるたびに、ブロックチェーンは危険であるという誤解が生まれてきましたが、

4億7000万ドル /マウントゴックス、2014年2月。
5億3200万ドル /Coincheck、2018年1月
6億1,100万ドル / ポリネットワーク、2021年8月
5億4000万ドル / Ronin、2022年3月。

過去のハッキング事件と被害額

その原因の多くは運用方法の問題が大きく関わっていると言えます。

今回の原因について、Roninチームは、事後分析を行なっています。

ドキュメントを読むと、突如として大人気になったAxiiInfinityというゲームは、膨大なプレーヤーの流入を引き起こしました。そのことによってパンクしかけたネットワークを維持するためにセキュリティ手順を緩和したことが大きな原因となっていることがわかります。もう少し具体的に説明すると、AxiiInifinityのネットワークを構築しているRoninネットワークは、9つのバリデーターによって保護されており、入出金取引を承認するには、5つの署名が必要となっていました。これはブロックチェーンにおけるマルチシグといわれる有名な方法で、複数人でウォレットの秘密鍵を管理することで、仮に1名が裏切ったり攻撃を受けたとしても、必ず半数以上の投票がなければ、アクセスすることができないため、資産を守ることができます。しかしながら、今回の攻撃では、1.SkyMavis社が持つ4つのRoninバリデーターを乗っ取られたこと 2.AxieDAOが実行するサードパーティの1つのバリデーターを乗っとられたこと。この2つで過半数にあたる5/9のバリデーターを乗っ取られてしまったようです。ここで問題視すべきは、1. 9つのうち、4つの署名が同じ企業が保持していて、分散化されていなかったためソーシャルハッキングという手口で一気に4つの署名が抜かれてしまった。2.ユーザー負荷に対応するために、Axie DAOは、2021年12月にSky Mavisに許可を与えたと報告されており、そのあとrevoke(許可を取り消す操作)されなかったことが挙げられます。

Ethereumは多くのバリデーターによって守られている

イーサリアムのネットワークは現在、20万人以上のバリデーターで構成されています。保守関連のプロセスが承認されるためには、これらのバリデーターの過半数が同意する必要があることを意味しています。これにくらべるとSkyMavisのRoninブリッジのノード数である9つは少ないと言えるかもしれません。今後、バリデーターノードの数を増やすことを発表していますが、今後のネットワークの負荷や、ゲームの利用状況に応じてもっと増やす必要があるかもしれません。dAppsといわれる一つの企業が運用する分散型アプリケーションが、多くのバリデーターを用意することは容易ではありませんが、分散化システムにおいて、このバリデーターの重要性は極めて高く、諦めてはならない問題であると言えます。様々なコンセンサスの仕組みによってバリデーター報酬を与えながら、システムを維持することは、暗号経済学とも言われ近年では、様々な手法が検討されています。

PoWかPoSか、EthereumのCasperに学ぶ暗号経済学

Ethereumは2015年にPoWをコンセンサスにするブロックチェーンとしてローンチされましたが、PoSベースのブロックチェーンに変更する予定でEthereum2.0と呼ばれたり、コードネームのCasperという名前でも呼ばれます。(1990年代の映画「Casperthe Friendly Ghost」からきているそうです)

ビットコインのように、いわゆる専用のマシンでマイニングする手法から、ステーキングによって選ばれたブロックバリデーターが、ブロックの検証を行うことになります。ただ、まだこの手法が大規模ネットワークでうまくワークするかどうかは議論のまっただ中にあります。
昨今のPoWにおけるエネルギー消費の観点などからも、PoWは過去のものと捉える人もいますが、参加者の数や、悪意のある参加者がどの程度いるかまったくわからない状況下で、SplitBrain問題に対するナカモトコンセンサスの解決は非常に合理的な解決方法とも言われています。一部の専門家からは、PoSは、未だ、大規模ネットワークに展開されていないため、疑問の声などもあるのも事実です。
https://bitfury.com/content/downloads/pos-vs-pow-1.0.2.pdf
(2015年後半、Bitfury Groupが発表したPoSの初期の「ナイーブ」バージョンに対する攻撃ベクトルを調査した資料)

さて、PoS以外にも、Proof of Activity,Proof of Burn,Proof of Capacity,Proof of Elapsed time,Proof of Historyなど証明方法があります。匿名であるP2Pのネットワークにおいて、シビル攻撃といわれるような、大量の悪意ある参加者からネットワークをどう守るのか、51%攻撃といわれる、莫大なハッシュパワーを持つ攻撃者からネットワークをどう守るのか、他にもロングレンジやイクリプス攻撃などの攻撃からネットワークを守るのかについては今後も議論され続けていくと思います。このあたりについては、本当に様々な議論や論文があり、そのすべても網羅することはできないと思いますが、先に述べたEthereumのCasperについての論文は暗号経済学の最も礎(いしずえ)になっているものでもあるので、一度ざっくり読むことをお勧めします。

最初の論文「CasperBasics」

コンセンサスシステムが高レベルでどのように機能するかを説明しています。

2番目の論文「CasperEconomics」

インセンティブの設計について説明されています。ユーザーはバリデーターとして参加するために資金をデポジットしますが、ルール違反によってそれらを取り上げる手法を明らかにしています。

3番目の論文「AutomatedConsensorshipAttackRejection」
https://github.com/ethereum/research/blob/master/papers/censorship_rejection/censorship_rejection.pdf
51%の攻撃について書かれています

引き出しに1週間かかる?ロールアップという技術

細かい話は割愛しますが、Layer2からLayer1への引き出しを行うときにロールアップという技術を用いますが、対話型のOptimisticRollupというものになると、引き出しに、1週間程度の時間がかかると言われています。

Arbitrum Optimistic Rollup
dYdX ZK Rollup
Metis Andromeda Optimistic Rollup
Optimism Optimistic Rollup
Loopring ZK Rollup
ZKSwapV2 ZK Rollup

Layer2とrollupの種類について

様々なLayer2ソリューションでは既に用いられており、速度とセキュリティのバランス事例の最たるものなのではないかなと思います。取り扱う金額が大きければ大きいほど、セキュリティに対して重きをおく選択が必要になってきます。このことは、ゲームやコミュニケーションなどを主体とするLayer2では比較的速度面に振った上で、金融などを主体とするLayer1へ移す時点で厳しく精査するということは非常に理にかなった構造であるとも言えます。

ビザンチン将軍問題

コンピュータにおけるビザンチン将軍問題とは、システムの構成要素が合意できない場合に、システムが破損する可能性があるというシナリオです。ビットコインが出てくる前も、仮想通貨の構想はありました。デビッド・チャウムの「DigiCash」やニック・サボの「Bit Gold」、ウェイ・ダイの「B-Money」など、ビットコイン以前の暗号通貨ですが、BFTを実装できなかったためうまくいかなかったといわれています。

「ナカモト・コンセンサス」によって、ビットコインは、分散化された世界初の実用的な仮想通貨となったわけです。ビザンチン障害に対する耐性は、ビットコインだけではなく、航空業界や、原子力発電所、工場など複数のセンサーに依存するシステムでは同様に直面する問題です。ボーイング777の情報管理システムなどでは、BFTを実装しているそうです。

https://elaineou.com/wp-content/uploads/2017/02/safebus.pdf

リアルタイムシステムにおいては、ビザンチン障害を数マイクロ秒で検出できるようなソリューションが求められます。スペースXドラゴンのように、BFTを考慮して設計された宇宙船などの事例も非常に面白いです。

Conclusion

先日、サービスでの速度が遅いため、チューニングされた専用のチェーンをつくれないかという相談を受けたことや、AxieInifinityについての見解を聞かれたことなどもあって、あらためてブロックチェーンのトリレンマについて考えるきっかけになりました。
セキュリティを担保する場合、様々な攻撃要素を減らすことを前提として考えることが許されるのであれば、まずはチェーン自体をprivateにすることによってシビル攻撃の可能性は防ぎ、ビザンチン耐性にフォーカスした仕組みにするなどの、privateの議論もできるかもしれませんが、速度面などにおいては、既存のRDBなどの仕組みと比較されると圧倒的に不利になるため、あえてブロックチェーンを利用するという説明が現状ではなかなか難しいのではないかと思います。また、チェーンはチェーン単体でサービスと接続できないため、私の過去の勉強会などでお話ししたテクノロジースタックなどがわかりやすいのですが、

チェーンに紐づく様々なアーキテクチャを誰がどう用意するのか、サービストークンを用意する場合取引所との接続はどうするか、他のチェーンとの相互運用はどうするかなど現実的には様々なハードルがあるため、速度の問題や、サービス用の専用チェーンがほしいのであれば、ユースケースにあったLayer2ソリューションなどのほうが現実的な解決法なのかなとも考えてたりします。ともあれ、よくお話をするのはブロックチェーンはゲームなどのSDKと同様にして、専用のチェーンに何を求めるかによってフォーカスする仕組みや技術が大きく異なってきます。そのためこうやりたい!こうありたい!が要求されることは技術の発展に大きく貢献することになるため非常に大切だと思います。








いいなと思ったら応援しよう!