ゼロ知識証明 (ZKP) を使用してプライベート決済用のオンチェーン アプリケーション ソリューションを実装する

ブロックチェーンは、ゼロ知識証明テクノロジーを使用して、トランザクションのスループットを向上させ、ユーザー データのプライバシーを保護しながらユーザー ID を検証し、複雑な計算を可能にし、企業が知的財産権を保護しながらブロックチェーン テクノロジーを利用できるようにします。上記のすべてのアプリケーション シナリオにおいて、ゼロ知識証明は不可欠なキー テクノロジです。

この記事のハッシュ (SHA1): 6ec9df3960804ae5e6b0bee29289da35f3abc356

番号: LianYuan Security Knowledge No.133

ゼロ知識証明テクノロジーは、多くのレイヤー 1 ブロックチェーン プロジェクトのスケーリングとプライバシーの問題を解決できる暗号化の一分野です。ブロックチェーンは、ゼロ知識証明テクノロジーを使用して、トランザクションのスループットを向上させ、ユーザー データのプライバシーを保護しながらユーザー ID を検証し、複雑な計算を可能にし、企業が知的財産権を保護しながらブロックチェーン テクノロジーを利用できるようにします。上記のすべてのアプリケーション シナリオにおいて、ゼロ知識証明は不可欠なキー テクノロジです。

現時点では、プログラマブル ブロックチェーンが提供するすべてのユーティリティ (とりわけ、セキュリティ、予測可能性、相互運用性、自律的経済など) の中で、最も広く使用されているブロックチェーンはプライバシーを提供しておらず、これが依然としてブロックチェーンが使用される主な障壁となっています。広く普及するために。したがって、チェーン上のプライバシーセキュリティにますます多くの人々が注意を払うようになり、プライバシーペイメントが誕生しました。

基礎知識

ゼロ知識証明は、次の 2 種類の引数スキームに分類されます。

  1. インタラクティブな議論スキーム
  2. 非対話型引数スキーム
  3. インタラクティブ ZKP

インタラクティブなゼロ知識証明 (IZKP) では、証明者と検証者が往復の会話を行い、証明者が検証者のクエリに応答する必要があります。このやり取りは、直接会って行うことも、インターネットなどのネットワークを介して行うこともできます。検証者が証明されている内容以外のステートメントに関する追加情報を要求できるように、検証者との対話を複数回行う必要があります。各ラウンドで、証明者は検証者のクエリに基づいて回答を提供する必要があります。

IZKP では証明者と検証者間の対話が必要ですが、これは非効率的で時間がかかる可能性があります。証明を完了するには、証明者は検証者に複数のメッセージを送受信する必要があります。特に証明が複雑な場合や大量のデータが含まれる場合、これには時間がかかることがあります。これは、高頻度の取引やリアルタイムの意思決定など、スピードが重要な場合に問題になる可能性があります。

具体的な実装計画は zk-starks で、ブロックチェーンが計算をオフチェーンの STARK 証明者に転送し、オンチェーンの STARK 検証者を使用してこれらの計算の整合性を検証できるようにします。レイヤ 2 ネットワークは、STARK を使用して単一のバッチで多数のトランザクションを計算し、単一の STARK 証明を使用してオンチェーンのトランザクションの有効性を確認することで、スケーラビリティを実現できます。バッチ内のすべてのトランザクションはオンチェーン操作のコストを共有し、レイヤー 2 ネットワーク上のすべてのトランザクションのガスコストを低く抑えます。

重要なのは、バリデーターによって使用されるランダム性が公的に利用可能であり、外部パラメーターに依存せずに証明を検証できるため、STARK は信頼できるセットアップの儀式を必要としないことです。

StarkNet、dydx、および Polygon Miden はすべて、zk-starks の zk-rollup ソリューションを使用します。

ゼロ知識証明 (ZKP) を使用したプライベート決済用のオンチェーン アプリケーション ソリューション

