BeaconKit - EVMコンセンサスクライアント構築のためのモジュラーフレームワーク ⛵️✨ [Berachain翻訳]


:::note info
本記事は下記の翻訳となります。
[『BeaconKit - A Modular Framework for Building EVM Consensus Clients ⛵️✨』](https://blog.berachain.com/blog/beaconkit-a-modular-framework-for-building-evm-consensus-clients)
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1926720/e4c9e63e-252f-1de3-ca96-b429d8207ea2.png)

現在のブロックチェーン業界では、ブロックチェーンフレームワークの選択は、しばしばトレードオフを伴います：

- Cosmos-SDK と CosmWasm は、複雑で技術的負債が多いものの、Single-Slot Finality と IBC へのアクセスを提供します。
- Move は、スマートコントラクト設計に対する新しいアプローチを模索していますが、そのエコシステムは最小限のツールしか提供せず、さまざまなバージョンが混在して混乱を招いています。
- EVM は成熟したツールを誇りますが、独自の L1 や L2 を立ち上げるには、特殊な geth フォークを使用する必要があり、結果として「EVM 互換」という曖昧な状態になってしまいます。

## Polaris からの学び

広範なテストネットデータ分析を行った後、私たちは Polaris の長所と短所を慎重に評価しました。CometBFT/Cosmos と EVM エコシステムの両方の長所を組み合わせているように見えましたが、同時にそれぞれの欠点も抱えることになり、結果的に私たちは白紙の状態に戻ることになりました。

### CometBFT Mempool の問題

