レイヤー1(および2)のトランザクション最終性について知っておくべきこと

2023/06/28

2023年5月18日、Ethereumブロックチェーンは一時的にトランザクションの最終化を停止しました。これはどういう意味でしょうか?最終化とは、ブロックチェーン上のトランザクションが不変であり、完了後に変更、取り消し、キャンセルできないと見なされるポイントです。この記事では、最終化とコンセンサスメカニズムの関係、チェーンの再編成とは何か、Layer 2プロトコルにおける最終化の測定方法について探求します。最後に、データを深掘りし、暗号ネットワーク、暗号取引所、クロスチェーントランザクション、テストネットの最終化までの時間を比較します。

目次

  1. コンセンサスメカニズムとは何ですか?

  2. チェーンの再編成とは何ですか?

  3. 最終化とLayer 2

  4. 暗号取引所と最終化までの時間(TTF)

  5. クロスチェーンブリッジトランザクションの最終化

  6. テストネットにおける最終化

  7. 結論

コンセンサスメカニズムとは何ですか?

コンセンサスメカニズムは、ブロックチェーンネットワークにおいて、ネットワーク内の複数の参加者またはノードの間で合意と一貫性を達成するために使用されます。コンセンサスメカニズムは、Sybil耐性メカニズム、すなわち、攻撃者がネットワークの投票権の過半数を集めることでネットワークの支配を求めることから保護するアプローチと、チェーン選択ルール(別名フォーク選択ルール)を組み合わせたアルゴリズムを指します。 複数のブロックが同じ位置を占める状況では、フォーク選択ルールにより、ノードはチェーンの先頭にある正しいブロックを1つ選択できます。

トランザクションの最終化のレベルと速度は、コンセンサスメソッドの根本的なルールによって決定されます。トランザクションは、いつ最終化されたと見なされますか?新しいブロックを生成するのにはどれくらいの時間がかかりますか?ネットワークの遅延はどのくらいですか?トランザクションの最終化の優先順位は速度かネットワークのセキュリティか?これらの質問の答えは、表1(Konstantopoulos, Buterin, 2021)に示されているコンセンサスメカニズム内で決まります。

表1. 最終化までの時間、チェーンの再編成(再編成)頻度、アルゴリズムに基づくフォーク選択ルール

アルゴリズム

最終化

再編成

フォーク選択

Nakamoto(例えば PoW Ethereum / Bitcoin)

なし

頻繁

最長チェーン

GASPER(例えば PoS Ethereum)

毎2エポック(約12分)

非常にまれ

最後に最終化されたブロックの後、最も強いサポートを持つチェーン

Tendermint³

単一ブロック(約1-10秒)

決して

最終化されたブロックのみ

表はマージ後のEthereumの再編成(2021年7月)によるGeorgious KonstantopoulosとVitalik Buterinからのものです。

Nakamoto PoWアルゴリズムにおける最終化は決して保証されませんが、より多くのブロックが追加されるにつれてますます確実になります。フォーク選択ルールが最長チェーンを選択するため、任意のブロックに対して、誰かが現在のチェーンの最新ブロックよりも前の段階から開始した長いチェーンを作成する可能性は常にあります。

一方で、Ethereum 2.0GASPERは、ほぼ即時の最終化を提供します。このコンセンサスプロトコルは、「非活動漏れ」として知られる火災警報メカニズムも組み込んでいます。その目的は「多数のバリデーターの恒久的な故障が発生した場合に最終化を回復する」ことであり、非活動バリデーターに対してペナルティを課し、少なくとも⅔のアクティブバリデーターが再び最終化を行うまでその持ち分を徐々に減少させます。非活動漏れは、検閲耐性のケースにおいて特に重要なエンジニアリングソリューションです。例えば、アメリカ財務省の外国資産管理局(OFAC)によるトルネードキャッシュへの最近の制裁は、Ethereumブロックチェーンにおける権力のシフトに関する議論を引き起こしました。マージ以来、PoWからPoSへの移行により、暗号取引所における権力の集中が観察されています。なぜなら、彼らはステーキング用のコインの最大量を所有しているからです。OFACが暗号取引所に対して、OFACが禁止しているトランザクションを含むブロックの検証を検閲したり拒否したりするよう圧力をかけるなら、それは暗号取引所が非活動のバリデーターとして機能していることを示唆します。非活動漏れのルールに従えば、これらの非活動のバリデーターはペナルティを受けることになり、重要な非活動プールを持つ大手暗号取引所に対して大きな罰金が発生する可能性があります。その結果、Ethereumネットワークにおけるステーキングの行為は、これらの取引所にとってその目的を失うことになります。

実用的ビザンチンフォールト耐性(pBFT)に基づくコンセンサスは、Tendermintのように絶対的な即時最終化を持ちます。トランザクションは実行された瞬間に最終化されます。コンセンサスを達成するために、pBFTはマルチラウンドの投票プロセスを採用します。Tendermintベースのブロックチェーンは少数のバリデーターを持ち、このプロセスを迅速かつ効率的にします。

