Zeth 公開発表:初の Type 0 zkEVM

コレクション
RISC Zero zkVM に基づくイーサリアムオープンソース ZK ブロックバリデーター Zeth が公開されました。

原文标题:Zethの発表:最初のType Zero zkEVM

著者:Tim Cartens, Victor Graf, Rami Khalil, Steven Li, Parker Thompson, Wolfgang Welz, Zeth Collaboration

翻訳:bayemon.eth, ChainCatcher

本日、RISC Zero zkVMに基づくEthereumオープンソースZKブロックバリデーターZethが公開されました。Zethは、zkVM内で新しいブロックを生成するために必要なすべての作業を完了し、バリデーターやシンクロナイゼーション委員会に依存することなく機能します。ZethはEthereumメインネットの複数の実際のブロックで検証され、Ethereum公式テストスイートのすべての関連テストを通過しました。Zethは、4週間以内にzkVMに基づくRustサポートと、revm、etherthers、alloyを含む強力なモジュールを実現しました。zkVMによる連続性とBonsai証明サービスのサポートにより、Zethは数分でこれらの証明を生成できます。Zethのオンチェーンバリデーションのサポートにより、誰でも低コストでこれらの証明をオンチェーンで検証できます。この記事では、詳細を紹介し、コードを深く理解したい方はソースコードを確認し、RISC Zero開発者ポータルを訪問してください。

概要

約1年前、VitalikはzkEVMの異なるタイプについて述べました:

Ethereumは最初からZKフレンドリーに設計されていなかったため、Ethereumプロトコルの多くの部分はZK検証を行うために大量の計算を必要とします。1クラスのEVMの目標はEthereumを完全に複製することですが、それはこれらの非効率的な問題を軽減することができません。現在、Ethereumブロックの証明には数時間かかります。

Ethereumの発展の歴史の中で関連するケースは存在しますが、本日、RISC ZeroのzkVMとBonsaiサービスを使用したEthereumブロックの証明が数時間ではなく数分で完了することを発表できることを嬉しく思います。

Zeth:検証可能なEthereumブロック生成

本日、RISC Zero zkVM上でEthereum向けのオープンソースZKブロックバリデーターZethを発表しました。

Zethは、与えられたEthereumブロックが有効であることを証明でき、バリデーターやシンクロナイゼーション委員会に依存することはありません。これは、ZethがzkVM内で新しいブロックを生成するために必要なすべての作業を完了するためです。具体的には:

  • トランザクション署名の検証
  • 親ブロックの状態ルートに基づくアカウントとストレージの状態の検証
  • トランザクションの適用
  • ブロック作成者への手数料の支払い
  • 状態ルートの更新
  • その他、ブロック生成に必要な作業

新しいブロックを生成した後、Zethはそのハッシュ値を計算して出力します。zkVM内でこのプロセスを実行することで、新しいブロックが有効であることを示すZK証明を得ることができます。

RISC ZeroのzkVMと人気のRustクレート(revm、ether、alloyなど)を活用することで、4週間以内にZethの最初のバージョンを作成しました。zkVMによる連続性とBonsai証明サービスのサポートにより、証明生成はわずか数分で完了します。オンチェーンバリデーションのサポートにより、低コストでこれらの証明をオンチェーンで検証できます。

ZethはEthereumメインネットの複数の実際のブロックで検証され、Ethereum公式テストスイートのすべての関連テストを通過しました。

Zethは標準のEthereumブロックを構築しているため、1クラスのzkEVMと見なすことができます。しかし、その意義はそれだけではありません。Zethは標準のRustコードベース(Rethなどの人気のフルノードが使用するコードベースと同じ)を使用して構築されているため、私たちはそれを0クラスのzkEVM:完全なプロトコル互換性と大量のコード再利用と見なすことを好みます。

