カカロット: 最初のモジュラー zkEVM の紹介
TL;DR: Kakarot はタイプ 3 (間もなくタイプ 2.5) の zkEVM であり、CairoVM の上に構築されます。2022 年 10 月に開始されたこのプロジェクトは、いくつかの目標を念頭に置いています。初日からオープンソースにすること、貢献を歓迎すること、そして最も野心的な目標として、10,000 行未満のコードで zkEVM を作成することです。この目標をわずか 6 か月で達成しました。2023 年夏の終わりにテストネットをリリースします。
EVM、zkRollups、zkEVM のコンテキストについては、記事の最後に用語集があります。
CairoVM の不完全な入門書
CairoVM は、証明可能な実行を可能にする仮想マシンです。これは、Ethereum エコシステムにおける汎用のレイヤー 2 (L2) 有効性ロールアップであるStarknetの基盤として機能します。多項式として実行を表す CairoVM の機能により、Starknet 上のすべてのトランザクションを STARK を使用して証明することができます。これには、関連するプログラミング言語である Cairo で分散型アプリケーション (dApps) を構築する開発者が必要です。
カイロの背後にあるチーム、Lior Goldberg、Shahar Papini、Michael Riabzev の言葉:
実質的に効率的な Turing 完全な STARK フレンドリーな CPU アーキテクチャである Cairo を紹介します。このアーキテクチャでのプログラムの実行が有効であるというステートメントの多項式の単一セットを記述します。証明したいステートメントが与えられた場合、Cairo では、一連の多項式方程式を書く代わりに、そのステートメントを記述するプログラムを書くことができます。
要点: Cairo で書かれたプログラムは証明可能です。これにより、高水準言語で証明可能なプログラムを作成できるという、画期的な利点が得られます。その結果、ゼロ知識暗号のスケーラビリティ プロパティを活用しようとしている開発者は、回路を記述する必要がなくなります。
では、Cairo で Ethereum Virtual Machine (EVM) を書き換えると、zkEVM になるのでしょうか?
シャハールの武器の呼びかけ、またはそれがどのように始まったか
カイロの共同発明者であるShahar Papini 氏は、2022 年 7 月 20 日に次のようにツイートしました。
アイデアは単純で、EVM は成熟した、明確に定義された VM アーキテクチャです。142 個のオペコード、9 個のプリコンパイル、およびこれらのオペコードまたはプリコンパイルを更新する民主的なプロセス。Cairo でビルドする場合、zkEVM を「無料」で入手できますか。つまり、ゼロ知識のスケーリング プロパティを直接の結果として入手できますか? ネタバレ注意、はい。
そこから、このアイデアは Starknet コミュニティで注目を集めました。スタークウェアの調査チームのリーダーであり、コア イーサリアム開発者チームの一員であるアブデルは、2022 年 10 月に実装を開始しました。ほぼ同時期に、オンリーダストの支援を受けて集まったスタークネットのオープンソース ビルダー コミュニティが同様のプロジェクトを並行して開始しました。 . 前者は、リスボンで開催された StarknetCC で後者を吸収しました。
2022 年末までに、カカロットは 100% の EVM オペコードを実装しました。
リスボンのハッカーハウス、1 週間の熱心な作業、約 10 人による zkEVM の構築。カカロットコアチーム誕生。これは実現可能であり、強力であることがわかりました。5,000 行未満のコードに収まる zkEVM の素朴な実装。回路も多項式もありません。高レベルで表現力豊かなコードです。
スタークネット財団とオンリーダストの助けを借りて、私たちはこの冒険に乗り出しました。私たちの価値観は、オープンソース、オープン コントリビューション、コミュニティ主導の技術戦略でした。Clémentと私はこの取り組みを主導し、調整しました。今日、Kakarot には 40 人以上のユニークな貢献者がいます。カカロットは製品グレードの zkEVM の構築に関する取り組みを具体化するために取り入れていますが、私たちの価値観は永続します: 永遠にオープンソースであり、外部の貢献に対してオープンです (+ 貢献ごとの報酬 — 参加してください! )。
2023 年 5 月の時点で、Kakarot は 100% のバイトコード同等性 (タイプ 3 zkEVM と同等) を達成し、9 つのEVM プリコンパイルのうち 8 つを実装しています。Vitalik の類型論によると、すぐに 9 つすべてが含まれ、タイプ 2.5 に到達します。その結果、Solidity またはその他の EVM がサポートする言語で記述された dApp は、既存のコードを変更することなく、Kakarot にデプロイできます。
次は何ですか?2 つの賭け: EVM を Starknet に持ち込み、zkEVM-Rollup-as-a-Service 製品を構築する
市場を分析したところ、他の zkEVM と比較して、Kakarot は弱者であることがわかりました。つまり、予算とブランドが大幅に小さい 10 人未満のチームです。汎用の zkEVM L2 としてデプロイするのは危険に思えました。では、他にどのような戦略が適切に見えたのでしょうか? Starknet に EVM 互換性をもたらし、フラクタル スケーリングを活用します。
今後数年間で、カイロがゼロ知識エンジニアリングのための最良のツールボックスであることが証明されると確信しています。また、EVM は開発者にとって最も一般的な抽象化レイヤーであり続けると考えています。これが、Starknet に EVM 互換性をもたらす理由です。まもなく、チームは、Kakarot を通じて、Solidity dApp を Starknet にデプロイできるようになります。
さらに、アプリ チェーン (またはアプリ固有の L3) は、人々が予想するよりも早く出現すると考えています。OPスタックが獲得している牽引力は良い例です。カカロットのモジュール性 (小さくて柔軟なコードベース、あらゆる Cairo チェーンに適応可能) を活用することで、zkRollup-as-a-service ツールを構築することができます。
ワンクリック: 特定のアプリの Starknet 上に L3 としてデプロイされた zkEVM。EVM 環境、低ガス、高速実行。暗号化セキュリティ。
私たちのスタックを少し覗いてみるには、 Substrate ベースの Starknet シーケンサーであるMadaraを見てください。マダラ + カカロット = Substrate & CairoVM ベースの zkEVM L3s !
コンテキストと用語集
- EVM (イーサリアム仮想マシン): EVM は、イーサリアム ブロックチェーン上でスマート コントラクトを実行するチューリング完全な仮想マシンです。これらのコントラクトのランタイム環境として機能し、命令を処理し、ネットワークの状態を管理します。開発者は、Solidity などの言語でスマート コントラクトを記述できます。これは、EVM バイトコードにコンパイルされ、仮想マシンによって実行されます。
- zkRollups: zkRollups は、ブロックチェーン ネットワーク、特に Ethereum 向けのレイヤー 2 スケーリング ソリューションです。複数のトランザクションを 1 つの証明にまとめて、メイン チェーンに投稿します。ゼロ知識証明を使用することで、zkRollups は、高いレベルのセキュリティと分散化を維持しながら、スループットの向上とトランザクション コストの削減を実現します。
- zkEVM (Zero-Knowledge Ethereum Virtual Machine): zkEVM は、ゼロ知識証明システムを組み込んだ EVM 実装です。暗号化技術を活用して、詳細を明らかにすることなくトランザクションの正確性を証明することにより、プライバシーとスケーラビリティを高めたスマート コントラクトの実行を可能にします。
GitHubに参加してください。探索するリポジトリがたくさんあります。主なものはカカロット (Cairo 0.x 実装)です。オープンなテレグラム コミュニティもあります。https://t.me/KakarotZkEvm.