Golemの評価について

レポート「アルトコイン図鑑」では30種類以上のコインの概要と見通しを解説(詳しく)

注意喚起!ハードウェアウォレットをアマゾンで買う危険性(詳しく)

サロン内で書いたものを抜粋します。全文は内で配信してます

Golem

コンピュータリソースを共有しあう「分散P2Pスーパーコンピュータネットワーク」を目指す。これに支払いシステムをを乗せることで、使っていないコンピュータ資源をネットワークに提供することで、支払いが受けられるといったネットワークを構築します。

同様の計算リソースシェアプロジェクトとしてMadesafe、またMITのEnigmaがあります。

かなり壮大なプロジェクトで、実現したら凄いと思うのですが、結局のところこのプロジェクトの論点は「技術的に実現可能なのか?」という点だとおもいます。

ということで、技術的な点に絞って、論点を見てみましょう。まず、技術的な点から仕組全体像を見ていきます。

まずGolemのネットワークは3つのパートにわかれています

<Golemの3つの構成>

  •   Virtual Macine

これはコンピューティングを行うコアのこと。それぞれのノードのなかにバーチャルマシーンを作り、そこで割り当てられたタスク(計算)を行います。

  • Golem Network

コアとなるP2Pネットワーク制御。空いているコンピュータリソースを探したり、コンピューティングタスクを分割して割り当てたり、計算量や手数料を計算したりといった部分です。

  • Ethereum

Ethereumのスマートコントラクトは、支払い処理に使います。

Ethereumのプロジェクトかとおもいきや、Golem Network自体はEthereumで記述するのではなく、クライアントソフトウェアとして各ノードが走らせ、支払い部分のみをEteherumで構築するようです。

<Golemナノペイメント> A Probabilistic Nanopayment Scheme for Golem

Golemネットワークでは、リソースを提供してくれた人に少額の支払いが発生します。たとえば、10ドル分の計算をGolemネットワークに依頼したとして、これに1,000のノードが参加(計算リソースを提供)したとします。

すると、ひとつのノードあたり、1セントの支払いになるわけです。1,000のノード宛に1セントづつおくるというトランザクションが発生してしまいます。これを、普通にEthereumのGasを支払って処理すると、手数料負けしてしまって、意味をなさなくなってしまいます。受取や支払額より手数料のほうが多くなってしまいます。かと言って、参加ノードを減らすと、並列処理の具合も減ってしまいます。やはり一度に数百から数千のノードに一斉に計算してもらうというのが、並列処理の醍醐味です。ですから、1セントレベルで、数百、数千のノードへの支払いが多発するという状況をクリアしないといけません。

これに対する、Golemのソリューションが、「宝くじ型のナノペイメント」というアイデアです。

これは、確率的に支払いするというもので、つまり、1000のペイメントを実際に支払うのではなく、宝くじを引いてもらって、それに当たった少数のひとにのみ支払うようにするのです。これではハズレくじを引いた人は、計算リソースを提供したのに何ももらえないことになりますが、マイニングのように、ずっとこれをやり続ければ確率的に当たることもある。長い目で見ると、平均的に提供したリソース分の支払うが受けられる。これで辻褄をあわせるという支払いシステムです。

マイニングプール的な発想かもしれません。

これの理論的なことがホワイトペーパーに書かれています。

(※このホワイトペーパーは確率的支払い部分の話だけで、Golemの他の機能についての記述はありません)

<コンピューティング部分>

Golemは「分散スーパーコンピューター」と謳っています。この言葉からは、どのような計算も行え、セキュアであるという万能性を期待してしまいますが、実際には処理できる計算のタイプというのは限定されます

(略)

Gonisのタスク分割の説明の図を引用します。

上のタスク分割の図を見てわかるように、並列に計算するには、かなり単純に分割できる計算内容であることが求められます。

つまり、

(略)

こういうタイプの計算以外は処理できないものとおもわれます。

(略)

Golemがあつかえるタスクはこのタイプのものに限られると思われます。ですので、ユースケースとしては、さきほどのように、CGレンダリングや、DNA解析、モンテカルロシミュレーション(沢山サイコロを振って結果を返すようなタイプの確率シミュレーション)、という応用例に限定されてしまうとおもいます。それは別に現実的な話であり悪いことではないのですが、「分散スーパーコンピューター」というウリ文句から想定する万能性とは違うものであるということは、注意が必要なので、解説したということです。

なお、まさにビットコインのマイニングなどがこの種の計算にあたりまして、マイニングプールはまさに並列グリッドコンピューティングを行い、報酬を配分しているという意味で、特定用途になりますが、Gnosisのコンセプトを実現したものだということも言えます。

