ボム君.com

うどんのStackブログ

Ethereumとそのエコシステムについて学びましょう!

シークレットコントラクトを搭載するEnigma(エニグマ)とは?特徴と将来性について詳細解説 

f:id:udoncryptocurrency:20180128152612p:plain EnigmaJapanを運営しているのに解説記事書いてなかった!マズい!ってことで書きます。 あ、遅れましたが私EnigmaJapanという非公式情報サイトを運営し始めました。あらゆる技術ドキュメントをまとめたり、翻訳したり、報奨金制度を作って寄稿者や訂正リクエストを募集したりしております。ぜひのぞいてみてください!日本語公式Telegramチャンネルも作ってもらいました!

Enigmaとは何か?

Enigmaは、Ethereum(将来的には他のブロックチェーンもサポートするとのこと)が抱える二つの問題を解決することを主に掲げたプロジェクトです。

一つが、スマートコントラクトのスケーラビリティー問題です。現在スマートコントラクトをEthereumなどで実行しようとすると、高いfeeがかかります。そしてそもそもGasが非常にかかるコントラクトは、BlockGasLimitに引っかかってしまって実行すらできません。そういったものを、後述するパブリックなオフチェーンに持ってきて処理することで安く実行できたり、重いコントラクトも実行できるようになります。スマートコントラクトは実際のところチューリング完全で、プログラムコードと同じようなものなので、従来PCやクラウドでやっているようなことも実行できるようになるかもしれません。 もう一つが、プライバシーの問題です。入出力データや実行内容はネットワークを構成するノードに丸見えでした。こういった問題を暗号化したままスマートコントラクトを実行できるシークレットコントラクトと呼ばれるものを開発し解決します。詳細は後述してあります!

EnigmaはこういったものをEthereumやBitcoinのようなメインブロックチェーンではなく、セカンドレイヤーといったりオフチェーンと呼ばれる、メインブロックチェーンに基づいて処理をするがメインチェーンに毎回書き込んだりしないものとして稼働します。Enigmaはパブリックオフチェーンネットワークといってますね。 いわばシークレットコントラクトを動かすDAppsがあるようなものです!

さて、実際にEnigmaがどういったレイヤー構造をしているのか?データマーケットプレイスやCatalystとはどういった関係にあるのか?を解説していきます!

Enigmaの構造

f:id:udoncryptocurrency:20180225142759p:plain

Enigmaチームが開発しているものは、赤線を引いたところです。

  • Enigma Protocol
  • Data Marketplace
  • Catalyst

それぞれ順を追って見ていきましょう!

Enigmaプロトコル(Enigma Protocol)

Enigmaプロトコルは、先ほども述べたとおり、Ethereum(将来的には他のブロックチェーンもサポートするそう)の上に乗っかるセカンドレイヤーのパブリックオフチェーンのシステムとして稼働します。(EthereumのERC20トークンとしてのENGを離れて、独自ブロックチェーンを持つとかそういう話は今の所ないです。) このプロトコルには二つの重要な機能があります。

その一つが分散型ストレージ機能です。あらゆるファイルなどのデータを分散型のストレージを使うことで保存できるというものです。これにより、Dappsがこれまで分散型で保存できず、中央集権的なデータベースに保存せざるを得なかったデータなども保存できるようになります。ただこの概念自体はそんな新しいものではなく、Filecoin(IPFS)やStorjなどが先行してます。

もう一つがシークレットコントラクトです。このEnigmaプロトコルで動くシークレットコントラクトは、スマートコントラクトを秘匿化し、かつこれまで処理が重くて動かせなかったようなスマートコントラクトも手数料を劇的に抑えて実行できるというものです。これこそがEnigmaの革新的なところです。

旧来のスマートコントラクト(Ethereumなど)は、すべてのコードが丸見えです。すべての入力データ、出力データも丸見えです。これは透明性を確保したい場合には有効ですが、プライベートな機密データを扱かったり、コード自体を企業秘密にしたい場合には全く適していませんでした。ですがEnigmaのシークレットコントラクトは違います。Enigmaのシークレットコントラクトは、sMPC(MPCということもある)という技術を使い、正確に実行されたことを保証しながら、どのノードにも暗号化されてないデータを漏らさずにコードを実行できます。要は暗号化したまま、実行しているノードも結果などを知ることなく実行できるスマートコントラクトというやつです。

また、旧来のスマートコントラクト(Ethereumなど)は、すべてのノードが同じように実行しています。ですがこういった仕組みはスマートコントラクトを動かしたい場合には非効率です。あるノードの演算能力の限界に振り回されてしまいます。そこでEnigmaでは一部のランダムに決められた複数のノードがシークレットコントラクトを実行し、その結果をBFT的な仕組みでコンセンサスを取るという仕組みに変えました。これによりこれまで負荷がかかかり、手数料がものすごく高くて実行できなかったようなコントラクトも実行できるようになり、DAppsができることが格段に広がります。

これら二つをENG(Enigmaのネイティブトークン)で利用料金を支払えるというのがEnigma Protocolです。ちなみに利用料金は以下のように決まります。(以下はEnigmaのホワイトペーパーから引用してきたものです。)

7.2 コンピュテーションの手数料

