著者:ZAMA、翻訳:Golden Finance xiaozou
fhEVM は、完全準同型暗号化プロジェクトである ZAMA によって開発された完全準同型暗号化を使用する EVM 機密スマート コントラクト プロトコルです。
ブロックチェーンは、分散型データの保存および処理メカニズムとして、ネットワーク メンバーがシステムの状態について合意に達できるようにするための透明性を必要とします。すべてのオンチェーンデータは広く分散されており、匿名アドレスの背後に隠されている場合でも公開されているため、この透明性自体がプライバシーに関する大きな課題を表しています。
既存のブロックチェーンの強力なセキュリティ保証を確保しながら、この課題を解決する方法が検討されている研究分野です。解決策がなければ、ブロックチェーンの透明性が一部の有用なアプリケーションの採用を妨げる可能性があるため、ブロックチェーンの普及はこのプライバシーの課題をどのように解決するかにかかっています。
fhEVM の目標は、イーサリアムなどの汎用 (チューリング完全) ブロックチェーンのこの課題を解決することです。私たちは、スマート コントラクト開発をスケーラブルにする唯一の方法は、開発者に暗号化の専門知識を要求しないことだと考えています。したがって、当社のソリューションは、スムーズで直感的な開発者エクスペリエンスを提供するように設計されています。さらに、成功するプライバシー ソリューションは、さまざまなユーザーからのデータの簡単な結合、暗号化されたデータをオンチェーンに保持すること、スマート コントラクトの構成など、一般的なブロックチェーンのユースケースと設計パターンをサポートする必要があります。
私たちが提案するソリューションは、完全準同型暗号化 (FHE) としきい値プロトコルの組み合わせに基づいています。すべてのデータはオンチェーン上にあり、誰でも利用できますが、その一部は暗号化された形式です。準同型関数評価の決定論的な性質により、誰もが暗号化されたデータに対して計算を実行し、一般的なコンセンサス プロトコルを使用できます。これにより、ブロックチェーンの透明性の重要な利点も意図的に維持されます。つまり、実行された計算は公開されたままとなり、計算中のデータのみが非表示になります。
1. fhEVMさんの貢献
この記事では、革新的なブロックチェーン コンポーネントと、これらのコンポーネントを使用して暗号化された値の計算をサポートするイーサリアム仮想マシン (EVM) ベースのブロックチェーンを構築する方法を紹介します。具体的な貢献内容は以下の通りです。
· fhEVM は、Zama のオープンソース FHE ライブラリ TFHE-rs [Zam22] を一般的な EVM に統合し、準同型演算をプリコンパイルされたコントラクトとして公開します。
· 分散しきい値プロトコル [DDE+23] に基づく復号化メカニズム [Sma23] は、悪意のあるスマート コントラクトの不正な動作を防止しますが、誠実なスマート コントラクト開発者にとって柔軟でフレンドリーです。
· Solidity ライブラリを使用すると、スマート コントラクト開発者は、コンパイル ツールを変更せずに、コントラクト内で暗号化されたデータを簡単に使用できます。
ここでのデモは EVM ブロックチェーンに基づいていますが、私たちのアプローチは非常に一般的であり、WASM ベースのブロックチェーンなどの他のブロックチェーンもサポートできることに注意してください。さらに、非しきい値クラスの復号化メカニズムも簡単に使用できます。
2. ユースケース
オンチェーンの暗号化価値の強化により、ブロックチェーンの多くの使用例が明らかになり、その一部を以下に示します。
2.1 暗号ERC-20トークン
均質な ERC-20 トークン規格は、ブロックチェーンの重要な規格です。ただし、ブロックチェーン システムの公共性により、ERC-20 トークン所有者の個人残高は公開されており、匿名アドレスを提供するだけでは個人のプライバシーの問題が発生する可能性があります。 fhEVM はスマート コントラクトでの暗号化値の使用をサポートしているため、ERC-20 トークン標準の暗号化バージョンを構築することが可能です。これを行うには、天びんのデータ型を整数から暗号化された整数に変更し、各操作を対応する FHE に置き換えるだけです。
2.2 ブラインドシューティング
ファーストプライスの封鎖オークションでは、入札者は非公開で入札を行うことができるため、自分が何を支払っているのか誰も知りません。入札が終了すると、最高額入札者が決定され、勝者と宣言されます。ブラインド オークションでは、入札者は商品の価値を超えて入札しないように奨励されます。この形式のオークションは、コミットメントまたはゼロ知識証明ベースのソリューションとは異なり、信頼できるエンティティが平文入札の計算を実行する必要がなく、暗号化された値を使用して完全にオンチェーンで当然実装できます。暗号 ERC-20 トークンを使用すると、入札者は暗号金額をブラインド オークション スマート コントラクトに転送するだけで、入札が比較されて勝者が決定および宣言されます。
2.3 プライバシーを強化するDAO
分散型自律組織 (DAO) は、中央当局を持たずに自律的なコミュニティを構築する方法として、ブロックチェーン分野でますます人気が高まっています。彼らはスマートコントラクトを利用してルールを施行し、メンバーの投票に基づいて意思決定を行います。一般に、DAO には独自の財務省があり、その財務省はメンバーによって提案を通じて管理されます。提案はメンバーによって投票され、投票で可決された場合にのみ実行されます。ここでの投票システムは、メンバーが保有するトークンの数が投票権を反映する ERC-20 トークン契約を通じて実装できます。したがって、オンチェーンの暗号化された値により、DAO メンバーは秘密裏に投票できるようになります。
暗号金庫を使用することで、DAO はオークションで公平に競争することもでき、資金の詳細 (入札能力など) を他人に知られるのを事前に防ぎます。
2.4 分散型アイデンティティ識別子
分散型識別子 (DID) は、個人や組織に検証可能な自己主権デジタル ID を提供する新しいタイプの識別子です。 fhEVM にあるスマート コントラクトは、暗号化されたデータを利用して、ユーザー ID に関連する機密情報を安全に保存および処理できるため、プロセス全体を通じてユーザーのプライバシーが保護されます。
たとえば、中央当局や政府は、スマート コントラクトで許可されたユーザーの暗号化された生年月日を公開できます。権限を与えられた当事者は、必要に応じてスマート コントラクトをクエリして、ユーザーの年齢に関する情報 (法定年齢に達しているかどうかなど) を取得できます。
3. 関連作品
プライベート入力に対してスマート コントラクトの計算を実行するには、複数の方法があります。一部のソリューションでは複数のテクノロジーを使用できますが、当社ではこれらのテクノロジーを大きく 4 つのカテゴリに分類しています。
ゼロ知識 (ZK) 証明、信頼できる実行環境 (TEE)、安全なマルチパーティ コンピューティング (MPC)、および準同型暗号化 (HE)。
3.1 ゼロ知識 (ZK) 証明
ZK プルーフは、送信されたデータのみをオンチェーンに保持し、プルーフを正しく計算することでプライバシーの課題に対処します。ただし、このデータを計算するにはクリア テキストである必要があります。つまり、データのクリア テキストのコピーをどこかに保存する必要があります。このアプローチは、計算に 1 つの当事者からのデータのみが必要な場合にはうまく機能しますが、複数の当事者からのデータが必要なアプリケーションの場合はどうなるでしょうか?
ZCash [BCG+14] と Monero [Mon23] は、取引トークンの量のプライバシー保護のために Pedersen Commitments [Ped92] を使用しながら、取引の送信者と受信者の両方に匿名性を提供します。
Zexe [BCG+20] および VeriZexe [XCZ+23] では、zkSNARK を使用したゼロキャッシュ ブロックチェーンでの任意のスクリプトの評価が可能です。関連する制限は、複数のスマート コントラクトまたは当事者がチェーン上の暗号化された状態にアクセスできないため、zkSNARK を生成するには少なくとも 1 つの当事者が入力データを知っている必要があることです。現時点では、この方法を使用して暗号化ステータスを漏洩せずに更新することはできません。
Hawk [KMS+16] は ZK 証明を使用し、スマート コントラクトへの入力が計算を実行する信頼できるマネージャーに表示されます。
私たちのソリューションは、暗号化されたデータに対して直接計算を実行することです。これは、複数のユーザーからのデータの集約と混合が簡単で、計算をオンチェーンで実行できることを意味します。
3.2 信頼された実行環境 (TEE)
TEE ベースのブロックチェーン システムは、暗号化されたデータのみをチェーン上に保存し、復号化キー [YXC+18、KGM19、CZK+19、SCR23、Oas23、Pha23] を含む安全なエンクレーブ内のデータを復号化することによって計算を実行します。このようなソリューションのセキュリティは、復号キーが安全なエンクレーブに安全に格納されているかどうかに依存します。これにより、ユーザーはリモート構成証明メカニズムに依存するセキュア エンクレーブ ハードウェアとその製造元に依存することになります。
エンクレーブ アプローチは、単にメモリ アクセスを調べる攻撃を含む、いくつかのサイドチャネル攻撃 [VMW+18、LSG+18、KHF+19、vMK+21、TKK+22、vSSY+22] に対して脆弱であることが繰り返し示されています。パターンのリーク [JLLJ +23]。
3.3 マルチパーティ計算 (MPC)
zkHawk [BCT21] および V-zkHawk [BT22] は、Hawk [KMS+16] の信頼されたマネージャーを置き換えるために MPC プロトコルを使用し、すべての入力側がオンラインで参加する必要があります。
Eagle [BCDF23] は Hawk 構造を改良し、顧客が計算を実行する MPC エンジンに入力をアウトソーシングできるようにします。 Eagle は、アウトソーシングされた MPC エンジンにアボート認識機能や公開検証機能などの機能も追加します。 Eagle では、入力側が常にオンラインである必要はありませんが、入力を提供するために少なくとも 1 ラウンドの間 MPC エンジンと対話する必要があります [DDN+16]。
彼らの黄色の文書は非常に詳細ですが、Partisia [Par23] がプライバシー保護ストレージをどのように実装するかについての情報は含まれていません。
3.4 準同型暗号化 (HE)
一部の準同型暗号化ソリューションは、部分準同型暗号化に基づいて提案されています。部分準同型暗号化では、実行できる操作の種類が制限されるため、特定のカテゴリのスマート コントラクトとアプリケーションのみがサポートされます。たとえば、Zether [BAZB20] は ElGamal ベースの暗号化スキームを使用して、資金の機密転送を保証します。しかし、より複雑なスマートコントラクトとなると、これでは完全な機密性を達成するには十分ではありません。
Zkay [SBG+19] は、FHE を使用してイーサリアム スマート コントラクトを実行する方法を定義していますが、復号キーを保持する信頼できる第三者を使用します。 SmartFHE [SWA23] は、FHE を構築するための基礎となる (HE) ブロックとして BFV [FV12] を使用します。セットアップでは、各ウォレットは BFV キー生成プロセスをローカルで実行して公開キー ペアを取得します。複数のウォレットの鍵は異なるため、ブラインドオークションなどのより複雑なスマートコントラクトを実行するには、分散鍵生成プロトコルを実行してジョイント(pk、sk)を生成する必要があります。次に、計算に含まれる暗号文を新しい pk で再暗号化する必要があり、ブラインド ショットの準同型実行後、結果を取得するために分散復号プロトコルを実行する必要があります (ただし、分散復号プロトコルについては詳しく説明されていません)。ドキュメントに記載されています)。
PESCA [Dai22] は、私たちと同様のアーキテクチャを使用しており、誰もが残高を暗号化するために使用するグローバル公開キー pk と、出力の復号化に役立つしきい値 FHE プロトコルを使用します。主な違いは、それらのしきい値プロトコルは素数としてモジュロ q = p を操作するのに対し、私たちのしきい値プロトコルはリング Zq に適用され、q は通常 2 のべき乗であることです。もう 1 つの違いは、PESCA では、しきい値 FHE 係数 q が当事者数 n に指数関数的に関係していることです。つまり、暗号文係数は、しきい値なし方式と比較して (n!) 3 倍増加する必要があります。
準同型暗号化ストレージを EVM に追加するというアイデアを検討するイーサリアム改善提案 (EIP) がいくつかありました。
