blockchainjapan’s blog

旬のブロックチェーンを記事を厳選して提供!

なぜ有効性証明がブリッジングにとって適切なソリューションではないのか


なぜ有効性証明がブリッジングにとって適切なソリューションではないのか

Hadas Zeilberger

ここにきて、イーサリアムでのゼロ知識ロールアップの発表が相次いでおり、界隈ではブロックチェーンのスケーラブルなインフラとして、これらの有効性証明に基づくシステムに期待が寄せられています。

有効性証明は、効果的なクロスチェーン通信(またはブリッジング)ソリューションとして紹介されることもあります。有効性証明は、レイヤー2スケーラビリティソリューションと同じように、ブリッジングにおける正直な参加者の必要性を回避できるとされているのです。

残念ながら、これは事実ではありません。

Connextでは、ブロックチェーン間の通信をより安全かつ効率的にする方法を常に研究しており、技術と実現可能なソリューションに光を当てた分析を、学習記事として提供していきます。

この記事では、有効性証明とは何か、そしてなぜ有効性証明がブリッジングにとっての適切なソリューションではないのかについて説明していきます。

ブロックチェーンとコンセンサス

ブロックチェーン・ネットワークは、ピアツーピア・ネットワークであり、全ての参加者が、増え続けるトランザクション台帳を記録しています。ここでの参加者はそれぞれ、自分が所有するコンピュータに、この台帳のコピーをローカルに保存します。

参加者は、事前に合意したコンセンサス・プロトコルと呼ばれる一連のルールを使用します。コンセンサス・プロトコルは、台帳の容量が大きくなっても、ローカルに保存された全ての台帳が同一であることを保証する仕組みです。参加者の過半数プロトコルに従っている限り、この保証は維持されます。

ブロックチェーントランザクションが提出されると、そのトランザクションはピアツーピアのネットワークに伝搬されます。参加者はトランザクションを受信するとそれを集め、ブロックに並べていきます。その後、参加者はコンセンサス・プロトコルを使って、新しいトランザクションのセットが台帳をどのように変更するかを決定します。

コンセンサスプロトコルは2つのフェーズで動作します:

フェーズ 1:ブロックを台帳に追加するために、特定の操作(関数)を実行する必要があります。関数は一連の取引を入力として受け取り、それらのトランザクションに基づいて新しい台帳を出力します。これを実行すると、新たな元帳の候補が作成され、これをネットワークの他の参加者に伝播していきます。

フェーズ 2:各参加者が、ネットワーク上の他の参加者から異なる元帳候補を受け取ります。参加者は、どの候補台帳を選択すべきかを指示する別の関数を使用します。この関数を実行し、正しい候補台帳を手に入れた後、フェーズ 1と同じ関数を実行し、候補台帳が正しく計算されたことを検証します。検証に成功した場合、これをローカルな元帳として取り込み、他の候補は全て破棄されます。

ブロックチェーンの合意形成プロトコル

有効性証明

有効性証明は、フェーズ1の計算を証明するものであり、証明者は、ある取引から新しい元帳の候補を出力し、その元帳が正しい関数で計算されたことを証明することができます。

証明という言葉を使うのには理由があります。pが有効性証明である場合、有効な新しい元帳が与えられれば真を出力する検証関数が存在します。一方で、不正に計算された元帳や不正な取引セットを与えられた場合、検証関数はほぼ100%の確率で偽を出力します。

この場合、証明者が誠実であると仮定する必要はなく、これは非常に強力な機能であるといえます。数学、確率、(計算の)限界の魔法のおかげで、たとえ証明者が不正をしたとしても、物理的に不正をすることはできないのです。

Validity Proofは、zk-rollupのようなスケーリングソリューションにとって非常に便利なものとして機能します。

zk-rollupはこれらのトランザクションを処理した後、新しい候補台帳と有効性証明(フェーズ1の計算の証明)をそのレイヤー1ブロックチェーンに提出します。

新しい候補台帳と証明はピアツーピアのネットワークに伝搬されるので、参加者はフェーズ1の計算をやり直すことなく、証明だけを検証すればよいことになります。

重要なことは、参加者は複数の取引を同時に検証できるため、フェーズ1の計算時間が短縮されることです。

このような最適化が可能なのは、有効性証明の鉄壁の安全性、つまり証明者が物理的に不正を行えないからであり、たとえオフチェーンで計算しても不正はできないことを意味します。

zkロールアップは、オフチェーンのコンピュータがトランザクションを処理し、その結果と証明をLayer-1 Blockchainに送信します
zkRollupは、コンセンサスプロセスのフェーズ1をより効率化することが可能です。
一方、フェーズ2は依然として下位のブロックチェーンに委ねられています。

有効性証明とブリッジング

ブロックチェーンAとブロックチェーンBの間の安全なブリッジングプロトコルは、あるトランザクションブロックチェーンAで処理されて台帳に追加されると、事前に指定された時間間隔内にブロックチェーンBの台帳に処理されて追加されることを保証します。

zk-rollupsにおける有効性証明のセキュリティと信頼の前提を模倣したい場合、ブロックチェーンAはブロックチェーンBに対してコンセンサスプロトコルのフェーズ1とフェーズ2の両方を証明する必要があります。

