ブロックチェーン・ブリッジのセキュリティを簡単に説明
BLOCKCHAIN EXPLAINED
by Dominik Schmid
Consensysによる記事の翻訳版です

この記事では、ブロックチェーンブリッジの入門として、主要な概念をシンプルに理解できます。基盤となるブリッジのセキュリティについて以下の項目ごとにわかりやすく解説していきます:
- ブリッジする際に知っておくべきこと
- セキュリティの意味
- ブリッジの種類
- ブリッジの安全性メカニズムの比較
- 拡張性:どこにでもブリッジできるのか?
いつものようにアリスを例にして説明します:
アリスはArbitrumに0.5ETHを保有していて、それをPolygon PoSで使いたいと思っています。そのためには、資産を異なるチェーンの間で移動させるためにブリッジを使用する必要があります。アリスにとって、どのブリッジも同じように見えます。アリスは、自分のMetaMaskをブリッジのUIに接続し、Arbitrumを送信元チェーン、Polygon PoSを宛先チェーンとして、ブリッジするトークンを選択します。希望する数量を設定した後、トランザクションを送信して、Polygon PoS上のウォレットにトークンが届くのを待つことが一連の基本プロセスになります。この場合、アリスはトークンをできるだけ速く、かつ安全に送金したいと考えます。誰であれ、転送中にトークンを失うことだけは避けたいと考えるものです。
1. ブリッジする際に知っておくべきこと
ブロックチェーンブリッジの背景には、独自のルールとプロトコルがあります。これらは、ブリッジに保有するユーザーの資産を保護し、より安全性の高い方法で届けるためのそれぞれの方法です。
ブリッジは、スケーリングソリューションをレイヤー1チェーンに結びつけて、異なるブロックチェーンを接続します。この時、ブロックチェーンに資産を保持する一方で、同様の資産を別の(外部の)サービスに届ける役割を担っており、ブリッジのセキュリティは、この部分での受け渡しの定義に依存するものとなるのです。安全な2つのシステムを、非常に壊れやすいブリッジで接続することを想像してみると、ブリッジのセキュリティの重要性がシンプルに理解できるでしょう。
送信元ブロックチェーン(アリスにとってのArbitrum)の観点においてブリッジとは、ユーザーの資産を保持し、その資産の取り扱い条件を定義するスマートコントラクトを意味します。ブリッジの反対側(アリスにとっての宛先であるPolygon PoS)は、目的となるブロックチェーン上で、ユーザーが指定する同量の資産を作成またはリリースする別のスマートコントラクトを意味します。この組み合わせが機能することによって、ユーザーはその資産を他のシステム(チェーン)で使用することができるようになるのです。
ブリッジは、ブロックチェーン間で実際にトークンを移動させるわけではありせん。ブリッジは、トークンを保持する2つのスマートコントラクトと、それらのトークンに誰がアクセスできるかを定義する一連のルールで構成されており、異なるブロックチェーン上の2つのスマートコントラクト間には、暗号署名を伴うメッセージの流れが存在します。このメッセージは、宛先チェーン上のスマートコントラクトが新しいトークンを作成またはリリースするための指示であり、トランザクションの受取人への支払いを実行するものです。そのため、ブリッジはこれらのメッセージの有効性を保証するが非常に重要となります。
ブリッジは、メッセージを中継する外部の関係者を必要とします。その関係者が各チェーンのスマートコントラクトを監視し、メッセージを作成したり拾ったりして、それを他のチェーンに中継することで機能するのです。
ブリッジの技術的な課題は、ブロックチェーンの性質そのものにあります。ブロックチェーンは、一貫性があり、検証可能なものとして設計されています。そのため、ブロックチェーンはブロックチェーン自身が生成した情報しか知りえず、信用することもできません。ブロックチェーンは外の世界や他のチェーンについて把握する術がないため、どのような外部情報、つまりブリッジトークンの処理についても独立して検証することが難しいのです。既存のブリッジの多くは、中継されたメッセージが有効かどうか、有効な場合にアリスがトークンを受け取れるかどうかを、巧妙な仕組みを使って確認します。
これらの行き来する資産の処理はブリッジのセキュリティに依存するものとなりますが、ブリッジのセキュリティが崩壊していた場合、結果的にチェーン自体の安全性を損なう可能性があるということが非常に重要です。
2.セキュリティの意味
セキュリティとは、リスクがないことを目的するものです。この場合のリスクとは、ブリッジが無効なメッセージを中継するリスクと理解できます。これには、有効な引き出し要求などの有効なメッセージを中継しないことも含まれます。経済用語で言うと、ブリッジが経済的攻撃を受けない場合、ブリッジは安全です。
言い換えれば、アリスの視点からは、ブリッジの安全性の結果は、彼女が約束されたトークンを宛先チェーンで無事に受け取ることを意味します。その可能性が高ければ高いほど、そのブリッジはより安全であると言えます。
そのような結果を得られるように、異なるブリッジの設計を比較する必要があります。ここで、アリスがトークンをブリッジする時に起こりうる可能性について考えてみましょう:
- アリスの有効なメッセージは検閲されるかもしれません。ブリッジのオペレータが彼女のアカウントを禁止リストに載せていた場合、彼女のトランザクションは拒否されるかもしれません。その場合、彼女はブリッジできず、最悪の場合彼女はトークンを失うことになる可能性があります。
- アリスが受け取るトークンの数が、合意した数より少ないか、全く受け取れないかもしれません。この例では、アリスはPolygon PoSで0.495wethで受け取ることを約束されていたのに、0.1しか受け取らなかったり、全く受け取らなかったりすることがあり得ます。この場合、ブリッジは有効なメッセージを中継せず、その過程でメッセージを変更したことになります。
ブリッジのセキュリティに関して考慮すべき要素は、この記事で言及する枠を超えて数多く存在します:
- ブリッジを構築する場合、全てのレイヤーのリスクを考慮する必要があります。
- ブリッジは、各チェーンのコンセンサスレイヤーやさまざまな形式のファイナリティに対処可能である必要があります。
- スマートコントラクトは、アップグレードの必要性やハッカーが悪用する可能性のあるバグの存在など、多様かつ特殊なリスクを負います。
- オフチェーンのインフラは、最先端のウェブセキュリティ設計で維持・設計される必要があります。
前述のように、これらの考慮事項は、この記事での分析範囲を超えます。ここでは、ブリッジのセキュリティの問題について「異なるブリッジの設計がアリスにとっての悪い結果をどのように防ぐか」ということに注目していきます。世の中には100以上のブリッジが存在しますので、まずはブリッジのプロトコル設計の分類を把握することが必要です。
3. ブリッジの種類
以下は、私が @l2beatcomに提案する予定の「ブリッジリスクフレームワーク」の概要です。 - bartek.eth (@bkiepuszewski) 2022年5月17日
- ロールアップは高度に安全なブリッジと見なすことができます。メッセージとその結果の状態の正当性を、レイヤー1上で証明することができます。このシステムでは、レイヤー2からの状態の有効性をチェックするライトクライアントをレイヤー1に実装しています。これによって、ロールアップは全てのブリッジの中で最も少ない信頼前提を持つことになるのです。ブリッジは、正しさの数学的または暗号経済学的証明がある場合にのみ、資産をリリースします。この証明はレイヤー1で行われることによって、ブリッジはレイヤー1のブロックチェーンのセキュリティを継承できるのです。
例:StarkGate、Arbitrum、Optimistic - 次に、Optimisticブリッジがあげられます。このブリッジは、中継されたメッセージや中継されたメッセージの束が、証明されるまで正しいと「楽観的に」仮定します。宛先チェーンはメッセージの実際の有効性をチェックすることはできませんが、少なくとも一人の正直なウォッチャーが存在することを信頼します(そのウォッチャーが有効性をチェックし、ソースチェーンの不正を証明する)。プロポーザーがメッセージを提案し、ウォッチャーはその妥当性をチェックし、不正があれば排除することができます。正直なウォッチャーが不正を防ぐためにブリッジを監視している可能性が常に存在することで、攻撃者はその攻撃を成功させることができず、どのような攻撃も不経済なものとなります。このように、Optimistic ブリッジの安全性は、パーミッションレスのウォッチャーが存在することに依存しています。もしウォッチャーが許可制であった場合、理論上、全てのウォッチャーが結託するように不正を行うことができてしまいます。
例:Nomad/Connext、Across。NEAR Rainbow Bridge - 次のカテゴリは、ライトクライアントを実装するブリッジです。コンセンサスをチェックするライトクライアントは、ブロックが正しいかどうかを検証することができないため、ロールアップよりも安全性が低いと言えます。このシステムは、送信元ブロックチェーンのマイナー/バリデーターが特定の状態に合意していることを信頼するものです。ブロックが正しく署名されているかどうかをチェックし、PoWの場合には難易度をチェックします。つまり、ライトクライアントブリッジは、送信元チェーンのバリデータセットが共謀していないと仮定している形です。マイナー/バリデータが共謀している場合には、理論上ブリッジは無効なブロックを受け入れることができてしまいますが、あるブロックがブリッジに受け入れられた場合、 マークル証明を使って送信元チェーンで何かが起こったことを示すことができる仕組みです。
例:Cosmos IBC - 最後に、メッセージの有効性を証明する外部のバリデータ群に依存するブリッジが存在します。マルチシグ、PoSコンセンサス・ダイナミックバリデータセット、MPCスキーム、Intel SGXセキュリティボックス、オラクルなど多岐にわたりますが、結局は全て同じカテゴリーです。このシステムのセキュリティは経済的インセンティブに依存しており、多くの場合、バリデータが不正を行った場合にスラッシュされる可能性のある一定量のトークンのステークを要求します。デザイン上、バリデータがブリッジから盗むことのできる金額がステーク量より大きくなると、彼らが正直に行動する保証はなくなります。この形式のブリッジの中には、中継者と検証者の2者しか使わないものもあります。このケースでは、システムがパーミッションレスであった場合に、この2つのアクターが共謀しないことを保証する方法はありません。
例:Multichain、Celer cBridge v2、Layer0、Axelar、Wormhole、Polygon POS
4. ブリッジの安全性メカニズムの比較
異なるブリッジ設計が、アリスにとっての悪い結果をどのように防ぐのかの比較を下図で確認しておきましょう。