非対話型 ZKP

非対話型ゼロ知識証明 (NIZKP) では、証明者と検証者間の対話は必要ありません。非インタラクティブなゼロ知識証明とは、証明者が複数回の対話を必要とせずに証明を 1 回生成して検証者に送信できることを意味します。

具体的な実装は zk-snarks です。SNARK は数ミリ秒で検証できるため、より効率的かつ高速です。ただし、SNARK が依存している信頼できるセットアップ手順の一部にはセキュリティ上の脆弱性があるため、この効率には代償が伴います。これは、証明に使用される初期パラメータは安全な環境で生成される必要があり、パラメータの漏洩はセキュリティ上の脆弱性につながる可能性があることを意味します。

zkSync と zcash はどちらも zk-snark の zk-rollup ソリューションを使用します。

プライバシートランザクションの概念

プライベート トランザクションの概念を理解するには、トランザクションの主題とトランザクションの詳細の両方を考慮し、匿名と非公開の 2 種類のプライバシーを区別する必要があります。

通常のトランザクションには次の要素が含まれます。

  • トランザクションの件名: トランザクションの送信者 (トレーダー A) と受信者 (トレーダー B) が含まれます。
  • トランザクションの詳細: トランザクション金額、サブトランザクションの数、トランザクション ハッシュ、その他の特定の詳細が含まれます。

プライバシー取引は、第三者に対する情報の可視性の程度に基づいて 2 つのカテゴリに分類できます。

  • 匿名トランザクション: 匿名トランザクションでは、トランザクションの送信者と受信者のアドレスが第三者に知られることはありません。これは、トランザクション プロセス中、トランザクションに関与する 2 つのエンティティを除いて、他のエンティティはトランザクションの特定の参加者を決定できないことを意味します。たとえば、Tornado Cash は、トランザクション パスを難読化することで匿名性を実現するプライバシー プロトコルです。
  • 隠しトランザクション: 隠しトランザクションでは、トランザクションの送信者と受信者のアドレスは表示されますが、トランザクションの具体的な詳細は不明です。これは、トランザクションの金額、サブトランザクションの数、トランザクションのハッシュなどの詳細が第三者から隠蔽されることを意味します。このプライバシーは、ゼロ知識証明などの技術を使用することで実現できます。たとえば、Zcash は、zk-SNARKs テクノロジーを使用してトランザクションの詳細を隠すプライバシー暗号通貨です。

既存のプライバシー支払いソリューション

チェーン上のzkに適用されるブロックチェーンソリューションは大きく分けていくつかの種類があります。1つはレイヤー2ソリューションとしてのロールアップであり、op-rollupと比較して7日間のチャレンジ期間を必要としません。データの信頼性と安全性が向上します。ただし、プライバシーはなく、zkSync やスクロールなどの中間層に直接デプロイできます。zk を自分で理解する必要はありません。このソリューションは主に zk の証明理論を使用してデータの正しさを検証します。プライバシーの保護に。

Zcash や MantaPay のプライバシー資産プラットフォーム L1 など、プライバシー保護が必要なトランザクションを特別に処理するための別個のチェーンとして使用されるプラットフォーム。プライバシー資産を操作するには、自分で ZK プログラミングを行う必要がある場合があります。開発者にとっては非常に興味深いことです。

最後のソリューションはレイヤー 2 ですが、チェーン上で zk-aluvm 検証メソッドを使用することも、オフチェーン ノードによる zk 検証にプライベート支払いメソッドを使用することもできます。これは、L2 の利点を組み合わせ、プライベート支払いの機能も導入する可能性があります。比較的ポピュラーな手法ではありますが、実際の開発においてはテクノロジーやポリシーの影響を最も受けやすい手法でもあります。

この記事では、zkp ブロックチェーンに基づくプライバシー支払いソリューションに焦点を当てます。

ジーキャッシュ

