著者: Arrow@go2mars、出典: 著者 Twitter @ArrowCrypto\_eth最近、私はいくつかの海外暗号化ファンドの暗号エコシステムへの拡大と革新に注目しています。 A16Z Crypto が今月新たにリリースした 2 つの SNARK ツールを見てみましょう。どのようなものがどのような問題を解決できるかについてのみ話すようにしてください。SNARK については、まず zkSNARK について話しましょう。実際、これらは今日のトピックの 2 つの異なる側面です。zkSNARKs以来、ゼロ知識の基本原理の証明は繰り返すことはありませんが、この技術は完全性、正確性、ゼロ知識の3つの特徴を持ち、詳細を明かさずに結論を証明することが実現できます。同時に、準同型暗号のコンテキストでは、検証の難易度は証明を生成する難易度よりもはるかに低くなります。以前レイヤー 2 について話したとき、実際に効果的な証明メカニズムとして Zk-Rollup などの ZK について言及しました。これは、イーサリアムの拡張のための新しいソリューションを提案しました。以前は、誰もがインタラクティブな zkSync を行うためにエアドロップを行うのに忙しかったのですが、その核心は、ZK を使用して複数の操作をプルーフにパックし、コンピューティング作業のほとんどをオフチェーンで完了することです。**zkSNARKs - ゼロ知識証明に最も広く使用されているテクノロジー**zk-SNARK、つまり「Zero-Knowledge Succinct Non-Interactive Argument of Knowledge」、つまりゼロ知識の簡潔な非対話型知識証明。特徴としては、①ある記述が真実であることは証明できるが、それ以外の情報は明らかにしない、②証明サイズが小さく検証が容易、③交互作用がない、ということです。実際、ZKP の 2 つの主なタイプ、つまり対話型 ZKP と非対話型 ZKP はどちらも証明者と検証者間のプロセスですが、証明の対話プロセスは異なります。Schnorr プロトコルを例に挙げると、対話モードでは検証者が乱数を生成する必要がありますが、非対話モードではそのような役割は必要なく、証明者は全員が検証できる証明を生成できます。**zkSNARK のおおよその原理は次のとおりです。**zkSNARK は NP 問題に基づいており、NP 問題は多項式時間では解くことができませんが、解が与えられれば、それが正しいかどうかを多項式時間で検証できます。 zkSNARK は特定の NP 問題に依存しており、解決は困難ですが、すぐに検証できます。この問題の形式を変えてQAP二次算術プログラム変換を行うと同時に、コード入力に対応した解「QAP Witness」を構築し、この解をもとに実際のゼロ知識証明システムを構築します。**「一流VC」が開発に従事****:a16z暗号化用の2つのSNARKツール**最後に、今日のトピックは、8 月 10 日に a16z crypto によって開始された 2 つの SNARK ツール、**Lasso と Jolt です。 ****暗号化プロトコルとしての SNARK (Succinct Non-Interactive Proof of Knowledge): 信頼できない検証者に対して、特定のプロパティが満たされていることを誰でも証明できるようになります。 **特に今回のアプリケーションでは、Layer2 が一連のトランザクションを許可するデジタル署名を知っていることを Layer2 が集約して Layer1 に証明します。この方法では、署名自体を Layer1 によって保存および検証する必要がなくなり、拡張が容易になります。**スナークの背景**多くのブロックチェーン ノードが各トランザクションを検証して記録するため、ブロックチェーン上で計算を実行するとコストがかかります。トランザクションコストの上昇を避けるために、開発者は通常、最小限のオンチェーン計算を実行してアプリケーションを有効にします。**SNARK はブロックチェーンのスケーリングにおいて中心的な役割を果たします**。これにより、アプリケーションは高価な計算レシートをオフチェーンで作成し、オンチェーンでレシートを検証するコストのみを負担できるようになります。ここでの「簡潔さ」とは、これらの領収書が短いことを意味します。検証は、各トランザクションを再計算するよりもはるかに少ない作業で実行できます。**質問**しかし、実際には、SNARK は計算コストが高く、監査が困難です。バリデーターは高度に並列化された追加作業を強いられます。SNARK のパフォーマンスが向上すると、レイヤー 2 が高速化され、ビルダーがまだ想定されていないアプリケーションのロックを解除できるようになります。したがって、A16Z Crypto には 2 つの新しいテクノロジーが導入されています。①新しい検索パラメータである Lasso により、証明者のコストを大幅に削減できます。②Jolt は、Lasso テクノロジーを使用して、zkVM 用の SNARK およびより一般的なフロントエンド設計を設計するための新しいフレームワークを提供します。**これら 2 つのツールを併用すると、SNARK 設計のパフォーマンス、開発者エクスペリエンス、および監査可能性が向上し、Web3 でのエコロジカルな構築が加速されます。 **Lasso の現在の初期実装は、人気のある SNARK ツールチェーン halo2 のルックアップ パラメーターよりも 10 倍以上高速であることが証明されています。 A16Z Crypto によると、Lasso コードベースが完全に最適化されると、速度は約 40 倍向上し、Jolt には Lasso に加えて追加のイノベーションも含まれる予定です。**引数の参照**ルックアップ引数は、SNARK の設計における重要なツールです。SNARK は、信頼できない証明者が暗号的に大きなベクトルを送信し、そのベクトルの各エントリが何らかの所定のテーブルに含まれていることを証明できるようにするプロトコルです。ルックアップ パラメーターは、少数の加算や乗算では自然には計算されない演算を効率的に処理することで、回路を小さく保つのに役立ちます。一方、回路は実際には非常に限定された計算モデルです。 SNARK フロントエンドは、コンピューター プログラムを SNARK バックエンドが取り込める回路に変換する単純なコンパイラーです。SNARK バックエンドを使用すると、検証者は回路内の各ゲートの値に暗号的なコミットメントを行うことができます。次に証明者は、提出された値が検証者のチェック手順の正しい実行に対応していることを証明します。現在、開発者は、特別なドメイン固有言語 (プログラムを多項式制約にコンパイルする) でプログラムを作成するか、制約を直接ハンドコーディングすることによって SNARK を展開しています。しかし、これには人的資源と物的リソースが消費され、多くの場合、セキュリティ ホールが発生します。 Lasso と Jolt は、パフォーマンス、開発者エクスペリエンス、監査可能性という 3 つの問題を解決するためにここにいます。**Lasso は、新しい「パラメータ検索」メソッドとして、より高速な証明機能を備えています。以前の方法と比較して、証明者はより少ない値とより小さな値を約束し、非常に巨大なテーブルに適用できます。**Jolt** (Just One Lookup Table) は、Lasso の zkVM (Zero Knowledge Virtual Machine) 設計に基づく新しいメソッドです。新しいフロントエンドとして、Lassoをベースとした巨大ルックアップテーブルを利用する機能を実現できます。それが両方にできることです。つまり、Lasso は、大規模な構造化テーブルのルックアップを無駄を少なく実行することで、面倒な手動最適化回路を回避する簡素化された zkVM アプローチを導入します。Jolt ベースの仮想マシンはシンプル、高速、監査が簡単です。そして、そのタスク用に設計された言語だけでなく、既存の一般的なプログラミング言語でも SNARK を使用できるようにします。
「一流VC」が開発に携わる:a16z暗号の2つのSNARKツール
著者: Arrow@go2mars、出典: 著者 Twitter @ArrowCrypto_eth
最近、私はいくつかの海外暗号化ファンドの暗号エコシステムへの拡大と革新に注目しています。 A16Z Crypto が今月新たにリリースした 2 つの SNARK ツールを見てみましょう。どのようなものがどのような問題を解決できるかについてのみ話すようにしてください。
SNARK については、まず zkSNARK について話しましょう。実際、これらは今日のトピックの 2 つの異なる側面です。
zkSNARKs以来、ゼロ知識の基本原理の証明は繰り返すことはありませんが、この技術は完全性、正確性、ゼロ知識の3つの特徴を持ち、詳細を明かさずに結論を証明することが実現できます。同時に、準同型暗号のコンテキストでは、検証の難易度は証明を生成する難易度よりもはるかに低くなります。
以前レイヤー 2 について話したとき、実際に効果的な証明メカニズムとして Zk-Rollup などの ZK について言及しました。これは、イーサリアムの拡張のための新しいソリューションを提案しました。以前は、誰もがインタラクティブな zkSync を行うためにエアドロップを行うのに忙しかったのですが、その核心は、ZK を使用して複数の操作をプルーフにパックし、コンピューティング作業のほとんどをオフチェーンで完了することです。
zkSNARKs - ゼロ知識証明に最も広く使用されているテクノロジー
zk-SNARK、つまり「Zero-Knowledge Succinct Non-Interactive Argument of Knowledge」、つまりゼロ知識の簡潔な非対話型知識証明。
特徴としては、①ある記述が真実であることは証明できるが、それ以外の情報は明らかにしない、②証明サイズが小さく検証が容易、③交互作用がない、ということです。
実際、ZKP の 2 つの主なタイプ、つまり対話型 ZKP と非対話型 ZKP はどちらも証明者と検証者間のプロセスですが、証明の対話プロセスは異なります。
Schnorr プロトコルを例に挙げると、対話モードでは検証者が乱数を生成する必要がありますが、非対話モードではそのような役割は必要なく、証明者は全員が検証できる証明を生成できます。
zkSNARK のおおよその原理は次のとおりです。
zkSNARK は NP 問題に基づいており、NP 問題は多項式時間では解くことができませんが、解が与えられれば、それが正しいかどうかを多項式時間で検証できます。 zkSNARK は特定の NP 問題に依存しており、解決は困難ですが、すぐに検証できます。 この問題の形式を変えてQAP二次算術プログラム変換を行うと同時に、コード入力に対応した解「QAP Witness」を構築し、この解をもとに実際のゼロ知識証明システムを構築します。
「一流VC」が開発に従事**:a16z暗号化用の2つのSNARKツール**
最後に、今日のトピックは、8 月 10 日に a16z crypto によって開始された 2 つの SNARK ツール、**Lasso と Jolt です。 **
**暗号化プロトコルとしての SNARK (Succinct Non-Interactive Proof of Knowledge): 信頼できない検証者に対して、特定のプロパティが満たされていることを誰でも証明できるようになります。 **
特に今回のアプリケーションでは、Layer2 が一連のトランザクションを許可するデジタル署名を知っていることを Layer2 が集約して Layer1 に証明します。この方法では、署名自体を Layer1 によって保存および検証する必要がなくなり、拡張が容易になります。
スナークの背景
多くのブロックチェーン ノードが各トランザクションを検証して記録するため、ブロックチェーン上で計算を実行するとコストがかかります。トランザクションコストの上昇を避けるために、開発者は通常、最小限のオンチェーン計算を実行してアプリケーションを有効にします。
SNARK はブロックチェーンのスケーリングにおいて中心的な役割を果たします。これにより、アプリケーションは高価な計算レシートをオフチェーンで作成し、オンチェーンでレシートを検証するコストのみを負担できるようになります。
ここでの「簡潔さ」とは、これらの領収書が短いことを意味します。検証は、各トランザクションを再計算するよりもはるかに少ない作業で実行できます。
質問
しかし、実際には、SNARK は計算コストが高く、監査が困難です。バリデーターは高度に並列化された追加作業を強いられます。
SNARK のパフォーマンスが向上すると、レイヤー 2 が高速化され、ビルダーがまだ想定されていないアプリケーションのロックを解除できるようになります。
したがって、A16Z Crypto には 2 つの新しいテクノロジーが導入されています。
①新しい検索パラメータである Lasso により、証明者のコストを大幅に削減できます。
②Jolt は、Lasso テクノロジーを使用して、zkVM 用の SNARK およびより一般的なフロントエンド設計を設計するための新しいフレームワークを提供します。
**これら 2 つのツールを併用すると、SNARK 設計のパフォーマンス、開発者エクスペリエンス、および監査可能性が向上し、Web3 でのエコロジカルな構築が加速されます。 **
Lasso の現在の初期実装は、人気のある SNARK ツールチェーン halo2 のルックアップ パラメーターよりも 10 倍以上高速であることが証明されています。 A16Z Crypto によると、Lasso コードベースが完全に最適化されると、速度は約 40 倍向上し、Jolt には Lasso に加えて追加のイノベーションも含まれる予定です。
引数の参照
ルックアップ引数は、SNARK の設計における重要なツールです。SNARK は、信頼できない証明者が暗号的に大きなベクトルを送信し、そのベクトルの各エントリが何らかの所定のテーブルに含まれていることを証明できるようにするプロトコルです。
ルックアップ パラメーターは、少数の加算や乗算では自然には計算されない演算を効率的に処理することで、回路を小さく保つのに役立ちます。
一方、回路は実際には非常に限定された計算モデルです。 SNARK フロントエンドは、コンピューター プログラムを SNARK バックエンドが取り込める回路に変換する単純なコンパイラーです。
SNARK バックエンドを使用すると、検証者は回路内の各ゲートの値に暗号的なコミットメントを行うことができます。次に証明者は、提出された値が検証者のチェック手順の正しい実行に対応していることを証明します。
現在、開発者は、特別なドメイン固有言語 (プログラムを多項式制約にコンパイルする) でプログラムを作成するか、制約を直接ハンドコーディングすることによって SNARK を展開しています。
しかし、これには人的資源と物的リソースが消費され、多くの場合、セキュリティ ホールが発生します。 Lasso と Jolt は、パフォーマンス、開発者エクスペリエンス、監査可能性という 3 つの問題を解決するためにここにいます。
**Lasso は、新しい「パラメータ検索」メソッドとして、より高速な証明機能を備えています。以前の方法と比較して、証明者はより少ない値とより小さな値を約束し、非常に巨大なテーブルに適用できます。 Jolt (Just One Lookup Table) は、Lasso の zkVM (Zero Knowledge Virtual Machine) 設計に基づく新しいメソッドです。新しいフロントエンドとして、Lassoをベースとした巨大ルックアップテーブルを利用する機能を実現できます。
それが両方にできることです。
つまり、Lasso は、大規模な構造化テーブルのルックアップを無駄を少なく実行することで、面倒な手動最適化回路を回避する簡素化された zkVM アプローチを導入します。
Jolt ベースの仮想マシンはシンプル、高速、監査が簡単です。
そして、そのタスク用に設計された言語だけでなく、既存の一般的なプログラミング言語でも SNARK を使用できるようにします。