Layer 1/Layer 2におけるトランザクション・ファイナリティ完全ガイド
2023/06/28
2023年5月18日、Ethereumのブロックチェーンで、トランザクション(取引)の「ファイナライズ(最終確定)」が一時的に止まる出来事がありました。これはどういう意味でしょうか?
ファイナリティ(finality)とは、ブロックチェーン上の取引が「もはや変更・巻き戻し・取り消しができないもの」として確定するタイミングを指します。この記事では、ファイナリティとコンセンサスメカニズムの関係、チェーン再編成(reorg)とは何か、そしてLayer 2(L2)プロトコルにおいてファイナリティがどのように測られているかを説明します。最後に、実データをもとに、暗号資産ネットワーク、取引所、クロスチェーン取引、テストネットにおける「ファイナリティ到達までの時間(Time to Finality: TTF)」を比較していきます。
目次
コンセンサスメカニズムとは?
ブロックチェーンのコンセンサスメカニズムは、ネットワークに参加する複数の参加者(ノード)間で「正しい台帳状態」について合意し、一貫性を保つために用いられます。ここでいうコンセンサスメカニズムとは、Sybil耐性メカニズム(攻撃者がネットワークの投票権の過半数を集めることでネットワークの支配を求めることから保護するアプローチ)と、チェーン選択ルール(fork choice rule)を組み合わせたアルゴリズムのことです。 複数のブロックが同じ位置を占める状況では、フォーク選択ルールにより、どのブロックを正当な「チェーンの先頭」とみなすかをノードが決定します。
トランザクションがどの程度のレベル/速さでファイナライズされるかは、こうしたコンセンサスのルールに依存します。
たとえば、
いつ「取引が最終確定した」とみなすのか?
新しいブロックはどれくらいの間隔で作られるのか?
ネットワーク遅延(レイテンシ)はどれくらいか?
ファイナリティの速さとネットワーク安全性のどちらを優先する設計なのか?
といった点は、表1(Konstantopoulos, Buterin, 2021)に示されているコンセンサスメカニズムの内部ルールで決まります。
表1. アルゴリズム別のファイナリティ/reorg頻度/フォーク選択ルール
アルゴリズム | ファイナリティ | Reorg | フォーク選択 |
|---|---|---|---|
Nakamoto型(例: PoW Ethereum / Bitcoin) | なし | 頻繁 | 最長チェーン |
GASPER(例:PoS Ethereum) | 2エポックごと(約12分) | 非常にまれ | 最後に最終化されたブロックの後、最も強いサポートを持つチェーン |
Tendermint³ (pBFT系) | 1ブロックで確定(約1-10秒) | 起こらない | 最終確定済みブロックのみ |
表はMerge後のEthereumの再編成(2021年7月)によるGeorgious KonstantopoulosとVitalik Buterinからのものです。
Nakamoto PoW (Proof of Work)アルゴリズムでは、にファイナリティは「厳密には保証されません」。ただし、ブロックが積み重なるほど、そのブロックが覆される可能性は限りなく小さくなります。最長チェーンを正当とする以上、理論上は「現在の先端より前から始まる、より長いチェーン」が後から生成され、既存チェーンを追い抜く余地が常に残るためです。
一方で、Ethereum 2.0のGASPERは、ほぼ即時のファイナリティが得られます。さらにGASPERには「非アクティビティリーク(inactivity leak)」という非常時の警報機構があります。これは、多数のバリデータが恒久的に停止した場合でもファイナリティを回復するため、停止しているバリデータにペナルティを与え、ステーク量を徐々に削り、最終的にアクティブなバリデータの2/3以上が再び確定処理を行える状態へ戻す仕組みです。
この非アクティビティリークは、検閲耐性(censorship resistance)という観点で特に重要な工学的解決策になります。たとえば、米財務省OFACによるTornado Cash制裁は、Ethereum上での権力バランスに関する議論を引き起こしました。MergeでPoWからPoSへ移行して以降、ステーキング用の大量のETHを保有する取引所に権力が集中しやすくなったためです。
もしOFACが取引所に圧力をかけ、制裁対象取引を含むブロックの検閲やアテステーション拒否を行わせた場合、それらの取引所は事実上「非アクティブなバリデータ」とみなされます。すると非アクティビティリークのルールに従って取引所側は大きな罰金を課され、巨大なステークプールを持つ取引所ほど損失が大きくなり得ます。その結果、取引所がEthereumでステーキングを行うインセンティブ自体が薄れてしまう、というわけです。
TendermintのようなpBFT(Practical Byzantine Fault Tolerance)系のコンセンサスでは、絶対的・瞬時のファイナリティが得られます。トランザクションは実行された瞬間に最終確定します。pBFTは複数ラウンドの投票で合意を形成しますが、Tendermint系チェーンはバリデータ数が比較的少ないため、この投票プロセスが高速かつ効率的に動作します。
チェーン再編成(reorg)とは?
チェーン再編成(reorg)とは、複数のマイナーまたはバリデーターノードが同時に同じ難易度のブロックを作成するときに発生します。ネットワーク内のバリデーターノードは、両方のブロックを受信し、ブロックチェーンの2つの異なるバージョンを追跡することで、フォークを生じます。マイナーが次のブロックを追加するとき、フォーク選択ルール関数の出力に基づいて、フォークのどちら側が正しいかを選択する必要があります。
Ethereumではネットワーク遅延や偶発的なブロック生成競争のため、1〜2ブロック程度の短いreorgは日常的に起きています。ビットコインの歴史の中で、最も重要なチェーン再編成イベントの1つは、2010年に発生したもので、攻撃者が値のオーバーフローの脆弱性を悪用し、自分自身に1860億BTCを与えました。この問題を修正するために、53ブロックが元に戻されました。
EthereumがMerge後にPoSへ移行したことで、reorgの確率は大きく低下しました。それでも2022年5月26日には、Ethereum PoSで7ブロックのreorgが発生しています。深いreorg(多数ブロックの巻き戻し)は、UX劣化、確定の不確実性、そして51%攻撃への脆弱性の増加といった重大な問題をもたらします。
規模の大きなreorg例として、2020年8月のEthereum Classic(ETC)のreorgが挙げられます。当初は51%攻撃の可能性が疑われましたが、後に「該当マイナーが採掘中にネット接続を失った可能性」が指摘されました。
このreorgは約15.4時間続き、多数のブロックに影響しました。事件中、マイナーは約12時間オフラインのまま約3,500ブロックを採掘し、オンライン復帰後に高さ10,904,147付近から大規模なチェーン再編成が起きました。Parity/OpenEthereumノードはこの再編成を処理できずネットワークと同期不能に陥り、結果として一時的なチェーン分断を引き起こしました。
フィナリティとLayer 2
Layer 2プロトコル(L2)は、スケーラビリティ向上と取引高速化のために登場した仕組みです。 L2はLayer 1(L1)の上に構築されるため、L2のTTF(ファイナリティ時間)を考えるには、L2での確定+基盤となるL1での確定の両方を含めて考慮する必要があります。
たとえばPolygonはEthereum上のスケーリングソリューションですが、独自のコンセンサスメカニズムを持つPoSコミットチェーンとして動いています。PolygonのPoSコミットチェーンでは取引の承認が非常に速い一方、Ethereum PoSほど強いファイナリティ保証はありません。
Polygonのバリデータはブロックを生成し、定期的にEthereumメインネットへコミットしますが、コミットチェーン側では競合ブロックが出る可能性があり、状況次第でreorgや巻き戻しが発生し得る、ということです。
以下の表は、主要なL1/L2のファイナリティ時間を比較したものです。
表2. 暗号資産ネットワークのTime to Finality(TTF)比較
チェーン | 中央値最終化時間範囲(降順) | フルノードの数(下限) |
|---|---|---|
Ethereum(現在) | 13-20分(64-95スロット) | Ethernodesあたり5471 |
Zkロールアップ | 約20分の証明生成時間 + 13-20分のETH L1時間 | 分散化する計画のある中央集権的なシーケンサー |
Optimistic | 2-8バッチコミット時間 + 13-20分のETH L1時間 | 分散化する計画のある中央集権的なプロバー |
Ethereum(single-slot finality) | 12秒(執筆時には未稼動) | N/A |
Cosmos Eco(Hub + Canto) | 6-7秒(1ブロック確定) | mintscan、Cantoドキュメントによるアクティブセットあたり100-175
|
Polkadot | 6秒の確率的最終化(BABE経由);12-60秒の決定論的最終化(GRANDPA経由) | アクティブセットの297、合計939 |
Sui | 2-3秒(理論値、執筆時点未稼働) | N/A |
Binance | 3秒 | Bscscanあたり59 |
Polygon | 約2秒(128ブロック) | Polygonscanあたり128 |
Solana | 中央値1-2秒、極端では60-90秒に達する可能性 | Solana Compassあたり2932 |
Fantom | 中央値1-1.5秒、高いアクティビティ時には3-4秒 | 64 |
Avalanche | 確率的トランザクション最終化の0.7-1秒;ブロック最終化の2-2.2秒 | Avascanあたり1182 |
Aptos | 0.9秒 | 104 |
Sei | 0.5秒((理論値、執筆時点未稼働) | N/A |
Messariによる暗号ネットワークにおける最終化時間の初歩的分析レポートからの適応です。
様々な暗号ネットワークにおけるファイナリティまでの時間を理解するには、CAP定理を考慮する必要があります。これは分散システムにおいて、一貫性、可用性、パーティション耐性の3つの特性のうちの2つしか達成できないことを示しています。
Consistency (一貫性)とは、分散システム内のすべてのノードが同じデータを同時に見る保証を指します。ブロックチェーンのファイナリティに関して、一貫性は、ブロックが最終化されたと見なされると、すべてのノードがその有効性に同意することを意味します。
Availability (可用性)は、ブロックチェーンネットワークが引き続き運用可能であり、ノードが新しいブロックに同意するためのコンセンサスプロセスに参加できることを保障します。
Partition tolerance (分断耐性)は、ネットワーク分断や通信障害が発生しても、システムが機能し続ける能力です。
たとえば、大規模な地震が発生し、異なる地域を結ぶ海底ケーブルが重大な損傷を受ける状況を考えましょう。その結果、これらの地域間のネットワーク通信が完全に切断され、ブロックチェーンネットワークにパーティションが生じます。このパーティションにもかかわらず、ブロックチェーンネットワークは各地域で独立して機能し続け、各パーティション内のノードがトランザクションを最終化し、コンセンサスに達することを可能にします。地震の後、ネットワーク接続が復元されると、パーティションはそれぞれのブロックチェーン状態を調整し、同期することができます。
暗号資産取引所とTime to Finality(TTF)
取引所は通常、ユーザーのウォレットに入金または出金を反映させる前に、特定のブロック確認数を待ちます。確認の数は、特定のブロックチェーンが再編成されるかどうかのリスク分析に基づいて大きく異なることがあります。
暗号資産取引所bitFlyerを例に挙げると、ビットコインの場合は3回のブロック確認が必要ですが、Ethereum Classicの場合は20,000回の確認が必要です。これはチェーン上でのトランザクションの最終化からオフチェーン(逆も然り)に関するもので、次に述べるクロスチェーンブリッジの設計の考え方にも関連しています。
表3. 暗号資産取引所のTTF比較
取引所 | 資産 | 最終化までのブロック確認数 |
|---|---|---|
ビットコイン(BTC) イーサリアム(ETH)およびERC20トークン | 入金1回、出金2回** | |
BTC | 2 | |
ビットコイン(BTC) | 3 | |
ライトコイン(LTC) | 12 |
*データは公式ドキュメントおよび発表から取得したものです。取引所名に関連するリンクを参照してください。
**入金と出金の確認数は、明示的に他のものが述べられていない限り同じです。
クロスチェーンブリッジトランザクションのフィナリティ
クロスチェーントランザクションを最終化は、さまざまなブロックチェーンネットワーク間でデータや資産の交換を促進するプロトコルです。これらのブリッジにおいては、最終化を確保することが最も重要です。つまり、ブリッジは、ソースチェーンの状態が安全であり、逆さまにならないと確信があるときにのみ、目的のチェーン上でのソースチェーンの状態に関する確認を提供すべきです。
最終化を普遍的かつ標準化された方法で定義することは困難ですが、異なるコンセンサスモデルやブロックチェーンネットワークには独自の最終化のバリエーションがあるため、これらの課題はブリッジエコシステムにおいて新しい設計の機会を開きます。高価値の資産移転にはより強い最終化が必要な場合がある一方で、価値のないメッセージにはもっと柔軟に最終化に関して考えることができる可能性があります。もう一つのアイデアは、最終化が達成される前にブリッジトランザクションを完了する準備がある流動性プロバイダーを見つけられるメカニズムを作成することですここに記載されています。この分散アプローチはリスクを流動性プロバイダーに移転し、より迅速な引き出しを可能にし、トランザクション時間を短縮します。
表4. プロトコル間のクロスチェーントランザクションの最終化
ブリッジ | 資産 | 必要承認数 | 概算時間 |
|---|---|---|---|
Polygonブリッジ | イーサリアム(ETH) | 64-95 スロット(可能ブロック) | 入金に約5分; 出金に約45分から3時間(PoSブリッジ); 約7日(プラズマブリッジ) |
Optimismブリッジ | イーサリアム(ETH) | 64-95 スロット(可能ブロック) | 入金に約20分;出金に約20分(サードパーティブリッジ); 約7日(公式ブリッジ) |
Algorand(USDC) | 1 | 約5秒 |
*データは公式ドキュメントや発表、およびEtherscan、Polygonブリッジエクスプローラー、マルチチェーンスキャンから取得されています。
テストネットにおけるフィナリティ
公共のテストネットは、プロトコル開発者やスマートコントラクト開発者が、対応するメインネットブロックチェーンに展開する前に、プロトコルのアップグレードや潜在的なスマートコントラクトを本番に近い環境でテストするために使用されるネットワークです。ほとんどのテストネットは、当初、許可された権限証明(PoA)コンセンサスメカニズムを採用していました。PoAでは、トランザクションの最終化は、ブロックを検証して最終化する権限を持つ限られた数の信頼できるバリデーターによって達成されます。テストネットのETHには実際の価値がないため、ほとんどの人はファaucetsからテストネットETHを取得します。
クライアント開発者によって現在維持されている2つのテストネットは、GoerliとSepoliaです。Sepoliaは現在推奨されており、Goerliは廃止されています。Sepoliaは比較的新しいですが、ブロックの最終化は約12-24秒ごとに発生します。Goerliは、確立されたテストネットですが、間もなく廃止されます。約12秒ごとにブロックの最終化を達成します。L2テストネットに関しては、Arbitrumは約1-2秒ごとにブロックの最終化を達成し、Optimism Goerliは約2秒ごとにブロックを最終化します。テストネットについての詳細はこちらをお読みください。
結論
この記事では、トランザクションの最終化とその他の設計要因との間のコンセンサスプロトコルのトレードオフや、チェーンの再編成の頻度について説明しました。さまざまなL1およびL2、暗号取引所、ブリッジ、テストネットにおける最終化までの時間を探求しました。最終化の概念には多くの複雑さがありますが、Ethereumの慎重なアプローチにより、5月18日の停止は重大な影響を及ぼしませんでした。このイベント以降、研究者たちは最終化問題の引き金となった原因について未だ不明な点が残っています。
