blockchainjapan’s blog

旬のブロックチェーンを記事を厳選して提供!

zkSync is Live! イーサリアムに信頼性の高いスケーラブル決済をもたらす


zkSync is Live! イーサリアムに信頼性の高いスケーラブル決済をもたらす

アプリケーションの固有設定が不要な最初のzkRollupを体験してください

Alex Gluchowski

半年前、私たちはzkSyncのビジョンを紹介しました:パブリックブロックチェーンの大量導入を可能にする、高い信頼性を持ったL2スケーリングソリューションです。本日(2020年6月18日)ロードマップ上のマイルストーンであるzkSync v1.0のメインネット上でのリリースを記念してここに記していきます。

このリリースは、イーサリアムのエコシステムにおける課題を解決するものです:ガス料金の高騰の為に取引が高価で不便なものになっています。毎月、ユーザーはトークンの送金だけでえ200万ドル以上のコストを支払っているのが現状です。zkSyncはこのコストを大幅に削減しながら、最大2,000TPSのVISAレベルのスループットを実現していきます。

zkSyncとは?

zkSyncは、Matter LabsのzkRollup技術を使用して構築されています。これはゼロ知識証明の最先端の研究とオンチェーンデータの可用性の組み合わせたものです。このアプローチは素晴らしいセキュリティ特性を誇ります:正しく実装されれば、zkRollupに置かれた資金はベースとなるL1と同様に安全です。

セキュリティ面はzkSyncアーキテクチャの最優先事項であり、今後もそうであり続けますが、私たちは比類のないUXとスムーズな開発環境を実現するために、あらゆるデザインとアイデアを追求してきました。

主な特徴は以下の通りです:

  • トランザクション手数料は長期的に予測可能になるよう低く設計されています(< $0.01 / tx)
  • 手数料は送金トークンで支払い(ユーザー側のガスの手間がかからない)
  • オフチェーンでのアカウント作成はゼロコスト
  • あらゆるEthereumアドレスへのL2送金が可能(未配備コントラクトを含む)
  • トランザクションの即時確認と数分以内でのファイナリティ
  • L1への出金を15分以内に完了
  • あらゆるEthereumウォレットで動作する直感的なUX

このシステムを理解するには、まずは自身でzkSyncをお試しいただくのが一番です。

zkSync v1.0はイーサリアムでの暗号支払いをスケーリングする一方で、スマートコントラクト機能やプライバシー、暗号で保護された検閲耐性を実現するというロードマップの次のステップのための技術的な基礎を築いています。

私たちの最終目標は、何十億人もの人々にスケーラブルで、プライバシーを保護し、公正で、完全にパーミッションレスな暗号インフラを提供することであり、そして開発者が簡単に構築できるようにする事です。

zkSyncでの構築を始めましょう

zkSyncは完全にパーミッションレスで、今すぐに誰でも使い始めることができます。プロジェクトへの統合はわずか数行のコードで可能です。zksync-js SDKはクライアントライブラリのベストプラクティスを踏襲し、最先端のethers-jsをモデルとしています。

興味をお持ちの方は開発者ポータルのチュートリアルをご覧ください。

私たちは、必要とするサポートを提供し、ユースケースの詳細について議論する事を望んでいます。是非お気軽にご連絡ください。

マルチシグ、取引所、エスクロー、アトミックスワップ、ミンティング/バーニング、高度なスマートコントラクトなど、複雑なロジックを必要とするユースケースに対しても私たちはサポートを惜しみません。

今後のリリースでは、強力なスマートコントラクトを実現する予定ですが、zkSync v1.0では多くのことが現時点で既に実現できます。

zkSyncがどのように動作するかは、zksync.ioのFAQとドキュメントで詳細情報をご覧いただけます。この記事の残りの部分では、このプロトコルの2つの主要な特性であるセキュリティと拡張性に焦点を当てていきます。

セキュリティ

zkSyncのコア技術zkRollupは、L1と同じパッシブなセキュリティ保証を提供できる唯一のL2スケーリングアプローチです。これは、資金がzkSyncアカウントに届いた場合、仮に1年間オフラインになっても、外部の助けを借りずに資産を回復できる事を意味します。zkSyncの預金は、zkSyncのオペレーターによるいかなる操作や攻撃からも完全に守られています。

これは、既存のL2スケーリングソリューションの中でも非常にユニークな点です。他の全てのアプローチでは、利用者側にも積極的なセキュリティの取り組みが求められる場合があります。これはオペレーターによる攻撃の可能性を排除できていない事を意味するものであり、これにより攻撃対象が拡大し、他の種類の脅威を発生させる可能性も上昇させます(例えば、ユーザーアカウントがオペレータにより凍結・差し押さえされる)

zkSyncのユーザー資産へのセキュリティは当社にとって最も重要なものです。当社は非常に厳格な開発、DevOpsのセキュリティプラクティスに従っており、ロードテストで何千ものトランザクションを実施し、ユニットテストと統合テストで当社のコードを広範囲にカバーしています。