このマイルストーンは、ZK技術とEthereumエコシステムが前進した大きな一歩を示しています。この記事では、数週間でZethの最初のバージョンを作成する方法、その性能、動作原理、そしてこれがZKプロジェクトにとって何を意味するのかを議論します。

RISC Zeroはzkロールアップ、zkEVM、軽量クライアント、ブリッジの構築を容易にします

私たちがZethを作成した理由は2つあります:

  1. 他のチームが自分たちのZK駆動のインフラストラクチャ(ZKロールアップ、zkEVM、ZK軽量クライアント、ZKブリッジなど)を構築しやすくすること。Zethは、EVMベースのブロック生成のためのZK証明に必要なすべてを提供します。これは、任意のzkEVMまたはブリッジの重要なコンポーネントです。Zethはrevmに基づいてオープンソースであるため、プロジェクト開発者は簡単に修正または使用できます。証明はオンチェーンで検証可能(ブリッジやL2に非常に適しています)であり、ローカルアプリケーションでも検証可能です(フルノードや軽量クライアントに非常に適しています)。
  2. ZethのzkVM内でEVM性能に関する関連研究を行うこと、特にEthereumに関連するタスクについてです。(調査結果の分析は以下に記載します)。

zkロールアップとzkEVM

0クラスのzkEVMとして、Zethは開発者が完全にネイティブなEVMとEthereum互換のzkロールアップを構築できるようにします。Zethのオンチェーン証明検証のサポートにより、ZK駆動のL2スケーリングソリューションの構築が非常に簡単になります。

既存のZKロールアップとzkEVM回路は設計上単一のものであり、開発者がZK暗号学に対する高い理解を持っていない限り、アップグレードは不可能です。それに対して、zkVMに基づくZethのアプローチは、どの開発者でも自分のニーズに応じてカスタマイズおよび修正できるようにします。

Zethはrevmに基づくオープンソースであり、他のzkEVMやEVM互換チェーンをサポートするように調整するのは比較的簡単です。したがって、Zethは将来のEIPの更新に対しても比較的迅速に反応します。さらに、Zethはモジュール化機能も提供しており、開発者がその中で独自のブロック構築ロジックを構築できるようにします。

私たちは、Zethの取り組みがzkロールアップとzkEVMの民主化を促進することを望んでいます。以前は、ZK駆動のL2ソリューションには数年の研究開発と1億ドル以上の資金が必要でしたが、これはほとんどのプロジェクトにとって負担が大きすぎる消費です。

軽量クライアントとブリッジ

信号チェーンの導入は、軽量クライアントとブリッジにとっての福音です。これらの技術は、Ethereumの成熟したPoSモデルに基づいており、すべての人がルールを守る前提で、軽量クライアントとブリッジが最近のブロックを簡単に検証できるようにします。

もちろん、ステーキングの全ての意味は、ルールを守るノードに経済的インセンティブを提供することです。しかし、ノードに対するスラッシングの脅威は、悪行を完全に回避することはできません。外部のインセンティブ要因は、利益の「天秤」を常に悪行側に傾けることになります。したがって、これらの悪行を適切に処理できる軽量クライアントやブリッジを設計することは非常に難しいです。

Zethのようなツールがあれば、ノードの悪行のリスクは大幅に低下します。軽量クライアントは、zkVMにいくつかの呼び出しインターフェースを追加するだけでZethと統合できます。ブリッジなどのオンチェーンアプリケーションは、私たちのオンチェーン証明検証契約を使用してZethと統合できます。

近い将来、軽量クライアントとブリッジがZK証明を使用して特定のブロックが有効かどうかを確認することを想像できます。このアプローチはリスクを大幅に低下させ、ブロックの検証コストを大幅に増加させることはありません。

これは、アプリケーションチェーン、モジュール化エコシステム、新しいチェーンにとって特に重要です。なぜなら、これらはEthereumの大規模なフルノードコミュニティが提供する同等のセキュリティをまだ持っていないからです。

