分散構造の影響で、ブロックチェーンは動作が遅くなる傾向があります。1 つのトランザクションを何千ものEthereumノードで検証する必要がある場合、ネットワークの使用コストも高くなります。レイヤー2は、この問題に対する解決策となりうる仕組みであり、ロールアップが最も一般的なスケーリング方法です。
ゼロ知識 (ZK) ロールアップは、トランザクションを検証するために必要な最小限のデータを使用します。過剰なネットワークワークロードからEthereumの負担を軽減することにより、イーサリアムは高速かつ安価になります。
ロールアップ: Ethereumを高速かつ安価にするレイヤー2 スケーリング
Ethereumのパフォーマンスを向上させる方法はたくさんあります。これらのスケーリング手法には、ロールアップ、サイドチェーン、ステートチャネルなどがあります。レイヤ ー2のTVL(Total Value Locked)から判断すると、ロールアップは最も一般的なスケーリング技術です。
ご覧のとおり、ロールアップはオプティミスティック(Optimistic)とゼロ知識(ZK)の 2 つのタイプに分けられます。どちらのタイプも、何百ものトランザクションを1つのトランザクションとしてローリングすることにより、レイヤー1(Ethereum)のワークロードを削減します。
この一まとめにされたトランザクションは検証され、データブロックとしてEthereumの公開台帳に追加されます。このEthereumのトランザクション量の削減により、レイヤー 1は混雑せずに済みます。また、Ethereumが混雑していないときは、Ethereumのガス代が大幅に下がるため、はるかに安く使用することができます。
これは、パブリックチェーンでは、トランザクションを格納するためのブロックスペースが限られているためです。したがって、ネットワークトラフィックが増えると、ブロックスペースの需要が増加し、バリデータは検証される各トランザクションに対してより多くの料金を請求することになります。
結局のところ、すべてのコンピュータネットワークでは、ある程度の帯域幅/計算リソースを消費する必要があります。ブロックチェーンの場合、そのコストはユーザー自身が負担します。
これが、レイヤー2が非常に重要な理由です。特に、ロールアップには、Ethereumエコシステムに高速で手頃な価格のユーザーエクスペリエンスを提供するという 2 つの効果があります。
ZKロールアップとは?
ロールアップは、トランザクションブロックを検証するためのEthereumのコンピューティングとストレージ要件を軽減するスマートコントラクトです。前述のように、ロールアップでは何百ものトランザクションを1つのトランザクションにまとめます。
新しいブロックとしてEthereumに送信する前に、単一のトランザクションで保持されているすべての取引を分解して検証するのは、ロールアップスマートコントラクトの役割です。ゼロ知識証明は、それを実現する方法の 1 つです。
ゼロ知識証明によるロールアップは、ZK-Syncなどのレイヤー2で、有効性証明を提出することによりロールアップを実行します。この証明は、ロールアップされたトランザクションが実際に本物であり、Ethereumに追加されたというレシートとして機能します。ゼロ知識暗号化は、最小限のデータのみを使用して真正性の証明を提供するため、ここで役立ちます。
言い換えれば、ZKロールアップは、詳細を明らかにすることなく、ブロックの有効性を提示します。トランザクションデータの負荷を軽減することで、ZKロールアップはプライバシー問題を改善しつつ、安価で高速なトランザクションを可能にします。
ZKロールアップはどのように機能しますか?
ZKロールアップは、メインコントラクトと検証コントラクトの2つのスマートコントラクトで構成されます。どちらもEthereum上で動作し、連携してレイヤー1とレイヤー2をリンクします。
- 主なスマートコントラクトは、ロールアップされたトランザクション/ブロックを格納します。また、チェーンの状態を比較して、ユーザーの引き出し/預金の状態を判断します。
- 検証コントラクトは、ゼロ知識証明を使用してブロック内のトランザクションを認証します。
オフチェーン (Ethereumではなく) で動作する仮想マシンは、ZKロールアップを実行します。これはオフロード部分で、ZKロールアップがトランザクションを実行し、Ethereumが混雑しないようにします。Ethereum仮想マシン (EVM) 同様に、ZK仮想マシンはスマートコントラクトを実行するソフトウェアであり、ビデオゲームエンジンがゲームの全機能を実行してプレイ可能にするのと同じように機能します。
この仮想マシンを使用すると、ZKロールアップにより、チェーン外のEthereumトランザクションが単一のトランザクションにバッチ処理されます。しかし、単一のトランザクションを有効性証明としてレイヤー1に提出するため、依然としてEthereum自体に依存しているということができます。
このプロセスの意味するところは、ZKから得られたすべてのデータの更新は、Ethereum(そのEVM)によって正確性が確認されるため、ZKロールアップはEthereum自体と同じくらい安全であるということです。
最後に、ZKバッチトランザクションは有効性証明として送信されるため、簡潔な非対話型知識証明(SNARK)、または簡潔な透明性のある知識証明(STARK)としても知られています。
ZKロールアップの長所と短所
完全にEVM互換の仮想マシンを使用するOptimisticロールアップとは異なり、ZKロールアップは独自の仮想マシンを使用します。これにより、ゼロ知識証明を生成するために高い計算能力が必要になるという欠点が生じます。
このため、最大のスループットを達成するには、トランザクションデータをさらに最適化する必要があります。同様に、ZKロールアップに計算能力を要するほど、Optimisticロールアップよりもトランザクションコストがわずかに高くなります。
それにもかかわらず、Optimisticロールアップとは対照的に、ZKロールアップには資金を引き出すためのチャレンジ期間がありません。これは、ZKの仮想マシンが有効性証明としてトランザクションを既に送信しているためです。これにより、トランザクションの正当性の問題が事前に解決されます。その結果、ZKロールアップはOptimisticロールアップやPlasmaよりも高速です。
ZKロールアップのもう 1 つの利点は、トランザクションが並行して計算されるため、分散化が促進されることです。さらに、ゼロ知識証明により余分なデータが不要になるため、各トランザクションは必要最小限のみを保持します。言うまでもなく、これによりレイヤー2のスループットが大幅に向上し、Ethereumの混雑軽減にも寄与します。
そうは言っても、ZKロールアップの問題点の 1 つは、検閲の可能性です。この問題点は、単一ノードをトランザクションデータシーケンサーとして使用する一部のZKロールアップに起因します。
現在のZKロールアップ
ZKロールアップ技術は、急速に注目を集めています。このスケーリングテクノロジーを採用している最も一般的なネットワークの一部を次に示します。
- ImmutableX – NFTおよびWeb3ゲーム用の汎用スケーラビリティプロバイダー
- zkSync – zkSync2.0でEMV互換性のある最初のネットワークとして、最も高度なZKネットワークの1つです。
- StarkNet – EthereumのdApps用のレイヤー 2
- Aztec Connect – ZKロールアップのプライバシーを活用して、ブロックチェーン用のVPNのようなサービスを提供するネットワーク
- Polygon Hermez – Polygon内のEthereumスケーリングソリューション
ZKロールアップを利用するdAppsの中で、最も人気のあるものとしては、レンディングのYearn Financeや、レバレッジデリバティブ取引プラットフォームであるdYdXがあります。その他の注目すべきDeFi dappsの大部分はzkSyncに存在します(Curve、Taker、ZigZagのほか、稼働前のものも多数)。
ZKロールアップはEthereumスケーリングの未来ですか?
2022年以前は、Optimisticロールアップは、完全にEVM互換の仮想マシンで実行されるため、スマートコントラクトをオフチェーンで実行できる唯一のロールアップでした。ZK ロールアップは、基本的なトークンの転送やスワップしか処理できなかったのです。
これは 2022年にzkSync 2.0の登場により一新されました。zkSync 2.0はEVM互換性と最大100,000トランザクション毎秒(tps)の速度の両方を提供することが可能です。最大のDeFiネットワークであるEthereumのセキュリティを活用することで、ZKロールアップは他のスケーリングソリューションよりも優れたセキュリティを提供します。
このスケーリングテクノロジーは、シーケンサーノードの集中化など、まだいくつかの課題に直面していますが、Ethereumのトップスケーリングソリューションになる可能性があります。
※この記事はこちらの記事を和訳したものになります。
おわりに
以上ZKロールアップについてでした。正直自分の中で完全に理解できた状態からはまだまだほど遠いと自覚があります。が、ただ読むよりアウトプットした方が自分の理解も深まりやすいので、こうして記事にしています。
正直ZK系のお触りを全然できていなかったので、今後は心を入れ替えて積極的に触っていこうと思います。それではまた〜