はじめに
前回の記事では,レイヤー2の種類と使用されている技術について翻訳記事を交えてざっくりと概要を説明してみました.その中でも本命だと言われているゼロ知識証明に基づく部分で気になったzk-SNARKsとzk-STARKsを解説しているブログ記事をもとに自分の理解を交えて紹介してみます.参考にした記事は,ConsenSys(Metamaskの開発元)のブログ記事 ”Zero-Knowledge Proofs: STARKs vs SNARKs”になります.
SNARKs
2012年1月、カリフォルニア大学バークレー校のAlessandro Chiesa 教授が共著で発表した論文で、彼らが初めて構築したゼロ知識証明のことを”zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)”と呼びました。 zk-SNARKの安全性は、楕円曲線に依存しています。暗号技術における楕円曲線とは、楕円曲線上の離散対数問題の困難性を根拠として運用されています。
楕円曲線乱数生成器にバックドアが存在するかどうかについては大きな議論がありましたが、アルゴリズム全体としては一般に安全性が保たれていると考えられています。サイドチャネル攻撃にはいくつかの有名な脆弱性が存在していますが、いくつかの対応手法により容易に解決することができると考えられています。楕円曲線を用いた暗号は量子コンピューティングの前では無力ですが、その安全性モデルを破るために必要な量子コンピュータはまだ広く普及していませんし実用化(必要なQbit数を持ったもので自由にプログラム可能なもの)はまだ先だと言われています。
zk-SNARKは楕円曲線に基づくだけでなく、信頼済みセットアップ(Trusted setup)を必要とします。信頼済みセットアップとは、プライベート取引に必要な証明の作成に使用する鍵の初期作成イベントと、その証明の検証のことです。これらの鍵が作成される際、検証鍵とプライベート取引を送信する鍵の間に隠されたパラメータがリンクされています。このイベントでこれらの鍵を作成するために使用されたシークレットが破棄されない場合、そのシークレットを利用して偽の検証により取引を偽造し、保有者にゼロから新しいトークンを作成して取引に使用するなどの不正を行う能力を与える可能性があります。zk-SNARKsのプライバシー機能により、こういった行為で作成されたトークンが不正に作られたものであることを検証する方法はないでしょう。とはいえ、信頼済みセットアップは取引の最初にだけ必要です。
その結果、SNARKベースのネットワークのユーザーは、信頼済みのセットアップが正しく実行されたこと、つまりトラステッド・セットアップ・キーに関連するシークレットが破壊され、その儀式を監督した個人によって保持されていないことに依存しなければなりません。信頼済みセットアップへの依存は、SNARKsを批判する人たちが最も懸念している分野の1つです。とはいえ、開発者が信頼済みセットアップを利用する必要があるのは最初だけで、継続的に利用する必要はありません。
SNARKのもう一つの大きな批判点は、量子コンピューティングへの耐性がないことです。量子コンピューティングが大きく普及すれば、SNARKを支えるプライバシー技術は崩壊されてしまうでしょう。もちろん、SNARKsの支持者は、量子コンピュータが利用されるようになれば、RSAやほとんどの(楕円曲線)暗号に依存したウォレット・インフラが壊れるなど、はるかに多くの問題が発生することを正しく指摘しています。
しかし、SNARKがSTARKよりはるかに速いスピードで採用されたのには、さまざまな理由があります。SNARKはSTARKよりも何年も前に発見されたため、採用の面でかなり先行することができました。古いデジタルアセットプロジェクトの1つであるZcashは、ブロックチェーン開発コミュニティ内でSNARKsの使用法を普及させました。Zcashやその他のSNARKsの採用者のおかげで、SNARKsは最も多くの開発者ライブラリ、公開されたコード、プロジェクト、および技術に積極的に取り組んでいる開発者がいます。Zcashに加え、新興のDEXであるLoopringもSNARKsを利用しています。開発者がゼロ知識技術の活用を始めようと思った場合、STARKsよりもSNARKsを活用する方がはるかに多くのサポートが受けられるでしょう。
さらに、SNARKはSTARKが必要とするETHのガスの24%しか必要としないと推定されており、これはSNARKを使った取引はエンドユーザーにとってはるかに安価であることを意味します。さらに、SNARKsのプルーフサイズはSTARKsよりもはるかに小さいため、オンチェーンストレージも少なくて済みます。
STARKs
SNARKsはドキュメントや開発者サポートに関してSTARKsより明確に優れていますが、STARKsはいくつかのユニークな利点を提供します。その前に、技術的な観点からzkSTARKs (Zero-Knowledge Scalable Transparent Arguments of Knowledge)がどのようなものか、説明していきます。
Eli Ben-Sasson、Iddo Bentov、Yinon Horeshy、Michael Riabzevは、2018年にSTARKsについて最初の論文を発表しました。SNARKsとは異なり、STARKsの基盤技術はハッシュ関数に依存しています。まずハッシュ関数に依存することで、量子コンピュータへの耐性があるなどの利点があります。さらに、ネットワークでSTARKsの活用を始めるには、(SNARKsのような)信頼済みセットアップが必要ありません。
しかし、STARKはSNARKよりもはるかに大きなプルーフサイズを持つため、STARKの検証はSNARKよりも時間がかかり、またSTARKの方がより多くのガスを必要とすることにつながります。
さらに、開発者向けのドキュメントやコミュニティが不足しているため、開発者がSTARKを利用するのはかなり難しいでしょう。STARKWAREのようにSTARKベースのスケーリングソリューションを作成するプロジェクトもありますが、SNARKsのコミュニティの方がまだはるかに規模が大きい状態です。
両開発者コミュニティはSNARKとSTARKの両方をサポートしていますが、特にEthereum FoundationはStarkを利用するSTARKwareを声高にサポートしています。実際、Ethereum FoundationはSTARKwareに1200万ドルの助成金を与えており、この新興技術への傾倒を明確に示しています。
さらに、STARKのドキュメントはSNARKに比べると見劣りしますが、技術コミュニティは最近、この最先端技術の実装を目指す人たちのために、より充実したリソースを開発しています。
まとめ
SNARKが2012年に発明されているので実際のブロックチェーンへの実装は先行しているといった状況です.すでに実装例はいくつもあり,これからもSNARKがまず先頭を切って導入されていくのでしょう.一方でSTARKは比較的新しい技術(2018年に最初の論文発表)であるためまだまだ実装まで時間はかかりますが,SNARKが抱えている量子コンピューター耐性が無いことや暗号化時のキー生成シークレット漏洩の可能性などの問題などを克服できるSTARKが期待されているようです.ただし,STARKはETHのリソース消費の面で課題があるので,そこは
EIP-4488などで対策が提案されていくのでしょう(当初はShanghai Hardforkで実装される予定でしたがまだDraftの状態です).
ちなみにPolygon Zeroが1月10日に発表したPlonky2は再帰的SNARKsといってSTARKの一部のアイデア(FRI)を導入することでSNARKsの抱えている技術的課題を解決しています(ハッシュ関数を導入することでTrusted setupが不要になるらしいです).ハッシュ関数にはKeccak256を利用しているようでEIP-4488が実装されればさらにガスコスト削減が可能なようです.
コメント
コメントを投稿