
opBNBとイーサリアムL2のパフォーマンス差異から理解するRollupのボトルネックおよび最適化方法
TechFlow厳選深潮セレクト

opBNBとイーサリアムL2のパフォーマンス差異から理解するRollupのボトルネックおよび最適化方法
本稿は、opBNBの仕組みとそのビジネス上の意義について簡単に概説し、モジュール型ブロックチェーン時代におけるBSCパブリックチェーンの重要な一歩を整理している。
執筆:Faust、Geek Web3
導入:2023年のWeb3を一言で表すキーワードとして、「Layer2の夏」を思い浮かべる人が多いだろう。アプリケーション層での革新は絶え間なく起きているが、Layer2ほど長期間にわたって注目され続けるテーマは稀である。Celestiaがモジュラー型ブロックチェーンの概念を成功裏に普及させたことで、Layer2とモジュラー化はインフラの代名詞ともなり、従来のモノリシックチェーンの栄光は再現困難な状況にある。Coinbase、Bybit、Metamaskがそれぞれ専用のレイヤー2ネットワークを立ち上げたことで、Layer2間の競争は熾烈さを増しており、かつての新規パブリックチェーン同士の激しい戦いを彷彿とさせる。
この取引所主導のレイヤー2戦争において、BNB Chainは決して後塵を拡げない立場を取っている。昨年にはzkBNBテストネットをリリースしていたが、zkEVMの性能が大規模な応用にはまだ不十分であったため、Optimistic Rollup方式を採用するopBNBが汎用的なLayer2実装としてより適していると判断された。本稿では、opBNBの動作原理とそのビジネス的意義について概説し、モジュラー型ブロックチェーン時代におけるBSCチェーンの重要な一歩を整理する。
BNB Chainの大ブロックへの道
SolanaやHecoなど、取引所が支援する他のパブリックチェーンと同様に、BNB Chain(BNB Smart Chain、BSC)も高性能を常に追求してきた。2020年のローンチ当初から、BSCはブロックあたりのgas上限を3000万に設定し、ブロック生成間隔を安定して3秒に保っていた。この仕様により、BSCは各種トランザクションが混在した状態でも100以上のTPSを実現した。2021年6月にはgas上限が6000万に引き上げられたが、同年7月にCryptoBladesというゲームが爆発的に人気となり、1日の取引数が800万を超えた結果、手数料が急騰した。この事実は、当時のBSCの効率限界が明確に存在していたことを示している。

(データ元:BscScan)
ネットワークのパフォーマンス問題に対処するため、BSCは再度ブロックあたりのgas上限を引き上げ、その後長期間にわたり8000万〜8500万の範囲で安定した。2022年9月には上限が1.2億に、年末には1.4億に達し、2020年比で約5倍となった。以前、BSCはブロックgas容量を3億まで引き上げる計画を持っていたが、Validatorノードの負担が大きすぎるとして、この超大規模ブロック案は未だ実施されていない。

(データ元:YCHARTS)
その後、BNB Chainの重点はモジュラー化/Layer2分野へ移り、Layer1のスケーリングにはあまり固執しなくなった。昨年後半のzkBNBから今年初頭のGreenFieldに至るまで、その意図はますます明確になった。モジュラー型ブロックチェーン/Layer2に対する強い関心から、筆者はopBNBを調査対象とし、イーサリアムのLayer2との違いを通じてRollupのパフォーマンスボトルネックを明らかにする。
BSCの高スループットがopBNBのDA層に与える恩恵
Celestiaはモジュラー型ブロックチェーンのプロセスに基づき、以下の4つの主要コンポーネントを提唱している。
-
実行層(Execution):コントラクトコードを実行し、ステート変換を行う環境。
-
決済層(Settlement):詐欺証明/有効性証明を処理し、L2とL1間の橋渡しを管理。
-
合意形成層(Consensus):トランザクションの順序について合意を得る。
-
データ可用性層(Data Availability, DA):ブロックチェーン台帳データを公開し、検証者がダウンロードできるようにする。

特に、DA層と合意形成層はしばしば一体化している。例えば、オプティミスティックRollupのDAデータには一連のL2ブロック内のトランザクションが含まれており、L2フルノードがこのDAデータを取得すれば、各トランザクションの順序を把握できる。(そのため、イーサリアムコミュニティはRollupを階層化する際、DA層と合意形成層を密接に関連付ける。)

