今回の記事はa16zの記事より、Elena Burgerさんによる「Decentralized Speed: Advances in Zero Knowledge Proofs」の翻訳記事となります。
オリジナル記事はこちらから
https://a16z.com/2022/04/15/zero-knowledge-proofs-hardware-decentralization-innovation/
技術の進歩は、ハードウエアという切り口で見ることができます。例えば新しいニーズやユースケースが生まれると、チップメーカーは特定の機能やソフトウェアに最適化した専用の GPU、FPGA、ASIC を設計します。クラウドコンピューティング、コンピューターグラフィックス、人工知能、機械学習など、テクノロジー分野のすべての主要産業は、計算の実行速度と効率を加速するためのハードウェアを求めながら進化してきました。多くの場合、初期機能(メモリの保存、グラフィックのレンダリング、大規模シミュレーションなど)のチップは、一般化できるパターンが特定され、専用のハードウェアが開発されるまでは、極めてシンプルなものからスタートします。理想的には、このハードウェアは時間の経過とともに安価になり、消費者が入手しやすくなることです。
この現象の歴史的な好例が、デジタルカメラの進化です。1960年代、フィルムカメラに半導体が組み込まれ、シャッタースピードの測定や光の加減による絞りの大きさの調整といった簡単な機能は自動化さ れましたが、画像をメモリに取り込むという行為はまだ実現されていませんでした。1970年代、デジタルカメラの最初の実験は、磁気バブル(1ビットのデータを記憶する原始的な方法)の概念を取り入れ、シリコン上に電子の形で光を吸収して記憶する電荷結合素子(CCD)を構築することから始まりました。デジタルカメラ技術の初期の概要には、メガピクセルの概念すらありませんが、当時の半導体の限界から、カメラの解像度(スピードやストレージは言うに及ばず)は非常に低く、最初のカメラは約0.0001メガピクセルで、バッファからメモリに画像を転送するのに約23秒かかっていました。1990年代に入り、CMOS(相補型金属酸化膜半導体)という新しいセンサーが安価に製造できるようになり、主流となるまで、メガピクセル数とカメラメモリのトレードオフは緊張の連続でした(ちなみに、現在のiPhoneはCMOSを使用しており、約12メガピクセルというカメラ品質を提供しています)。
数十年の間に、デジタルカメラは、高価な半導体を手に入れた研究者たちによるハッキングのような仕掛けから、数万ドルに達するデバイス、そしてすべての携帯電話に組み込まれ、数百ドルから千ドルで誰でも入手できるようになるまで進化したのです。
他の分野でも、一般的なハードウェアからアプリケーションに特化したハードウェアへと、同じような軌跡をたどっています。2009年にビットコインのマイニングが開始されたとき、標準的なマルチコアCPUで誰でもSHA256ハッシュアルゴリズムを実行できるのが一般的でした。やがて、マイニングの競争が激化し、ブロック報酬が低下し、検閲に強いグローバルな通貨を求める人々が主流となるにつれ、より効率的なマイニング用ハードウェアの開発に関わる業界全体が発展していきました。まず、GPUマイニングに移行し、1桁のマイニング並列度から5桁まで拡張できるようになり、プロセスが高速化されました。そして現在、ビットコインを採掘するためのASICリグは、約90~100テラハッシュ/秒の計算が可能で、これはCPUチップの約50億倍の性能になります。
つまり、マイニングは、分散型通貨が可能であるだけでなく、望ましいものであるという概念実証の始まりに過ぎないと捉えることができるかもしれません。マイニング用のASICがどのようなものかについては先進的な段階にあるとしても、Web3用のハードウェアがどのようなものになるのかについては、まさに初期段階にあるのです。ブロックチェーンが何百万人ものユーザーを魅了し、ホストするアプリケーションの複雑さがより高度になるにつれて、プライバシーとスケーラビリティに関する2つの重要な要求が現れてきました。
重要な傾向として、これらのアプリケーションの多くで専用ハードウェアが開発される一方で、分散化とプライバシーを維持するために、コンシューマーグレードのハードウェアにアルゴリズムを最適化する動きも見られるようになったことが挙げられます。この傾向を特によく表しているのが、ゼロ知識証明の分野です。
今日におけるゼロ知識証明の概要
ゼロ知識証明は、ある特定の情報やデータについて、それが何であるかを実際に明かすことなく、その知識を暗号化して証明する方法です。ゼロ知識証明には「証明者」と「検証者」が必要で、証明者はシステムの入力情報をもとに証明を作成し、検証者は入力情報を知ることなく、また自ら計算をやり直すことなく、証明者が計算を正当に評価したことを確認する能力を持ちます。ゼロ知識証明は、今日のブロックチェーンにおいて様々なユースケースを持っています。最もよく見られるのは、プライバシー分野(例:IronFish、TornadoCash、Worldcoin、Zcash)または、オフチェーンの状態遷移を計算で検証することによってEthereumをスケーリングすること(例:Polygonのゼロ知識ロールアップのスイート、Starknet、zkSync)です。AleoやAztecのように、プライバシーとスケーラビリティの両方を解決することを提案するものもあります。
これらのアプリケーションを実現可能にし、高速化し、そしておそらく最も重要な検閲耐性と分散化を実現した、過去10年間における暗号技術の進歩の裏側を見てみる価値はあると思います。アルゴリズムとハードウェアの進歩の組み合わせにより、証明の生成と検証はより安価になり、計算量も少なくなっています。多くの点で、こうした進歩はデジタルカメラなどのテクノロジーの民主化を反映しています。高価で非効率なプロセスから始めて、より安く、より速くする方法を見つけ出すのです。おそらく最も重要なことは、ゼロ知識アルゴリズムの進歩により、サーバーなどの中央集権的な状況で証明計算を生成する代わりに、代替手段を提供し始めていることです。
証明のセットアップには、プログラムを表す多項式の集合の計算をゲートする演算回路が含まれ、これらの多項式で表される情報量を拡張しようとすると、ゲートはより複雑になります。理想的には、検証者が予想する数と同じ数を計算で強引に導き出す可能性を減らすために、証明者の可能な出力の範囲をできるだけ大きくしたいものです。(この数を増やすことで、プルーフ・オブ・ワークのマイニングと同じように、証明の確率的安全性を高めることができます。しかし、多数の出力を生成することは、非常にコストがかかり、計算速度も遅くなります。そこで、証明アルゴリズムとハードウェアの進歩が必要になってくるのです。
2011年に発表されたzkSNARKは、これらの進歩の重要な要素となっています。zkSNARKは本質的に、ゲート処理できる多項式の数を効率的に拡張することを可能にし、ゼロ知識証明の速度とより複雑な潜在的アプリケーションを解き放ちました。
zkSNARKの「SNARK」の部分は、「Succinct Non-Interactive Arguments of Knowledge」の略で、web3のコンテキストにおいて最も重要な言葉は、「succinct」と「non-interactive」だそうです。zkSNARKの証明は数百バイトしかないため、検証者が証明が正しいかどうかをすぐに確認することができます(ただし、後述する理由により、証明自体の生成には時間がかかる場合があります)。非対話型証明(non-interactive component)は、検証者が証明者から提出されたステートメントに挑戦する必要がありません。ブロックチェーンの文脈では、クライアントが検証者とやりとりをする必要があり、時間がかかり、アーキテクチャが難しくなります。zkSNARKが最初に紹介されたとき、プライバシーを保護するブロックチェーンやトランザクションのスケールに使用するというアイデアは言及されなかったことに注意することが重要です。元の論文では、データセットのダウンロードやコンパイルを必要とせずに、サードパーティが大規模なデータセットに対して効率的に計算を実行するようなことが提案されています。この例は、プライバシーやスケーリングのユースケースと理論的には似ていますが、この分野の人々がzkSNARKを暗号通貨に適用するまでには数年かかりました。
ゼロ知識証明がブロックチェーンに登場する
zkSNARKを実装した最初の暗号プロトコルは、2014年に開発されたプライベートペイメント暗号通貨であるZcashです。ZcashはBitcoinのUTXOモデルをベースにしたプルーフ・オブ・ワーク型のマイニングネットワークで、その改善は暗号技術の向上がよりスケーラブルなプライバシー形態につながることを示しています。Zcashが実装したオリジナルのプロトコルであるSproutプロトコルは、楕円曲線を作成するためにSHA256圧縮関数を使用していた。これは暗号学的に安全ではあったが、時間とメモリを大量に消費するものでした。証明書の生成に数分かかることもあり、そのために約3KBのメモリを必要としていたのです。数年後、ZcashのコアチームはSHA256に代わる新しいハッシュ「Bowe-Hopwood-Pedersen」を開発し、2018年にZcashをSproutから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で、オフチェーンに保たれたデータの可用性を持つロールアップのための第2のアカウントタイプです。zkPorterが稼働すると、人々はL1 Ethereumの完全なセキュリティを提供するzkSyncで取引するか(そして毎秒最大2,000件の取引のスループットを提供)、毎秒最大2万件以上の取引を達成できるzkPorterで取引するかを選ぶことができるようになるのです。重要なのは、zkPorterは、オフチェーンの状態を追跡するためにトークンを賭ける「ガーディアン」を使用するプルーフオブステークネットワークとして設計されており、これにより、数桁の取引コストを削減しながら、セキュリティの強力な保証を提供することです。Matter Labsはまだ証明の分散化をターゲットにしていませんが、ネットワークレベルの分散化は、ロールアップが中立性を優先する(同時にスピードを開放する)もう一つの重要な方法です。プライバシーを守るロールアップであるAztecは、携帯電話やコンピュータから証明を生成できるように、彼らの証明ネットワークを連合させる方法について話しています。重要なのは、これらの提案はすべてまだ初期のものであり、各チームはまだアプローチを反復している段階だということです。
ブロックチェーン・ベースのプライバシーに対するハードウェアに焦点を当てた他のアプローチには、ゼロ知識証明システムSemaphoreを使用して、分散型のシビル耐性通貨を作成しようとしているWorldcoinがあります。Worldcoinの受領者は、Worldcoinに一度だけサインアップしたことを検証するオーブによって虹彩をスキャンされるのです。重要なのは、Worldcoinはユーザーの個人情報を保存したり、漏らしたりしないことです。ワールドコインにサインアップするには、携帯電話でセマフォの公開鍵を生成し、QRコードの形でオーブに提示し、ワールドコインのオーブに虹彩をスキャンしてもらい、ハッシュ化された出力を得ます。そして、そのハッシュが既に生成されたものと一致しないことをWorldoinが検証し、サインアッププロセスを一度しか行わないようにします。生体情報を保存する代わりにハッシュを使用することで、ワールドコインはゼロ知識証明を使用してユーザーのプライバシーを保護することができるのです。
では、何ができ、何が作られるのか?
テクノロジー革命の最後尾に立って、それによってもたらされる経済や社会の大変革を必然だと断言するのは非常に簡単です。今日、写真、ストレージ、インターネットアクセス、コミュニケーションといった驚くべき機能を備えたiPhoneを手にしている人は、おそらくそのテクノロジーを可能にするために必要なすべての進歩について考えてはいないでしょう。それと同じように、社会的・経済的シフトの黎明期に立ち、変化が完全に実現するまでにどれだけの時間がかかるのか、ほとんど明確になっていないのが難しいところです。
私たちは現在、ゼロ知識証明スキームにおける長い一連の進歩の、ごく初期の段階にいます。しかし、過去10年間で、スピード、効率、使いやすさ、そして非中央集権の面で目覚ましい進歩を遂げました。ゼロ知識領域における消費者向けのアプリケーションはごくわずかでしたが、プライバシーとスケーラビリティのためのアプリケーションとブロックチェーンのエコシステム全体が、非常に短期間のうちに構築されるようになりました。このような新しいテクノロジーで最もエキサイティングなことのひとつは、その反対側がどのように見えるかを正確に予測することが非常に難しいということです。誰もが携帯電話から証明できる完全にプライベートな取引の保証を持ち、多数の分散型アプリケーションをホストする信頼性のないブロックチェーンに落ち着いたらどうなるのでしょうか?あるいは、誰もが同じボーダーレスな分散型通貨を換金する権利を持つ世界はどうなるのでしょうか?私たちはこの変化を生き抜く一方で、この分野を当初から導いてきた中核的価値観、すなわちアクセシビリティ、信頼性、そして最も重要なこととして分散化を心に留めておくことが重要です。
今回の記事は以上となります。
ゼロ知識証明に関して知識が浅い部分もあり、今回の記事は読んでいてかなり大変でした。。暗号技術関連に関しては技術的な専門知識が無いと理解が難しいケースも多いですが、それぞれの仕組みを構築する基礎的な技術面だけでもカバーできるよう、併せて勉強していきたいと思います。
そんなところで本日の記事は終わりにしたいと思います。
それではまた明日!
Source:https://a16z.com/2022/04/15/zero-knowledge-proofs-hardware-decentralization-innovation/
コメント