カナゴールドの仮想通貨ブログ

カナゴールドが推す銘柄を紹介します

Enigma ホワイトペーパーの日本語訳及び解説 part3

解説の続きです。翻訳してると理解が深まります。

 

5.1.2 Correctness (malicious adversaries)

 

ここまで、我々はプライバシーの性質について議論した。

活性(仕様通りに動くこと)は正直な人がマジョリティを占めていることを条件に成り立つが、中間値や出力値の再構成がうまくいくためにはそれが最重要である。

しかし、現在のフレームワークでは、出力の正確さについては保証されていない。ネットワーク内の誰かが、演算処理中に無効な結果を送信して出力を無効なものにする可能性がある。 BGWは検証可能なMPC情報理論上の解決策を提示したが、実際的な複雑さは、単純な実装ではn^8のオーダーくらい悪くなる。

したがって、我々の目標は、悪意ある者に対して安全であるが、n^2のオーダーと同じ複雑さを持つ「半正直」MPCフレームワークを設計することになる。後に、これをさらに最適化する。

 

つい最近、Baumらが、 すべてのコンピューティングノードがひそかに悪意を持つ者であったり、または単一のノードを除いて他すべてが能動的に悪意を持っている場合でも、正当性を保証する、公に監査可能なセキュアなMPCシステムを開発した。 彼らの最先端の結果は、SPDZの一形態(speedzと発音)に基づいており、各計算のトレイルを保存している追記専用の掲示板に依拠している。

 

これにより、公開元帳の証明証のトレイルと比較することによって、監査当事者が出力をチェックすることができる。 我々のシステムでは掲示板としてブロックチェーンが使用されているため、全体的なセキュリティの問題は、そのホスティングブロックチェーンのセキュリティの問題に帰着される。

 

SPDZ

悪意のある敵対者(不正直なマジョリティ)に対して安全なプロトコルで、MPCの正当性を保証するもの。 本質的にそのプロトコルは、ランダム性を共有するために「ちょっとだけ準同形暗号」(SHEsomewhat homomorphic encryption)を使用する計算負荷の高いオフライン(前処理)ステップから構成される。

次に、オンライン段階では、計算はパッシブケースに似ており、計算負荷の高い公開鍵暗号は含まれていない。 オンライン段階では、すべての部品は、次のように加算な部品とそのMACで表される。

 

<s>pi = ([s]pi , [γ(s)]pi ), s.t. γ(s) = αs,

 

ここで、αは固定された秘密共有MACキーであり、<>iは加算準同型である修正秘密共有方式を表す。 <>-sharingは、グローバルMACキーαを公開せずに動作するため、再利用が可能である。

 

前述のように、乗算は加算より複雑である。 乗算は{<a><b><c>}の三つの組(c=abとして前処理ステップで生成される)を必要とする。 次に、<>-sharingを使用して共有される2つの秘密s1およびs2が与えられると、次のように三つの組を用いることによって、生成物s = s1s2の秘密共有が達成される。

 

<s> = <c> + ε<b> + δ<a> + εδ

ε= <s1> − <a>, δ = <s2>− <b>

 

前述したように、三つの組の生成は、SHEに基づく計算負荷の高い処理である。セキュリティプルーフを含む完全なプロトコル2014年のbaumの論文にある。

 

γ − αs = 0,

 

によって検証される。

 

ここで、一般性を失うことなく、秘密sは任意の安全な計算の再構築された結果である。 直観的にはこれは、計算された結果にMACキーをかけたものと、MACの上から計算したものとの比較にすぎない。

実際の比較を行っていないのは、αを秘密にして再利用できるようにするためである。

 

ここまでで、<>-sharingSSSと同様の性質を持っていることが分かる。つまり、準同型であり、乗算(n^2のオーダーの通信の複雑さ)のための再共有ラウンドが必要だが、 最大n-1人の敵に対して耐性がある。

 