ストレージ、データの検索、そして演算などのネットワークにおける全てのリクエストは、EthereumのGasのコンセプトのように固定価格だ。 全ての演算が全てのノードのよっ て実行されるEthereumとは異なり、Enigmaでは、異なるノードが異なるそれぞれの役割の演算を実行し、貢献度の計測結果に基づいて報酬を支払う必要がある。全ての関数は加算と乗算ゲートの回線に分解され、それぞれが一つかそれ以上処理する段階を踏むことは以前述べた。演算に参加しているノードには、演算に何回貢献したか、そして実行した演算(加算、乗算)を加重しても止めた和に基づき支払われる。

プラットフォームがチューリング完全であるため、処理にかかる正確なコストをいつもは事前に求めることはできない。従って、演算が完了する際に各処理にかかったコストが、各ノードが知っている各アカウントの残高から引かれる。アカウントの残高が最小限必要な基準額を超えてない限り、処理は実行されない。

7.3 ストレージの手数料

データストレージの料金は市場原理によって決まり、タイムリミットがある。データをホストするコントラクトは、各アカウントの残高から自動的に継続更新される。もし残高が足りない場合、データへのアクセスが制限され、追加資金が入金されない限り、一定期間内にデータは削除される。

はい、コントラクトの実行手数料はETHのGasとGas limit、Gas Priceのような仕組みで扱われるようですね。ストレージは市場原理で変わるとのこと。

データマーケットプレイス(Data Marketplace)

https://enigmampc.github.io/marketplace/index.html

データマーケットプレイスは、Enigmaチームが開発している最初のEnigmaプロトコルのプラットフォーム系アプリケーションです。データマーケットプレイスはEnigmaプロトコルを使い暗号化してデータを保存したり、暗号化したままデータの解析などをできるシークレットコントラクトの技術を使い、データを暗号化したまま販売したり購入できたりしちゃうというものです。このEnigmaプロトコルのようなものがないと、データを購入した人が転売できちゃったりして市場が成り立たなくなってしまいます。あとは機密データーが出てこなくなります。そういった面でEnigmaプロトコルを使うというのは非常に重要なのです。 ここでデーターの購入や販売などのやりとりに使われるのもENGです!

f:id:udoncryptocurrency:20180225142803p:plain (引用元:https://enigmampc.github.io/marketplace/introduction.html

仕組みとかはこちらを参照してください。上の画像も非常に参考になると思います!

応用例は以下のリンクに詳しく載っております。個人データだったり遺伝子情報だったり医療データだったりIoTだったりとあらゆることに使えることがわかると思います。

www.enigmajapan.blog

Catalyst

Catalystはデータマーケットプレイスを利用した最初のアプリケーションです。Enigmaプロトコルを利用し、安全に取引履歴を共有して、暗号通貨の投資や研究に役立てるためのアプリケーションです。また、Catalystのトレード用ツールを主要取引所で利用して、あなたの投資戦略に役立てるといったこともできるようになります。これもENGで払うようです! ちなみにすでにCatalyst(データマーケットプレイスの上にできているわけではないですが)を試すことができます!

https://enigmampc.github.io/catalyst/

いくつかよく聞く質問

ロードマップ

f:id:udoncryptocurrency:20180225142808p:plain

(引用元:https://blog.enigma.co/towards-a-decentralized-data-marketplace-part-2-1362c8e11094

シークレットコントラクトや分散型ストレージが稼働したり、誰もが自由に参加できるパブリックなオフチェーンが出来ます。(Phase 3) そして、個人識別情報(PII)などのネットワーク内のデータを保護するためのプライバシー機能を導入し、様々な用途に使えるようになります。(Phase 4)このPhase 4ががearly Q3(2018年7〜8月頃?)のようです。 そしてEnigmaプロトコルを利用した最初のサードパーティーアプリケーションが2018年内にできるとのことです。

zk-SNARKsやゼロ知識証明との違い

zkSNARKやゼロ知識証明などは、プライバシーの問題を一部解決するものですが、完全に解決するようなものではありません。ゼロ知識証明はデータを明らかにせずに演算が正しく行われたことを証明することはできますが、証明する人はデータを全て閲覧できる必要があります。つまり、誰かが誰かがデータを参照することになるのです。 ですがシークレットコントラクトの実行内容は、実際に演算を実行しているEnigmaのノードを含む全ての者が見ることができないというものです。 そのほかの比較表はこちらをご覧ください!(引用元:https://www.youtube.com/watch?v=T47CneAXJVgf:id:udoncryptocurrency:20180225142755p:plain

マスターノード

マスターノードの仕組みを導入する予定のようですが、詳細は一切出てきてません!なおこの質問が多くてTelegramのadminの方達も疲弊しているっぽいですのでそっとお待ちください…。

ENGの使い道

ENGはEnigmaのネイティブトークンです。ENGはERC20規格に基づいたトークンであり、Ethereum上で作成されてます。 シークレットコントラクトの実行や分散型ストレージ機能などのEnigmaプロトコルの使用(つまりこれを利用したDAppsも使うことになる)や、分散型データマーケットプレイス、Catalystの利用などに使われます。

どうやってENG買うの?

今の所流動性が高くて気軽に買えるのはBinanceです。ここから登録できます!

(あとはまだ一部の登録された人しか使えないのですが、KyberNetworkも使えます。) ただし当然のことながら、管理や投資判断は自己責任でお願いします!

最後に

色々なドキュメントをこのページでまとめております!

https://enigmajapan.info/document/

そしてこちらのブログでは色々と和訳記事やオリジナル記事を載せております!

www.enigmajapan.blog

ここら辺もぜひご覧ください〜! それではまた!