* 注)実際の割当アルゴリズムはエリア分割ではありませんが、説明のための例として書いてあります

<セキュリティとプライバシー>

Golemネットワークは並列計算を沢山の部分に分けて、それぞれのノードに割り当てるわけですが、この際にセキュリティについて述べます。処理してもらうデータについては、暗号化して渡し、計算結果も、暗号化して戻してもらいます。

途中の経路は暗号化されているので問題ないのですが、計算をおこなうノードは、計算内容を知ることができてしまいます。データを復号化してからでないと、計算できませんので、当たり前のはなしなのですが。

もちろん並列に分割していますので、それぞれのノードが処理する計算内容は少ないわけで、全体の計算結果を知ることはできないわけですが、それでも部分的には秘密が筒抜けということには変わりありません。また、どのような計算を行おうとしているかという、計算アルゴリズムにについてはまったく筒抜けです。たとえば、核兵器の分裂シミュレーションみたいなアルゴリズムを走らせたら、まずいということは誰にも知れてしまいます。

現時点では、このデータの秘匿性に対する解決策はあることにはあるのですが、まだ研究段階です。

暗号化したデータに対して計算を行い、暗号化されたままの結果を返してもらうのですが、それらの結果をつなぎ合わせても全体が再現できるという方法あります。つまり計算ノードには何の計算をしているのか全くわからないというものです。

これを、Fully homomorphic encryption (完全準同型暗号)と言います。暗号化したまま、加法と乗法ができるもので、この方法ですと暗号化したまま計算ができます。

これを目指しているのがMITのEnigmaと理解しています。

これは理論的には可能なのですが、ものすごく時間がかかります。(聞いたところでは、秘密鍵・公開鍵のペアを作成するという計算をおこなうのに30分かかるそうです。通常なら一瞬で行える処理です)

くわえて、計算の内容を限定したり特殊な処理だけに限る必要があります。

万能になんでも暗号化したまま高速に行うには、アルゴリズム論での根本的なブレイクスルーが必要とおもわれます。このあたりは、理論計算機科学者や、数学者が基礎研究をしているというレベルで、ここをGolemがブレイクスルーできる可能性はまったくなさそうです。

他の問題点としては2つあります。

一つは、誰かが大量にノードに設置して、大量のデータを受け取るというシビル・アタックです。

また、計算結果についてはGolem自体には検証の方法がないとおもわれるので、故意に嘘の計算結果を返すといった攻撃も考えれます。(結果の間違いが検出できる計算アルゴリズムを依頼側で考える必要があります)

これらの、問題に対しての解決法としては、ノードのレピュテーション(評価)システムを構築することで問題を解決しようと考えているようです。悪意あるノードを評価システムで排除しようという考えです。

<技術的なハードル>

ということで、Golem実現にはいくつかの技術的なチャレンジが必要なことがわかります。Gokem側で技術のハードルとしてあげているものとして4つがあります。

  • ペイメント

マイクロトランザクションを大量に処理する必要がある

  • レピュテーションシステム

ネットワークノードの評価をおこなうシステムを構築する必要がある。シビルアタック防止。

  • スケーラビリティ

P2Pネットで大量のデータや処理をするためのスケーラビリティ

  • リソース割当

空いているノードを探したり、効率のよいタスク割当などのコンピューティング部分。

<ハードルはクリアできるか?>

これを踏まえての私の分析です。さきほどの4つの技術チャレンジの実現可能性を考察してみます。

最大の問題は、・・・

(略)

 

同じく最大の問題は、支払いシステムです・・

(略)

最後に、(略) ・・・とくにレピュテーションはシビルアタック防止の観点からも、当初からマストと思うのですが、そういう仕組が必要であるという以上のものは示されていません。

結論として、

(略)

<財務面>

(略)

<総評>

以上から、来年というレベルではなく・・・(略)

また、Golemの応用範囲は・・・・(略)・・・・この点、「分散スーパーコンピュータ」という宣伝文句はやや過大です。この言葉にたいする期待値がどこまでのものなのかによって、評価が異なってくるようにもおもいます。

総評としまして、

(略)・・・

最後は、微妙な総評になってしまいましたが、そんなタイプのプロジェクトと思います。

レポート全文を読みたい方は、サロンへの入会をご検討ください。

Golem意外にも、Gnosis、DECENT、First Bloodについても同様の分析をしています。これ以外にも過去の48本のレポートがおよみいただけます。

仮想通貨で他人と差をつけたいなら?プロ向けレポートのビットコイン研究所へ