コンテンツへスキップ
0%

ZKsync Eraとは?Ethereum開発者向け概要

Sankrit K headshot

執筆者 Sankrit K

2024年5月9日 公開読了時間 4 分

ZKロールアップは、ブロックチェーンのスケーラビリティを解決する有望な技術として登場した——ゼロ知識証明(ZKP)によってプライバシーを向上させ、トランザクション速度を高め、手数料を大幅に削減した。しかし、ZKロールアップはEthereum Virtual Machine(EVM)と互換性がなかったため、普及が進まなかった

EVMはEthereumの中核であり、開発者がSolidityを使ってアプリを構築・デプロイできるようにするものだ。従来のZKロールアップはEVM互換ではなかったため、開発者はZKロールアップ環境向けにスマートコントラクトを一から書き直す必要があった。その結果、技術的な優位性があったにもかかわらず、この点が普及の障壁となっていた。ZKsyncはこれを変えようとしている。

Matter LabsによるZKsyncは、Ethereum向けのレイヤー2スケーリングソリューションとして初めてのタイプのものだ。ビジョンを発表してからわずか6か月で、ZKsyncはEthereumのためのトラストレスかつプライバシー重視のスケーリングソリューションとして、一見不可能に思えたこと——EVM互換性——を達成し、ブロックチェーン業界を驚かせた。

その後、ZKsyncはZKsync LiteとZKsync Eraの2つに発展した。

この記事では、ZKsync Eraの詳細、ZKsync Liteとの違い、そして他のZKブロックチェーンとの違いについて掘り下げる。

zkSync eraとは

ZKsyncは汎用のレイヤー2 Ethereumソリューションであり、世界初のEVM互換ZKロールアップである。

これはEthereumメインネットが抱える2つの根強い問題、スケーラビリティと高いトランザクション手数料に対応するものだ。

zkSync Era TVLのグラフ
zkSync Era TVL

LLVMベースのコンパイラにより、ZKsync経由でEthereum向けに開発する開発者は、SolidityやVyperといった言語でスマートコントラクトを記述できる。ほとんどのEVMベースのスマートコントラクトは、コードを一行も書き換えることなく移行し、ZKロールアップの機能を最大限活用できる。

zkEVMの基礎知識

EVMは完全に透明であり、これには検証可能性という正当な理由がある。透明性によってのみ、EVMベースのブロックチェーンはすべてのトランザクションが可視化されるだけでなく、あらゆる参加者によって検証可能であることを保証できる。

この透明性のレベルにより、すべての操作がネットワークの合意ルールに従っていることが保証され、不正が防止され、ネットワークの安全性と分散性が維持される。

しかし、本来の目標は透明性ではなかった。トラストレス性だった。透明性は、ZKロールアップ以前において、トラストレス性に至るための手段に過ぎなかった。

例えば、正直な行為者(一般的なユーザーなど)は、個人的な選好として自分のトランザクションやその他の情報を非公開にしておきたいと考えることがある。従来のブロックチェーンでは、これは許されていなかった。

しかし、zkEVMを使えば、ブロックチェーン上のあらゆるトランザクションは、そのすべての情報を明らかにすることなく確率的に証明できる。

zkEVMトランザクションの図
zkEVMトランザクション図

zkSync liteとは

Matter Labsが最初にリリースしたZKsyncはZKsync 1.0であり、Ethereum上での安全で低コストなトークン転送を可能にすることに主眼を置いたレイヤー2ソリューションだった。後に「ZKsync Lite」と改称された。

ZKsync Liteはトランザクションをオフチェーンでバンドルして有効性証明を生成し、それをEthereumメインネットに提出して検証する。ただし完全なEVM互換性は備えていないため、対応可能なアプリの範囲は限定される。

ZKsync Liteの限界により、第2世代となるZKsync 2.0、現在の「ZKsync Era」の開発が進められた。

zkSync lite対zkSync era

チェーン

ZKsync Lite

ZKsync Era

フォーカス

スケーラブルな決済とトークン転送

完全にプログラム可能なスケーリングソリューション

EVM互換性

