動向などを幅広くリサーチしています。プログラマブルマネー辺りのコンセプトに興味があります。Polkadotは、異なるブロックチェーン間のインターオペラビリティを実現するプロトコルで、トリレンマの問題も解決しWeb3.0のエコシステムの構築を目指すプロジェクトです。Polkadotの開発に利用されたフレームワークであるSubstrateも、簡単にインターオペラブルなブロックチェーンを開発できるとしてPolkadotと並んで注目を集めています。本記事では、そんなPolkadotとSubstrateについて、概要から詳細まで解説していきます。まとめPolkadot(ポルカドット)とは?Polkadotとは、異なるブロックチェーン間のインターオペラビリティを実現するためのプロトコルです。BitcoinやEthereumなどのブロックチェーンは革新的である一方で、それぞれが独立しており、これまでのウェブのような一つの大きなエコシステムであるとは言い難い状況にあります。Polkadotでは分散型のウェブ、つまり個人情報やデータをすべて各自が管理するような世界を創り上げることをミッションとしており、これは単一のブロックチェーンではなく無数のブロックチェーンが繋がっていくことにより実現されていくと考えられます。Polkadotは異なるブロックチェーン同士の情報のやり取りを可能にし、それぞれを繋ぐだけでなく、後述のSubstrateと呼ばれるフレームワークを利用することで、簡単にインターオペラブルなチェーンを実装することも可能になります。EthereumのVitalik氏が提唱したトリレンマ問題(セキュリティ・分散性・スケーラビリティ)も解決しうるポテンシャルを持ち、プロトコル層の開発というステージからアプリケーション層の開発へと移行するための土台としても期待されています。異なるブロックチェーン間のインターオペラビリティを実現Polkadotの一番の特徴は、Polkadotのチェーン(Parachain)だけでなく、BitcoinやEthereumなどの異なる様々なチェーンを相互に接続できる点です。Polkadotは、相互運用性(インターオペラビリティ)を持つプラットフォームとなることで、仲介者を必要としない資産の取引、コミュニケーションを可能とします。これが重要かという話ですが、単純な利便性だけでなく分散的なウェブの実現において、分散的な資産が存在する一方で、分散的な交換方法は存在しませんでした。そのため、Bitcoinを別の資産に交換したいとき、これは分散型のウェブのrealmで行われず、取引所などの集権性が必要とされてきました。インターオペラビリティによるP2Pでの資産の取引が可能になることで、Web3.0と呼ばれる真に分散型のシステムを実現することができます。Security』と呼ばれるセキュリティのモデルを採用しています。BitcoinやEthereumは強力なセキュリティを持つとされていますが、これはコミュニティの大規模なプロトコル参加が前提となっており、この前提無しでは十分なセキュリティを確保できず攻撃の対象とされてしまうこともあります。引用:https://www.parity.io/a-brief-summary-of-everything-substrate-polkadot/複数のチェーンが相互に接続されている状況を考えるとき、経済的に弱いチェーンが狙われる可能性があり、そこを軸とした穴が生まれてしまう可能性を無視することはできません。Chain(後述)とネイティブで互換性を持つブロックチェーンのセキュリティを一か所に集約させることで、チェーン毎に強弱があるセキュリティではなく、一つの強力なセキュリティによりPolkadot全体の攻撃を防ぐことが可能となります。アプリケーション別のステート遷移Ethereumの場合、アプリケーションはすべてEthereumのSpecificationに依存するため、トランザクションやブロック生成、合意形成など、各シャードがこの制約を受けます。あるDAppでユーザー数が急激に増加し、トランザクションの詰まりが発生した場合その影響はネットワーク全体に及ぼされます。Polkadotではアプリケーションが全てParachainsと呼ばれるサイドチェーンに乗っかる形になるので、同様のケースにおいてPolkadotのネットワーク全体に影響が及ぶことはありません。トランザクションの処理が各チェーン毎に別々に行われるということは、スケーリングの問題を緩和することにも繋がっていきます。Chainに接続できるということはそれだけ多様で複雑なアプリケーションがこの上に乗っかってくることも期待することができます。Polkadot(ポルカドット)の全体像と仕組み以下の図は、Polkadotの全体像のイメージです。後ほど解説しますが、Polkadotのチェーンは何種類か存在していて、Relaychainを軸として動いているというポイントだけ抑えていれば問題ありません。インターオペラビリティとWeb3のエコシステムを実現するための3つの要素Polkadotがインターオペラビリティを実現していくためには以下の3つの要素が鍵となります。Chain(リレーチェーン)Parachains(パラチェーン)Bridges(ブリッジ)これらの3種類の要素が組み合わさることで、プライベート・コンソーシアム・パブリックなど様式を問わないブロックチェーン同士が相互に接続されます。chainはPolkadotの軸となるチェーンで、ネイティブで互換性を持つチェーン、またブリッジを通じて互換性を待たないチェーンをここに接続することができます。合意形成やトランザクションの伝播はここで行われ、単一の正当なチェーンとしてPolkadotのエコシステムを守ります。Chainに接続される異なる独立したブロックチェーンの呼称で、名前はParallel-chains(平行に走るチェーン)に由来しています。先ほど、セキュリティは単一のグローバルステートに集約されるという話をしましたが、Parachainsにおけるトランザクションの収集や処理は各チェーン毎に独立しており、チェーン毎に独自性を持たせることが可能です。Chainと繋ぐ役割を果たします。Communicationなど各ブリッジがそれぞれ異なる役割を果たすことが特徴です。Polkadot(ポルカドット)の4種類のプロトコル参加者Validators(バリデーター)ValidatorはPolkadotエコシステムのメインのチェーンであるRealychainに直接的に関わり、参加者の中では非常に重要です。彼らは、Nominatorにより選出され、Collatorから送られた各Parachainsのブロックを検証し、有効なブロックヘッダーをRelaychainに追加する役割を果たしていきます。バリデーションに対してもちろん報酬は付与されますが、RelaychainのフルノードによるDOTのステーキングが必要とされ、悪意を働きかけようとした場合にはペナルティが課せられるため、正直なふるまいをとるインセンティブ設計になっていることが特徴的です。Nominator(ノミネーター)NominatorはValidatorを選出する役割を果たします。彼らは、DOTのステーキングを直接行わず、代表するValidatorに対してステーキングを行うことで、Validatorの報酬の一部を得ることができます。万が一、NominatorとValidatorが結託して、といったケースもあるので(?)悪意のあるノードに対してステーキングを行った場合、Validatorに課せられるペナルティも受けることになります。chainへと提出します。彼らは、バリデーション自体は行わず、Validatorによりブロックが検証・追加された時点で報酬の一部を獲得する仕組みになっています。Collatorも同様に、ステーキングが必要とされ、ペナルティが課せられる場合もあります。Fisherman(フィッシャーマン)FIshermanは主にValidatorの監視を行い、Validatorが悪意のある行動を取らないように見張る感じの役割を持ちます。他の参加者とは違い、違反を見つけた時点で彼らのステークを没収することができるという権利が付与されるインセンティブ設計になっています。Fishermanになるためにもステーキングが必要です。Arrangement)と呼ばれるファイナリティガジェットが実装されています。Finality(証明可能ファイナリティ)を実現します。このアルゴリズムの特徴は、分散ネットワークだけでなくブロックチェーンの特徴を生かして、単体のブロックに対する投票ではなく、ブロック高に対して投票を行うことができるという点です。これは、子ブロックが有効であれば親ブロックも有効であるという前提に基づいています。引用:https://medium.com/polkadot-network/grandpa-block-finality-in-polkadot-an-introduction-part-1-d08a24a021b5イメージCのブロックまでは2/3の投票が獲得できているので、説明可能な状態でファイナライズされており、例えばE1・E2に対する総数が2/3を超えれば、その前にあるD2もファイナライズされていくという感じになっています。Polkadot(ポルカドット)のガバナンスPolkadotのガバナンス、プロトコルにおける政治(?)はPolkadotのトークンであるDOTのステークホルダーを中心として設計されています。第一に、上述の参加者(Validator/Collator/Nominator/Fisherman)がプロトコルにおいて悪意のある挙動を取らないように、といったゲーム理論的インセンティブがあります。これは報酬とペナルティをベースとして設計されており、プロトコルへの攻撃を防ぐ役割を果たしています。プロトコル内の意思決定においてもDOTトークンが重要です。0xなどが既に行っているように、Polkadotもチェーンの分岐という形を取らずに、ステークホルダーによる投票でプロトコルのアップグレードを行うことができます。DOTトークンの保有をベースとした投票により、プロトコル参加者の意思をより如実に反映させることが可能となっています。これを利用することで、ウェブにおいてアプリケーション毎に独自のHTTPを実装する必要がないように、ネットワーキングや合意形成に関する部分をコードを実装せずにブロックチェーンを新しく作ることができます。chainの互換性を持たせることができる点などが主な理由です。Substrate自体は、Polkadotからは独立しているため、必ずしもPolkadotと接続する必要性はなく、今年下旬に予定されているメインネットを待たずとも独自のブロックチェーンを開発することは可能であるとされています。Wood氏によるSubstrateの実装のデモも行われました。Substrate(サブストレート)の特徴Parachainsとして実装することができるSubstrateのフレームワークを利用することで、実装することのできるチェーンには3つの種類があります。Chainと呼ばれるチェーンあります。Chainと繋げることもできます。この二つの場合、Polkadotの持つ強力なセキュリティプールを利用することができず、独自の合意形成を設計する必要があるため、どちらかというとエンタープライズなどに向いているのかなという印象です。Chainと繋がることができ、合意形成やセキュリティ(プール)、インセンティブ設計などを考慮する必要性が生じません。Nodeの3つのレイヤーにより構成されます。Chainに接続するチェーンを実装することができます。ここでは、ノード、ネットワーキングなどの諸々を自身でコーディングし実装する必要がありますが、その分自由度の高いブロックチェーンを作ることができます。Function)のコードを実装するだけで、上記の諸々をコーディングする必要性は一切なくなります。引用:https://medium.com/polkadot-network/a-tale-of-two-technologies-presentation-transcript-e7397c1c7a49これはカスタマイズ不可能というわけではなく、用意されているものをカスタマイズしていくことも十分に可能です。SRMLでは、ライブラリから必要なモジュールを選択し、あとはパラメータなどを設定するのみで実装ができる機能を提供しています。Nodeでは、jsonのコンフィグファイルのみで完全なスマートコントラクトブロックチェーンを作ることができるとされています。引用:https://medium.com/polkadot-network/a-tale-of-two-technologies-presentation-transcript-e7397c1c7a49このように、開発者の求める自由度に応じたカスタマイズ性が広いこともSubstrateの特徴の一つです。フォーク無しのアップグレードSubstrateではネイティブのランタイム(実行環境)のほかに、WASM(WebAssembly)のランタイムが用意されています。引用:https://www.parity.io/a-brief-summary-of-everything-substrate-polkadot/ネットワークのアップグレードが行われた場合、一部のクライアントでアップデートが行われていない場合があります。このとき従来のシステムでは、互換性を持たない別々ネットワークが起こり、フォークという形を取らざるを得なくなります。Substrateの場合、Substrateに統合されたWASMの仮想マシンで既存のバージョンのランタイムをinterpretし実行できるので、ネットワーク上のすべてのノードがフォークをせずに正しくチェーンと同期することができます。Substrateを利用してParachainsの開発実装を進めるプロジェクトChainX引用:https://github.com/chainx-org/chainx-logo/blob/master/assets/ChainXlogo001.pngChainXはSubstrateで実装された最初のブロックチェーンネットワークで、PolkadotのエコシステムにおいてはDEXのような立ち位置にあります。上述のBridges(Parachains)の部分の開発を行い、Polkadotと直接互換性を持たないBitcoinやEthereumなどはChainXを通じて資産の交換を行うことができるようになります。Chainの実装もロードマップに記載されています。ChainXでは将来、Polkadotにおけるインターチェーンコミュニケーションにおいて重要な役割を果たしていくことが期待されます。Zerochain引用:https://medium.com/layerx-jp/%E7%A7%98%E5%8C%BF%E5%8C%96%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3-zerochain-%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E5%A7%8B%E5%8B%95-11696bce0b13Zerochainは、日本国内の企業であるLayerXによって開発され、Substrateのフレームワークを利用して実装されるプロジェクトです。ブロックチェーンにおけるデータの透明性・秘匿性についてのプライバシーに関する問題の解決を目指しており、暗号学的なアプローチでブロックチェーン上のデータの秘匿化を可能にします。公式ブログによれば、ZerochainはBitocoinなどのUTXO型ではなくEthereumのようなアカウントベースの秘匿ブロックチェーンであり、これは世界で初の事例であるため世界中のコミュニティからも注目を集めています。EdgewareEdgewareはRustで記述されWASM(WebAssembly)で高速に実行される、Polkadotで最初のスマートコントラクトプラットフォームです。Polkadotのメインネットがローンチされると、PolkadotのParachainsの一つとして実装され、簡単にコードをデプロイすることができるようになります。Labsではガバナンスにも力を入れており、ETH保有者に対して90%以上のトークンを付与するロックドロップや投票などのオンチェーンガバナンスはEdgewareの大きな特徴の一つです。CoreとSRMLを利用した開発が行われ、Polkadotに繋げることのできるPlasmaチェーンであり、独自のSRMLでもあります。このライブラリを利用することで、親のPlasmチェーンと接続できる独自のPlasmaチェーンを作ることができるようになります。YouTubeでも既にデモ動画が公開されており、今後はUTXOモデルの対応などに力を入れていくようです。まとめブロックチェーンを一段階上のレベル上げるPolkadotと、それに関連してブロックチェーン開発を容易にするフレームワークであるSubstrateについて、できる限りで分かりやすく紹介しました。Polkadotのメインネットは年内に控えていますが、これがローンチされると、取り巻くプロジェクトやエコシステムが増えていくことで、これまでとは違った進歩が見れると思います。今後も、より一層注目が集まっていくプロジェクトになると思いますが、基本的な内容の理解に際して、本記事を参考にしていただければと思います。meの使い方を解説!Twitter上で気...技術2019/03/19IOSTがChrome用ウォレット『iWallet』を公開。TIMESはブロックチェーン/仮想通貨,暗号資産に関する総合メディアです。業界における最新情報や著名人のコラムやインタビューなど、はじめての方にも分かりやすい情報を発信していきます。