2023年5月18日、イーサリアムのブロックチェーンがトランザクションの最終処理を一時停止した。これは何を意味するのか。 ファイナリティとは、 ブロックチェーン上のトランザクションが不変とみなされ、完了後に変更、取り消し、キャンセルができなくなる時点のことである。この記事では、最終性とコンセンサスメカニズムの関係、チェーンの再編成とは何か、レイヤー2プロトコルで最終性がどのように測定されるのかを探る。最後に、暗号ネットワーク、暗号取引所、クロスチェーン・トランザクション、テスト・ネットワークのファイナリティまでの時間をデータで比較する。
目次
コンセンサス・メカニズムとは何か。
コンセンサスメカニズムは、ブロックチェーンネットワークにおいて、ネットワーク内の複数の参加者またはノード間の合意と一貫性を達成するために使用される。コンセンサスメカニズムとは、シビル耐性メカニズム(ネットワークの投票力の過半数を集めることで支配権を得ようとする攻撃者からネットワークを保護するアプローチ)と、チェーン選択ルール(別名フォーク 選択 ルール)1を 組み合わせたアルゴリズムを 指す。
取引の最終性のレベルとスピードは、コンセンサス方式の基本的なルールによって決定される。取引はいつ確定するのか。新しいブロックの生成にかかる時間は。ネットワークの待ち時間は。優先されるのはトランザクションの確定速度か、それともネットワークのセキュリティか。これらの質問に対する答えは、表1(Konstantopoulos, Buterin, 2021)2に示すように、コンセンサスメカニズムの中で決定される。
NakamotoのPoWアルゴリズムにおける最終性は決して保証されないが、ブロックが増えるにつれてその確実性は増していく。フォーク選択ルールは最も長いチェーンを選択するため、与えられたブロックに対して、誰かが現在のチェーンの最新のブロックより少し前に開始した、より長いチェーンを作成する可能性が常に存在する4。
一方、イーサリアム2.0のGASPERは ほぼ即時の最終決定を提供する。このコンセンサス・プロトコルには、「非活動リーク」として知られる火災警報メカニズムも組み込まれている。その目的は、非活動的なバリデーターにペナルティーを課し、活動的なバリデーターの少なくとも⅔がファイナライズを再開するまで、彼らのステークを徐々に減少させることで、「多数のバリデーターが恒久的に失敗した場合にファイナリティを回復する」ことである。非アクティブリークは、検閲への抵抗の場合に特に重要な技術的解決策である。例えば、米国財務省外国資産管理局(OFAC)によるトルネードキャッシュへの最近の制裁は、イーサリアム・ブロックチェーンにおける権力の移行に関する議論を呼び起こした。MergeとPoWからPoSへの移行以降、ステーキング用のコインを大量に保有する暗号取引所に権力の著しい集中が見られる。もしOFACが暗号取引所に圧力をかけて、OFACが禁止した取引を含むブロックを検閲し、認証することを拒否した場合、暗号取引所が不活発なバリデーターとして機能していることを意味する。非アクティブ・リークのルールに従えば、これらの非アクティブ・バリデーターはペナルティを受けることになり、多額の非アクティブ・プールを保有する大手暗号取引所には多額の罰金が科される可能性がある。その結果、イーサリアムネットワークにおけるステーキング行為は、これらの取引所にとってその目的を失うことになる。
実用的なビザンチンフォールトトレランス(pBFT)ベースのコンセンサスは、Tendermintのように、絶対的なインスタントファイナリティを持っています。トランザクションは実行された瞬間に確定する。コンセンサスを得るために、pBFTは複数ラウンドの投票プロセスを採用している。Tendermintベースのブロックチェーンはバリデーターの数が少ないため、このプロセスを高速かつ効率的に行うことができる。
チェーン再編成とは何か。
チェーンの再編成(reorgs)は、複数のマイナーまたはバリデータノードが同時に同じような難易度のブロックを作成した場合に発生する。ネットワーク内のバリデータノードは両方のブロックを受け取り、ブロックチェーンの2つの異なるバージョンを追跡するため、フォークが発生する。マイナーが次のブロックを追加する際には、クライアントが計算したフォーク選択ルール関数の出力に基づいて、フォークのどちらが正しいかを選択しなければならない。
イーサリアムでは、ネットワークの遅延や意図しないブロック生成の競合状態により、短い1-2ブロックの再編成が毎日起こっている。ビットコインの歴史において、最も重要なチェーン再編成イベントの1つは、攻撃者が値のオーバーフローの脆弱性を悪用し、自分自身に1860億BTCを付与した2010年に発生しました。この問題を修正するために、53のブロックが差し戻された。マージ後にイーサリアムがPoSに切り替わったことで、チェーン再編成の可能性は減少しました。にもかかわらず、2022年5月26日にイーサリアムのPoSは7ブロックのチェーン再編成を経験しました。深いチェーンの再編成は、ユーザーエクスペリエンスの低下に関連するコスト、不確実性、51%攻撃に対する脆弱性の増加などの 結果をもたらします。
規模的に重要なチェーン再編成イベントの例は、2020年8月に行われたイーサリアムクラシック(ETC)の再編成である。当初は51%攻撃の可能性があると考えられていたが、その後の報告によると、この再編成は問題の採掘者が採掘中にインターネットへのアクセスを失ったことが原因であった可能性が指摘されている。この再編成は約15.4時間続き、相当数のブロックに影響を与えた。このイベント中、あるマイナーは、約12時間オフラインの間に約3,500ブロックを採掘した。このマイナーがオンラインに戻ると、ブロック10,904,147から大幅なチェーン再編成が発生した。Parity / OpenEthereumノードは再編成に対応できず、ネットワークとの同期が取れなくなり、一時的にチェーンが分裂しました。
ファイナリティとレイヤー2
レイヤー2プロトコル(L2 )は スケーラビリティと トランザクション速度のソリューションとして登場した。これらのプロトコルはレイヤー1のブロックチェーン(L1)の上に構築されているため、ファイナリティまでの時間を計算するためには、レイヤー2とその下のレイヤー1の両方でトランザクションをファイナリティするのに必要な時間を考慮する必要がある。イーサリアム上に構築され、独自のコンセンサスメカニズムで運用されているスケーリングソリューションであるポリゴンを考えてみよう。PolygonはPoSコミットチェーンを使用しており、トランザクションの確認時間を短縮しているが、EthereumのPoSと同じレベルの最終性を提供していない。PolygonのPoSコミットチェーンでは、バリデータがブロックを作成し、定期的にイーサリアムのメインネットにコミットする。しかし、コミットチェーンはイーサリアムのPoSのような最終性の保証がないため、特に競合するブロックが提案された状況では、チェーンの再編成やブロックの差し戻しが発生する可能性があります。
以下の表は、さまざまなL1、L2における最終性を比較したものである。
この定理は、分散システムでは、一貫性、可用性、パーティション耐性の3つの特性のうち2つしか達成できないというものである。
一貫性とは、分散システムのすべてのノードが同時に同じデータを見ることを保証することを指す。ブロックチェーンの最終性という観点では、一貫性とは、ブロックが最終化されたとみなされた時点で、すべてのノードがその有効性に同意することを意味する。
可用性は、ブロックチェーン・ネットワークが稼働し続け、ノードがコンセンサス・プロセスに参加して新しいブロックに合意できることを保証する。
パーティション・トレランスとは、ネットワーク・パーティションや通信障害が発生しても、システムが機能し続ける能力のことである。例えば、大地震が発生し、異なる地域を結ぶ海底ケーブルに深刻なダメージを与えた場合を考えてみよう。その結果、これらの地域間のネットワーク通信が完全に遮断され、ブロックチェーン・ネットワークにパーティションが生じる。このパーティションにもかかわらず、ブロックチェーン・ネットワークは各地域で独立して機能し続け、各パーティション内のノードがトランザクションを確定し、コンセンサスに達することができる。地震後にネットワークの接続性が回復すれば、パーティションはそれぞれのブロックチェーンの状態を調整し、同期させることができる。
暗号取引所と最終期限(TTF)*について
取引所は通常、ユーザーのウォレットに入出金を反映させる前に、特定のブロック確認回数を待つ。確認回数は、特定のブロックチェーンが再編成を受けるかどうかのリスク分析に基づいて大きく変わる可能性がある。取引所のbitFlyerを例にとると、ビットコインの場合は3回のブロック確認が必要ですが、イーサリアムクラシックの場合は2万回のブロック確認が必要です。これはオンチェーンからオフチェーンへの(あるいはその逆の)取引の最終性であり、次のセクションで見るように、クロスチェーンブリッジの設計者が最終性についてどのように考えているかに関連している。
*データは公式文書および公式発表による。各取引所名のリンク先をご参照ください。
**特に明記されていない場合、入出金の確認回数は同じです。
クロス・チェーン・ブリッジ取引の最終性
クロスチェーンブリッジは、多様なブロックチェーンネットワーク間でのデータや資産の交換を促進するプロトコルである。これらのブリッジに関しては、最終性を確保することが最も重要である。つまり、ブリッジは、ソースチェーンの状態が安全であり、取り消されることがないと確信できる場合にのみ、ソースチェーンの状態に関する確認をデスティネーションチェーンに提供する必要があります。
コンセンサスモデルやブロックチェーン・ネットワークによって最終性のバリエーションが異なるため、普遍的かつ標準的な方法で最終性を定義することは困難であるが、これらの課題はブリッジ・エコシステムにおける新たな設計の機会を開くものである。可能性のある創造的な解決策のいくつかは、異なる用途のために最終性をカスタマイズすることである。例えば、高価値の資産移転にはより強力なファイナリティが必要かもしれないが、非価値のメッセージはファイナリティの面でより柔軟であることができる。もう1つのアイデアは、ここに書かれているように、最終性が達成される前に、ユーザーがブリッジ取引を完了する意思のある流動性プロバイダーを見つけることができるメカニズムを構築することである。この分散型アプローチは、リスクを流動性プロバイダーにシフトさせ、より迅速な引き出しを可能にし、取引時間を短縮する。
テストネットのファイナリティ
パブリック・テストネットは、プロトコル開発者やスマート・コントラクト開発者が、プロトコルのアップグレードや潜在的なスマート・コントラクトを、対応するメインネットのブロックチェーンにデプロイする前に、本番のような環境でテストするために使用するネットワークである。ほとんどのテストネットは当初、許可制のPoA(Proof-of-Authority) コンセンサスメカニズムを採用していた。PoAでは、ブロックを検証し確定させる権限を持つ、限られた数の信頼できるバリデータによって取引の最終性が達成される。テストネット上のETHには実質的な価値がないため、ほとんどの人はテストネットのETHを蛇口から入手する。
現在、クライアント開発者によって維持されている2つのテストネットはGoerliとSepoliaである。Goerliは非推奨となっているため、現在はSepoliaが推奨されている。Sepoliaは比較的新しいが、ブロックのファイナライズは約12~24秒ごとに行われる。一方、Goerliは確立されたテストネットだが、まもなく非推奨となる。Goerliは約12秒ごとにブロックファイナリティを達成する。L2テストネットに関しては、Arbitrumは 〜1〜2秒ごとにブロックのファイナリティを達成し、 Optimism Goerliは 〜2秒ごとにブロックをファイナリティする。テストネットについての詳細はこちら。
結論
この記事では、コンセンサス・プロトコルの取引最終性と他の設計要素とのトレードオフ、およびチェーン再編成の頻度について取り上げた。様々なL1、L2、暗号取引所、ブリッジ、テストネットにおいて、ファイナリティに至るまでの時間を調査した。ファイナリティの概念には非常に複雑なものがありますが、イーサリアムの保守的なアプローチにより、5月18日の停止は深刻な結果をもたらしませんでした。この出来事以来、研究者たちは何がファイナライゼーションの問題の引き金になったのか、まだ分かっていない。
参考文献
1.https://usa.visa.com/solutions/crypto/consensus-mechanisms.html
2.https://www.paradigm.xyz/2021/07/ethereum-reorgs-after-the-merge
3.https://docs.tendermint.com/v0.34/introduction/what-is-tendermint.html
4.https://blog.ethereum.org/2016/05/09/on-settlement-finality