限定的

完全

スマートコントラクトのサポート

基本的なもの(スワップ、転送)

広範(DeFi、NFT、DAOなど)

アーキテクチャ

純粋なZKロールアップ

ハイブリッド(ZKロールアップとzkPorterによるさらなるスケーラビリティ)

統合速度

速い

ZKsync Liteより遅い

ユースケース

決済、シンプルなトランザクション

決済、複雑なアプリ、DeFiプロトコル、NFTマーケットプレイス、ゲームなど

詳細はドキュメントを参照。

zkSyncのネイティブアカウント抽象化の概要

古いレガシーブロックチェーンは、アカウント抽象化の革新をプロトコルレベルでネイティブに実装するのに苦労している。それらはすでに成熟しているため、プロトコルレベルでAA技術スタックを統合すると、後方互換性の問題が生じる。

一方ZKsyncは比較的新しいソリューションであり、ERC-4337に類似した統合を通じてAAをプロトコルに組み込んでいる。

以下に、このプロトコルがAAをネイティブに実装する仕組みを示す。

zkSyncアカウント抽象化の図。出典:Clave
zkSyncアカウント抽象化図

トランザクションの開始

トランザクションはEOAコントラクトからメンプールに送信される。これには通常の転送、コントラクトとのやり取り、その他の種類のトランザクションが含まれる。

トランザクションの集約

Bundler(Operator Sequencer)がメンプールからトランザクションを取得し、バッチにまとめる。

このプロセスには、**Entrypoint(BootLoader)**による暗号学的証明(おそらくゼロ知識証明)の生成が含まれ、これはバッチ内のすべてのトランザクションの有効性を、その基となるトランザクションデータを明らかにすることなく証明する。

証明の提出とトランザクションの確定

バンドルされたトランザクションとその証明は、Ethereum L1上のRollup Contractに提出される。

Rollup Contractはこれらの証明を検証し、検証が成功するとトランザクションを確定させる。

このステップにより、レイヤー2の計算結果が実質的にEthereumのメインチェーンに書き戻される。

確定

トランザクションがRollup Contractによって確認されると、それらは確定したとみなされる。

Ethereum上でのブロックのファイナリティにより、含まれるすべてのトランザクションが不変であり、Ethereumの台帳の一部として正式に記録されることが保証される。

zkSyncではどのようなZK技術が使われているか

「ZK技術はスケーリングにおける聖杯だ。そしてこれが、いずれEthereumおよびすべてのブロックチェーンがスケールする方法になる。」

Alex Gluchowski | Matter Labs共同創業者兼CEO

ゼロ知識証明、特に再帰的ZK-SNARKは、ZKsyncで使われている技術の中核をなす。

SNARKはゼロ知識証明の一種であり、簡潔である(サイズが小さく検証が速い)こと、そして非対話型である(証明者と検証者の間でのやり取りを必要としない)ことを特徴とする。

再帰的SNARKはこれをさらに発展させたもので、あるSNARK証明が別のSNARK証明を検証できるようにする。これにより「証明のピラミッド」の構築が可能になり、各層が前の層の有効性に依存することで、膨大な数の計算やトランザクションをスケーラブルかつ効率的に検証できる。

そのため、スマートフォンのような比較的低い計算能力しか持たないデバイスでも、最小限のリソースで大量のトランザクションを検証できる。

Matter Labsが作成したzkSyncブロック検証の図
zkSyncブロック検証図。出典:Matter Labs

ZKsyncの技術を支えているのが、そのフレームワークであるZK Stackだ。

ZK stackで構築する:zkSyncを支えるフレームワーク

ZK Stackは、ZK Credoの原則に基づいた、ZK駆動のHyperchainsを構築するためのモジュール式のオープンソースフレームワークである。

これらのHyperchainsは、ZK Syncエコシステム内でシームレスな相互運用性を享受できる独立したブロックチェーンのようなものだ。

ZK駆動のhyperchain構造の図
ZK hyperchain図。出典:Matter Labs