5. 拡張性:どこにでもブリッジできるのか?
なぜアリスはロールアップだけを使用して、トークンをブリッジしないのでしょうか?
ネイティブブリッジとライトクライアントブリッジは、構築された特定のドメインにとって最も安全ですが、それらは設計上、カスタム構築された特定の接続にのみ動作するという大きな制限が存在します:
例えば、ArbitrumブリッジはArbitrumとEthereum間で最も安全、IBCはCosmos間の最も安全といった具合です。
それに対して、バリデータブリッジとOptimisticブリッジは、あらゆるスマートコントラクトチェーンを接続する柔軟性を持っています。
もしアリスがArbitrumとPolygonの間のブリッジをしたい場合、2つのシステムのどちらかを経由する必要があるのです。

まとめ
暗号資産を安全な方法で処理する必要性についてご理解いただけたでしょうか?
注意点として:
- ブリッジは、一方でトークンをロックし、他方でトークンをリリースします。
- セキュリティ問題の根本は「正しいトークン量を正しい人に届けるために、いかに安全な方法を活用できるか」にあります。
- ロールアップは全てのトランザクションを検証することができる
- Optimisticブリッジはソースチェーン上の不正を証明することができる
- ライトクライアントブリッジとバリデーターは、信頼できるバリデーターの規模に依存する。
実際に製品に触れ、自己主権的なWeb3の旅を楽しみながら、ブリッジのセキュリティについてさらに学びを深めていきましょう。
ハッピー・ブリッジング!
お読みいただきありがとうございました。
今後のConnext Networkにご期待ください!