更にzkSyncプロトコルやスマートコントラクト、ゼロ知識回路は、ゼロ知識の分野で最も尊敬されている専門家グループの1つABDK Consultingによる監査を受けました。

徹底した監査を経た上で、念の為zkSync v1.0をパブリックベータとしてリリースすることにしました。これによりコントラクトはMatter Labsによって更新され、予期せぬ状況に迅速に対応できるようになります。ユーザーにはスマートコントラクトのイベントを通じてアップグレードの予定が通知されます。ユーザーが今後の変更に同意できない場合は、L1上で終了リクエストを提出する為の通知期間が設けられます。また、全ての退出要求が処理されるまで、アップグレードは行われないように設計されています。アップグレードの認証は、別々のコールドウォレットで管理されたマルチシグで保護されています。通知期間を徐々に長くし、最終的には純粋なオプトインアップグレードメカニズムを実装して、大量終了の潜在的なリスクを取り除き、zkSyncアカウントの100%パッシブセキュリティを実現します。

zkSync UIはどのイーサリアムウォレットでも動作しますが、重要な注意点があります。zkSyncで使用されているSNARKフレンドリーな署名スキーム(Schnorrの変形)は、Ethereumで使用されているECDSAスキームとは異なります。私たちは、署名スキームを統合したMetamaskスナップのプロトタイプを持っており(スナップがメインネットに対応したらすぐに公開します)、モバイルやデスクトップ、ハードウェアウォレットのネイティブサポートを提供するためのパートナーシッププログラムも進行中です。それまでは、zkSyncのアカウント制御キーはブラウザのzkSync UIで処理されますが、これはセキュリティの観点からは理想的なものではありません。この攻撃ベクトルを緩和するために、私たちは2ファクター・セキュリティメカニズムを実装しました。全てのトランザクションについて、承認をイーサリアムのネイティブ署名で署名する必要があり、トランザクションがロールアップブロックに含まれる前にサーバーによってチェックされます。これにより、仮に当社のUIサイトがハッキングされたとしても、攻撃者はそれを利用することができません。同時に、このセキュリティ対策が不要になるようなネイティブ統合が迅速に実行されることを期待しています。

zkSyncはアプリ固有の信頼性の高い設定を必要としない初のzkRollupである — これがゲームチェンジャーである理由

  • 信頼できるセットアップは難しく、安全性確保の為には多くの専門家とコミュニティの注意が必要です。前世代のSNARKsは、アプリケーション固有の信頼できるセットアップを必要とし、zkRollup技術のセキュリティと適用性を大幅に低下させていました
  • zkSyncは、普遍的な信頼できるセットアップを備えた最初のzkRollupです。zkSyncは、これまでに行われた最も安全なMPCセレモニーの結果を再利用しています
  • これにより、zkSyncの設計や拡張機能の追加、スループットの向上、スマートコントラクトの追加およびプライバシーの実装を簡単かつ安全に繰り返し行うことができます

SNARKベースの前世代のブロックチェーン技術(Zcash、Tornado cash、Loopring)では、Groth16という証明システムが使われていました。2016年にリリースされた時点では最先端のプロトコルでしたが、昨年はGroth16を改良したゼロ知識証明プロトコルカンブリア爆発のように登場しました — 特に共通参照文字列(CRS)のセットアップに関してです。

CRSは、信頼できる設定としてよく知られています。SNARKの証明が生成される前に、CRSは一度作成されなければなりません。通常、複数の参加者によるMPC(Multi-Party-Computation)の過程で作成されます。これらの参加者のうち、少なくとも1人が正直者であり、貢献のエントロピー(ランダム性)を安全に削除していれば、このCRSを使用して生成されたSNARKは安全であると考える事が可能です。

信頼性の高い設定のMPCは、物流や運用面でのセキュリティ上の大きな課題です。Groth16は、アプリケーション固有の信頼できるセットアップを必要とすることで、それを物流とセキュリティの悪夢に変えてしまいました。つまり、アプリケーションごとにまたアプリケーションのロジックを更新するたびに個別に信頼できる設定を行う必要があるということです。次のようなことを考えてみてください:

  • 信頼されたセットアップのプロトコルは、高度な精査を経てピアレビューされる必要があります。ZcashのSproutのtrusted setupのプロトコル仕様にエラーが存在し、深刻なセキュリティ脆弱性が発生しました。信頼されたセットアップは多くの人の注目を集めたいものです。これは、特に単一のアプリケーションにバインドされている場合、頻繁に行うことは困難となります
  • 信頼できるセットアップの実装のコードは、バックドアや弱点を排除するために徹底的にレビューする必要があります。理想的には、複数の独立したインプリメンテーションが必要です
  • 信頼されたセットアップの参加者は、自分たちが危険にさらされていないことを確認するために、厳格なセキュリティ手順に従う必要があります。信頼されたセットアップを安全な環境で実行し、理想的には購入したばかりのエアギャップのあるマシンで実行します
  • ユーザーは、個人的に知っていて、信頼できて、セキュリティに精通していると思われる参加者にしたいと想定しますがこれは、プロジェクトごとの設定では実現が難しいことです
  • 手順が非常に複雑な為(スケーラビリティを重視した信頼できるセットアップでは、何GBものダウンロード/アップロードと、セキュリティを守りながらの何時間もの計算が必要)実際には人々が継続参加することは非常に困難です