ZK Stackのモジュール性により、開発者は以下について細かな制御が可能になる:

  • データ可用性: プライバシーとスケーラビリティのトレードオフを最適化するため、ロールアップ、Validium、Volitionの構成から選択できる。
  • トークノミクス: Etherをベーストークンとして使うか、カスタムトークンを使うか、あるいは複数のトークンをサポートするかを含め、Hyperchainを設計できる。
  • シーケンシング: 集中型の効率性(高頻度取引向け)または分散型の許可不要なセキュリティのために、異なるシーケンサー構成を実装できる。

zkSync対他のZKブロックチェーン

数年前まで、コミュニティはEthereumのスケーラビリティを実現する手段としてサイドチェーンやプラズマを追求していた。しかし現在では、ロールアップがEthereumを効果的にスケールする技術として中心的な存在となっている。

2018年の登場以来、ZKロールアップは特に大きな注目と採用を集めており、Polygonのような大規模プロジェクトが採用し、Vitalik Buterinのような思想的リーダーもこれを推奨している。

ZK証明とスケーリングの図
ZK証明とスケーリング図。出典:Linea

L2 beatによると、本記事執筆時点ですでに11のアクティブなZKロールアップベースのレイヤー2スケーリングソリューションが存在し、さらに14が近日公開予定である。これほど多くの選択肢がある中で、開発チームはどのように構築すべき適切なロールアップを選択すればよいのだろうか。

ZKロールアップベースのレイヤー2スケーリングソリューションの一覧
ZKロールアップベースのレイヤー2スケーリングソリューション。出典:L2Beat

アプリを構築する際に考慮すべき要素は3つある:

  1. 適切なチェーンの選択: スケーラビリティ、セキュリティ、開発者サポートを評価する。これらの分野でプロジェクトのニーズに合致するブロックチェーンを選ぶ。
  2. マルチチェーン戦略の検討: マルチチェーンアプローチによる広範な市場アクセスとリスク軽減を、複雑さとコストの増加と比較検討する。
  3. エンジニアリングにおけるオーバーヘッドの評価: 統合のしやすさ、運用保守、必要な開発スキルを検討する。かかる総コストと所要時間を見積もる。

ZKsync EraがStarknetおよびPolygon zkEVMとどう異なるかを見ていこう。

zkSync era対StarkNet

Starknetは、TVLの観点でEthereum向けの主要なZKロールアップスケーリングソリューションであり、ZKsync Eraと同様の目標——Ethereumをスケールさせ、大規模な普及を促進すること——を共有している。

ZKsync Eraは後方互換性に重点を置いており、開発者が既存のSolidityやVyperの知識でプロジェクトを移行したり構築したりしやすくなっている。

一方Starknetは、主流のブロックチェーン開発言語に不慣れな新規参入者を惹きつける可能性があるアプローチを優先し、より単純とされる言語であるCairoを使い続けられるようにしている。

以下の表は、ZKsync EraとStarknetの違いを示している。

チェーン

ZKsync Era

Starknet

証明生成

ZK-SNARK

ZK-STARK

証明サイズ

小さい

大きい

トラストレス性

低い

高い

検証コスト

バッチあたり約460,000ガス

多重対数的(EIP-4844でさらに低減)

EVM互換性

あり

なし

開発者体験

Ethereum開発者にとって容易

Ethereum開発者には学習コストあり

プログラミング言語

Solidity、Vyper

Cairo

コンパイラ

LLVM

Warp

zkSync era対Polygon zkEVM

ZKsync EraとPolygon zkEVMは1週間も離れずにローンチされ、いずれも類似した技術に基づいているが、細かな違いがある。特に、Polygon zkEVMはEVM同等(equivalent)のロールアップであるのに対し、ZKsync EraはEVM互換(compatible)のロールアップである。

「EVM互換」とは、その基盤となる仮想マシンがEthereum Virtual Machine(EVM)向けに書かれたコードを理解し実行できることを意味する。開発者は既存のEthereumスマートコントラクトを最小限の修正でZKsync Eraに容易に移植できる。

