【イーサリアム】分散化を理解する。websiteテクノロジーとライフスタイルを考えるブログ。【イーサリアム】分散化を理解する。22:06ヴィタリック記事、第3弾訳しました〜。(完璧じゃないのでそこはご容赦を・・)ブロックチェーンの構造を見ると、嫌でも分散管理という言葉出てくると思います。逆にいうと分散管理されているからこそ、ブロックチェーンは存在しているのです。(企業内でプライベートチェーンとかできますけど・・)当然イーサリアムを理解する上でも、前提の知識となります。3.0というのがそこまできてます。分散化がキーワードです。英語がわかる人はこちらを読んだ方が早いです。ヴィタリック・ブテリン"分散化"という言葉は暗号経済学の界隈で、よく使用され、ブロックチェーンの存在意義とも言われています。言葉の定義としては誤解に満ちたものでもありますs。この分散化を実現するために何千時間もリサーチされ、何億ドルものハッシュパワーを投入され、維持運用されています。実のところこの言葉が何を意味するかは、かなり曖昧です。以下のよく知られた図をみても混乱すると思います。(分散)は一つのノードが、すべてのトランザクションをコントロールしているわけではないということです。exchangeでも同じような図があります。“distributed”が逆順になっています。その場合のほうが説明が明確です。※distributedは、大企業があって分散してサーバーを管理しているとわかりやすいです。大企業が潰れたら、サーバーも無くなります。逆にdecentralizedは個々のノードが管理者の命令を受けることはありません。いうと、3つのタイプがあります。ケースにもよっては、お互いが影響しあっておりますが、一般的にはそれぞれが独立してます。集中化/分散化ーデータ構造は単一のオブジェクトか?それとも、バクテリアのように分散しているか?見分ける方法として、ユーザーもプロバイダーも含めシステムを二つに分断した場合、それぞれ個別に稼動するか?これら三つをチャートにまとめてみましょう。これらの要素はまだ議論の余地がありますが、下記で詳細を見ていきましょう。・伝統的な企業は、政治的に中央集権である。(一人のCEO)アーキテクチャ的にも中央集権であり(本社は一箇所)、そして論理的にも中央集権である。(会社は真っ二つにできない。)・民法は中央集権(国家)が制定するのに対して、自治体の法律はそれぞれの地域(分散化)によって制定されている。それにもかかわらず、大きな裁量権を持つ多くの裁判所があるので、民法はまだいくつかの地方分権化を行っているが、それぞれの自治体の法律はそれ以上に分散化している。どちらも論理的には中央集権である。(法律は一つしかない)・言語は論理的に分散化しています。アリスとボブの間で話されている英語と、チャーリーとデビットの間で離されている英語は同じである必要はありません。言語が存在するために、中央集権化したインフラは必要なく、英文法は一個人によってコントロールされることはない。ビットトレント(BitTorrent)もまた英語と同じように分散化されている。コンテンツ配信システムも一緒ですが、一社によって管理されています。・ブロックチェーンは政治的に分散化している。アーキテクチャで分散化しています。論理的(データ的)には中央集権化している。単一データベースであることが便利だと表現されている。これは論理的(データ的)な中央集権化であり、これは多くの場合メリットがある。中央集権化されたアーキテクチャは、しばし政治的な中央集権化に向かうが必ずしもそうではない。ネットワーク化されたシステム下で、中央集権のコミュニティの所有者が悪意を持って行動すると、誰もが別のコミュニティに移動しアーキテクチャの分散化が起こりえます。論理的(データ的)な中央集権化は、アーキテクチャの分散化を難しくする。(それは不可能ではない)。分散化されたコンセンサスネットワークはすでに現実で運用されており、そして論理的な中央集権化は、政治的な分散化をさらに困難にします。論理的に集中管理されたシステムでは、単に「お互いを許し合う」ことだけでは、競合を解決することは困難です。一般的には、いくつかの論拠があります。されたシステムではハックするにコストがかかる。されたシステムでは参加者が、他の参加者を利用して利益のために結託することが難しい。この点、企業や政治家は、結託して弱者から利益をが上げることが多い。以上、三つの論拠が重要であるが、しかし、どの論拠もプロトコルの決定という観点から見ると興味深い結論に行き着きます。フォールトトレランスを行う理由については明確です。一つのコンピューターが障害で落ちた場合だと10台のうち5台が一斉に落ちた場合、結果がどうでしょうか?議論の余地がないですよね。現実世界を見てるとジェットエンジンにしろ、病院や軍事施設、資産のポートフォリオ、そしてコピューターネットワークも必ずバックアップがあります。このような分散化は重要ではあるが、かなずしも万能ではありません。共通部品を使っている場合。次のシナリオを考えると、必ずしもそうではないです。・全てのブロックチェーンノードは、同じクライアントソフトウェアで動いておりこれにバグがあった場合。・全てのブロックチェーンノードは、同じクライアントソフトウェアで動いており、クライアントソフトウェア開発チームが反社会的だった場合。・プロトコルアップグレードを提案している、リサーチチームが反社会的だった場合。・プルーフオブワークのブロックチェーンでは、70%のマイナーが同じ国であり、もしその国の政府が、国家安全保障のためマイニングプールを閉鎖した場合。・マイニング用のハードウエアは、同じ会社によって製造されており、いつでもシャットダウンできるよう、賄賂もしくは強要されてバックドアを仕掛けていた場合。・プルーフオブステーク(Pos)のブロックチェーンだとして、その70%のコインが一箇所の取引所に保管されている場合。フォールトトレランスで、分散化した場合は、以上のようなリスクも考えられます。やったらリスクを最小にできるでしょうか。・競合した複数の実装を持つことが決定的に重要です。(複数の選択肢からプログラムを選べたらより良い)・プロトコルの技術的なアップグレードに関しては、民主的に決定されなければならない。誰もが納得できるプロトコルの改変になるべきで、批判や欠点をあげられるようにしなければならない。・コアデベロッパーやリサーチャーは一つの企業や組織からではなく、ら多様な企業から集めるべきである。・マイニングアルゴリズムは、中央集権化しないようにデザインされなければならない。・イーサリアムではハードウェアの集中リスクを回避するために、プルーフオブステークの適用を目指している。フォールトトレランスは、アーキテクチャの分散化に焦点を当てていますが、いざ、フォールトトレランスを実現している、プロトコルの開発を支配するコミュニティについて考え始めると、政治的な分散化も重要になってきます。次は攻撃耐性を見てみましょう。純粋な経済モデルでは、分散化してもあまり関係ない場合があります。ヴァリデーターが一つの企業に管理されてようが、多数の企業だろうがあまり関係ないです。経済的保証を最大化するというゲームの理論もあります。豊かな経済モデル、特に何かに強制される可能性があるとすれば、分散化はより重要となって来ます。あなたがある人を殺害すると脅したらなら、5000万ドルは簡単に手に入るでしょう。ところが、5000万ドルが10人に分散されたいたらあなたは同時に10倍の人を脅さないといけないです。現実では多くの場合、攻撃/防御の非対称性を考えた場合は、攻撃者に有利なります。立てるのに1,000万ドルかかる建物は、破壊するために10万ドルドル以下の費用がかかりますが、攻撃者の影響力はしばしば準線形です。立てるために1000万ドルのコストがかかる建物に10万ドルのコストで破壊する場合と、立てるために100万ドルかかる建物は、実際には破壊するために3万ドルかかることがあります。小さくするとより良い比率が得られます。これらの論拠はどこに行き着くでしょうか?第1にPowよりもPosを支持するようになります。コンピューターのハードは攻撃しやすいですが、Posでは、コインをはるかに簡単に隠すことができます。第2に、地理的に広く分散された開発チームを持つことに有利な点です。第3に、コンセンサス・プロトコルを設計する際に、経済モデルとフォールト・トレランスモデルの両方を検討する必要があることを意味する。最後に三つの中で、ももっとも複雑なトピックとなる共謀耐性をみていきましょう。共謀を実際に定義するのが難しいです。定義すると、”われわれの好まない方法で調整されたこと。”となりますでようか。あるグループが調整している裏で、他のグループがそれを知らないは危険です。ブロックチェーンプロトコルの例だと、数学と経済学で裏打ちされたコンセンサスアルゴリズムは調整されていない選択モデルに強く依存します。独立した個人が、意思決定を行うと仮定しています。Powの場合で、ある個人が1/3のハッシュパワーを取得すれば、自己マイニングによって莫大な利益をあげるでしょう。気まぐれでルールを変更できないからです。仮に、もしソフトウエアとプロトコルの開発者が一社に所属しており社内で結託していたら難しいかもしれません。ブロックチェーンでは自己の利益のみ追求する寡占のように振舞ってはいけないのです。したがって、共謀でなければブロックチェーンは、はるかにその安全性を高められます。これには根本的な矛盾をはらんでいる。イーサリアムを含め、多くのコミュニティはコミュニティの仲間意識が強く、6日間以内にプロトコルのサービス拒否問題を修正するためのハードフォークの実装、リリース、アクティブ化を迅速に調整できます。この良い種類の調整をどのように育み、改善することができますか?同時に、51%の攻撃を繰り返し調整することによって、他の人を酷使しようとしているマイナーからなる「悪い調整」を防げますか?これに答えるには三つの方法があります。代わりに、それに反逆できるプロトコルを実装してみてください。・最悪、今後プロトコルが前進できるような、誰もが納得できる妥協点をさぐる。・有益な調整と有害な調整とを区別し、前者をより簡単に、後者をより困難に実装できるようにしてください。最初にアプローチはCasperデザイン哲学の大部分を占めます。それ自体では不十分であり、分散化することを考慮すると経済的インセンティブのみに依存するのは、他の二つカテゴリーとの関係を失敗させる。第2は、特に長期的には、明示的に設計することは困難ですが、誤って起こることがよくあります。Bitcoinのコア開発者は一般的に英語を話すが、マイナーは一般的に中国語を話すという事実は、二国間のガバナンスを生み出すため、逆に幸いしていると見ることができます。英語と中国のコミュニティが距離やコミュニケーションの難しさのために少なくとも幾分別々に理由があるため、両方とも同じミスをする可能性が低いからです。三つ目は社会的なチャレンジがなにより重要である。:解決策として・ブロックチェーン全体のコミュニティに対する、参加者の忠誠心を高めようとする社会的介入は、市場の一方の側のプレイヤーが互いに忠実になる可能性を妨げる。・同じ文脈で、さまざまなレイヤーのマーケットのコミュニケーションを促進し、vaildatorと開発者、マイナーがそれぞれの利益で対立しないようにする。・ヴァデリーター/マイナーが1対1の「特別な関係」、集中型ネットワークのメカニズムに陥るインセンティブを、低減するような方法でプロトコルを設計する。・プロトコルが持つべき基本的な特性についての明確な規範。何をすべきではないか、少なくとも、極端な状況下でのみ行うべき事項ついてなど。このように分散化、3つのタイプの中で、「望ましくない調整を回避する」という分散化はおそらく達成が最も困難であり、トレードオフは避けられないものです。良い解決策は、プロトコルのユーザーという、公平に分散されていることが保証されている1つのグループに大きく依存することかもしれません。Buterinまとめ分散化は次世代のWEBを考える上で必須のテーマです。今ままで大企業に預けていた個人データや個人ログを、ユーザーで戻しす時代が来ると読んでます。インターネットって本来、分散化した牧歌的な環境だったのです。ところが、大企業が散らばっている個人データに価値を見出して、中央集権化するサービスを作って、個人データをマネタイズしたのです。イーサリアムは、個人データという価値をもう一度ユーザーに戻す可能性のあるプラットフォームです。わたしも知れば知るほど、すっかりイーサリアムファンになってきました。ビットコインは、コミュニティ参加者の思惑が悪い形で現れてますね。次はいよいよ、実際にスマートコントラクトを作ってみようと思います。