5月27日、シリコンバレー発で世界最大級のスタートアップ・
ゲストスピーカーとして招かれた日置玲於奈
本記事では日置氏の説明をベースにしながら、ビットコイン
後編では、筆者の2つの質問と日置氏から得られた回答をベースに、ゼロ知識証明
なお、本来イベントでの質疑応答は、リアルタイムの参加者のみが視聴できる内容です。本記事後編ではStartup Grind事務局より、特別な許可を得た上で質疑応答の模様をお届けします。
質問で取り上げた準同型暗号と日置氏から得られた回答
取材参加していた筆者は、イベント最後に設けられた質疑応答の際、複数の質問をしました。
そのうちの1つが、日置氏のINTMAXチームが開発した
INTMAX Walletを昨年
(2023年9月) リリースしましたが、 「INTMAX Wallet」 のWebサイトでは、FHE (完全準同型暗号) が利用されていると公表されています。この暗号技術を採用した理由や背景などを説明してください。
上記質問に対して日置氏は、
準同型暗号の質問をした理由と準同型暗号の概要、応用方法、メリット
まず、質問に準同型暗号を取り上げた理由としては、暗号資産・
完全準同型暗号
日置氏の回答をベースにした詳細な説明をする前に、まずは準同型暗号
準同型暗号の概要
準同型暗号とは、暗号化したデータを復号しないまま、データ分析などの処理に用いることを可能にする暗号方式の総称です。方式にはいくつかの種類があります。
- 加法準同型暗号:暗号文同士の加法演算が可能です
(例:Enc(2) + Enc(3) = Enc(5))。 - 完全準同型暗号
(Fully Homomorphic Encryption:FHE):加法と乗法を含むすべての算術演算が可能です (例:Enc(3) + Enc(4) = Enc(7)、Enc(5) × Enc(10) = Enc(50)) - Somewhat準同型暗号
(Somewhat Homomorphic Encryption:SHE)、レベル準同型暗号:実用性向上を目的に、演算の種類や回数に制限を設け、計算コストを軽減した方式です。 - TFHE
(Fully Homomorphic Encryption over the Torus) :2016年に提案され、以前の方式よりも高速な完全準同型暗号を実現します。方式 - CKKS
(Cheon-Kim-Kim-Song) :2016年に提案され、整数だけでなく実数または複素数のデータに対する演算が可能です。機械学習や統計分析などでの使用が想定されています。方式
準同型暗号は、1978年にリベスト、アデルマン、ドーマン
準同型暗号で期待される応用方法、分野、メリット
準同型暗号で期待される応用方法には、商取引情報や生体情報といった機密情報を、暗号化したまま複数の組織間で受け渡しながらデータ分析するものが挙げられます。
具体的な応用分野としては、さまざまな組織のデータを学習目的で利用する連合学習
準同型暗号を用いると、プライバシー保護の観点から複数組織間での共用が難しいとされる機密情報のデータ分析を促進することが見込まれます。ほかにも、機密情報を暗号化したままデータ分析に用いるため、復号のための秘密鍵を複数組織間で共有する必要がなくなり、セキュリティ上の管理負担を軽減できるメリットがあります。
INTMAX Walletにおける準同型暗号の応用~マルチシグの懸念解消を提案
ここからは、前述した質問に対する日置氏の回答で得られた、
そもそもウォレット、マルチシグとは
まず、INTMAX Walletがどんなツールなのか説明します。
INTMAX Walletは暗号資産を保管する
ウォレットとは、BitcoinやEthereumなどの暗号資産を保管するソフトウェアで、暗号資産の送金時に必要となる秘密鍵による電子署名を操作・
- ブラウザエクステンションウォレット:ChromeやFirefoxなどのブラウザ拡張機能として利用します
(例:MetaMask、Phantom)。 - デスクトップウォレット:専用ソフトウェアをPCにインストールして利用します
(例:Specter、Electrum、Ledger Live、Trezor Suite)。 - ハードウェアウォレット:秘密鍵を保存する物理デバイスであり、多くは操作時にデスクトップウォレットと併用します
(例:Ledger、Trezor、Jade、Coldcard)。
マルチシグとは、ウォレットのセキュリティを強化する技術で、送金を行う際、複数の秘密鍵による電子署名が必要となる設定にできます。例えば、Bitcoinで多用される
BitcoinとEthereumにおけるマルチシグ実装の違い~Ethereumには懸念の指摘も
Bitcoinにおいてはプロトコルレベルでマルチシグが標準化されており、
一方、Ethereumにおいてはプロトコルレベルによるマルチシグは実装されておらず、代わりにスマートコントラクト
しかし、前述した日置氏の回答にもありましたが、Ethereumのスマートコントラクトによるマルチシグ実装にはユーザビリティ
Ethereumの創設者であるヴィタリック・
INTMAX Walletのマルチシグではスマートコントラクトを使用しない
このような懸念を払拭する手段の1つとして、完全準同型暗号を用いてスマートコントラクトを使用しないマルチシグを提案したのがINTMAX Walletです。
前述した
ただし、留意事項として、INTMAXチームはINTMAX Walletの仕様に関して、現時点では上記の情報より詳細は公開していないようです。INTMAX Walletが完全準同型暗号を用いてマルチシグを実装していることも、INTMAXチームが公開しているWebサイト上の情報や日置氏が発信した説明に依る部分があります。
INTMAX Walletのように、暗号資産・
今後INTMAXチームがINTMAX Walletの仕様をどこまで公開するかはわかりませんが、暗号資産・
そのほかにも応用が期待・議論される数多くの提案~理解するために必要となるのは
前編ではゼロ知識証明、前セクションでは準同型暗号を取り上げましたが、暗号資産・
- Witness Encryption
- Indistinguishability Obfuscation
- Multi-input Functional Encryption
- Spartan: Efficient and general-purpose zkSNARKs without trusted setup
- Naysayer proofs
- Circle STARKs
上記はその一部で、Witness Encryptionは日置氏もこの暗号技術を応用したソリューションを提案した実績があります。
上記の暗号技術や改善提案に関する情報は、まだ論文による解説が大半で、応用可能性に関する学術的な議論が行われている段階です。
ただ、今後も数多くの提案が登場し、暗号資産・
高機能暗号の特徴を把握して変化の激しい最新動向を追いかけられるようになるには、どんなことを理解しておくとよいのでしょうか?
数多くの情報への理解が必要といえますが、高機能暗号の背景で利用されている数学的知識はその中でも重要な情報の1つといえるでしょう。
数学的知識、それを用いたプログラミングに関する質問と日置氏から得られた回答
そのため、筆者は次の質問で、暗号資産・
ゼロ知識証明、完全準同型暗号、Witness Encryptionなどの高機能暗号を理解するには数学的知識
(群論、有限体、ペアリングなど) が不可欠です。そして、それら高機能暗号を用いたプログラミングスキルも必要になりますが、そのようなプログラミングスキルを学べる情報があればお聞かせください。
上記の質問に対する日置氏の回答は、
高機能暗号を理解するのに役立つ各種情報リスト
日置氏から得られた、高機能暗号を用いたプログラミングを学べる情報
数学的知識に言及した技術解説記事
ゼロ知識証明、準同型暗号という高機能暗号を理解するためには、線形代数、代数学
- 楕円曲線の夢の国に住もう!!
(日置氏のMedium) - 昨今の暗号資産・
ブロックチェーン開発に応用されているゼロ知識証明をはじめとした高機能暗号を理解するのに必要となる数学的知識を、数式やグラフも交えてステップ・ バイ・ ステップで解説した記事で、日置氏が執筆しています。 - 楕円曲線、群、有限体、楕円曲線エルガマル暗号、ECDSA、フロベニウス写像、有限体の拡大体、楕円曲線上の等分点・
ねじれ点、ヴェイユペアリング、関数因子、アーベル=ヤコビの定理、テイトペアリングといった、代数学、数論、代数幾何学などに位置付けられる各概念を解説しています。
- An approximate introduction to how zk-SNARKs are possible
- Quadratic Arithmetic Programs: from Zero to Hero
- Exploring Elliptic Curve Pairings
- Zk-SNARKs: Under the Hood
- STARKs, Part I: Proofs with Polynomials
- STARKs, Part II: Thank Goodness It's FRI-day
- STARKs, Part 3: Into the Weeds
- Exploring Fully Homomorphic Encryption
- ヴィタリック・
ブテリン氏によるzkSNARKを支える技術や、zkSTARKに関して解説した一連のブログ記事。これらの記事はEthereumにゼロ知識証明が応用されるきっかけとして強い影響を与えました。最後の 「Exploring Fully Homomorphic Encryption」 は、完全準同型暗号を解説した記事です。 - 多項式
(Polynomials)、有限体 (Finite Field)、ラグランジュ補間 (Lagrange Interpolation)、楕円曲線 (Elliptic Curve)、ペアリング (Pairing)、素体 (Prime Field)、拡大体 (Extension Field)、双線形写像 (Bilinear Map)、マークルツリー (Merkle Tree)、合同算術 (Modular Arithmetic) などの数学的知識について、数式も交えた解説をしています。 - herumiさんの記事一覧 | Zenn
(光成滋生氏によるZenn記事一覧) - サイボウズ・
ラボで暗号とセキュリティに関するR&Dに従事する、光成滋生氏 (github) が公開している暗号技術や最適化周りの解説記事一覧。ゼロ知識証明に関連するものとしては群、楕円曲線、楕円曲線暗号、楕円エルガマル暗号、ペアリングなど、準同型暗号に関連するものとしては多項式環、ベクトル空間の同型などといった数学的知識について解説した記事が公開されています。
ほかにも初学者の方には、ゼロ知識証明は
数学的知識に言及した技術解説を精力的に発信する企業や団体など
上記の記事以外にも、暗号資産・
以下リストの末には、ゼロ知識証明、準同型暗号の標準化団体も掲載しています。
- 0xPARC
(GitHub、ブログ) - 0xPARCは、ゼロ知識証明を中心に高機能暗号のR&D、オープンソースツール・
インフラ開発、教育活動を行うコミュニティ・ 財団。前編で紹介したThe Programmable Cryptography Conferenceを主催しています。 - 「learn.
0xparc. 」org という派生グループもあり、ゼロ知識証明のコンパイラー 「Circom」、証明システム 「Halo2」 を使用したアプリケーション開発のチュートリアルを公開しています。チュートリアルを通じて、ゼロ知識証明の数学的知識についても学習できる内容になっているようです。 - Aleo
(GitHub、ブログ、YouTube) - Aleoは、ブロックチェーン開発向け関数型静的型付けプログラミング言語
「Leo」、ゼロ知識証明を応用したアプリケーション開発に用いる 「snarkOS」 「snarkVM」 などを開発・ 運営する企業。ゼロ知識証明に関する教育事業も多く展開しています (後述参照:日置氏のおすすめ~ 『プログラミング・ )。ビットコイン』、CTF - Ingonyama
(GitHub、ブログ、Videos) - Ingonyamaは
「ICICLE」 「BLAZE」 という、GPU、FPGA上でのゼロ知識証明の計算処理を高速化するライブラリを開発する企業。 - ゼロ知識証明の教育や普及活動にも精力的に取り組み、同社運営のウィキである
「Ingopedia」 では、ゼロ知識証明、準同型暗号に関する学習情報が数多く掲載されています。初学者にとっては、充実した情報源といえるでしょう。 - Polygon Labs
(GitHub、ブログ) - Polygon Labsは、
「Polygon」 を代表に、ブロックチェーン関連のソリューションを数多く開発する企業。 「Polygon zkEVM」 などゼロ知識証明を応用した技術も開発しており、その他にもブロックチェーン技術の教育事業も展開しています。 - 「Polygon Learn」、
「zk Research」 というコンテンツがあり、ゼロ知識証明に関する論文やブログ記事などの解説情報がまとめられています。 - Scroll
(GitHub、ブログ、YouTube) - Scrollは、ゼロ知識証明を応用したEthereumのレイヤー2開発を進めるプロジェクト。Ethereumのブロックチェーン上でスマートコントラクトの実行環境であるEVM
(Ethereum Virtual Machine) と互換性のあるzkEVMを開発しています。開発者向けドキュメントにゼロ知識証明に関する解説情報があります。 - StarkWare
(GitHub、ブログ、YouTube) - StarkWareは、zkSTARKを用いたソリューションを数多く開発するイスラエル発の企業。zkRollupを活用したEthereumのレイヤー2
「Starknet」 、dYdXにも利用されているDeFiを中心にした開発用プラットフォーム 「StarkEx」 、zkSTARKを用いたプログラムを作成する言語 「Cairo」 などを開発・ 運営しています。 - 「STARK」、
「STARK 101」 というコンテンツがあり、ゼロ知識証明に関する論文や動画、ブログ記事、Python実装によるチュートリアルなどの解説情報が多くまとめられています。 - Zama
(GitHub、ブログ、YouTube) - Zamaは、完全準同型暗号を用いたソリューションを多く開発しているフランス発の企業。RustでTFHEを実装する
「TFHE-rs」、完全準同型暗号のコンパイラー 「Concrete」、完全準同型暗号を用いてEVM上で機密性の高いスマートコントラクトを実装する 「fhEVM」 などを開発しており、開発者向けドキュメントで説明しています。 - 「FHE resources」
では、完全準同型暗号に関するブログ記事、ライブラリ、論文、チュートリアルをまとめており、Zamaのツールを通じて、完全準同型暗号を用いたプログラミングの学習もできる内容になっています。 - ZKProof Standards
(GitHub、ブログ) - ZKProof Standardsは、ゼロ知識証明の主流化を目指す標準化団体で、暗号資産・
ブロックチェーン業界の企業やプロジェクトも数多く参画しています。 - ゼロ知識証明に関するリファレンスの公開、コミュニティの展開などを行っています。また、毎年暗号技術の技術者や実務者が参加するカンファレンス
「ZKProof」 も開催しており、ZKProof StandardsのYouTubeチャンネルでも公開されています。今年は5月22日-24日にドイツ・ ベルリンで 「ZKProof 6」 を開催。 - Homomorphic Encryption Standardization
- Homomorphic Encryption Standardizationは、準同型暗号の標準化団体。セキュリティの専門家とも協議しながら、準同型暗号の安全性検証やアプリケーション開発に利用できるAPIの検討などを行っています。
- 同団体は入門資料としてWikipediaの
「準同型暗号」 (英語版) を推奨しています。ほかにも 「Microsoft SEAL」 「OpenFHE」 などの準同型暗号を用いたオープンソースツールを紹介しています。
上記の企業やプロジェクトなどは、GitHub上で開発したソリューションやプロダクトに関するソースコードや研究論文も積極的に公開しています。できれば数学的知識の学習とあわせてほかの情報も確認しておくとよいでしょう。
数学的知識を解説する書籍
これまで紹介したWeb記事や企業・
前述した数学的知識をすべて網羅しようとすると関連する分野が広範かつ多岐にわたるため、記事分量の都合上、すべてを取り上げることは難しいです。そのため、特に重要といえる代数学の書籍を中心に、以下に参照します。
- 『なっとくする群・
環・ 』体 野崎昭弘 著、講談社 - 『群論への第一歩 集合、写像から準同型定理まで』
結城浩 著、SBクリエイティブ - 『代数学1 群論入門 第2版』
雪江明彦 著、日本評論社 - 『代数学2 環と体とガロア理論 第2版』
雪江明彦 著、日本評論社 - 『群・
環・ 』体入門 新妻弘/木村哲三 著、共立出版 - 『演習 群・
環・ 』体入門 新妻弘 著、共立出版 - 『現代暗号の誕生と発展』
岡本龍明 著、近代科学社 - 『クラウドを支えるこれからの暗号技術』
光成滋生 著、秀和システム (著者GiHubページによる書籍解説) - 『図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書』
光成滋生 著、技術評論社 (著者による書籍内容の動画解説) - 『プログラミング・
ビットコイン 』Jimmy Song 著, 中川卓俊/住田和則/中村昭雄 監訳, 星野靖子 訳、オライリージャパン (第1章で有限体、第2章で楕円曲線、第3章で楕円曲線暗号を解説)
上記1, 2は群・
上記の書籍で、基本的な用語や数式について学習して、理解が固まった後からほかの書籍や論文などにも範囲を広げて学習を進めるとよいと思われます。
高機能暗号を用いたプログラミングスキルを学べる情報リスト
本セクションでは、前述した筆者の質問に対する日置氏の回答をベースに、数学的知識を必要とする高機能暗号を用いたプログラミングスキルを学べる情報を紹介します。
日置氏のおすすめ~『プログラミング・ビットコイン』、CTF
まず、高機能暗号を用いたプログラミングスキルを学ぶための情報は、率直に言って少ないようです。
日置氏は数少ない有益な教材の1つとして書籍の
しかし、現状の暗号資産・
そのため日置氏は高機能暗号を用いたプログラミングスキル向上の参考情報として、暗号技術を用いるCTF
暗号資産・
- Intmax Anti-AGI Cryptographers CTF
- 日置氏のINTMAXチームが開催していたCTF。準同型暗号を用いたECDSAのマルチシグ署名の問題、ゼロ知識証明とWitness Encryptionの脆弱性を狙う問題が日置氏のGitHubで公開されています。
- Ingonyama ZK CTF
- 前述した、ゼロ知識証明の教育や普及活動に取り組むIngonyamaが開催したCTF。日置氏もおすすめのCTFとして紹介しています。
- ZK HACK PUZZLES
- ゼロ知識証明の研究やアプリケーションの最新動向を学習して発信するコミュニティ
「ZK Hack」 が公開しているパズル問題。 - 問題の作成には前述したAleo、 Polygon Labsなどの企業も携わっており、数多くの参考情報とあわせて丁寧な問題解説も掲載されています。
入門者向けの参考情報
いきなり上記のCTFに取り組むことに敷居の高さを感じる方は、高機能暗号を用いた簡単なプログラムの作成から始めるとよいでしょう。
ゼロ知識証明を用いたプログラミングについては、ゼロ知識証明を用いた計算回路
準同型暗号を用いたプログラミングについては、前述したZamaの
まとめ~高機能暗号は機械学習など他分野にも応用が広がる
その後の質疑応答でも、日置氏からは、レイヤー2に重要となる
以上、前後編にわたり、暗号資産・
本記事で取り上げたゼロ知識証明は、暗号資産・
特に機械学習分野においては、機械学習モデルの推論やトレーニングの正当性をゼロ知識証明で保証する技術が提案されており、暗号資産・
- vCNN: Verifiable Convolutional Neural Network based on zk-SNARKs
- zkCNN: Zero Knowledge Proofs for Convolutional Neural Network Predictions and Accuracy
- zkDL: Efficient Zero-Knowledge Proofs of Deep Learning Training
準同型暗号については、以前より連合学習、秘密計算の分野での応用が期待されている高機能暗号でしたが、暗号資産・
今後も、これらの高機能暗号を応用したソリューションがインターネット上でオープンに開発・
詐欺や暗号資産取引所からの不正な資金流出など、社会的に解決すべき問題を多く残す暗号資産・
本記事が多くの人の目に留まり、微力ながらも、価値ある技術を構築しようと目指すエンジニアや研究者たちの後押しになることを願います。