「EVM同等」とは、EVMと同様の機能を実現しているが、内部では異なる仮想マシンを使用していることを意味する。開発者は既存のEthereumスマートコントラクトを、Polygon zkEVM上で問題なく動作させるために調整する必要がある場合がある

以下の比較表は、ZKsync EraとPolygon zkEVMの重要な違いを示している。

チェーン

ZKsync Era

Polygon zkEVM

証明生成

ZK-SNARK

ZK-SNARKおよびzk-STARK

証明サイズ

小さい

大きい

トラストレス性

低い

高い

EVM互換性

互換(Compatible)

同等(Equivalent)

開発者体験


Ethereumスマートコントラクトの容易な移行

コードの調整が必要な場合がある

プログラミング言語

Solidity、Vyper

Solidity

コンパイラ

LLVM

コンパイラは使用しない

Alchemyで構築する

ZKsyncは現在Alchemy上で利用可能である。

この統合により、ZKsyncノードの運用と保守の負担がなくなり、アプリケーション独自の価値提案に集中できる。

Alchemyのスーパーノードを通じて、ZKsync Eraのメインネットおよびテストネットのエンドポイントにアクセスできる。AlchemyのAPIにより、開発者は高い信頼性と効率化された開発体験を得られる。

開始までの3ステップ

  1. 無料アカウントに登録する: Alchemyにアクセスしてアカウントを作成する。
  2. ZKsync Era RPCエンドポイントを取得する: Alchemyダッシュボードで、ZKsync Era(メインネットおよびテストネット)のエンドポイントを探す。
  3. 構築を開始する: これらのエンドポイントをdAppに統合する。

詳細はZKsync Era APIクイックスタートドキュメントを参照。

よくある質問

zkSync eraとは何か

zkSync Eraはレイヤー2 Ethereumスケーリングソリューションであり、世界初のEVM互換ZKロールアップである。既存のEthereumスマートコントラクトとの完全な互換性を維持しながら、Ethereumのスケーラビリティの問題と高いトランザクション手数料に対応する。

zkSync eraはzkSync liteとどう違うか

zkSync Liteは限定的なEVM互換性を持つスケーラブルな決済とトークン転送に重点を置いているのに対し、zkSync Eraは完全なEVM互換性を備えた完全にプログラム可能なスケーリングソリューションであり、DeFiプロトコル、NFTマーケットプレイス、ゲームといった広範なアプリをサポートする。

zkSync eraで構築するために開発者は新しいプログラミング言語を学ぶ必要があるか

いいえ、開発者はSolidityやVyperといった馴染みのあるEthereumのプログラミング言語を使用できる。また、ほとんどのEVMベースのスマートコントラクトはコードを一行も書き換えることなく移行できる。

zkSync eraはどのようなゼロ知識技術を使用しているか

zkSync Eraは再帰的ZK-SNARKを使用している。これは簡潔かつ非対話型のゼロ知識証明であり、最小限の計算リソースで大量のトランザクションを効率的に検証できる。

zkSync eraにおけるネイティブアカウント抽象化とは何か

zkSync Eraはアカウント抽象化をプロトコルレベルで組み込んでおり、古いブロックチェーンが直面する後方互換性の問題を伴わずに、高度なウォレット機能とユーザー体験の向上を可能にしている。

zkSync eraはStarknetのような他のZKロールアップとどう比較されるか

zkSync EraはSolidityとVyperを使用したEVM互換性を優先しており、より容易な移行を可能にしている。一方Starknetは独自のプログラミング言語Cairoを使用しており、開発者は新しいツールを学ぶ必要があるが、新規参入者にとってはより単純な開発が可能になる場合がある。

ZK stackとは何であり、zkSync eraとどう関係しているか

ZK Stackは、zkSync Eraを支えるモジュール式のオープンソースフレームワークであり、データ可用性、トークノミクス、シーケンシングの構成について細かな制御を可能にしながら、ZK駆動のHyperchainsを構築できるようにする。

Background gradient

ブロックチェーンで魔法を生み出す

Alchemyは、最も強力なweb3開発者向けプロダクトとツールを、豊富なリソース、コミュニティ、そして卓越したサポートと組み合わせて提供します。