しかし、イーサリアムのLayer2にとっては、DA層(イーサリアム自体)のデータスループットがRollupのパフォーマンスを制限する最大のボトルネックとなっている。現在のイーサリアムはデータスループットが低く、Rollupは自らのTPSを抑制せざるを得ず、L2が生成するデータ量がイーサリアムメインネットのキャパシティを超えないように注意しなければならない。
さらに、低いデータスループットにより、Ethereumネットワーク内に多数のトランザクションが積み残され、ガス価格が極めて高くなる。これはL2のデータ投稿コストを押し上げ、多くの二層ネットワークがCelestiaなどの外部DA層を採用する要因となっている。一方、立地的に有利なopBNBは、高スループットを持つBSCをDA層として直接利用することで、データ投稿のボトルネックを解決している。
理解を助けるために、RollupのDAデータ投稿方法を簡単に紹介する。Arbitrumを例にすると、L2のソータリングノードが管理するイーサリアム上のEOAアドレスが定期的に特定のコントラクトに対してトランザクションを送信し、そのcalldataフィールドに圧縮された取引データを記録する。これにより、コントラクトログに永続的な記録が残される。

このようにして、L2の取引データはイーサリアムのブロック内に長期保存され、L2ノードを運用可能な者はそれらの記録をダウンロード・解析できるが、イーサリアム自身のノードはこれらのL2取引を実行しない。つまり、L2はデータの保管コストのみをイーサリアムに支払い、計算コストは自らのノードが負担している。
上記はArbitrumのDA実装方法であり、Optimismではソータリングノードが制御するEOAアドレスが別のEOAアドレスに転送を行い、付加データに新しいL2取引群を含ませている。一方、OP Stackを採用するopBNBは、OptimismのDA投稿方式と基本的に同じである。


明らかに、DA層のスループットは、単位時間あたりにRollupが投稿できるデータ量に制限をかけ、結果としてTPSを制約する。EIP1559以降、各ETHブロックのgas上限は3000万で安定しており、マージ後のブロック生成時間は約12秒であるため、イーサリアムが1秒間に処理できるgas総量は最大250万に過ぎない。
通常、L2取引データを収容するcalldataの1バイトあたりのgas消費量は16であるため、イーサリアムは1秒間に最大150KBのcalldataしか処理できない。一方、BSCは1秒間に最大約2910KBのcalldataを処理でき、これはイーサリアムの18.6倍に相当する。両者のDA層としての差は歴然としている。
まとめると、イーサリアムは1秒間に約150KBのL2取引データしか処理できない。EIP-4844導入後もこの数字は大きく変わらず、手数料が下がるだけである。では、1秒間150KBのデータには一体どれくらいの取引が含まれるのか?
ここでRollupのデータ圧縮率について説明が必要だ。Vitalikは2021年に楽観的に、オプティミスティックRollupは取引データを元の11%程度まで圧縮できると推定した。例えば、基本的なETH送金は原本の112バイトから12バイトに、ERC-20送金は16バイト、UniswapのSwapは14バイトに圧縮可能とされた。この推定によれば、イーサリアムは1秒間に約1万件のL2取引を記録できる(複数タイプ混合)。しかし、Optimism公式が2022年に公表したデータによれば、実際の圧縮率は最高でも約37%に留まり、Vitalikの見積もりの3.5倍も乖離している。

(VitalikのRollup拡張効果の見積もりは、実情から大きく逸脱している)

(Optimism公式が公表した各種圧縮アルゴリズムの実際の圧縮率)
そこで妥当な数字を提示しよう。現時点で、イーサリアムが理論上のスループット限界に達しても、すべてのオプティミスティックRollupの合計TPSは2000強程度に過ぎない。言い換えれば、Arbitrum、Optimism、Base、Bobaなどがイーサリアムブロックの全スペースを占有しても、それらの合計TPSは3000に届かない。これは圧縮効率が最高水準の場合の話である。また、EIP1559以降、各ブロックが平均して最大値の50%のgasしか使用していないことを考慮すれば、上記の数字はさらに半分になるべきだ。EIP4844導入後も、データ投稿手数料は大幅に低下するが、イーサリアムのブロックサイズ自体は大きく変わらない(安全性への影響を避けるため)ので、前述の推定値に大きな改善は見込めない。


ArbiscanとEtherscanのデータによると、Arbitrumのある取引バッチには1115件の取引が含まれ、イーサリアム上で181万gasを消費した。この割合から推測すると、DA層の各ブロックを完全に埋めた場合、Arbitrumの理論TPS限界は約1500となる。ただし、L1ブロックの再編成リスクを考慮すれば、Arbitrumはすべてのイーサリアムブロックにバッチを投稿することは不可能であり、この数字は現時点では理論上のものに過ぎない。
また、EIP 4337対応のスマートウォレットが広く使われるようになると、DA問題はさらに深刻になる。EIP 4337対応により、ユーザーの認証方法がカスタマイズ可能になり、指紋や虹彩のバイナリデータをアップロードできるようになるため、通常の取引が占めるデータサイズがさらに大きくなる。ゆえに、イーサリアムの低いデータスループットはRollupの効率を制限する最大のボトルネックであり、この問題は今後長期間にわたり適切に解決されそうにない。
一方、BNB ChainのBSCは1秒間に最大約2910KBのcalldataを処理でき、これはイーサリアムの18.6倍に達する。つまり、実行層の速度が追いつく限り、BNB Chain体系内のL2の理論TPS上限はARBやOPの約18倍に達する可能性がある。この数字は、現在のBNB Chainのブロックgas上限1.4億、ブロック生成時間3秒という条件から算出されたものである。

