Curve + zkSync L2: イーサリアムの ZK ロールアップ スマート コントラクト
編集者注: この記事は以下から引用しましたデンリアンコミュニティ、許可を得てOdailyによって転載されました。
、許可を得てOdailyによって転載されました。
>>Curve チームと Matter Labs チームは、安全かつ分散型の方法でイーサリアムを拡張するための大きな一歩を発表できることを嬉しく思っています。本日、Curve Finance と共同で、初の dapp 常駐 zkSync L2 スマート コントラクト テストネットを開始しました。<<
**デモデモ!**[3]
亜鉛に関するドキュメント[5]
MDNICEエディター
ZK ロールアップを選択する理由"スケーラビリティはイーサリアムにとって差し迫ったニーズです。トンネルの終わりには光があります。 Vitalik Buterin は、Rollup が現段階で Ethereum をスケーリングするための「唯一の選択肢」であると発表しました [6]。その [独自のトラストレス セキュリティ保証](/matter-labs/evaluating-ethereum-l2-scaling-solutions-a-comparison-) を強調しています。フレームワーク-b6b2f410f955") 。
独自のトラストレスセキュリティ保証
ZK Rollup (ZKR) は、Rollup の 2 つの既存のバージョン [7] のうちの 1 つで、もう 1 つは Optimistic Rollup (略称: OR) [8] です。どちらのアプローチにもトレードオフがあります (詳細な比較については、[9] を参照してください)。実際的な主な違いは次のとおりです。
セキュリティ - ZK ロールアップは、資金を確保するための継続的な経済的インセンティブではなく純粋な数学に依存しているため、バリデータが 1 つであっても非常に安全です。暗号化の前提を除けば、ZKR は基盤となる L1 と同じくらい安全です。これは、高い資産価値を扱うプロトコルにとって特に重要です。 ZKR と比較すると、Optimistic Rollup には強力な反ネットワーク効果があり、ロックされた値に比例してセキュリティが低下します。実際には、L1 に対する非常にありそうな攻撃に対する耐性を維持するために、資本の上限 (数千万ドルの範囲) を単一のオプティミスティック ロールアップに安全に配置できるように制御する必要があります [10]。 PoWチェーン、安心できません。
プログラマビリティ - Optimistic Rollup との完全な EVM 互換性のサポートが容易になります。既存のイーサリアムスマートコントラクトをL2(L2:レイヤー2ネットワーク)に導入するには、一般的にOR方式が唯一実現可能な方法であると考えられています。しかし、これは変わろうとしています。
MDNICEエディター
最近まで、ZK ロールアップで任意のユーザー定義のスマート コントラクトをサポートすることは、非常に困難な作業でした。しかし最近、ゼロ知識証明の分野では事態が急速に進んでいます。 2020 年には、これを最終的に可能にするいくつかのブレークスルーがもたらされました。Matter Labs は、Zinc プログラミング言語と SNARK に適した Zinc VM を導入し、イーサリアムの再帰的 PLONK 証明検証を実装しました [12]。これらのテクノロジーを組み合わせることで、zkSync でのスマート コントラクトの実装が推進されます。
MDNICEエディター
Zinc VM はどのように機能しますか?
契約は Zinc プログラミング言語で作成およびコンパイルされます。コンパイラの出力は 2 つあります。 Zinc 仮想マシンのバイトコード。
契約の SNARK 検証キー。
したがって、zkSync の Zinc スマート コントラクトは、有効性の証明に関する厳格なセキュリティ保証を継承します。
MDNICEエディター
zkSync のスマート コントラクトを作成するにはどうすればよいですか?
Zinc は現在、クローズド開発ベータ版です。ご自身のプロジェクトで試してみたい場合は、お問い合わせください [15]。
MDNICEエディター
亜鉛はSolidity/Vyperとどう違うのですか?既存のソースコードを移植できますか?
Zinc は簡素化された Rust 構文に従いますが、Solidity のスマート コントラクト要素と構造をすべて借用しています。経験豊富な Solidity/Vyper 開発者であれば、数日で習得できるでしょう。
Zinc は構造的に Solidity と同一であるため、既存の Solidity コードを簡単に Zinc に変換できます。主な課題は、亜鉛がまだ完全にチューリングを完了していないことです。これは、再帰と無限ループが禁止されることを意味します (制限付きループは許可されます)。
2 番目に人気のある ETH スマート コントラクト言語である Vyper も、チューリングはまだ完成していません。したがって、現在では、どの Vyper プログラムも同型的に Zinc に変換できます。これはまさに Curve on zkSync の仕組みです。Matter Labs は、Curve チームが既存の Curve コントラクトを Zinc バージョンに書き直すのを支援しました。元のソースと一行ずつほぼ同じです。
さらに、さらに良いニュースがあります。Matter Labs は、近い将来に Zinc Turing を完成させることに取り組んでいます。それまで、私たちはあなたのチームが既存の Solidity コードを移植できるようサポートしたいと思っています。 [16]までご連絡ください。
MDNICEエディター
zkSync L2 ネットワーク上のすべてのコントラクトは、イーサリアム メインネット上とまったく同じ方法で相互にアトミックに呼び出すことができます。
MDNICEエディター
ユーザーキーを管理するにはどうすればよいですか?
Gitcoin スポンサーシップ ラウンド 7 [17] では、zkSync がチェックアウト プロセスに直接統合されましたが、これには Gitcoin Web サイトを信頼する必要があります。このデモでは、zkSync 秘密キーが connect.zksync.dev[18] のスコープを離れることはありません。このタイプの統合は、Google/Apple/Facebook のログインに広く使用されている、Web2 の世界でのシングル サインオン認証スキームに似ています。これは事実上、zkSync が任意のイーサリアム ウォレットおよび任意の数の完全にトラストレスな Dapp で使用できることを意味します。
同時に、私たちは他のチームと協力して、共通のイーサリアム L2 署名標準の開発に取り組んでいます。これにより、L2 コントラクトに関する対話のユーザー エクスペリエンスがより快適になります。
MDNICEエディター
亜鉛アレフの制限は何ですか?
テストネットは完全に機能しており、スマート コントラクトを作成し、テストネットにデプロイし、ローカルでテストして、スマート コントラクト実行のゼロ知識証明を生成できます。すべてのトランザクションの結果、zkSync テストネット上で実際のトークン転送が行われ、ブロック エクスプローラーとウォレットに反映されます。