良好な基盤がプロジェクト開発プロセスを簡素化します

ZethはRISC Zero zkVMに基づいており、RISC-V命令セットアーキテクチャを駆動して、開発者に馴染みのあるプログラミング体験を提供します。しかし、私たちのzkVMは単なるRISC-Vコアではありません。ハッシュアルゴリズムや署名検証などの一般的な暗号タスクのために加速回路も備えています。

このハイブリッドアプローチ(汎用CPUコアと加速回路の組み合わせ)は、私たちに二者択一の解決策を提供します:

  • 主流のプログラミング言語をサポート。
  • 重要な暗号操作の性能を損なわない。

そのため、私たちはrevm、ether、alloyからの既存のRustコードパッケージを使用して迅速にZethを構築することができました。既存のモジュールを再利用することで、4週間以内にZethの最初のバージョンを完成させました。この速度は、あまり成熟していないエコシステムでは実現不可能です。

性能に関して、ZethはECDSA署名検証のための加速器回路と連続性を活用しています。これは、私たちのZKフレームワークの新機能であり、nVidia CUDAまたはApple Metalを使用して並行して動作するGPUクラスターを簡単に活用して大規模な計算を迅速に証明できます。連続性は使いやすく、zkVM内で実行されるすべてのゲストプログラムに透明に提供され、コードを変更することなく正常に動作します。

私たちのzkVMを使用することで、数時間ではなく数分でEthereumブロックの有効性に関するZK証明を迅速に生成できます。

性能

Zethブロック生成器の性能について紹介します。Zethはまだ新しい製品であるため、これらのデータは変わる可能性がありますが、将来の作業のベンチマークとして具体的なデータを提供したいと考えています。

性能に関して考慮すべき要素はいくつかあります:

  • 証明生成に必要な計算リソース。
  • 証明生成に必要な「壁の時間」(つまり、ユーザーが証明を得るまでに待つ必要がある時間)。
  • 証明生成の総コスト(ドル)。

連続性

ZethのzkVMは、連続的な実行を使用して性能を調整できます。したがって、ここで「連続的な実行」がどのように機能するかを説明する必要があります。

私たちのzkVMは標準のRISC-Vプロセッサを実装しています。したがって、周期単位で実行されます。(私たちの回路では、ほとんどのRISC-V命令の実行には1周期しかかかりませんが、例外もあります)。単純なプログラムは通常、数十万周期で実行されますが、より複雑なプログラムは数十億周期を必要とすることがあります。

典型的なZKシステムでは、これらの実行周期が1つの証明に集約されます。周期数が増えるにつれて、証明生成に必要な時間とメモリも増加します。しかし、私たちのzkVMはこれらの慣習に従っておらず、今年の初めに、従来の証明モード生成の欠点を改善する新機能を初めて導入しました。

連続性に関して、証明プロセスは3つの段階に分かれています:

私たちは非証明シミュレーター内で必要な計算を実行します。このプロセスでは、これまでに実行されたループの回数を計算します。可変の時間間隔で、プログラムの状態をスナップショットします。これにより、実行プロセスが複数のセグメントに分割されます。各セグメントは非常に小さく、通常は100万周期以下を表します。

これらのセグメントは、証明生成ワーカーのグループに割り当てられます。彼らは与えられたプログラムセグメントのZK証明を生成します。重要なのは、彼らが並行してこの作業を完了できることです。十分な数のワーカーがいれば、プログラムセグメントを証明するのに必要な時間内にすべてのプログラムセグメントを証明できます。セグメントが小さいため、通常は必要な時間は短く(数十秒)なります。

分割証明を生成する際、それらは最終的にロールアップされます。各「ロールアップ」操作は、連続する2つの分割証明を取得し、これらのセグメントの組み合わせに対して新しい証明を生成します。たとえば、セグメント1が状態Aから状態Bに遷移するプログラムを証明し、セグメント2が状態Bから状態Cに遷移するプログラムを証明する場合、ロールアップはプログラムが状態Aから状態Cに遷移することを証明します。十分な数のワーカーがいれば、これはlog(N)時間内に完了できます。ここでNはセグメントの数です。