ZCashの取引モデルは基本的にビットコインと同じですが、UTXOがZCashの基本取引単位であるnoteに置き換えられています。これは、トランザクションコミットメントのプレーンテキストとして理解することもできます。note=(PK, v, r, rho) でメモを表します。PK は公開キー (Public Key)、v は金額 (Value)、 r はシリアル番号 (ランダムなシリアル番号) です。 rho は各ノートの一意の識別子です。ノートが消費されると、この値は無効化テーブルに格納されます。これは、同じノートが再度消費されると、二重支払いエラーがトリガーされることを意味します。 . つまり、トランザクションの二重支払い防止メカニズムです。

ZCash には、コミットメントと無効化子の 2 つのテーブルがあります。プライバシー要件のため、ノートを表すには、対応するコミットメントを計算する必要があります。

ゼロ知識証明 (ZKP) を使用したプライベート決済のためのオンチェーン アプリケーション ソリューション

ゼロ知識証明 (ZKP) を使用したプライベート決済のためのオンチェーン アプリケーション ソリューション

コミットメントは金額の移転を表し、ナリファイアは消費を表します。 Commitment と Nullifier は両方ともノートに固有であることに注意してください。 Commitment と Nullifier はハッシュの結果であるため、これら 2 つのデータが公開されたとしても、他の人は Commitment と Nullifier の間に関連性があると推測できません。言い換えれば、コミットメントを提供することは、転送が行われたことを示すことができます (特定の情報は他の人には知られていません)。対応する Nullifier を提供できる場合は、それを消費できます。

プライベート転送プラットフォームとして、すべてのコミットメント (cm) はマークル ツリーに形成されます。

特定の cm を消費する必要があるユーザーは、ブロックチェーンにゼロ知識証明を提供する必要があります。

1/ 彼はノートを知っており、cm を生成できます。この cm は rt をルートとするマークル ツリー上にあります。

2/ 同じ Note 情報を使用して nullfier を生成できますが、この nullfier は以前に生成されていません。

上記は、Zcash のゼロ知識証明の一般的な考え方の最も単純な要約にすぎません。ZCash の設計は非常に複雑で厳密であり、多くの詳細があります。

zcash の現在のバージョンは、Sprout と Sapling によって 2 回アップグレードされ、元のモデルから大きく変更されました。zcash の現在のモデルには、ネイティブ トークン ZEC 間のプライベート トランザクションのみがサポートされており、それが困難です。 ERC20などのトークンをサポートします。これを使用する場合、ユーザーは個人取引の目的を達成するために、取引所で ZEC を購入し、Zcash チェーンに置き、ZEC と取引することのみが可能です。さらに、zkcash は初期のプライベート決済のパイオニアであり、プロトコル レベルではあまり複雑なものを統合していないため、単一の機能と低い TPS およびその他の歴史的な問題が生じています。

トルネードキャッシュ

TornadoCash は主に zkp に基づくコイン ミキサー プロトコルを使用して、zcash の単一通貨の問題を解決し、主にイーサリアム チェーン上のスマート コントラクトに依存し、その使いやすさを完全に拡張します。

Tornado の実装パスは次のとおりです。 TornadoCash はレシート (コミットメント) を使用してアクセス許可を制御します。レシートは、シークレットとヌルファイアを一緒にハッシュすることによって生成され、コミットメント = hash(secret, nullifier)、その後、ユーザーは混合する金額 (1 ETH など) とコミットメントを TornadoCash コントラクトのデポジット機能に送信します。 TornadoCash コントラクトはこれら 2 つのデータを保存し、コミットメントは入金された資金を引き出すために使用されます。

各コミットメントは 1 回のみ撤回できます。マークル ツリーを使用して入金情報を記録し、コミットメントをリーフ ノードとして使用し、マークル ルートを計算します。ユーザーはリーフからルートまでのデータを提供するだけで、そのデータがマークル ツリーのリーフの 1 つであるかどうかを証明でき、資金が以前に TornadoCash に入金されたことも間接的に証明できます。