チェーンの再編成とは何ですか?

チェーンの再編成(再編成)は、複数のマイナーまたはバリデーターノードが同時に同じ難易度のブロックを作成するときに発生します。ネットワーク内のバリデーターノードは、両方のブロックを受信し、ブロックチェーンの2つの異なるバージョンを追跡することで、フォークを生じます。マイナーが次のブロックを追加するとき、彼らはクライアントによって計算されたフォーク選択ルール関数の出力に基づいて、フォークのどちら側が正しいかを選択する必要があります。

1-2ブロックの短い再編成は、ネットワークの遅延や意図しないブロック生産レースの条件により、Ethereumでは毎日発生します。ビットコインの歴史の中で、最も重要なチェーン再編成イベントの1つは、2010年に発生したもので、攻撃者が値のオーバーフローの脆弱性を悪用し、自分自身に1860億BTCを与えました。この問題を修正するために、53ブロックが元に戻されました。マージ後のEthereumにおけるPoSへの切り替えは、チェーン再編成の可能性を減少させました。それにもかかわらず、2022年5月26日、Ethereum PoSでは7ブロックのチェーン再編成が発生しました。深いチェーンの再編成は、ユーザーエクスペリエンスの悪化、不確実性、51%攻撃への脆弱性の増加などの影響があります。

スケールの観点からの重要なチェーン再編成イベントの例は、2020年8月に発生したEthereum Classic(ETC)再編成です。当初は51%攻撃の可能性があると考えられましたが、後の報告では、再編成はマイナーが採掘中にインターネット接続を失ったことによる可能性があることが示されました。この再編成は、約15.4時間持続し、かなりの数のブロックに影響を与えました。このイベント中に、マイナーは約3,500ブロックを12時間以内にオフラインでマイニングしました。マイナーが再びオンラインになると、大規模なチェーン再編成が発生し、ブロック10,904,147から開始されました。Parity / OpenEthereumノードは再編成を処理できず、ネットワークと同期を失い、一時的なチェーン分裂を引き起こしました。

最終化とLayer 2

Layer 2プロトコル(L2)は、スケーラビリティとトランザクション速度の解決策として登場しました。 Layer 1ブロックチェーン(L1)の上に構築されているため、最終化までの時間を計算するには、Layer 2と基盤となるLayer 1の両方でトランザクションを最終化するのに必要な時間を考慮する必要があります。たとえば、Ethereumの上に構築され、独自のコンセンサスメカニズムを持つスケーリングソリューションであるPolygonを考えてみましょう。このプロジェクトは、より速いトランザクション確認時間を提供するPoSコミットチェーンを使用していますが、EthereumのPoSと同じレベルの最終化を提供していません。 PolygonのPoSコミットチェーンでは、バリデーターはブロックを作成し、それらを定期的にEthereumメインネットにコミットします。ただし、コミットチェーンはEthereumのPoSほど同じ最終化の保証を持たないため、特に競合ブロックが提案される状況では、チェーンの再編成またはブロックの復元の可能性があります。

以下の表は、さまざまなL1およびL2間の最終化を比較しています。

表2. 暗号ネットワークの最終化までの時間(TTF)の比較

チェーン

中央値最終化時間範囲(降順)

フルノードの数(下限)

Ethereum(現在)

13-20分(64-95スロット)

Ethernodesあたり5471

Zkロールアップ

約20分の証明生成時間 + 13-20分のETH L1時間 

分散化する計画のある中央集権的なシーケンサー

楽観的ロールアップ

2-8バッチコミット時間 + 13-20分のETH L1時間

分散化する計画のある中央集権的なプロバー

Ethereum(単一スロット最終化)

12秒(執筆時にはライブではありません)

N/A(単一スロット最終化はライブではなく、その時点でのノード数不明)

Cosmos Eco(Hub + Canto)

6-7秒の単一ブロック最終化

mintscan、Cantoドキュメントによるアクティブセットあたり100-175


Cosmos hubの合計537


Polkadot

6秒の確率的最終化(BABE経由);12-60秒の決定論的最終化(GRANDPA経由)

アクティブセットの297、合計939

Sui

2-3秒(理論的に、Suiは執筆時にはライブではありません)

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秒(理論的に、Seiは執筆時にはライブではありません)

N/A

Messariによる暗号ネットワークにおける最終化時間の初歩的分析レポートからの適応です。

様々な暗号ネットワークにおける最終化までの時間を理解するには、CAP定理を考慮する必要があります。これは分散システムにおいて、一貫性、可用性、パーティション耐性の3つの特性のうちの2つしか達成できないことを示しています。

一貫性とは、分散システム内のすべてのノードが同じデータを同時に見る保証を指します。ブロックチェーンの最終化に関して、一貫性は、ブロックが最終化されたと見なされると、すべてのノードがその有効性に同意することを意味します。

可用性は、ブロックチェーンネットワークが引き続き運用可能であり、ノードが新しいブロックに同意するためのコンセンサスプロセスに参加できることを保障します。