これらの数字を詳しく調べると、これらの段階の実際の効果が見えてきます。

Ethereumブロックを構築するのはどれほど難しいか?

まず、Ethereumブロックの構築の複雑さを見てみましょう。以下の表では、いくつかの現実世界のEthereumブロックを選択し、zkVM内でZethを使用してそれらを再構築しました。

たとえば、ブロック17606771は2131のセグメントを生成します。各セグメントは最大で2^20の実行周期を表すため、全体の計算には最大で2,234,515,456の実行周期が必要です。

一般的に、典型的なEthereumブロックを構築するには20億から40億周期が必要ですが、時には95億周期に達することもあります。(最初は、これらの差異がトランザクションのガスに反映されていないことに驚きました。しかし、さらに考えると、これは理にかなっています。ガスシステムは通常の実行を考慮して設計されており、ZK証明を考慮していないからです)。

連続性があれば、この規模は簡単に管理できます。これらのデータに基づくと、10,000ノードがzkVMバリデーターを実行するピアツーピアネットワークが、最大ブロックの最高の並列検証性能を実現するのに十分であり、これはEthereumが現在持っている700,000のバリデーターのほんの一部に過ぎません。

証明生成にはどれくらいの時間がかかるか?

基本的な性能データを収集するために、64のGPUワーカーを持つBonsaiテストインスタンスを起動しました。次に、Zethを使用してブロック17735424(182のトランザクション、3242のセグメント、または約3.4Bの周期)を証明するように要求しました。

証明を生成するために、zkVMはまず実行を複数のセグメントに分割する必要があります。以下のスクリーンショットでは、Executorタスクがこのプロセスをキャッチしました。このタスクは10分間実行されました。(その大部分の時間は、AWSの作業を行っている間に費やされました。たとえば、ネットワークストレージへの書き込みなど)。ローカルマシンでは、同じタスクは6分未満で完了しました。私たちは、今後1年以内にこの時間を大幅に短縮することを期待しています)。

実行者は最終的に実行を3242のセグメントに分割しました。64のGPUにとっては大きな分割です。したがって、各作業ノードは50のセグメント証明を生成する必要があります。以下の図のように、これには35分かかります。もし私たちが50倍の作業ノードを持っていれば、42秒で済みます。

セグメント証明が完了した後、ロールアップが始まります。3242のセグメントがあるため、log_2(3242) = 12回のロールアッププロセスを実行する必要があります。ロールアップの初期段階では、作業量が労働者よりも多いため、最初の段階は1分、2段階は35秒、3段階は25秒などかかります。7段階に達すると、時間は5秒少々に安定します。同様に、もし私たちがより多くの労働者を持っていれば、各段階は5秒で済みます。

ロールアップが完了すると、結果が最終的に確定されるのにさらに1分かかります。

したがって、クラスター規模が不足している場合、約50分で証明を生成できました(有効速度は1.1 MHz)。クラスター規模が適切であれば、証明生成の速度はさらに速くなると推定しています:

完全に並列の場合、証明ステップは42 + 12 * 5 + 60秒、つまり2分42秒で完了します。

保守的に四捨五入し、実行者の時間を考慮に入れると、時間は約9分から12分の間になります(有効速度は4.7 MHz - 6.3 MHz)。

実行者と証明フレームワークの改善を続ける中で、私たちは楽観的に、今後1年以内にこの時間が大幅に短縮されると考えています。

証明生成のリソース消費

上記のテストクラスターはAWSにデプロイされています。64のg5.xlarge証明ノードと1つのm5zn.xlarge実行ノードで構成されています。Amazonによれば、各g5.xlargeノードには

  • 1つのGPU、24 GiBのGPUメモリ
  • 4つのvCPU、16 GiBのメモリ容量