オフラインラウンドは、別々のマシンでの計算に分割することができ、他の計算が実行されている間に並列で計算することができるため、全体的な効率に大きな影響はない。

 

Publicly verifiable SPDZ

公に検証可能なケースでは、MACとコミットメントがブロックチェーンに格納されているため、コンピューティング参加者がすべて悪意を持っていても安全なスキームになる。

2014年の論文の表記に従って《・》-sharingを表現すると、

 

s = (<s>,<r>,<g^s*h^r>),

 

sは秘密、rはランダムな値、c = g^s*h^rPedersen commitmentであり、ghはジェネレータとして機能する。 《・》-sharingは加算準同型性を保持しており、少し修正された多重化プロトコルでは、三つの組(《a》、《b》、《c})をオフラインで生成するという同じ考え方を再利用できる。

 

ここでの主要な知見は、ノードがコミットメント上ではなく、<>-sharing値のまま計算すればよい点である。 これらはブロックチェーンに格納され、出力を持つ任意のパブリックバリデーターによって後で処理される。 1つのノードがコミットメントを壊したとしても、それは監査人には明らかとなる。

Enigma ホワイトペーパーの日本語訳及び解説 part2

続きです。5章の途中までです。数式まわりでわかりにくいところは(※)で私がコメントしてます。

 

Privacy-enforcing computation

 

このセクションではEnigmaの計算モデルについて説明する。まずは 最先端の暗号技術の進歩に基づいた、公的に検証可能なセキュアなMPCについて簡単に紹介する。 次に、階層的なセキュアなMPC、ネットワークの削減、adaptable circuitsによる、ネットワークが大きくても実用性が保たれるセキュアなMPCの一連のパフォーマンス改善について説明する。 エニグマを使用するには、開発者はハイレベルなコードを書く必要があり、パブリックpartブロックチェーン上で実行され、プライベートpartエニグマのプラットフォーム上でオフラインで実行されるようにする必要がある。 プライベートな情報を扱うことができるスマートコントラクトであるため、私たちはこれらのプライベートコントラクトと命名した。

 

5.1 Overview of secure multi-party computation

5.1.1 Privacy (passive adversaries)

 

Yao1982年にセキュアな二者間計算プロトコル問題の解決法を初めて導出した。同論文でYaoは、今では有名な、資産額を公開せずにどちらの方が金持ちであるかを知ろうとする二人の億万長者の問題を提起した。 以来数十年かけて、二者間問題はn人のケースにMPCとして一般化された。 すべてのプロトコルを基本MPCゲートの回路から構成できる汎用MPCでは、長年に渡って、Yaoのガルバール(ブール)回路及び秘密共有に基づくMPCとの2つの主要なアプローチが開発されてきた。後者はプロダクションシステムでより一般的に使用されており、我々が焦点を当てているところでもある。

 

(t+1,n)で定義されたthreshold cryptosystemを考える。ここでnは当事者の数であり、t + 1threshold cryptosystemで暗号化された秘密を復号するのに必要な当事者の最小数である。

  秘密sn人の間で分割され、sを再現するためには少なくともt+1人が必要とされる秘密共有は、threshold cryptosystemの一例である。 t人以下では、秘密sについて何の情報も得ることができない。

 

  線形秘密分散スキーム(LSSS)は、秘密sをパーツに分割して、各パーツが秘密sの線形結合となるようにする。 Shamirの秘密分散(SSS)は、多項式補間を使用した有限体Fpの下で安全であるLSSSの一例である。

つまり、秘密sを共有するために、t次元多項式q(x)をランダムに選び、

 

q(x)=a0+a1x+a2x^2+…+atx^t   (1)

a0=s

aiU(0,p-1)    (2) (※ai0からp-1の間で一様分布)

 

とする。ここで、1nがそれぞれ受け取る情報は、

i {1, · · · , n} : [s]pi = q(i)

 