お金を引き出すとき、ユーザーは zk-snark スキームを利用して秘密と無効化者を持っているという証明を提出する必要があります。TornadoCash スマート コントラクトはこの証明を確認し、指定された引き出しアドレスに入金金額を転送します。外部の観察者にとって、引き出しがどの預金から来たのかを知る方法はありません。 Double Withdrawal 攻撃を防ぐために Nullifier も使用します。

Tornado Cash の中核は、ユーザーがイーサリアム上でプライベート トランザクションを実行できるようにするスマート コントラクトです。ユーザーが使用すると、コントラクトはサポートされている 2 つのアクション「入金」または「引き出し」のいずれかを自動的に実行します。これらの操作を組み合わせることで、ユーザーはあるアドレスからコインを入金し、同じコインを別のアドレスに引き出すことができます。重要なのは、これらの入金および出金イベントがイーサリアムの透明な台帳上で公に行われる場合でも、入金アドレスと出金アドレス間の公開リンクは切断されるということです。ユーザーは、自分の金融履歴全体が第三者に公開されることを心配することなく、資金を引き出して使用することができます。

ゼロ知識証明 (ZKP) を使用したプライベート決済のためのオンチェーン アプリケーション ソリューション

マンタペイ

MantaPay は、最初の 2 つのプロトコルの利点を組み合わせ、Polkadot チェーンに基づいた ZK L1 チェーンを独自に開発し、プログラム可能な ID と資格情報を Web3 にもたらし、プライベート決済と豊かな環境問題を解決します。

ゼロ知識証明 (ZKP) を使用したプライベート決済用のオンチェーン アプリケーション ソリューション

MantaPay は ZK テクノロジーを使用してプライベート送金を実現します。ユーザーはトランザクション開始時に Manta Signer を使用して転送リクエストを送信し、証明者 (Prover) として機能して ZK 証明書を生成します。検証者として、ノードは転送情報を取得せずにユーザーのトランザクションが正しいことを検証できます。

Manta は UTXO メソッドを使用してトランザクションを検証します。 Manta UTXO には実際には「2 つのツリー」があり、すべてのトークンは最初のツリーにあり、2 番目のツリーはユーザーが費やした UTXO を記録します。トランザクション時には、その状態が 2 番目のツリーに存在しないことを証明する ZK 証明がトランザクションに伴われます。 ZK 証明は偽造できず、改ざんできないため、ノードは証明の正当性を検証します。証明が有効である限り、トランザクションは有効です。

Manta の ZKEvm は、ZK-SNARK テクノロジーを使用してイーサリアムのようなトランザクションの実行の暗号化証明を作成するテクノロジーです。これらの証明を使用すると、トランザクションの検証に必要な計算負荷を軽減したり、効率的でスケーラブルな ZK ロールアップを構築したりすることで、イーサリアム ブロックチェーンのスケーラビリティを高めることができます。

現時点では、Manta には ZKEvm に対する優れたサポートがありません。開発が難しいか、規制の影響を受ける可能性がありますが、非常に未来的なソリューションであると言わざるを得ません。

ZKP オンチェーン ソリューションのコンセプト

上記では、いくつかの既存のプライバシー支払いソリューションについて説明しました。将来的には、より高い TPS とより優れた環境サポートが、間違いなく主流のソリューションになるでしょう。これに基づいて、いくつかのアイデアを提案します。

ZK-AluVM

AluVM - (Algorithmic Logic Unit VM) は、確定的なポータブル コンピューティング タスク用に設計された純粋に機能する RISC 仮想マシンです。これは、Pandora Core AG の Maxim Orlovsky 博士によって設計および実装され、LNP/BP Standards Association によって保守されています。

