Decentralized Speed:ゼロ知識証明の進歩
by Elena Burger
翻訳:Takeshi@Think Globally, Act Locally
新たなニーズやユースケースが生まれるたびに、チップメーカーは特定の機能やソフトウェアに最適化した専用のGPU、FPGA、ASICを設計します。クラウドコンピューティングやコンピューターグラフィックス、人工知能、機械学習などの技術分野に関わる主要産業は、計算の実行速度と効率を加速するハードウェアをとともに進化を遂げてきました。多くの場合、初期機能(メモリの保存、レンダリング、シミュレーションなど)のチップは、一般化のパターンが特定され、専用のハードウェアが開発されるまでは、極めてシンプルなものからスタートします。このハードウェアが、時間とともに安価になることで、消費者がより利用しやすくなります。
この現象の歴史的な好例が、デジタルカメラの進化です。1960年代にフィルムカメラに半導体が組み込まれ、シャッタースピードの測定や、光量の調整などの機能が自動化されましたが、画像をメモリに取り込む機能はまだ実装されていませんでした。1970年代のデジタルカメラの実験は、磁気バブル(1ビットのデータを記憶する方法)の概念を活用して、シリコン上に電子の形で光を吸収して記憶する電荷結合素子(CCD)を構築することから始まりました。当時の半導体の限界から、カメラの解像度(スピードとストレージは言うまでもなく)は非常に低く、当時のカメラは0.0001メガピクセル程度で、メモリに画像を転送するのに約23秒かかっていました。1990年代に入ってからCMOS(complementary metal oxide semiconductor)という新たなセンサーが安価に製造できるようになるまでは、メガピクセル数とカメラメモリのトレードオフを繰り返してきた歴史があります(現iPhoneはCMOSを使用しており、約12メガピクセルの高品質を提供しています)。
ほんの数十年の間に、デジタルカメラは、高価な半導体を実装した数万ドルレベルのデバイスになった後、全ての携帯電話に組み込まれ、数百ドルから千ドルで誰でも手に入れられるようになったのです。
他の分野でも、一般的なハードウェアからアプリケーションに特化したハードウェアへと、同じような軌跡をたどっています。2009年にビットコインのマイニングが開始されたとき、標準的なマルチコアCPUで誰でもSHA256ハッシュアルゴリズムを実行できるのが一般的でした。その後、マイニング競争が激化し、ブロック報酬が低下し、検閲に強いグローバルな通貨を求める人々が増加するにつれて、より効率的なマイニング用ハードウェアの開発分野の発展へと繋がっていきました。まず、GPUマイニングに移行したことで、1桁のマイニング並列度から5桁のマイニング並列度まで拡張/高速化されました。そして現在では、ビットコインをマイニングするためのASICリグは、約90~100テラハッシュ/秒の計算が可能で、これはCPUチップの約50億倍の性能になっています。
マイニング用のASICがどのようなものかについては先進的な段階にあるとしても、Web3用のハードウェアがどのようなものになるのかについては、まさにまだ初期段階にあるのです。ブロックチェーンが何百万人ものユーザーを魅了し、そこで稼動するアプリケーションがより複雑かつ高度になるにつれて、プライバシーとスケーラビリティに関する2つの重要な要求が顕在化していきました。
これに付随する重要な傾向として、これらのアプリケーションの多くで専用ハードウェアが開発される一方で、分散化とプライバシーを維持するために、コンシューマーグレードのハードウェアにアルゴリズムを最適化する動きが見られるようになったことが挙げられます。この傾向を顕著に表しているのが「ゼロ知識証明(ZKP)」の分野です。
現在のゼロ知識証明の概要
ゼロ知識証明は、特定の情報またはデータの集合について、その情報が何であるかを明かすことなく、その知識を暗号学的に証明する方法を提供する仕組みです。証明者はシステムの入力を知ることで証明を作成し、検証者は入力を知ることなく、自ら計算をやり直すこともなく、証明者が正しく計算を評価したことを確認する能力を持ちます。
このゼロ知識証明は、現在のブロックチェーンにおいて様々なユースケースを持っています。最もよく知られているのが、プライバシー分野(例:IronFish, TornadoCash, Worldcoin, Zcash)と、オフチェーンの状態遷移を計算で検証することによるEthereumのスケーリング(例:Polygonのスイート, Starknet, zkSync)です。AleoやAztecのように、プライバシーとスケーラビリティの両方の解決を目指すプロジェクトも存在します。
これらのアプリケーションを実現可能にし、高速化し、検閲耐性と分散化を実現するであろう、過去10年間の暗号技術の進歩の裏側を覗いてみる価値は大いにあるでしょう。アルゴリズムとハードウェアの進歩の組み合わせによって、証明の生成と検証はより安価になり、計算量も少なくなっています。こうした進歩は、前述のデジタルカメラなどの技術の民主化を反映しています。高価で非効率な方法から始めて、より安く、より速くする方法を見つけ出すプロセスです。最も重要なことは、ゼロ知識アルゴリズムの進歩によって、サーバーなどの中央集権的構造によって証明計算を実行する代替手段を提供し始めていることにあります。
証明のセットアップには、プログラムを表す多項式の集合計算をゲートする演算回路が含まれており、この多項式で表される情報量を拡張しようとすると、ゲートはより複雑になってしまいます。理想的には、検証者が予想する数と同じ数を計算によって強引に導き出す可能性を減らすために、証明者の可能な出力の範囲を拡大していきたいものです(数を増やすことで、PoWマイニングと同様に、証明の確率的安全性を向上できる)。しかし、多数の出力の生成は、コストがかかり、計算速度も遅くなります。そこで、証明アルゴリズムとハードウェアの進歩が必要になっていきます。
2011年に誕生したzkSNARKは、この進歩の重要な要素となるものです。zkSNARKは本質的に、ゲーティングできる多項式の数の効率的な拡張を可能にし、ゼロ知識証明の速度とより複雑な潜在アプリケーションを解き放つことができます。
zkSNARKの「SNARK」とは、「Succinct Non-Interactive Arguments of Knowledge」の略で、web3の文脈で最も重要な言葉は、「succinct(簡潔)」と「non-interactive(一方向性)」になります。zkSNARKの証明は数百バイトしかないため、検証者が証明が正しいかどうかを迅速に確認することが可能になります。また、非対話型であることも重要です。非対話型証明は、検証者が証明者から提出された声明に異議を唱える必要性を排除します。ブロックチェーンの文脈では、クライアントが検証者とやりとりをする必要があることで、時間がかかり、その構造が複雑化します。
zkSNARKが最初に紹介されたとき、プライバシーを保護するブロックチェーンやトランザクションのスケールに使用するというアイデアは、一切言及されていなかったことに注意が重要です。元の論文では、データセットのダウンロードやコンパイルを必要とせずに、サードパーティが大きなデータセットに対して効率的に計算を実行するという提案がなされています。この例は、プライバシーやスケーリングのユースケースと理論的には似ていますが、実際に暗号分野の人々がzkSNARKを暗号通貨に適用するまでには数年かかりました。
ゼロ知識証明のブロックチェーンへの適合
zkSNARKを実装した最初の暗号プロトコルは、2014年に開発されたプライベートペイメント暗号通貨であるZcashです。Zcashは、BitcoinのUTXOモデルをベースにしたPoW型のマイニングネットワークで、暗号技術の向上がよりスケーラブルな形式のプライバシーを生むことを最初に提示した注目すべき例と言えます。Zcashが最初に実装したSproutプロトコルは、楕円曲線を生成するためにSHA256圧縮関数を使用していました。これは暗号学的に安全でしたが、時間とメモリを消費し、証明の生成に時間がかかり、約3KBのメモリを必要としていました。数年後、ZcashのコアチームはSHA256に代わる新ハッシュ「Bowe-Hopwood-Pedersen」を開発し、2018年にはSaplingプロトコルへと移行させました。新しいハッシュに加えて、Groth16の証明システムで使用される異なる回路を使用することによって、ネットワーク内のアカウントの扱い方を再構築したのです。これによって証明時間は約2.6秒、メモリは40MBとなり、携帯電話から証明書を生成できるまでになりました(アップグレードの詳細はこちら)。
こうしたZcashのアップグレードは、ゼロ知識証明システムの改良に共通する2つの興味深い概念を示しています。1つは、異なる組み合わせや証明システムを組み合わせることで、効率性を向上できるということです。証明回路、曲線、制約システム、コミットメントスキームのライブラリは、速度、効率、セキュリティの前提が異なる「ゼロ知識レシピ」を作るために交換できる材料と考えることができます。もう一つは、プライバシーがこれらの改良の原動力になっていることです。証明の生成には、デバイス(パソコンや携帯電話など)上で生成しない限り、第三者に送信する必要があります。この場合「プライベートな入力」を平文で送る必要があるため、当該個人情報が漏れる可能性があるのです。Zcashは、アルゴリズムの改善によって、ユーザーの利便性と分散化を非常に迅速に最適化することが可能であることを示す初期のソリューションを誕生させました。そして、プライバシーを保護する暗号通貨 IronFishなどの新たなプロジェクトは、誰でもブラウザから直接マイニングしてノードを実行可能にする仕組みによって分散化の価値をさらに高めているのです。
PLONKの参入
2019年、Ariel Gabizon、Zac Williamson、Oana Ciobotaruは、進歩を遂げた新しい証明システムとして「PLONK」を提案する論文を発表しました。最初の大きなブレークスルーは、PLONKが単一の普遍的な信頼できるセットアップ、つまり、与えられたゼロ知識証明システムに対して証明者と検証者が使用する共通の参照文字列を実行する、最初のセレモニーしか必要としないということにあります。
Vitalik Buterin氏が「Understanding PLONK」で説明しているように、単一の信頼できる設定が望ましいのは「物事を証明したいプログラムごとに個別の信頼できる設定があるのではなく、スキーム全体に対して単一の信頼できる設定がある場合、どのプログラムに対してもスキームを使用できる」ためです。Zcashは証明システムのインスタンス化(SproutとSaplingの両方)ごとに信頼できるセットアップを実行する必要がありましたが、PLONKセットアップは一度実行すれば、永続的に使用することが可能です。2019年、Aztec Networkは176人の参加者を集めて信頼されたセットアップを実行しました。この方式はAztecだけでなく、Matter LabsによるzkSync, Mina, Zcashなど、ゼロ知識証明ベースのソリューションを追求する多くのチームで使用されています。
PLONKのもう1つの有用な点は、速い証明時間の提供にあります。テストでは、一般グレードのコンピュータ(この場合は16GBのRAMを搭載したSurfacePro 6)で23秒での証明生成を実証しています。ただし、これはあくまでベンチマークであり、現在実装されているPLONKの証明は、生成にもっと時間がかかる可能性があることに注意が必要です。これは、PLONK証明を実装するチームの多くが、数千ものオフチェーン・トランザクションを1つの証明に集約する必要のあるゼロ知識ロールアップに適用しているためです。トランザクションは通常、計算負荷の高いプロバーによって処理され、その記録をシーケンサに送信してイーサリアムのメインネットで公開する仕組みを採っています。
ロールアップにおいては、分散化をどのように、どこで狙うかという興味深い問題が浮上しています。Matter Labsのアプローチの1つはzkPorterで、オフチェーンに保たれているデータの可用性を持つロールアップ用の第二のアカウントタイプとして構築されています。zkPorterが稼働すると、人々はL1 Ethereumの完全なセキュリティを提供するzkSyncで取引するか(毎秒最大2,000件のスループットを提供)、毎秒最大2万件以上のスループットを達成できるzkPorterで取引するかを選択できるようになるのです。zkPorter は、オフチェーンの状態を追跡するためにトークンをステークする「Guardians」を使用するPoSネットワークとして設計されており、これにより数桁のトランザクションコストを削減しつつ、強力なセキュリティの保証の提供を可能にします。Matter Labsはまだプロバー分散化をターゲットにしていませんが、ネットワークレベルの分散化は、ロールアップが中立性を優先する(同時にスピードを開放する)もう一つの重要な方法となります。また、プライバシーを保護するロールアップであるAztecは、携帯電話などのデバイスから証明を生成できるように、彼らの証明ネットワークを適合させる方法について話しています。重要なのは、これらの提案はまだ初期段階にあり、各チームはまだアプローチを反復している段階だということです。
ブロックチェーンベースのプライバシーに対するハードウェアに焦点を当てた他のアプローチには、ゼロ知識証明システムSemaphoreを使用して、分散型のシビル耐性通貨の作成に取り組んでいるWorldcoinが含まれます。Worldcoinを受け取った人は、Worldcoinに一度だけサインアップしたことを検証する機材である「オーブ」によって虹彩をスキャンされます。Worldcoinはユーザーの個人情報を保存することはなく、Worldcoinにサインアップするには、携帯電話でSemaphoreの公開鍵を生成し、QRコードの形でオーブに提示し、Worldcoinのオーブに虹彩をスキャンしてもらい、ハッシュ化された出力を得ることです。そして、そのハッシュが既に生成されたものと一致しないことをWorldoinが検証し、サインアッププロセスを一度しか行わないようにします。生体情報を保存する代わりにハッシュを使うことによって、Worldcoinはゼロ知識証明を使ってユーザーのプライバシーを保護することができる画期的な仕組みに取り組んでいます。
その先で、何が作られるのか?
技術革命から距離を取った場所で、それによってもたらされる大規模な経済的・社会的変化の必然性を宣言することは非常に簡単です。現在、身の回りに当たり前にある写真やストレージ、インターネットアクセス、コミュニケーションといった機能を備えたiPhoneを手にしている多くの人は、おそらくその技術を可能にするために要した進歩についてなど考えたことはないでしょう。社会的・経済的な大転換期における変化が完全に実現するまでに、どれだけの時間がかかるのかは明確には誰にもわかりません。
しかし、過去10年間で、スピード、効率性、使いやすさ、分散化における改善は目覚しいものがあります。ゼロ知識領域における消費者向けのアプリケーションはごくわずかしか存在しませんでしたが、プライバシーとスケーラビリティに取り組むアプリケーションやブロックチェーンエコシステム全体が、非常に短期間のうちに成長し、構築が進められています。このような新たなテクノロジーにおいては、その反対側がどのように見えるかを正確に予測することが非常に難しいものです。
誰もが携帯電話で証明できる完全にプライベートな取引の保証を持ち、多数の分散型アプリケーションをホストするトラストレスなブロックチェーンに囲まれた生活とは、どのようなものになるのでしょうか?あるいは、誰もが同じボーダーレスな分散型通貨を自由に交換し、使用する世界が実現した時、世界はどうなるのでしょうか?
私たちはこの変化を生き抜く一方で、暗号分野を当初から導いてきたコアバリューである「アクセシビリティ」「信頼性」最も重要な「非中央集権性」を心に留めておくことが重要なのです。
この記事にフィードバックやディスカッションを提供していただいたSam Ragsdale、Eddy Lazzarin、Guy Wuollet、Ali Yahya、Dan Bonehに感謝します。