この記事を執筆している時点で、これらのインスタンスのオンデマンド価格は1.006ドル/時間、リザーブインスタンスの割引価格は0.402ドル/時間です。一方、Amazonの仕様表によれば、私たちのm5zn.xlargeノードには

  • 4つのvCPU、16 GBのメモリ

この記事を執筆している時点で、このインスタンスのオンデマンド価格は0.3303ドル/時間です。

これらの数字を使用して、上記で説明したブロック17735424の証明コストを大まかに推定できます。

思い出してください、私たちは64の証明ノードをデプロイし、このデプロイでは証明生成に50分かかります(エンドツーエンド)。アイドルの労働者の時間を無視すると、64の証明ノードと1つの実行ノードの50分のコストは50/60 * (64 * 0.402 + 0.3303) = 21.72ドルです。これは高めの数字です。なぜなら、アイドルの労働者に支払う必要があると仮定しているからです。アイドルの労働者のコストを考慮しない場合(たとえば、彼らをシャットダウンするか、他の作業をさせる場合)、コストは約19.61ドルになります。

  • このブロックには182のトランザクションがあり、各トランザクションのコストは0.11ドルです。
  • トランザクションの総価値は1.125045057 Eth、約2137.59ドルです。したがって、1ドルの証明で109.01ドルのユーザー資金を得ることができます。
  • 同じブロックが支払った報酬は0.117623263003047027 Eth(トランザクション手数料を除く)です。この記事を執筆している時点で、これは約223.48ドルです。したがって、私たちの証明はブロック報酬の約8.7%を占めています。
  • トランザクション手数料は合計で0.03277635 Eth、つまり62.28ドルで、私たちの証明コストの3倍以上です。

これらのドルの推定は、クラスターの規模に依存しないことに注意してください!重要なのはセグメントの数です。なぜなら、1台のマシンが2つの作業を順次完了するコストは、2台のマシンが1つの作業を並行して完了するコストと同じだからです。したがって、クラスターの規模が大きくなると、証明生成の速度は速くなりますが、コストは高くなりません。

コストをさらに削減する方法はいくつかあります。zkVMの性能を引き続き向上させることに加えて、Keccak加速器を追加することや、より安価なインスタンスを探すこともできます。重要なのは、私たちが使用しているマシンスペックが低いため(さらに、私たちのzkVMはnVidia CudaとApple Metalをサポートしています)、この作業は一般的な消費PCやMacで構成されたp2pネットワークによって簡単に実行できるということです。

オンチェーンバリデーション

前述のように、私たちはRISC Zero Groth16バリデーターを使用してSepolia上のZeth証明を検証しました。これはRISC Zeroプロトコルスタックの比較的新しい部分で、今月初めにリリースされました。その仕組みは、Bonsaiを使用してzkVMのネイティブSTARK証明を等価なSNARK証明に変換し、その証明をオンチェーンSNARKバリデーターに提出することです。

トランザクション入力をUTF-8データと見なすと、この証明はブロック17735424に対応します。

Bonsaiを使用すると、STARKからSNARKへの変換には約40秒かかります。SNARKのオンチェーン検証には245,129ガス(この記事を執筆している時点で約5.90ドル)が消費されました。

もちろん、zkVMの利点の1つは、複数の証明を1つに統合できることです。この機能を使用すると、追加のガスを使用せずに一連の証明をオンチェーンで検証できます。これにより、オンチェーン検証のコストは一連の証明に分散され、各人の費用が削減されます。

これはEthereumにとって何を意味するか

前述のように、Ethereumは設計時にZKのフレンドリーさを考慮していませんでした。zkEVMのケースが示すように、特にオペコード、デジタル署名、ハッシュ関数に関して、異なる方法で実行できることがたくさんあります。

