@samcoding

Base B20とUniswap V4 — ガス代は下がったのに、なぜボトルネックが生じるのか
BaseメインネットにRustプリコンパイルベースのB20ネイティブトークン標準が導入され、個別のトランザクションにおけるガス代が大幅に削減されました。しかし、初のUniswap V4プールが稼働したことで、高頻度な並列実行環境において予期せぬ実行ボトルネックが発生しています。なぜガス消費を抑えた高性能トークンがUniswapのシングルトン構造と合わさることで並行処理能力が低下するのか、実行エンジンの観点から技術的要因を分析します。
B20のネイティブなガス削減効果:Rustプリコンパイルの威力
B20標準は、EVMバイトコードを解釈する従来のERC-20方式の代わりに、Baseの実行エンジンであるReth V2ノードに内蔵されたRustプリコンパイラを直接呼び出す方式を採用しました。標準トークンの演算をEVMインタープリタによる解釈プロセスを経ることなく、システムレベルの高性能なRustコードへ即座にオフロードすることで、ガス手数料を大幅に削減し、演算効率を高めています。
GitHubリポジトリ「fahimahmedx/b20-benchmark」で公開されたデータによると、B20プリコンパイルはSolidityベースの公式リファレンス実装であるMockB20と比較して、一貫したパフォーマンスの向上が実証されました。特に、既に残高がある受信者への送信時には約17%のガスを節約できるため、頻繁なオンチェーン決済フローにおいて優れたガス効率を提供します。
| 작업 유형 | Native B20 (Gas) | Solidity MockB20 (Gas) | 절감률 |
|---|---|---|---|
| transfer (既存) | 16,777 | 20,212 | -17.0% |
| transfer (ゼロ) | 33,877 | 37,312 | -9.2% |
| transferFrom (最大) | 36,039 | 41,150 | -12.4% |
| mint (既存) | 20,825 | 23,242 | -10.4% |
こうした単一トランザクションの観点でのコスト削減は、オンチェーンインフラを設計する開発者に強力な利点をもたらします。しかし、個々の演算のガス消費量が減ったからといって、ネットワーク全体の実際の処理能力が必ずしも線形に増加するわけではありません。複数のトランザクションを同時に並列処理する必要がある高性能な実行環境において、Uniswap V4のシングルトンアーキテクチャと組み合わさると、状態の更新が単一のポイントに集中することによる競合(コンテンション)ボトルネックが発生し、並列化の恩恵を受けられなくなります。
Uniswap V4のシングルトンアーキテクチャと並列実行の衝突
個別のトランザクションにおけるガス代の削減効果にもかかわらず、実際の取引が集中する高頻度な環境では深刻なボトルネックが観察されています。2026年7月8日にBaseメインネットで初めて有効化されたUniswap V4 B20/ETHプールは、リリース初日だけで12,611件を超えるトランザクションと116万ドルの取引量を記録し、このボトルネックの問題を露呈させました。単一トランザクションのレベルではRustプリコンパイルのおかげでガス効率が向上しましたが、多数のトランザクションが同時に殺到したことで、ネットワークの実行エンジン層で処理速度が急激に低下しました。
この性能低下の技術的要因は、Reth V2実行エンジンの楽観的並列実行手法と、Uniswap V4のシングルトン構造が持つ構造的な衝突にあります。Reth V2は同時処理量を最大化するため、複数のトランザクションを一度並列で実行した後に、状態の衝突がない場合のみブロックに反映させる楽観的実行モデルを採用しています。しかし、Uniswap V4はすべてのプールの状態とバランスをたった一つのPoolManagerコントラクトで一元管理するアーキテクチャを採用しています。
結局、同じB20/ETHプールをターゲットとする多数のスワップリクエストが同時に流入すると、これらのトランザクションはPoolManagerコントラクト内の同一ストレージ領域(tick、liquidity、transient storage)を同時に修正しようと試みます。この過程で必然的に状態書き込みのホットスポットが発生します。実行エンジンは状態の衝突を検知すると直ちに並列処理を中断し、該当するトランザクションを順次再実行するフォールバックメカニズムを作動させます。結果として並列処理エンジンの帯域幅のメリットが打ち消され、全体の処理能力が急激に低下するのです。
ローカルシミュレーション環境の構築:Foundry開発者向けのヒント
B20ネイティブトークンにはオンチェーンEVMバイトコードが存在しないため、一般的なFoundry環境でテストすると存在しないコントラクトアドレスを呼び出したとみなされ、non-contract addressエラーが発生します。システムレベルで動作するRustプリコンパイラのアドレスを直接指しているためです。
この問題を解決するには、Baseチームが提供する専用ツールチェーンであるbase-foundryupをインストールする必要があります。ターミナルで該当のインストールスクリプトを実行すると、プリコンパイルアドレスの認識をサポートする専用のbase-forgeおよびbase-castバイナリがローカル環境に設定されます。
ツールチェーンをインストールした後、プロジェクトのfoundry.toml設定ファイルにエミュレータ有効化フラグを追加する必要があります。
[profile.default]
src = "src"
out = "out"
libs = ["lib"]
# Base B20 프리컴파일 에뮬레이션 활성화
base = trueこの設定を完了すると、ローカルテストランナーがB20Factoryをはじめとする様々なシステムプリコンパイルアドレスを正常に呼び出せるようになります。メインネットデプロイ前であっても、オフチェーンのモックオブジェクトなしで実際の実行環境と同一の演算フローを検証し、精密なガスベンチマークを実施可能です。
効率性と帯域幅のトレードオフ、今後の展望
B20トークン標準は、Rustプリコンパイラを通じて単一トランザクションのガス代を削減する確かな効率性を示しました。しかし、Uniswap V4のように全プールの状態を一つのコントラクトで管理するシングルトンアーキテクチャと合わさると、同一のストレージ領域への書き込み作業が集中し、並列処理の恩恵が相殺されるボトルネックが生じます。個別の演算の最適化が、ネットワーク全体の帯域幅の最大化に直結するわけではないという明確なトレードオフを示す事例です。
そのため開発者は、高頻度なトラフィックが集中するdAppを設計する際、並列実行パフォーマンスを損なわないスマートコントラクト構造を深く検討する必要があります。状態の記録が一箇所に集中するホットスポットを分散させるか、トランザクションの衝突を最小限に抑えるアーキテクチャ的なアプローチが不可欠です。
2026年9月に予定されているBase Cobaltアップグレードも注視すべき分岐点です。Reth V2エンジンにEIP-8130およびEIP-8140ベースのネイティブなアカウント抽象化が統合されれば、バンドラーのオーバーヘッドがない極限の実行効率と、B20トークンによるガス代の代行が可能になる見込みです。こうしたガス最適化インフラと並列処理の改善が融合していく過程は、次世代のオンチェーンアプリケーションの性能限界を広げる重要なマイルストーンとなるでしょう。
参考リンク
- GeckoTerminal & BaseScan — Uniswap V4 B20/ETH Pool Metrics and Day One Performance on Base
- Hyperledger Besu & Reth Core Engineering Analysis — State Write Hotspots and Parallel Re-execution in Optimistic Rollup Pipelines
- Base Documentation & Crypto Briefing — Base Mainnet Activates B20 Native Token Standard on July 8, 2026