とすると、そのうち任意のt+1個の[s]pi を知ることができれば、ラグランジュ法により(※単純にt+11連立方程式t+1本の一次独立な式があれば解けるよね、という話)関数q(x)の各項の係数を計算できるので、x=0を代入することでs = q(0)として秘密sを知ることができる。

 

SSSは線形かつ準同型であるため、スカラ演算による加算と乗算は、iterationなしに [s]pi に対して直接実行できる。数式で書くと、

 

c × s = reconstruct({c[s]pi } t+1 in ), (4)

s1 + s2 = reconstruct({[s1]pi + [s2]pi } t+1 in ). (5)

 

となる。(※個々人が受け取った数字をc倍してから解けば、出てくる値はc × sとなるし、同じように、足してから解くのも解いてから足すのも同じになる。)

 

二つの秘密s1s2の掛け算となると、話は少し難しくなって、元がt次元の多項式なので、掛けた結果は2t次元多項式になる。そのため、結果をプライベートかつ正確に再現するためには、正直に値を申告する人の数がt<2nを満たさなければならない。

 

もし敵対者の計算能力を制限できれば、正しくない値を申告する当事者がある程度いても両方の特性(プライバシーと正確性)が保証されるが、公正さの担保と出力の決定においては、依然として正しい値を申告する当事者が十分な数いることを必要とする。

 

パフォーマンスに関しては、次元を落とすステップにおいて、すべての当事者が他のすべての当事者とn^2のオーダーで対話しなければならないことを意味する。

 これは、十分に大きなnに対しては、MPCが非実用的であることを意味する。

この複雑さを改善するための最適化されたソリューションは存在するが、実際に用いると機能が制限されることになる。

セクション5.2では、任意の機能に対するこの問題の一般的な解決方法について説明する。これにより、任意の大規模なネットワークに対してセキュアなMPCが実現可能になる。

 

セキュアな加算および乗算プロトコルでは、任意の算術関数用の回路を構築できることに注意する。 チューリング完全性のためには、制御フローも処理する必要がある。

秘密の値を含む条件文の場合、これは両方のブランチを評価することを意味し、動的ループに対して実行にランダム性を追加する。

私たちの汎用MPCインタプリタは、これらのコアコンセプトと、この論文全体で提示されるその他の最適化に基づいている。

Enigma ホワイトペーパーの日本語訳及び解説 part1

カナゴールドはモナコインとエニグマを推しています。モナコインの記事はいっぱいありますが、エニグマの日本語記事はほとんどないので、エニグマインフルエンサーになっとく?というノリで始めました。ひとまずホワイトペーパーの日本語訳を作成するところから始めました。グーグル翻訳がほとんど活躍してくれなくて大変です。とりあえず4章までになります。

 

enigma:プライバシーを担保した非中央集権計算プラットフォーム

 

abstract

 

エニグマとは、データの中身を晒すことなくみんなが共同して計算を実行して結果を保存できるようにするPPネットワークである。

エニグマの計算モデルは、高度に最適化された安全なマルチパーティ演算に基づいており、検証可能な秘密共有方式によって保証されている。

データストレージについては、秘密が共有されたデータを保持するために、分散ハッシュテーブルを使用する。

外部ブロックチェーンはネットワークの制御のために利用され、アクセス制御、アイデンティティおよびイベントの改ざん防止ログとして役立つ。

保証金および手数料は、システムの正確性と公平性を保証する。

Bitcoinと同様に、Enigmaは信頼できる第三者が不要で、個人データの自律的な制御を可能にする。

人類にとって、暗号化によってプライバシーを担保した上でデータを共有することができる初めての体験となる。

 

1 モチベーション

 

人類史において初期の頃から、中央集権化は競争上大きな利点であった。

中央集権化された社会は、より高度な技術を開発したり、より多くの資源を蓄積したり、人口をより速く増加させることを可能としてきた。

しかし社会が発展するにつれて、腐敗、不平等、既得権益、権力の乱用など、中央集権化の負の側面が明らかになった。