つまり、現在のBNB Chain体系下のすべてのRollupの合計TPS上限は、イーサリアムの18.6倍である(ZKRollupを含めても同様)。これが、多くのLayer2プロジェクトがイーサリアム以外のDA層を使用する理由の一つである。
しかし、問題はこれだけではない。データスループットに加えて、Layer1自体の安定性もLayer2に影響を与える。多くのRollupは、L1ブロックに再編成の可能性があるため、数分ごとにイーサリアムに取引バッチを投稿する。L1ブロックが再編成されると、L2の台帳にも波及する。そのため、ソーターはL2の取引バッチを投稿後、複数の新しいL1ブロックが生成され、ロールバックの確率が大幅に下がるまで待ってから次のバッチを投稿する。これにより、L2ブロックの最終確定時間が遅れ、大口取引の確認速度が低下する(大額取引は結果が不可逆になって初めて安全が確保される)。
要するに、L2の取引がDA層のブロック内に記録され、さらに一定数の新しいL1ブロックが生成された後でなければ、不可逆性が得られない。これがRollupのパフォーマンスを制限する重要な要因である。イーサリアムは12秒ごとに1ブロックを生成するため、仮にRollupが15ブロックごとにL2バッチを投稿すると、バッチ間には3分の間隔が生じる。さらに、各バッチ投稿後も、複数のL1ブロックが生成されるまで不可逆にならない(挑戦されない前提)。明らかに、イーサリアムL2上での取引は開始から不可逆になるまで長い待ち時間が発生し、決済速度が遅くなる。一方、BNB Chainは3秒で1ブロックを生成でき、不可逆性の確保には45秒(15ブロック)しかかからない。
現在のパラメータに基づくと、L2の取引数が同じでL1ブロックの不可逆性を考慮した場合、単位時間あたりのopBNBの取引データ投稿回数は、Arbitrumの最大8.53倍に達する(前者は45秒ごと、後者は6.4分ごと)。つまり、opBNBの大口取引の決済速度は、イーサリアムL2よりもはるかに速い。また、opBNBが1回で投稿できる最大データ量は、イーサリアムL2の4.66倍である(前者のL1ブロックgas上限は1.4億、後者は3000万)。
8.53×4.66=39.74。これが、opBNBとArbitrumの現在の実践におけるTPS限界の差である(現在ARBは安全性のためTPSを意図的に抑えているが、理論的にはopBNBよりずっと低い)。

(Arbitrumのソーターは6~7分ごとに取引バッチを投稿)

(opBNBのソーターは1~2分ごとに取引バッチを投稿、最短45秒)
さらに重要な点として、DA層のガス料金がある。L2が取引バッチを投稿するたびに、calldataサイズに関係なく21000gasの固定コストが発生する。もしDA層/L1の手数料が非常に高ければ、この固定コストも重くなり、ソーターは投稿頻度を下げざるを得なくなる。また、L2手数料の構成を考えるとき、実行層のコストは非常に低く、無視できることが多い。よって、手数料への影響はほとんどDAコストによるものと考えてよい。
まとめると、同じサイズのcalldataをイーサリアムとBNB Chainに投稿する場合、消費gasは同じでも、イーサリアムのgas priceはBNB Chainの10〜数十倍高い。これがL2手数料に反映され、現在、イーサリアムL2のユーザーハンドリング料金は、opBNBの10〜数十倍程度である。総合的に見ると、opBNBとイーサリアムのオプティミスティックRollupの差は明らかである。

(Optimismで15万gasを消費した取引の手数料は0.21ドル)