フェーズ1を証明する方法は、zk-rollupと同じように有効性証明を提供するだけです。Phase 1の計算では、正しい関数が一連のトランザクションの処理に使われたことを確認するだけでよく、そのトランザクションが何であるかは気にしません。ただ、受け入れられるトランザクションであること、そして新しい候補台帳を計算する際に正しく処理されることだけが重要となります。

一方、フェーズ2については、証明することができません。このことを説明するために、フェーズ2の計算の証明から何がわかるかを考えてみましょう。フェーズ2の計算の証明は、候補となる台帳の集合が与えられたとき、勝利した台帳が正しく選択されたことを示すものです。

しかし、ブロックチェーンBが受け取ったこの候補台帳のセットが、ブロックチェーンAのp2pネットワークに伝播された候補台帳を正確に反映していることをどうやって知ることができるのでしょうか。主張された入力がシステムの実際の物理的現実を反映しているかどうかを知る方法は存在しません。

暗号証明は、静的なデータしか符号化できず、公に知られている関数と、その関数で使われたデータをエンコードするには最適です。しかし、刻々と変化するパーミッションレス・ネットワークの中で、刻々と変化する情報の流れを暗号化することはできないのです。

フェーズ2の証明を提供する方法は存在せず、完全にトラストレスなブリッジングプロトコルを作る方法はありません。

これまでにも多くのブリッジが、これを学んでいます。例えばRoninは、9人のメンバーのうち5人が署名した場合、トランザクションが「証明された」とみなされるブリッジを持っていました。4月には、ハッカーが9つの鍵のうち5つにアクセスすることに成功し、受信側のブロックチェーンに不正な取引を送るという攻撃の被害に遭いました。

このとき、Roninは、候補台帳を受け入れるための機能として、9人の検証者のうち5人が署名していることを確認するフェーズ2の計算証明を提供した。しかし、実際の物理システムの状態の証明を提供することができなかったため、発信元のブロックチェーンブロックチェーンA)の台帳に投稿された実際のトランザクションは検閲され、発信先のブロックチェーンブロックチェーンB)には送られないという検閲攻撃の犠牲となったのです。

ブリッジングソリューションには、信頼できる当事者が必要です。この事実の正式な証明は、ここにあります。この信頼を多くの人に分散させることは可能であり、ゲーム理論的な手法で悪行を無効化することも可能である。しかし、完全にトラストレスなブリッジングプロトコルを作成する方法はありません。

安全なブリッジングプロトコルでは、誰かが両方のブロックチェーンを監視して、互いの整合性を確認することが義務付けられます。適切に設計されたブリッジは、そのような監視者に要求される信頼を最小化させていきます。これを実現するプロトコルの1つがoptimisticブリッジです。

Optimisticブリッジ

Optimisticブリッジは、信頼できる第三者が必要であるという事実を受け入れる設計がなされています。そして、その信頼を分散させ、その信頼を最小化する形でインセンティブをデザインすることに取り組んでいるのです。

具体的には、現在のOptimisticブリッジは、外部の参加者のネットワークにタスクを委ねることで機能します。具体的に、ウォッチャーと呼ばれる参加者が、ブロックチェーンBをポーリングし、その台帳をブロックチェーンAと比較し、矛盾がないかを探します。ウォッチャーがブロックチェーン間の不一致を報告すると、署名された不正なトランザクションを送信し、そのトランザクションはアップデータによって署名されます。

ここでは、アップデータとウォッチャーが誠実であることを保証するための暗号メカニズムが存在しないことに気づくかもしれません。前述のように、そのような仕組みは存在しないのです。その代わりに、正直に行動することが彼らの最善の利益となるように、金銭的なインセンティブを使用しています。トランザクションの署名と送信を担当するアップデータは、その役割を担うために資産をステークする必要があります。仮にあるウォッチャーが不正を報告した場合、この資産は没収され、他のウォッチャーに渡されることになります。

Optimisticブリッジング

このシステムで重要なことは、「システムを安全に保つためには、チェーンを監視する正直なウォッチャーが一人いればよい」ということです。

Optimisticシステムは現在も改良が続けられています。Connextの研究チームの主要目標の1つは、暗号学とゲーム理論の組み合わせによって、信頼を最小化できるシステムを設計することです。しかし、現在の仕組みであっても、あらゆるブロックチェーンブリッジシステムにとって非常に有用なものであることに間違いありません。

まとめ

この記事の目的は、ブリッジングにおける有効性証明の概念に光を当て、ブリッジングにおける「有効性証明 vs 不正証明」の議論にニュアンスを加えることでした。

お読みいただきありがとうございました。
今後のConnext Networkにご期待ください!


Connext Networkについて

Connext Networkは、チェーンとロールアップの間で高速かつ信頼性の高い通信を行うためのネットワークです。この分野に存在する相互運用システムにおいて、新たな信頼性の仮定を導入することなく、低コストかつ迅速に実行できる唯一のものです。Connextは、ブリッジやその他のネイティブなクロスチェーンアプリケーションを構築する開発者を対象としており、現在までに13億ドルを超えるトランザクションがConnextのネットワークを通過しています。

Website | Documentation | Twitter | Discord | Github | Blog

Connextクロスチェーンブリッジ: https://bridge.connext.network/

日本語版チャンネルのフォローはこちら🤲