AluVM は、純粋に機能するレジスタベースで、決定性が高く例外のない命令セット アーキテクチャ (ISA) および仮想マシン (VM) であり、ランダム メモリ アクセスを必要とせず、楕円曲線演算などの算術演算を実行できます。仮想マシンが実行されている環境 (ホスト環境) は、AluVM ISA を拡張して、データを VM レジスタにロードし、アプリケーション固有の命令 (SIMD など) をサポートできます。

ALuVM の主な用途は分散システムであり、計算速度よりも堅牢性、プラットフォームに依存しない決定論が重要な場合に使用されます。 AluVM (適切な ISA 拡張機能を使用) の主な応用分野は、ブロックチェーン環境、コンセンサス クリティカル コンピューティング、エッジ コンピューティング、マルチパーティ コンピューティング (決定論的機械学習を含む)、クライアント認証、サンドボックス Internet2 コンピューティング、および遺伝的アルゴリズムです。

ブロックチェーンで ZK-AluVM を使用して、トランザクションを処理し、状態ツリーを更新し、同時にプルーフを生成します。実装計画は、より詳細な調査のためにミナに基づいて行うことができます。

ゼロ知識証明 (ZKP) を使用したプライベート決済のためのオンチェーン アプリケーション ソリューション

ZK-AluVM に基づいて、いくつかの拡張計画を考案しました。

ビットコイン拡大計画

オフチェーン部分: ZK-AluVM はトランザクションとプルーフ生成をローカルで実行しますが、トランザクション情報の送信は中央のオペレーターに委託します。この操作では、トランザクションの認識者は双方向トランザクションと中央のオペレーターです。ここで Nostr などのプロトコルを使用すると、集中化を軽減できます。

オンチェーン部分: オンチェーン検証のロールアップはオプションで、複数のトランザクション ロールアップをカプセル化してガスを節約します。ここでは、BTC をライトニング ネットワークに変更して、非常に高い TPS を達成できます。

ゼロ知識証明 (ZKP) を使用したプライベート決済のためのオンチェーン アプリケーション ソリューション

イーサリアムレイヤー2ソリューションフレームワークの概略図

オフチェーン部分: トランザクションとプルーフ生成に ZK-AluVM を使用します。ここでは、集中型サービスを選択することも、クライアントが P2P 送信用に単独で操作することもできます。

オンチェーン部分: まず、クライアントはトランザクションを Layer2 ノードに送信し、ソートして Calldata に書き込みます。実行層は Ethereum からデータを読み取り、トランザクションを処理します。ここでは、UTXO に基づくワンタイム カプセル化ソリューションから、契約集中管理の使用に変更されます。このソリューションのチェーンの上部は非常に集中化されており、さまざまな高性能 EVM パブリック チェーンをベースとして選択して、より高い TPS を達成できます。

ゼロ知識証明 (ZKP) を使用したプライベート決済用のオンチェーン アプリケーション ソリューション

要約する

長さの制限により、Aleo、RGB など、リストされていない優れたプロトコルがまだたくさんありますが、プライベート決済の分野では、ユーザーとして、多くの製品の中でもセキュリティ、効率、安定性を重視しています。セキュリティ意識を高めるには、それがどのようなプライバシー決済ソリューションであっても、ブロックチェーンの核心を理解し、自分の資産に責任を持ち、自分の将来に責任を持つ必要があります。

共有先:

著者:链源科技PandaLY

本記事はPANews入駐コラムニストの見解であり、PANewsの立場を代表するものではなく、法的責任を負いません。

記事及び見解は投資助言を構成しません

画像出典:链源科技PandaLY侵害がある場合は、著者に削除を連絡してください。

PANews公式アカウントをフォローして、一緒に強気相場と弱気相場を乗り越えましょう
おすすめ記事
6時間前
6時間前
7時間前
10時間前
12時間前
14時間前

人気記事

業界ニュース
市場ホットスポット
厳選読み物

厳選特集

App内阅读