秘密契約の概要 ~Enigma Secret Contracts~
Enigmaのテストネットがローンチされました。“Secret Nodes” であるシークレットノードはEnigmaネットワーク上で暗号化されたデータを取り扱い、Secret Contractsを使用した分散型アプリケーションをEnigmaネットワーク上で構築することができます。Enigmaは、パブリックブロックチェーンにおいて問題視されてきたプライバシーの問題へ対応し、金融やクレジット市場、またはヘルスケアなど機微なデータの必要な分野に活用されることが期待されています。この記事では実際にSecret Contracts(以下、秘密契約)の開発に必要となる前提知識についてご紹介します。
目次です。
- Enigma/Secret Nodes
- Secret Contractsとは何か
- 暗号化は問題とならないか
- Enigmaのセキュリティ技術
Enigma/Secret Nodes
Enigma is building a privacy layer for the decentralized web. First researched at MIT, Enigma’s network of “secret nodes” can perform computations over encrypted data at scale without ever exposing the raw data itself.
Enigmaはプライバシーレイヤーを分散型Webにもたらします。シークレットノードがデータを保護し、暗号化したままネットワーク上をスケーラブルに処理することができます。Enigmaはスケーラビリティと秘匿化を、シークレットノードで形成されるEnigmaネットワーク上で提供するブロックチェーンです。[1]
Enigma’s protocol is the first to enable blockchains to work with private or sensitive data, significantly expanding the meaningful scope of blockchain-based applications (and beyond). In doing this we have previously introduced the concept of secret contracts, smart contracts that utilize encrypted inputs while never revealing the raw data to the nodes performing computations. Enigma’s nodes are thus capable of computing over encrypted data, keeping secrets even from themselves — hence the term “secret nodes”.
Secret Contracts(以下、秘密契約)によってデータを開示することなく、Enigmaノードは暗号化データを処理することができます。この秘密契約を処理するノードがシークレットノードです。シークレットノードについて詳細は割愛させて頂きますが、PoS(Proof-of-Stake)のブロックチェーンにおけるノードと同様にEnigmaのENGトークンをステークし、トランザクション手数料を受け取ることで、ネットワークの維持に貢献します。
初期のシークレットノードを決定する”Genesis Game”が間もなく始まるようです。[2]
メインネットのシークレットノードで必要となるENGは25,000で、最初のメインネットリリース時は50のシークレットノードのみがネットワークに参加可能です。テストネット上でステークされているENGやアップタイムから割り当てられる”Genesis Score”を基に最初の50ノードが決定されます。これが”Genesis Game”と呼ばれています。
“Genesis Game”の後に以下の順序でシークレットノードの権利が割り当てられます。
- “Genesis Score”の上位30ノードは自動的に”Genesis Node”へ選出される
- ステーキングオペレーションのためのツール開発などエコシステムへの貢献を基に10ノードを選出する
- さらに”Genesis Score”の重みをベースとしてランダムにノードを10~20選出する
2種類のノードが存在します。
シークレットノード: Enigmaネットワーク内に参加するノードです。秘密契約がプライバシーを保持したまま実行できるようにトランザクションを処理します。ビットコインにおけるマイナー(採掘者)のような働きと言えます。
コンセンサスノード: Enigmaブロックチェーン自体を動かすノードです。コンピュート処理を検証し、順序に応じたステートの変更を決定します。
Secret Contractsとは何か
ブロックチェーンによってスマートコントラクトやネットワーク参加者のコンセンサスを保ちつつ、データの正当性(Correctness)の担保ができる分散型台帳が実現しました。ただパブリックなブロックチェーンではデータの秘匿化が問題となっています。[4]
通常のスマートコントラクトでは分散型台帳上のデータや、そのトランザクションのデータはネットワーク上で全てオープンになっています。
- ブロックチェーンの分散型台帳上のデータは誰でも検証できる(閲覧できる)
- ネットワーク通信経路上のトランザクションを傍受することでそのデータを閲覧できる
冒頭で述べた通り、取り扱いの機微な情報(クレジット情報やヘルスケアなどの健康情報)またその他プライバシーの問題のある全ての情報についてデータの保護や秘匿化が必要となってきます。
Enigmaではセキュアコンピューティングという技術でプライバシーの問題を解決しています。セキュアコンピューティングはステートの計算やスマートコントラクトを実行および検証する機能を維持しながら、ネットワーク内のノードから情報を秘匿化することができます(インターネットのようなパブリックなネットワーク上でも隠すことが可能です)。
プライバシーの維持やセキュアコンピューティングについてはEnigmaのセキュリティ技術の項でも触れています。
暗号化は問題とならないか
ポピュリズム的な流れ(特にアメリカ)が現在顕著ですが、インターネット上での捜査が困難なことから暗号化を禁止する国や地域が出てくる可能性があります。アメリカではend-to-endの暗号化を禁止する動きが出てきているようです(トランプさん)。
通常ブロックチェーンのノードは世界中に広がっており、特定の国のみEnigmaのノードを排除することは現実的でないため、どのような法律的解釈がなされるか判断の難しいところです。[5]
billing it as a privacy and security feature but frustrating authorities investigating terrorism, drug trafficking and child pornography
また暗号技術や製品の輸出の規制はワッセナー条約を考慮する必要があるため、こちらも問題とならないかを事前に確認する必要があります。Enigmaの暗号技術やプライバシー技術に適用されている種々の技術が規制の対象となっていないかを確認します。
Enigmaのセキュリティ技術
Enigmaではプライバシーの問題へ対応するために複数の暗号ソリューションを用いています。最初のリリースであるDiscoveryではハードウェアベースの情報秘匿化技術である TEEs — Trusted Execution Environments を、次のリリースであるVoyagerでは Secure Multi-Party Computation (MPC) が適用される予定です。[6]
Enigmaではゼロ知識証明であるzkSNARS/zk-STARKSなどを使用していないようです。
Trusted Execution Environments
Trusted Execution Environments (TEEs) はハードウェアベースのセキュリティ技術です。このハードウェアはデータがハードウェア外部に漏洩しないように防御しつつ、リモート検証(Remote Attest)を行うことで、暗号化されたデータがネットワーク内でも秘匿化されていることを確認できるように設計されています。ただしユーザは基本的に対象ハードウェアが不正アクセスされていないと信じる必要があります。TEEsの利点としてソフトウェアベースのソリューションと比べ遥かに高速にデータ処理できる点が挙げられます。ASICなどもそうですが一般的にハードウェアベースの処理はかなり高速になります。
EnigmaではシークレッドノードにIntelのSoftware Guard Extensions(SGX)を使用します。SGXは隔離されたコードの実行、リモート検証、セキュアプロビジョニング、セキュアなデータの保存、コード実行専用のパスなどによってアプリケーションの実行を安全に処理できます。SGXが必須となるのでクラウドサービス上で稼働させる場合は、対象サービスがSGXをサポートしているか組み込まれているか確認する必要があります。
Secure Multi-Party Computation
Secure Multi-Party Computation(sMPC)は個人情報などのプライベートな情報を漏洩することなく、信頼できないサードパーティー間で秘匿化されたコンピュテーション(情報処理)を実現する手法です。Enigmaは情報漏洩しない非中央集権型のコンピュータネットワークをデザインしています。ネットワーク内の各コンピュータでは暗号化されたデータは見えますが、暗号化されているために情報としては意味が分からないようになっています。
通常の暗号化では秘密鍵を得ることで暗号文を復号できますが、sMPCでは対照的に、平文を得るにはネットワーク内のノード全てが共謀する必要があります。システムの再構築に必要なパラメータは調整可能で、システムの一部からネットワーク内の全てまで自由に選ぶことができるようになっています。
Fully Homomorphic Encryption
Fully homomorphic encryption(FHE)は、プライバシー保護のためのソフトウェアベースの技術です。通常の暗号化においては、暗号文の演算と、通常の平文空間での演算はお互いに全く関連がありません(日本語の表現が正しいか微妙です(-_-;))。Homomorphicとは、準同型という意味で、暗号空間と平文空間の演算を関係付けられるような手法となっています。
例えば今、2つの値 a と b があってHomomorphicの暗号化アルゴリズムを使用し暗号化された値 ea と eb を得たとします。Homomorphicの暗号化アルゴリズムで ec = ea + eb を加算しようとすると、ec は a + b の合計を暗号化した値に等しくなります。逆に ec が復号化されると、2つの整数の合計になります。この技術は理論調査の段階で、現実的な実装や使用は計算量が膨大となるため現状困難とのことです。Enigmaでも現段階では使用されていないようでした。[7]
Unfortunately, despite many refinements and improvements since, FHE remains a theoretical advancement. The currently proposed schemes are so impractical, that nothing but very simple computations can be performed in reasonable time.
Enigmaのロードマップが以下で紹介されています。[8]
最初のリリースであるDiscovery時点で TEEs — Trusted Execution Environments が、次のリリースであるVoyagerでは Secure Multi-Party Computation (MPC) が有効化されることを述べました。その後は、Valiantというシャーディングによるスケーラビリティの解決、最後のリリースDefiantとしてsMPCの暗号化プロトコルのアップデートがあります。Discoveryではスマートコントラクトの開発において、引き続きEthereumの互換がありVoyagerで分散型VMが提供されるようです。この時点でEthereumの互換はなくなると考えられます。
次回以降ではテストネットにおける秘密契約の開発を見てみたいと思います。
まとめ
- Enigmaは暗号化されたデータを取り扱い、分散型のアプリケーションにスケーラビリティと秘匿化をもたらす
- Secret Contractsによってスマートコントラクトの処理は暗号化され、またネットワーク上においても盗みとることができない
- シークレットノードによってトランザクションは秘匿化されたまま処理することができる
- 暗号化技術は各国の規制やワッセナー条約の対象となるために取り扱いには注意する必要がある
- プライバシー技術として TEEs — Trusted Execution Environments やVoyagerでは Secure Multi-Party Computation (MPC) が使用される
Reference
- [1] New to Enigma? Start Here
- [2] Secret Nodes, Part 3: Rewards, Requirements, and the Genesis Game
- [3] Introduing the Enigma Launch Partners!
- [4] Defining Secret Contracts
- [5] Trump officials weigh encryption crackdown
- [6] Privacy for Blockchains: An Introduction — CoinMarketCap
- [7] Computing Over Encrypted Data
- [8] Enigma’s Ambition — Out Latest Loadmap