Polkadot(ポルカドット)とSubstrate(サブストレート)の概要と仕組み、取り巻くエコシステムに関して
Shota
Polkadotは、異なるブロックチェーン間のインターオペラビリティを実現するプロトコルで、トリレンマの問題も解決しWeb3.0のエコシステムの構築を目指すプロジェクトです。
またPolkadotの開発に利用されたフレームワークであるSubstrateも、簡単にインターオペラブルなブロックチェーンを開発できるとしてPolkadotと並んで注目を集めています。
本記事では、そんなPolkadotとSubstrateについて、概要から詳細まで解説していきます。
目次
Polkadot(ポルカドット)とは?
Polkadotとは、異なるブロックチェーン間のインターオペラビリティを実現するためのプロトコルです。
BitcoinやEthereumなどのブロックチェーンは革新的である一方で、それぞれが独立しており、これまでのウェブのような一つの大きなエコシステムであるとは言い難い状況にあります。
Polkadotでは分散型のウェブ、つまり個人情報やデータをすべて各自が管理するような世界を創り上げることをミッションとしており、これは単一のブロックチェーンではなく無数のブロックチェーンが繋がっていくことにより実現されていくと考えられます。
Polkadotは異なるブロックチェーン同士の情報のやり取りを可能にし、それぞれを繋ぐだけでなく、後述のSubstrateと呼ばれるフレームワークを利用することで、簡単にインターオペラブルなチェーンを実装することも可能になります。
また、EthereumのVitalik氏が提唱したトリレンマ問題(セキュリティ・分散性・スケーラビリティ)も解決しうるポテンシャルを持ち、プロトコル層の開発というステージからアプリケーション層の開発へと移行するための土台としても期待されています。
Polkadot(ポルカドット)の特徴
異なるブロックチェーン間のインターオペラビリティを実現
Polkadotの一番の特徴は、Polkadotのチェーン(Parachain)だけでなく、BitcoinやEthereumなどの異なる様々なチェーンを相互に接続できる点です。
Polkadotは、相互運用性(インターオペラビリティ)を持つプラットフォームとなることで、仲介者を必要としない資産の取引、コミュニケーションを可能とします。
なぜこれが重要かという話ですが、単純な利便性だけでなく分散的なウェブの実現において、分散的な資産が存在する一方で、分散的な交換方法は存在しませんでした。
そのため、Bitcoinを別の資産に交換したいとき、これは分散型のウェブのrealmで行われず、取引所などの集権性が必要とされてきました。
インターオペラビリティによるP2Pでの資産の取引が可能になることで、Web3.0と呼ばれる真に分散型のシステムを実現することができます。
DOTトークンによる単一のグローバルステートと強力なセキュリティ
Polkadotでは『Pooled Security』と呼ばれるセキュリティのモデルを採用しています。
BitcoinやEthereumは強力なセキュリティを持つとされていますが、これはコミュニティの大規模なプロトコル参加が前提となっており、この前提無しでは十分なセキュリティを確保できず攻撃の対象とされてしまうこともあります。
複数のチェーンが相互に接続されている状況を考えるとき、経済的に弱いチェーンが狙われる可能性があり、そこを軸とした穴が生まれてしまう可能性を無視することはできません。
Polkadotでは、Relay Chain(後述)とネイティブで互換性を持つブロックチェーンのセキュリティを一か所に集約させることで、チェーン毎に強弱があるセキュリティではなく、一つの強力なセキュリティによりPolkadot全体の攻撃を防ぐことが可能となります。
アプリケーション別のステート遷移
Ethereumの場合、アプリケーションはすべてEthereumのSpecificationに依存するため、トランザクションやブロック生成、合意形成など、各シャードがこの制約を受けます。
例えば、あるDAppでユーザー数が急激に増加し、トランザクションの詰まりが発生した場合その影響はネットワーク全体に及ぼされます。
Polkadotではアプリケーションが全てParachainsと呼ばれるサイドチェーンに乗っかる形になるので、同様のケースにおいてPolkadotのネットワーク全体に影響が及ぶことはありません。
トランザクションの処理が各チェーン毎に別々に行われるということは、スケーリングの問題を緩和することにも繋がっていきます。
またスケーリングだけでなく、多様なシャードをRelay Chainに接続できるということはそれだけ多様で複雑なアプリケーションがこの上に乗っかってくることも期待することができます。
Polkadot(ポルカドット)の全体像と仕組み
以下の図は、Polkadotの全体像のイメージです。
後ほど解説しますが、Polkadotのチェーンは何種類か存在していて、Relaychainを軸として動いているというポイントだけ抑えていれば問題ありません。。
インターオペラビリティとWeb3のエコシステムを実現するための3つの要素
Polkadotがインターオペラビリティを実現していくためには以下の3つの要素が鍵となります。
- Relay Chain(リレーチェーン)
- Parachains(パラチェーン)
- Bridges(ブリッジ)
これらの3種類の要素が組み合わさることで、プライベート・コンソーシアム・パブリックなど様式を問わないブロックチェーン同士が相互に接続されます。
Relay Chain(リレーチェーン)
Relay chainはPolkadotの軸となるチェーンで、ネイティブで互換性を持つチェーン、またブリッジを通じて互換性を待たないチェーンをここに接続することができます。
合意形成やトランザクションの伝播はここで行われ、単一の正当なチェーンとしてPolkadotのエコシステムを守ります。
Parachains(パラチェーン)
ParachainsとはRelay Chainに接続される異なる独立したブロックチェーンの呼称で、名前はParallel-chains(平行に走るチェーン)に由来しています。
先ほど、セキュリティは単一のグローバルステートに集約されるという話をしましたが、Parachainsにおけるトランザクションの収集や処理は各チェーン毎に独立しており、チェーン毎に独自性を持たせることが可能です。
Bridges(ブリッジ)
BridgesはPolkadotのエコシステムにおけるチェーン同士、また互換性を持たないチェーンをRelay Chainと繋ぐ役割を果たします。
その中にもいくつか種類があり、ブリッジとしてデプロイされるスマートコントラクトである『Bridge Contract』やCross-Parachain Communicationなど各ブリッジがそれぞれ異なる役割を果たすことが特徴です。
Polkadot(ポルカドット)の4種類のプロトコル参加者
Validators(バリデーター)
ValidatorはPolkadotエコシステムのメインのチェーンであるRealychainに直接的に関わり、参加者の中では非常に重要です。
彼らは、Nominatorにより選出され、Collatorから送られた各Parachainsのブロックを検証し、有効なブロックヘッダーをRelaychainに追加する役割を果たしていきます。
バリデーションに対してもちろん報酬は付与されますが、RelaychainのフルノードによるDOTのステーキングが必要とされ、悪意を働きかけようとした場合にはペナルティが課せられるため、正直なふるまいをとるインセンティブ設計になっていることが特徴的です。
Nominator(ノミネーター)
NominatorはValidatorを選出する役割を果たします。
彼らは、DOTのステーキングを直接行わず、代表するValidatorに対してステーキングを行うことで、Validatorの報酬の一部を得ることができます。
万が一、NominatorとValidatorが結託して、といったケースもあるので(?)悪意のあるノードに対してステーキングを行った場合、Validatorに課せられるペナルティも受けることになります。
Collators(コレーター)
Collatorは各Parachainsのフルノードで、それぞれのチェーン発生したトランザクションの照合を行いバンドル化し、これをRelay chainへと提出します。
彼らは、バリデーション自体は行わず、Validatorによりブロックが検証・追加された時点で報酬の一部を獲得する仕組みになっています。
Collatorも同様に、ステーキングが必要とされ、ペナルティが課せられる場合もあります。
Fisherman(フィッシャーマン)
FIshermanは主にValidatorの監視を行い、Validatorが悪意のある行動を取らないように見張る感じの役割を持ちます。
他の参加者とは違い、違反を見つけた時点で彼らのステークを没収することができるという権利が付与されるインセンティブ設計になっています。
Fishermanになるためにもステーキングが必要です。
Polkadot(ポルカドット)のその他のポイント
Polkadot(ポルカドット)の合意形成・ファイナリティ
PolkadotのRelay chainにはGRANDPA(GHOST-based Recursive Ancestor Deriving Prefix Arrangement)と呼ばれるファイナリティガジェットが実装されています。
Bitcoinなどでは6 confirmationで確率的にブロックが覆らないといった、probabilistic finality(確率的ファイナリティ)が採用されていますが、GRANDPAでは数学的に検証可能であるProvable Finality(証明可能ファイナリティ)を実現します。
このアルゴリズムの特徴は、分散ネットワークだけでなくブロックチェーンの特徴を生かして、単体のブロックに対する投票ではなく、ブロック高に対して投票を行うことができるという点です。
これは、子ブロックが有効であれば親ブロックも有効であるという前提に基づいています。
イメージCのブロックまでは2/3の投票が獲得できているので、説明可能な状態でファイナライズされており、例えばE1・E2に対する総数が2/3を超えれば、その前にあるD2もファイナライズされていくという感じになっています。
Polkadot(ポルカドット)のガバナンス
Polkadotのガバナンス、プロトコルにおける政治(?)はPolkadotのトークンであるDOTのステークホルダーを中心として設計されています。
第一に、上述の参加者(Validator/Collator/Nominator/Fisherman)がプロトコルにおいて悪意のある挙動を取らないように、といったゲーム理論的インセンティブがあります。
これは報酬とペナルティをベースとして設計されており、プロトコルへの攻撃を防ぐ役割を果たしています。
そして、プロトコル内の意思決定においてもDOTトークンが重要です。
0xなどが既に行っているように、Polkadotもチェーンの分岐という形を取らずに、ステークホルダーによる投票でプロトコルのアップグレードを行うことができます。
DOTトークンの保有をベースとした投票により、プロトコル参加者の意思をより如実に反映させることが可能となっています。
Substrate(サブストレート)とは?
Substrateとは、Ethereumの元CTO兼共同創設者であるGavin Wood氏が率いるParityによって開発された、ブロックチェーンの開発を行うためのフレームワーク(Tech Stack)です。
これを利用することで、ウェブにおいてアプリケーション毎に独自のHTTPを実装する必要がないように、ネットワーキングや合意形成に関する部分をコードを実装せずにブロックチェーンを新しく作ることができます。
また、Polkadotと同じ文脈で語られることの多いSubstrateですが、これはPolkadotがSubstrateのフレームワークを利用して実装された最初のチェーンである点、Substrateを利用して実装するチェーンとPolkadotのRelay chainの互換性を持たせることができる点などが主な理由です。
Substrate自体は、Polkadotからは独立しているため、必ずしもPolkadotと接続する必要性はなく、今年下旬に予定されているメインネットを待たずとも独自のブロックチェーンを開発することは可能であるとされています。
去年のWeb3 SummitではGavin Wood氏によるSubstrateの実装のデモも行われました。
Substrate(サブストレート)の特徴
Parachainsとして実装することができる
Substrateのフレームワークを利用することで、実装することのできるチェーンには3つの種類があります。
この中には、Polkadotと独立した合意形成を持つより自由度の高いSolo Chainと呼ばれるチェーンあります。
その他、Solo ChainとBridgeが一緒になったものは、上述のBridgeの仕組みでPolkadotのRelay Chainと繋げることもできます。
この二つの場合、Polkadotの持つ強力なセキュリティプールを利用することができず、独自の合意形成を設計する必要があるため、どちらかというとエンタープライズなどに向いているのかなという印象です。
SubstrateがPolkadotとセットで名前が挙げられる通り、Parachainsの一つとして実装することももちろん可能で、これはBridgeを介さずにRelay Chainと繋がることができ、合意形成やセキュリティ(プール)、インセンティブ設計などを考慮する必要性が生じません。
Substrate(サブストレート)の高い開発自由度
Substrateは、Substrate Core・Substrate SRML (Substrate Runtime Module Library)・Substrate Nodeの3つのレイヤーにより構成されます。
イメージのPolkadot Coreでは、PolkadotのRelay Chainに接続するチェーンを実装することができます。
ここでは、ノード、ネットワーキングなどの諸々を自身でコーディングし実装する必要がありますが、その分自由度の高いブロックチェーンを作ることができます。
そこでSubstrate Coreを利用すれば、最低限ランタイム(State Transition Function)のコードを実装するだけで、上記の諸々をコーディングする必要性は一切なくなります。
これはカスタマイズ不可能というわけではなく、用意されているものをカスタマイズしていくことも十分に可能です。
Substrate SRMLでは、ライブラリから必要なモジュールを選択し、あとはパラメータなどを設定するのみで実装ができる機能を提供しています。
一番下のSubstrate Nodeでは、jsonのコンフィグファイルのみで完全なスマートコントラクトブロックチェーンを作ることができるとされています。
このように、開発者の求める自由度に応じたカスタマイズ性が広いこともSubstrateの特徴の一つです。
フォーク無しのアップグレード
Substrateではネイティブのランタイム(実行環境)のほかに、WASM(WebAssembly)のランタイムが用意されています。
ネットワークのアップグレードが行われた場合、一部のクライアントでアップデートが行われていない場合があります。
このとき従来のシステムでは、互換性を持たない別々ネットワークが起こり、フォークという形を取らざるを得なくなります。
Substrateの場合、Substrateに統合されたWASMの仮想マシンで既存のバージョンのランタイムをinterpretし実行できるので、ネットワーク上のすべてのノードがフォークをせずに正しくチェーンと同期することができます。
Substrateを利用してParachainsの開発実装を進めるプロジェクト
ChainX
ChainXはSubstrateで実装された最初のブロックチェーンネットワークで、PolkadotのエコシステムにおいてはDEXのような立ち位置にあります。
上述のBridges(Parachains)の部分の開発を行い、Polkadotと直接互換性を持たないBitcoinやEthereumなどはChainXを通じて資産の交換を行うことができるようになります。
Finally, ChainX mainnet is about be launched at May 25, 2019! We will be the first released chain based on Substrate technology, running as an independent chain until Polkadot's launch. @polkadotnetwork @web3foundation pic.twitter.com/MxxLmOpbP7
— ChainX | #BTC #Layer2 | #Ordinals (@chainx_org) May 22, 2019
ChainXは2019年5月25日にメインネットをリリースし、将来的には、ChainX独自のRelay Chainの実装もロードマップに記載されています。
ChainXでは将来、Polkadotにおけるインターチェーンコミュニケーションにおいて重要な役割を果たしていくことが期待されます。
Zerochain
Zerochainは、日本国内の企業であるLayerXによって開発され、Substrateのフレームワークを利用して実装されるプロジェクトです。
主に、ブロックチェーンにおけるデータの透明性・秘匿性についてのプライバシーに関する問題の解決を目指しており、暗号学的なアプローチでブロックチェーン上のデータの秘匿化を可能にします。
公式ブログによれば、ZerochainはBitocoinなどのUTXO型ではなくEthereumのようなアカウントベースの秘匿ブロックチェーンであり、これは世界で初の事例であるため世界中のコミュニティからも注目を集めています。
Edgeware
EdgewareはRustで記述されWASM(WebAssembly)で高速に実行される、Polkadotで最初のスマートコントラクトプラットフォームです。
Polkadotのメインネットがローンチされると、PolkadotのParachainsの一つとして実装され、簡単にコードをデプロイすることができるようになります。
Edgewareの開発を行うCommonwealth Labsではガバナンスにも力を入れており、ETH保有者に対して90%以上のトークンを付与するロックドロップや投票などのオンチェーンガバナンスはEdgewareの大きな特徴の一つです。
Plasm
PlasmはSubstrate CoreとSRMLを利用した開発が行われ、Polkadotに繋げることのできるPlasmaチェーンであり、独自のSRMLでもあります。
このライブラリを利用することで、親のPlasmチェーンと接続できる独自のPlasmaチェーンを作ることができるようになります。
YouTubeでも既にデモ動画が公開されており、今後はUTXOモデルの対応などに力を入れていくようです。
まとめ
ブロックチェーンを一段階上のレベル上げるPolkadotと、それに関連してブロックチェーン開発を容易にするフレームワークであるSubstrateについて、できる限りで分かりやすく紹介しました。
Polkadotのメインネットは年内に控えていますが、これがローンチされると、取り巻くプロジェクトやエコシステムが増えていくことで、これまでとは違った進歩が見れると思います。
今後も、より一層注目が集まっていくプロジェクトになると思いますが、基本的な内容の理解に際して、本記事を参考にしていただければと思います。