そして、権力の分散が不可欠であることが明らかとなった。

現代社会では、非中央集権化のcheck & balance機能と、中央集権化による出力と効率の最大化機能の間の、バランスのとれた均衡状態を見つけようと努力している。

元をたどればWebというものは、急進的な非中央集権化と自由を求めるものであったはずが、 直近10年を見返すと、Webの驚異的な成長は中央集権化の一途を辿っていた。

ほんの一部の大企業がWebの根幹を成していて、その結果としてweb上に存在しているデータの大部分がその一部の企業の配下にある。

これらの企業の透明性やコントロールの欠如によって、操作、監視、頻繁なデータ障害など、中央集権の負の側面が再び明らかになった。

Bitcoinやその他のブロックチェーン(例えば、Ethereum)は新しい未来を約束している。

今、インターネットアプリケーションは、分散アーキテクチャで構築することができ、いかなる単一の組織にも絶対的な権力を持たせないことができる。

ブロックチェーンの一般的な性質は、アプリケーションの動作方法の透明性を保証し、反駁できない活動記録を残し、正直な行動に強いインセンティブを与えることである。

Bitcoinはそのようなアプリケーションの先駆けであり、Webの世界へパラダイムシフトを促した。

しかし、ブロックチェーンの強力な検証性と公開性により、潜在的ユースケースが制限されている。 現代のアプリケーションでは膨大な量のデータが使用され、そのデータは幅広く分析される。

この制限は、信頼されたコードのみがブロックチェーン上で実行できることを意味する。

ここで問題になるのは、現代のアプリケーションの中で最もセンシティブな部分は、プライベートなデータに対して大量の処理を必要とすることである。

現状の設計では、ブロックチェーンはプライバシーの問題を全く対処できていないし、さらに、負荷の高い計算にはあまり適していない。それらの性質から、完全に公開されたブロックチェーン上のすべてのフルノードを介して、プライベートデータが流れることになる。

ここには面白い矛盾があって、 最も機密性の高いプライベートデータは、中央集権化された、透過性が低く、安全性の低いモデルでのみ保存および処理が可能ということになる。 そして、致命的なデータ漏えいや、オンライン生活の中で現在受け入れざるを得ないプライバシーの構造的な欠如を、このパラダイムの中で我々は見てきたのである。

 

2 Enigma

 

Enigmaは、プライバシーが保証された分散型の計算プラットフォームである。 私たちの目標は、開発者が信頼できる第三者を介さないエンドツーエンドの分散アプリケーション、いわば「設計によるプライバシー」を構築できるようにすることである。

 

プライバシー:

セキュアなマルチパーティ計算(sMPCまたはMPC)を使用することで、信頼できるサードパーティなしで分散してデータクエリが計算することができる。 データは異なるノード間で分割され、情報を他のノードに漏らすことなく、関数を計算する。 つまり、一人ひとりがデータ全体にアクセスすることはできない。 代わりに、すべての当事者は無意味な(すなわち、一見ランダムな)一部分のみを有することになる。

 

スケーラビリティ:

ブロックチェーンとは異なり、計算結果やデータストレージはネットワーク内のすべてのノードによって複製されるわけではない。 各ノードはデータの異なる部分を計算するのである。

 

ストレージと計算の冗長性を減らすことで、より多くの計算を可能にしている。Enigmaがもたらす重要な新しいユーティリティは、生データに直接アクセスすることなく、データに対して計算を実行する能力である。

たとえば、あるグループの人が給与データにアクセスし、グループの平均賃金を計算することができる。各参加者はグループ内の平均賃金と自分の給料を見比べることができるが、他のメンバーの給料については知ることができないのである。

これは単なる一つのわかりやすい例に過ぎない。 実際には、入力データを秘密に保ちながら、どんなプログラムも安全に評価することができるのである。