これらの変更は確かに性能を向上させましたが、私たちはこれらの変更を使用せずに安定した性能を実現することができました。昨年、Vitalikが異なるタイプのzkEVMについて述べたとき、Ethereumブロックの有効性を証明するのに数時間かかりましたが、今では数分で完了できます。ZK性能は急速に向上しており、この傾向は今後数年にわたって続くと信じる理由があります。

付録:Zethの動作原理

この部分は開発者向けに準備されています。

大まかに言えば、Zethがブロックを構築する方法はフルノードと同じです。親ブロック、トランザクションリスト、ブロック作成者から始まり、その後、大量の計算(署名の検証、トランザクションの実行、グローバル状態の更新など)を行い、最後に新しいブロックのハッシュ値を返します。

しかし、フルノードとは異なり、私たちはzkVM内でこれらの作業を完了します。これにより、与えられたハッシュ値を持つブロックが有効であることを証明するZK証明を得ることができます。

もちろん、これは挑戦がないわけではありません。このセクションでは、これらの挑戦と私たちがどのように対処したかを紹介します。

暗号学

最初の挑戦は暗号学です。Ethereumブロックを構築するには大量の作業が必要で、その中でも最も重要なのはハッシュ(Keccak-256)と署名検証(ECDSAとsecp256k1)です。

私たちのzkVMは楕円曲線に対する加速サポートを提供しているため、ECDSA署名の検証は難しくありません。

しかし、ハッシュに関しては、私たちはそれほど幸運ではありません。私たちのzkVMはSha2-256に対する加速サポートを提供していますが、(この記事を執筆している時点で)Keccak-256はサポートしていません。したがって、現在、私たちはsha3 Rustクレート内のKeccak実装を使用しています。解析を通じて、これには大量の周期が必要であることがわかりました。これは最適なソリューションではありませんが、私たちのzkVMはそれを処理でき、さらにループを再利用し、後でKeccak加速器を追加することができます。

アカウントとストレージ:性能とセキュリティ

Ethereumでは、アカウントとストレージはグローバルMerkle Patricia Trie(MPT)によって追跡されます。

Etherscanのデータによれば、この記事を執筆している時点で、この木には約250,000,000のユニークなEthereumアドレスの状態が含まれています。全体としてはそれほど大きなデータ量ではありませんが、その保存と使用方法には慎重である必要があります。特に、MPTの性能は非常に重要です。

しかし、性能だけが重要な要素ではなく、セキュリティも考慮しなければなりません。

Zethのブロック生成器は、顧客の身分でzkVM内で実行されます。これは、Ethereumのp2pネットワークや他のRPCプロバイダーに直接アクセスできないことを意味します。代わりに、zkVMの外部で実行される独立したプログラムが提供するデータに依存する必要があります。

ZKアプリケーションのセキュリティを分析する際、外部プログラムが悪意を持っていると仮定し、悪意のあるデータを提供する可能性があると考えなければなりません。このような状況を防ぐために、ZKアプリケーションは提供されたデータが有効であることを検証する必要があります。

Zethブロック生成器にとって、これは関連するすべてのアカウントとストレージの状態(つまり、与えられたトランザクションリストを実行するために必要なアカウントとストレージ)を検証することを意味します。

幸いなことに、EIP-1186は、特定のアカウント(およびそのストレージ)状態をMerkle包含を通じて証明する標準的な方法を定義するメカニズムを提供しています。

原則として、Zethのブロック生成器は、EIP-1186包含証明のセットを検証することでアカウントとストレージの状態を検証できます。しかし、この方法は理想的ではありません。

むしろ、EIP-1186包含証明内のデータを使用して部分MPTを構築する方が良いです。これは、与えられたトランザクションリストに関連するノードのみを含むMPTです;関連しないブランチは対応するハッシュ値で表されます。部分MPTをMerkle包含証明の「結合」と見なすことができます;あるいは、望むなら、Merkle部分集合証明と見なすこともできます。