Artio で発生した深刻な輻輳の大部分は、[CometBFT mempool](https://forum.cosmos.network/t/our-understanding-of-the-cosmos-hub-mempool-issues/12040?page=2&ref=berachain.ghost.io)の周知の問題に起因していました。これらの問題がトランザクションの取り込みを妨げ、EIP-1559 手数料市場の適切な機能を阻害し、時にチェーンの使用を困難にしていることが観察されました。

![](https://super-translator.inaridiy.workers.dev/assets/image/b2268e99-8b65-4ad8-82fb-c1b831cec244)

### プリコンパイルは効率的だが、開発者体験に欠ける

プリコンパイルによって実行性能が大幅に向上（約 500%）したにもかかわらず、開発者体験は著しく低下しました。`foundry`のようなツールが常に期待通りに機能しませんでした。`forge script`を実行すると問題が発生しました。これは、ローカルの`revm`にこれらのトランザクションを実行するために必要なロジックが欠けているためです。

### Geth フォークの維持は想像以上に困難

内部的に、フォークされた実行クライアントの維持が長期的に持続可能でないことに気づきました。フォークは最新リリースに急速に遅れをとり、カスタムロジックと組み合わされると、維持するために多大なエンジニアリングサポートを必要とすることがよくあります。
プリコンパイルを通じて実行性能が大幅に向上（約 500%）したにもかかわらず、開発者体験は著しく悪化しました。foundry のようなツールが期待通りに機能しないことがありました。forge script を実行すると問題が発生しました。これは、ローカルの revm にこれらのトランザクションを実行するために必要なロジックが欠けているためです。

![](https://super-translator.inaridiy.workers.dev/assets/image/804fb48a-66ba-4d2a-b4ee-6c43b9102367)

クライアントの多様性を考慮に入れると、複数のフォークを、異なるプログラミング言語にまたがって維持することになります。それも、すでに競争の激しい市場でシニアエンジニアの採用を試みながらです。ほとんどのオルタナティブ L1/L2 EVM チェーン開発者が求めているのは、EVM に付随する安定性とツールです。新しい輝かしいコンセンサスアルゴリズムを組み込むためにフォークを実行するという面倒な作業をすべて行う必要があるでしょうか。単に最新の`docker pull reth:latest`を接続するだけで済むのに。

## BeaconKit の紹介

BeaconKit は、EVM コンセンサスクライアントを構築するためのモジュラーフレームワークで、開発者がレイヤー 1 とレイヤー 2 の両方の EVM ブロックチェーンを、完全な EIP 互換性、Single-Slot Finality、さらに多くの機能を備えて立ち上げることを可能にします。Golang 版の[Prysm](https://github.com/prysmaticlabs/prysm?ref=berachain.ghost.io)と同様に、BeaconKit は[EngineAPI](https://github.com/ethereum/execution-apis/tree/main/src/engine?ref=berachain.ghost.io)を使用してコンセンサス層と実行層間の通信を促進し、EVM 実行環境を CometBFT から完全に切り離すことを可能にします。

![](https://super-translator.inaridiy.workers.dev/assets/image/06d6459f-f043-437b-8301-b4d0bdce6377)

オペレーターは*標準の未修正の*実行クライアントを実行し、Ethereum メインネットと完全な/100%の EVM 同一性を達成することができます。現在、以下の実行クライアントで BeaconKit をテストしています：

- **Geth:** Ethereum プロトコルの公式 Go 実装。
- **Erigon:** go-ethereum からフォークされた、より高性能で機能豊富なクライアント。
- **Nethermind:** Ethereum プロトコルを完全にサポートする.NET ベースのクライアント。
- **Besu:** エンタープライズグレードのクライアントで、Apache 2.0 ライセンスの Java で書かれています。
- **Reth:** パフォーマンスと信頼性に焦点を当てた Rust ベースのクライアント。
- **Ethereumjs:** Ethereum Foundation が管理する Javascript ベースのクライアント。

### 即時実行とオプティミスティックペイロードビルディング\*\*

標準の CometBFT ブロックの上に独自の`BeaconBlock`を活用することで、BeaconKit は即時実行をサポートします。これは、BeaconKit チェーンがバリデーターにブロックを受け入れる前に提案されたステートルートに署名することを強制できることを意味し、ブロック検証プロセスを大幅に簡素化し、BlockGossip から Inclusion までの時間を短縮します。これにより、`abci.FinalizeBlock`を非常に高速に実行でき、オプティミスティックペイロードビルディングへの道を開きます。

![](https://super-translator.inaridiy.workers.dev/assets/image/3145b538-49e2-421f-877c-cf718e205774)

> _「これだけでブロック時間を最大 40%短縮できます。」_

即時実行により、現在のブロックがファイナライズされる前に StateRoot が分かるため、実行ペイロード（EVM ブロック）の構築を事前に開始できます。これだけでブロック時間を最大 40%削減できます。

### Cosmos モジュール？Protobuf エンコーディング？そんなの関係ない。

Cosmos-SDK は相互運用可能なモジュールを目指していましたが、これらのモジュールの結合が、私たちが望む方法での実装を非常に困難にしていることがわかりました。SDK の現在の実装方法は非常に独断的で、柔軟性がほとんどありません。これは私たちにとって適切ではありませんでした。そこで、すべてを取り除き、自分たちで一から作り直しました。

![](https://super-translator.inaridiy.workers.dev/assets/image/4462dc0b-63ff-4f37-98a2-25e7c28e95da)

> _Cosmos モジュール？聞いたことないな。_

BeaconKit は標準の Cosmos モジュールを*一切*使用せず、チェーン開発者がケースバイケースでカスタムロジックを注入できるようにし、カスタムブロック有効性ルール、カスタムブロック処理ロジックなどを可能にします。

「ちょっと待って、AccountKeeper が必要？BankKeeper？？ 🤦‍ うーん...」というのは Cosmos 開発者の間でよくある不満です。カスタムステーキングロジックの実装が、すべてを削除しなければならない 6 ヶ月の研究プロジェクトに変わってしまうべきではありません。BeaconKit ではそうならないようにしました。BeaconKit の設計過程で、SSZ（**S**imple-**S**eriali**Z**e Encoding）を第一級市民とし、protobuf の混沌を完全に排除しました。これにより**EIP-4788**の実装が可能になり、許可なしにコンセンサス層のデータを実行層で検証および証明できるようになりました。

例えば、Proof of Liquidity では、チェーンがバリデーター提案情報を実行環境にリレーする必要がありますが、これは`BeaconBlockRoot`内に含まれています。私たち自身のユースケース以外にも、独自のオルタナティブ L1 や L2 を開発する他のビルダーが同様の情報へのアクセスを望むかもしれない世界を想像しています。そのため、4788 はとても重要なマイルストーンだったのです。

### Blobs は？Rollups は？もちろんサポートしています

[EIP-4844](https://www.eip4844.com/?ref=berachain.ghost.io)は、BeaconKit ベースのチェーンの将来をスケールさせるために特別に含まれました。メインネットで即座に利用可能なデータ可用性層がもたらす利点と、それが L2 をどのように可能にするかを私たちは目の当たりにしてきました。EIP-4844 のサポートに加えて、チェーン開発者は BeaconKit を ABCI 2.0 互換のコンセンサスエンジンと共に使用でき、したがって[Rollkit](https://rollkit.dev/?ref=berachain.ghost.io)と容易に統合して強力なレイヤー 2 ソリューションを作成することができます。>

![](https://super-translator.inaridiy.workers.dev/assets/image/7d0f819e-50df-4e21-ba18-bdaa2835133c)

### カスタムブロック有効性ルールとタイプ

BeaconKit を統合する際、開発者は EVM ブロックと Beacon ブロックの両方で特定の動作を許可するカスタムブロック有効性ルールを簡単に導入できます。例えば、チェーン開発者は、特定のトランザクション順序に準拠していない ExecutionPayload（EVM ブロック）を拒否するカスタムブロック有効性ルールを実装することができます。これは単純な例ですが。

最終的に、これらの「プラグインベース」の有効性ルールは、[PEPC](https://ethresear.ch/t/unbundling-pbs-towards-protocol-enforced-proposer-commitments-pepc/13879?ref=berachain.ghost.io)のようなメカニズムを統合するように拡張できる可能性があります。これは再ステーキングやクロスチェーンアプリケーションに有用です。

## 今後の展開は？

BeaconKit は現在、BUSL 1.1 ライセンスの下でソースが利用可能ですが、将来的に MIT ライセンスに切り替える予定です。次の L1 または L2 プロジェクトで BeaconKit の使用に興味がある場合は、ぜひご連絡ください！リポジトリへのリンクは以下の通りです：[https://github.com/berachain/beacon-kit](https://github.com/berachain/beacon-kit?ref=berachain.ghost.io)

---

---

:::note info
【Sunrise とは】
Sunrise は Proof of Liquidity(PoL)と Fee Abstraction（手数料抽象化）を備えたデータ可用性レイヤーです。 私たちは DA の体験を再構築し、多様なエコシステムからのモジュラー型流動性を活用してロールアップを立ち上げています。

- [Sunrise - Specialized DA Layer for Proof of Liquidity](https://sunriselayer.io/)
- [Sunrise / Gluon Docs](https://docs.sunriselayer.io/)

【Social Links】

- [X(旧 Twitter)[英語])](https://twitter.com/SunriseLayer)
- [X(旧 Twitter)[日本語])](https://twitter.com/SunriseLayer)
- [Discord Community](https://discord.com/invite/sunrise)
- [Medium](https://sunriselayer.medium.com/)
- [Github](https://github.com/sunriselayer)
- [Linkedin](https://www.linkedin.com/company/sunriselayer)

【お問合せ】
Sunrise へのお問い合わせはこちらから 👉 [Google Form](https://forms.gle/h8RVahxRtXUvYwnv6)

![1080x360.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839047/8971d83b-3331-4757-dc72-320d28618735.jpeg)

:::