今日、データの共有は不可逆的なプロセスであり、いったんデータが送信されると、それを取り消したり使用方法を制限する方法は存在しない。元のデータ所有者以外の誰も生データを見ることないようにしつつ、計算のためだけにデータへのアクセスを可能にすることは、可逆的かつ制御可能と言える。 これは、現在のデータ分析に対するアプローチにとって革命と言える。

 

3 デザインの外観

 

Enigmaは、既存のブロックチェーンに接続し、プライベートで集約的な計算をオフチェーンネットワークにオフロードするように設計されている。 すべてのトランザクションは、ブロックチェーンによって容易に、デジタル署名と設定可能な権限に基づいたアクセス制御を実施することができる。

コードはブロックチェーン(パブリック)とEnigma(プライベート/計算集約型)の両方で実行される。 Enigmaの実行はプライバシーと正確さの両方を保証するが、ブロックチェーンだけでも後者を保証することができる。 正しく実行されたことの証明はブロックチェーンに格納され、監査することができる。 我々は、private contractを使用したエンドツーエンドの分散アプリケーションを設計するためのスクリプト言語を提供しており、これは、プライベートな情報を扱う際には通常のスマートコントラクトよりも強力である(すなわち、それらの状態は厳密にはpublicではない)。

スクリプト言語チューリング完全だが、スケーラビリティほど重要なポイントではない。 ブロックチェーンでのコード実行は非中央集権ではあるものの分散されていないため、すべてのノードが同じコードを冗長に実行し、同じ状態を維持することになる。 Enigmaでは、計算作業がネットワーク全体に効率的に分散されるのである。 図1に示すように、private contractの実行過程をブレイクダウンすると、プライバシーと検証可能性の両方を維持しながら実行時間を改善していることが見て取れる。

 

オフチェーンネットワークは、ブロックチェーン技術だけでは処理できない以下の問題を解決する。

(1)ストレージ

ブロックチェーンは汎用データベースではない。 Enigmaには非中央集権オフチェーン分散ハッシュテーブル(DHT:distributed hash-table)があり、ブロックチェーンを介してアクセス可能で、データ自体は参照せずにデータへのポインタを格納する。 プライベートデータは、ストレージ側にアクセスする前にクライアント側で暗号化し、アクセス制御プロトコルブロックチェーンにプログラムする必要がある。 Enigmaスクリプト言語でこれらのタスクにシンプルなAPIを提供する。

 

(2)プライベートな演算

Enigmaのネットワークは、正確な実行を保証しながら、いずれのノードにも生データを漏らさずにコードを実行することができる。 これは、現在の中央集権的ソリューションや、ブロックチェーンの利点を無に帰すような、機密ビジネスロジックを処理するtrusted overlay networkを置き換える上で、重要である。 計算モデルはセクション5で詳細に説明されている。

 

(3)重い処理の演算

プライバシーが問題ではない場合でも、ブロックチェーンは複雑なトランザクションを多数捌くことができない。 同オフチェーン計算ネットワークを使用して、ブロックチェーンを介してブロードキャストされている、公に検証可能な重い演算を実行することができる。

 

4 オフチェーンストレージ

オフチェーン・ノードは分散データベースを構築する。 計算プロセスがプライバシー保護とフォールトトレランスを担保するように、各ノードは、部品化かつ暗号化されたデータを有する。

また、大量の公開データ(ファイルなど)を暗号化せずに保存し、それらをブロックチェーンにリンクすることもできる。 図2は、各ノードから見たデータベースを示している。

ネットワークレベルでは、分散ストレージは、ブロードキャストチャネルと公開鍵暗号化を使用してシミュレートされた永続性とセキュアなポイントツーポイントチャネルが追加された、modified Kademlia DHTプロトコルに基づいている。 このプロトコルで、効率的に部品化されたデータを分配することができる。 部品化されたデータを保存する際には、ノードの優先確率を考慮するように修正されたKademlia distance メトリックが用いられる。