部分MPTを検証するプロセスは、通常のEIP-1186証明を検証するプロセスと基本的に同じです:ルートハッシュ値を計算し、それを親ブロックの状態ルートと比較します。両者が等しい場合、そのアカウントとストレージの完全性を信頼できます。

部分MPTが検証された後、トランザクションを適用し、部分MPTを更新できます。新しい状態ルートは、部分MPTの新しいルートハッシュ値を計算することで得られます。

  1. Zethブロック生成器を実行する前に、トランザクションリストをサンドボックス内で実行し、関連するアカウントとストレージを特定します。(このプロセスでは、最も古い関連する前代ブロックを特定することもでき、これはblockhash()クエリをサポートするために必要です)。
  2. 各関連アカウントとストレージのEIP-1186包含証明を取得します。(関連する前代ブロックも取得します)。
  3. これらの包含証明を使用して、すべての関連データを含む部分MPTを構築します。
  4. zkVMを起動し、Zethブロック生成器を実行し、部分MPTや他の入力(親ブロック、トランザクションリストなど)を提供します。

zkVM内で、Zethブロック生成器は:

  1. 部分MPTのルートが親ブロックの状態ルートと一致するかを検証します。
  2. 前代ブロックのハッシュチェーンを親ブロックまで検証します。
  3. トランザクションを適用します。
  4. 部分MPTを更新します。
  5. 部分MPTの新しいルートハッシュ値を新しいブロックの状態ルートとして使用します。

Zethブロック生成器が完了すると、新しいブロックのハッシュ値が出力されます。

このハッシュ値には親ブロックへのコミットメントが含まれているため、親ブロックの状態ルート(元の部分MPTを検証するために使用されます)も含まれています。これは、悪意のあるバリデーターが無効な親ブロックを提供しない限り、アカウントとストレージに無効なデータを提供できないことを意味します。

言い換えれば:親ブロックが有効であれば、Zethが生成した新しいブロックも有効です。

したがって、誰かが新しいブロックとZethが生成したZK証明を提供した場合、次の3つの点を確認することでそのブロックの有効性を確認できます:

  1. ZK証明が有効であり、Zethからのものであることを確認します。オフチェーンアプリケーションの場合、zkVM Rustクレートが提供する関数を使用して確認できます。オンチェーンアプリケーションの場合、私たちのオンチェーン証明検証器を使用して確認できます。
  2. ZK証明が新しいブロックのハッシュ値を提出していることを確認します。
  3. 親ブロックが期待されるハッシュ値を持っていることを確認します。

これらがすべて確認できれば、新しいブロックは有効です。

制限と今後の改善

私たちのプロジェクトの目標は、ブロック構築の性能を研究することです。そのため、私たちは範囲を合併後のブロックに制限することに決めました。

さらに、Zethは与えられたブロックが有効であることを証明できますが、現在のところコンセンサス(つまり、そのブロックが正規のチェーンに確実に含まれていること)を証明することはできません。この点は将来的に変更される可能性があり、zkVM内でバリデーターやシンクロナイゼーション委員会の署名の検証を追加することで実現できるかもしれません。

最後に、Zethは新しいソフトウェアです。私たちはEthereumテストスイートやさまざまな現実世界のブロックを含むいくつかのテストを実施しましたが、Zethにはまだいくつかのバグが含まれている可能性があります。この記事を執筆している時点で、Zethは実験的なソフトウェアと見なされるべきです。

ChainCatcherは、広大な読者の皆様に対し、ブロックチェーンを理性的に見るよう呼びかけ、リスク意識を向上させ、各種仮想トークンの発行や投機に注意することを提唱します。当サイト内の全てのコンテンツは市場情報や関係者の見解であり、何らかの投資助言として扱われるものではありません。万が一不適切な内容が含まれていた場合は「通報」することができます。私たちは迅速に対処いたします。
チェーンキャッチャー イノベーターとともにWeb3の世界を構築する