(opBNBで13万gasを消費した取引の手数料は0.004ドル)
しかし、DA層のデータスループットを拡大しても、全体のL2システムのスループットは向上するが、個々のRollupのパフォーマンス向上には限界がある。なぜなら、実行層の取引処理速度が遅ければ、DA層の制約が解消されても、次なるボトルネックとして実行層が立ちはだかるからである。L2実行層が遅ければ、あふれた取引需要は他のL2に分散し、流動性の断片化を招く。したがって、実行層のパフォーマンス向上も重要であり、DA層に続くもう一つのハードルである。
opBNBの実行層における強化:キャッシュ最適化
多くの人々がブロックチェーンの実行層のパフォーマンスボトルネックに言及するとき、必ず「EVMのシングルスレッド逐次実行方式はCPUを十分に活用できない」「イーサリアムのMerkle Patricia Trieはデータ検索効率が低い」という2点を挙げる。これらは重要な実行層の課題である。つまり、実行層のスケーリングのアプローチは、CPUリソースをより有効に使うこと、そしてCPUがデータをできるだけ早く取得できるようにすることに尽きる。EVMの逐次実行とMerkle Patricia Treeの最適化は複雑で実現が難しいため、より費用対効果の高い取り組みはキャッシュ最適化に集中している。
実際、キャッシュ最適化の問題は、伝統的なWeb2や教科書でもよく議論されるテーマに戻る。
通常、CPUがメモリからデータを読み取る速度は、ディスクから読み取る速度の数百倍も速い。例えば、あるデータをCPUがメモリから読み取るのに0.1秒かかる場合、ディスクからだと10秒かかる。したがって、ディスクの読み書きに伴うオーバーヘッドを削減する、つまりキャッシュ最適化は、ブロックチェーン実行層の最適化に不可欠な要素である。
イーサリアムやほとんどのパブリックチェーンでは、アドレスのステート情報を記録するデータベースはディスクに完全に保存されており、いわゆるWorld State trieはそのインデックス、つまりデータ検索用の目録にすぎない。EVMが毎回コントラクトを実行する際には関連するアドレスステートを取得する必要があり、すべてのデータをディスク上のデータベースから1つずつ読み込むと、取引実行速度が著しく低下する。したがって、データベース/ディスクの外にキャッシュを設けることは、スピードアップに不可欠な手段である。
opBNBは、BNB Chainが採用しているキャッシュ最適化手法をそのまま採用している。opBNBの協力パートナーNodeRealが明らかにした情報によると、初期のBSCはEVMとステートを保持するLevelDBデータベースの間に3段階のキャッシュを設けており、これは従来の3レベルキャッシュ構造に類似している。アクセス頻度の高いデータをキャッシュに置くことで、CPUはまずキャッシュから必要なデータを探し出す。キャッシュヒット率が十分高ければ、CPUはディスクに頼らずにデータを取得でき、実行プロセス全体の速度が大幅に向上する。

その後、NodeRealはさらに機能を追加し、EVMが使っていない空きCPUコアを活用して、将来EVMが処理するデータを事前にデータベースから読み出し、キャッシュに格納するようにした。これにより、EVMは将来必要なデータをキャッシュから直接取得できる。この機能は「ステートプリフェッチ(状態予読)」と呼ばれる。

ステートプリフェッチの理屈は単純である:ブロックチェーンノードのCPUはマルチコアであるが、EVMはシングルスレッドの逐次実行モードであり、1つのCPUコアしか使用しない。そのため、他のCPUコアは十分に活用されていない。そこで、未使用のCPUコアに仕事をさせ、EVMが未処理の取引列から将来使用するデータを予測させ、それらのデータをデータベースから事前に読み出してキャッシュに格納することで、EVMのデータ取得コストを削減し、実行速度を向上させる。
キャッシュを十分に最適化し、十分なハードウェア性能を備えれば、opBNBは実質的にEVMの性能限界に近づいている――1秒間に最大1億gasを処理できる。1億gasは、変更なしのEVMの性能の理論上限である(ある有名パブリックチェーンの実験データによる)。
具体的には、opBNBは1秒間に最もシンプルな送金を4761件、ERC20送金を1500~3000件、SWAP操作を約500~1000件処理できる(ブロックエクスプローラの取引データから判明)。現在のパラメータで比較すると、opBNBのTPS限界は、イーサリアムの40倍、BNB Chainの2倍以上、Optimismの6倍以上である。
もちろん、イーサリアムL2はDA層自体の深刻な制約により、実行層の性能を十分に発揮できない。前述のDA層のブロック生成時間や安定性などの要因をすべて考慮に入れれば、イーサリアムL2の実際のパフォーマンスは、実行層の能力に比べて大きく低下する。一方、BSCのような高スループットDA層では、2倍以上のスケーリング効果を持つopBNBは非常に価値があり、しかもBNB Chainはこのような拡張プロジェクトを複数搭載できる。
予想されるのは、BNB ChainがopBNBを中心とするLayer2戦略を自らの展開計画にすでに組み込んでおり、今後もますます多くのモジュラー型ブロックチェーンプロジェクトを統合していくことである。opBNBにZK proofを導入し、GreenFieldなどの周辺インフラと組み合わせて高可用なDA層を提供することで、イーサリアムL2エコシステムと競争あるいは協力していくだろう。このような階層化スケーリングが大勢となっている中、他のパブリックチェーンもBNB Chainのように自前のLayer2プロジェクトを支援し始めるかどうかは未知数だが、モジュラー型ブロックチェーンを大方向とするインフラのパラダイムシフトが既に進行中であることは確かである。
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News