理想的には、これを完全になくすか、少なくとも一度だけで済むようにすることです。

最近、STARKsやHalo、SuperSonicなど、透過的かつ信頼できる設定を必要としない効率的な証明システムがいくつか登場しました。他のシステムはイーサリアム上での検証にコストがかかりすぎる為、これらのシステム、特にSTARKsは非常に有望でした。そこで、Matter Labsチームはこの方向で多くの実験を行いました。STARKのプロバー実装であるHodorをリリースした後、SNARKとSTARKの世界の長所を組み合わせたハイブリッドな透過的証明システムであるRedShiftを開発しました。

残念なことに、STARKとRedShiftの証明は、ガスの点で検証にかなりのコストがかかることから現在のzkRollupsへの導入には問題が生じます。このタスクに十分な効率性を持たせる為には、さらに多くの作業を行う必要があります。

現在、私たちはSNORKと呼ばれる新しいクラスの証明システムを持っています。普遍的で更新可能な信頼できるセットアップを持つSNARKsです。つまり、セットアップは必要ですが、それは一度だけであり、後に多くのアプリケーションで再利用する事ができます。この種の最初のものはSonic(Matter Labsはその簡潔なバージョンの最初の実装を作成しました)でしたが、その後より効率的なものが続いていきました。今日では、PLONKがこの種の最も先進的で査読付きの証明システムとなっています。

2019年秋にMatter Labsは、AZTEC Protocolが主催するPLONKのIgnition MPC式典に参加しました。参加者にはVitalik Buterinをはじめ、暗号コミュニティの著名なメンバーが名を連ねました。zkSync v1.0は、IgnitionのCRSを搭載したPLONKを証明システムとして使用しています。

このワンタイムトラステッドセットアップは、セキュリティ特性を失うことなく、zkSyncのデザインを迅速に反復し、新機能や拡張を実装できることを意味します。

イーサリアムで利用可能なペアリングフレンドリーな楕円曲線の場合、PLONKの最大回路サイズは²²⁶です。これにより、zkSync v1.0では最大ブロックサイズが制限され、当社の技術スタックとEthereumの帯域幅の両方で現在可能な2,000 TPSではなく、スループットが300 TPSに制限されています。しかし、2つの理由からこれは問題とはなりません:

  1. 現在の容量は、Paypalの平均トランザクション負荷(200TPS)を上回っており、zkSync運用の最初の数ヶ月間は完全に十分であると考えられる
  2. 更に重要な事は、楕円曲線のサイクルがなくても、PLONKで利用できる効果的な再帰戦略がほとんどない事です。再帰のいくつかのバリエーションを実装しており、より徹底的なテストに基づいて戦略の1つを選択する予定です。再帰戦略により、zkSync v1.1では、すでに監査済みの基本ブロック回路を再実装することなくブロックをアンキャッピングにすることができます。これは将来的にプライバシーやスマートコントラクトを実装するための鍵となります。詳細は別の記事で紹介します。

私たちの目標は何十億人もの人々のために、スケーラブルで、プライバシーを保護し、回復力があり、公正で、完全にパーミッションレスなブロックチェーン技術を提供することです。現状、私たちはプライバシーを除いたこれら全てのニーズを満たすスケーラビリティソリューションから始めています。大規模化したら、イーサリアム上のプライバシーについても同様に進めていく計画です。


スケーラビリティへ、そしてその先への質問がありますか?
zkSyncのWebサイトには、包括的なFAQとドキュメントが準備されています。より詳細を知りたい方やパートナーシップについてのお問い合わせについては私たちにお気軽にご相談ください。
また、ツイッターのフォローもお勧めします:@the_matter_labs

Matter Labsは、パブリック・ブロックチェーンの大量導入を加速することをその使命としています。現在、イーサリアム用の安全で高速なスケーラビリティエンジンであるzkSyncを構築しています。Matter Labsのチームとはメールhello@matter-labs.ioで連絡を取ることができます。

zkSyncは、検証 ツールではなく 、数学に依存する

zkSyncは、セキュリティへの妥協なく イーサリアムのスケーラビリティを 解決していきます。楽しいゲームや貢献することなく何かが得られるようなイベントなどは一切ありませんが、DYORが得意で、トークンよりもプロジェクトに興味をお持ちであるという方は、下記リンクより各コンテンツをご覧になり、フォローすることをお勧めします。

WebsiteTwitterDiscordTelegramGitter|Medium(Matter Labs)

日本版 TwitterMedium|Telegram