パーティション耐性は、ネットワークパーティションや通信障害が発生しても、システムが機能し続ける能力です。たとえば、大規模な地震が発生し、異なる地域を結ぶ海底ケーブルが重大な損傷を受ける状況を考えましょう。その結果、これらの地域間のネットワーク通信が完全に切断され、ブロックチェーンネットワークにパーティションが生じます。このパーティションにもかかわらず、ブロックチェーンネットワークは各地域で独立して機能し続け、各パーティション内のノードがトランザクションを最終化し、コンセンサスに達することを可能にします。地震の後、ネットワーク接続が復元されると、パーティションはそれぞれのブロックチェーン状態を調整し、同期することができます。

暗号取引所と最終化までの時間(TTF)*

取引所は通常、ユーザーのウォレットに入金または出金を反映させる前に、特定のブロック確認数を待ちます。確認の数は、特定のブロックチェーンが再編成されるかどうかのリスク分析に基づいて大きく異なることがあります。取引所bitFlyerを例に挙げると、ビットコインの場合は3回のブロック確認が必要ですが、Ethereum Classicの場合は20,000回の確認が必要です。これはチェーン上でのトランザクションの最終化からオフチェーン(逆も然り)に関するもので、今後のセクションで確認しようとするクロスチェーンブリッジの設計者が最終化を考え方に関連しています。

表3. 暗号取引所の最終化時間の比較

取引所

資産

最終化までのブロック確認数

Binance

ビットコイン(BTC)



イーサリアム(ETH)およびERC20トークン

入金1回、出金2回**

12

Coinbase

BTC

ETHおよびERC20

Ethereum Classic

ライトコイン(LTC)

2

14

3,000

6

Coincheck

ビットコイン(BTC)

3

bitFlyer

ライトコイン(LTC)

ビットコインキャッシュ(BCH)

ポルカドット(DOT)

ステラ(XLM)

12

30

N/A

10

*データは公式ドキュメントおよび発表から取得したものです。取引所名に関連するリンクを参照してください。

**入金と出金の確認数は、明示的に他のものが述べられていない限り同じです。

クロスチェーンブリッジトランザクションの最終化

クロスチェーントランザクションを最終化は、さまざまなブロックチェーンネットワーク間でデータや資産の交換を促進するプロトコルです。これらのブリッジにおいては、最終化を確保することが最も重要です。つまり、ブリッジは、ソースチェーンの状態が安全であり、逆さまにならないと確信があるときにのみ、目的のチェーン上でのソースチェーンの状態に関する確認を提供すべきです。

最終化を普遍的かつ標準化された方法で定義することは困難ですが、異なるコンセンサスモデルやブロックチェーンネットワークには独自の最終化のバリエーションがあるため、これらの課題はブリッジエコシステムにおいて新しい設計の機会を開きます。高価値の資産移転にはより強い最終化が必要な場合がある一方で、価値のないメッセージにはもっと柔軟に最終化に関して考えることができる可能性があります。もう一つのアイデアは、最終化が達成される前にブリッジトランザクションを完了する準備がある流動性プロバイダーを見つけられるメカニズムを作成することですここに記載されています。この分散アプローチはリスクを流動性プロバイダーに移転し、より迅速な引き出しを可能にし、トランザクション時間を短縮します。

表4. プロトコル間のクロスチェーントランザクションの最終化

ブリッジ

資産

最終化までのブロック確認数

概算時間

Polygonブリッジ 

イーサリアム(ETH)

64-95 スロット(可能ブロック)

入金に約5分;

出金に約45分から3時間(PoSブリッジ);

約7日(プラズマブリッジ)

Optimismブリッジ

イーサリアム(ETH)

64-95 スロット(可能ブロック)

入金に約20分;出金に約20分(サードパーティブリッジ);

約7日(公式ブリッジ)

USDCブリッジ

Algorand(USDC)

Avalanche(USDC)

ビットコイン(BTC)

イーサリアム(USDC、EUROC、ETH)

フロー(USDC)

ヘデラ(USDC)

Polygon PoS(ブリッジされたUSDC

ソラナ(USDC)

ステラ(USDC)

トロン(USDC)

1

1

4

12


1

N/A

372


1

1

10

約5秒

約2秒

約40分

約3分


約2.5秒

約3秒

約20分


約400ミリ秒

約5秒

約1分

*データは公式ドキュメントや発表、およびEtherscanPolygonブリッジエクスプローラーマルチチェーンスキャンから取得されています。

テストネットにおける最終化

公共のテストネットは、プロトコル開発者やスマートコントラクト開発者が、対応するメインネットブロックチェーンに展開する前に、プロトコルのアップグレードや潜在的なスマートコントラクトを本番に近い環境でテストするために使用されるネットワークです。ほとんどのテストネットは、当初、許可された権限証明(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日の停止は重大な影響を及ぼしませんでした。このイベント以降、研究者たちは最終化問題の引き金となった原因について未だ不明な点が残っています。

参考文献

  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