こんにちは。
Cosmos関連情報の発信を絶賛強化中です。やっていきます。
前回記事では、IBCの仕様ICSを網羅的に説明しました。
今回の内容はというと、Cosmosのよくある疑問をQ&A形式で説明していきます。公式ドキュメントやら読んでも起きてしまう疑問というのは必ずあるので、このような経験則的な形でよくある疑問を整理するのは効果的だと思われます。
ではいきます。
Q.Cosmosはブロックチェーンですか?
A.違います。Cosmosはネットワークの名前です。Cosmosは単一のブロックチェーンの名前を示すものではありません。Cosmos Hub(コードネームGaia)はブロックチェーンですが、Cosmosはブロックチェーンではありません。
Q.Cosmos Hubとはなんですか?
Cosmos Hub(コードネームGaia)はブロックチェーンです。「概念としての”Hub”」の実装の一つとして、Cosmos Hubが存在します。
“Hub”は、様々なブロックチェーンからのIBC通信の仲介経路となります。このときのIBC通信の元・先となるブロックチェーンを”Zone”と呼びます。
Q.Zoneがよくわかりません
A.つまずきポイントの一つです。なぜつまずきやすいのか、確固たる証拠はありませんが、”Zone”という概念が、”Hub”という概念に対する相対論でしか存在しえないからだと思っています。
ようは、”Hub”というものがあってこそ「なにがZoneであってなにがZoneでないのか」がわかるのであり、”Hub”が存在しないことにはそれがわかりません。
なので先に”Hub”の定義をしっかり確認しましょう。先ほど言った通り、”Hub”は、様々なブロックチェーンからのIBC通信の仲介経路となります。様々なブロックチェーンからのIBC通信の仲介経路となるブロックチェーンが、”Hub”なのです。
“Hub”が理解できれば、”Zone”は簡単ですね。”Hub”をIBC通信の仲介経路として使う様々なブロックチェーンのことをZoneといいます。
つまずく人は、”Hub”の理解をまず固めてみましょう。
Q.Cosmos Hubは必須ですか?
A.必須でないです。Cosmos Hubは、”Hub”の実装例の1つであり、Cosmos Hubそれ自体はIBCの仕様に含まれるものではありません。
IBCの仕様がまずあって、それに則ってCosmos Hubが作られているだけであり、IBCの仕様はCosmos Hubに何ら依存していません。
Cosmos Hubのような”Hub”は、誰もが自由に開発することができます。
ここが面白いところで、Cosmosは”何らかのブロックチェーンに対する従属”を強制することが一切ありません。なぜならCosmosはIBC通信で形成されたネットワークにすぎず、IBCもまた通信のプロトコルにすぎないからです。
コラム
人間心理って、有機的な性質を持つと感じる”系”に対しては、そのアイデンティティを認識し、別個体と強く区別しますよね。しないですか?
だからビットコインだとかイーサリアムだとかリップルだとかネムだとかポルカドットだとか、そういう自律分散性に由来した有機的な性質を感じ取れるシステムは、”ただのソフトウェア”という本来無機的なものであるにもかかわらず、人はアイデンティティを認識し、区別し、愛着を持ち、推しができ、時にはdisり合いをします。
ということもあり、「すべてのブロックチェーンがビットコインのレイヤー2になる(つまりすべてのブロックチェーンがビットコインに依存する)」とか、「すべての分散アプリはイーサリアムのレイヤー2になる(イーサリアムに依存する)」だとか、そういうことを主張したり考えるのは自由ですけども、実現するかというと多分しないわけです。
人が推す有機体なんてものは人の選好の多様性により多様性をもって分布します(そもそもを言えば何から有機的な性質を感じ取るかも人によって違うが)。
そういう有機的な性質をもつシステムが、合理性だけをもって統一が達成されるか、ということなんですね。
一方、IBCはただの通信に関する規格です。「トークン」「コイン」とも論理的な関係がありません。IBCに有機的な性質を感じ取る人は、ブロックチェーンに対して有機的な性質を感じ取る人に比べて、多くはないのではないでしょうか。
無機体としてのIBCを標準仕様としさえすれば、自分の推す有機体は自由に選べるというのが、Cosmosのポイントなのです。Cosmosにはいかなるブロックチェーンに対する依存も存在しません。いかなる有機体への依存も強制しません。
Q.有機体無機体わかりにくいわボケ
A.はい。
イメージとしては、例えばUbuntuとか、Fedoraとか、CentOSとか、そういうLinuxディストリビューションにはブランドがあり、有機的な性質があるじゃないですか。でも、Unixシェル自体に有機的な性質を感じ取る人は、ディストリビューションに有機的性質を感じ取る人と比べて少ないじゃないですか(もちろんゼロとは断言できない)。
MacOSにはブランドがあるじゃないですか。でもUnixシェル自体に有機的な性質を感じ取る人は、ディストリビューションに有機的性質を感じ取る人と比べて少ないじゃないですか。
過激なリンゴ信者が世界をMacOSで統一しようだなんていいだしたら、戦争が起きますよね。でも、誰かがUnixシェルで統一しようって言っても、戦争は起こりにくいというか、すでにだいたいそうなってますよね。WindowsもWSLですり寄ってきてるし。
ようするに有機的な性質を持つ系は、人間心理的に大統一がしにくいです。しかし多くの人が有機的な性質を感じないものは、統一がしやすく、利便性を損なわないような標準化がしやすいのですね。
Q.Polkadotとなにが違うの?
A.Polkadotはパラチェーン(Zoneに相当)がリレーチェーン(Hubに相当)にマージバリデーションをしてもらうことで、リレーチェーンを経由した相互運用を実現するものです。だいたいあってる。
しかしながらPolkadotでもマージバリデーションを取り外して独自バリデーションをもたせることもできますし、Cosmosでもシェアードセキュリティという名でマージバリデーションをすることが後付けでできますから、マージバリデーション/シェアードセキュリティの有無はCosmosとPolkadotの違いにはなりません。
しいて言うならPolkadotは有機的な性質を帯びていて、有機体としてファンも多い、ということでしょう。リレーチェーンというブロックチェーンに対する依存が仕様として含まれるからです。
一方CosmosのIBCは相対的に無機的です。そこが違いです。Cosmos Hub(Gaia)は有機的な性質がありますが、CosmosネットワークはCosmos Hub(Gaia)に依存しないので、中心的な影響力としては強くありません。
Q.アトミックスワップによる相互運用はすでにあるけど?
A.冒頭紹介の前回記事でいった通り、IBCはブロックチェーンをまたいだトークン送信をするだけの機能ではありません。
アトミックスワップとは、Hashed Time-Lock ContractsいわゆるHTLCを使ったアレです。
ようはAさんからBさんへの送金と、BさんからAさんへの送金を、どちらも”自分が受け取りだけして送金をせず逃げる”という不正を暗号学的にできないようにしたものです。これを2つのチェーンで同時にやることも容易いので、これが相互運用とか言われたりします。
これはそんな新しい技術ではないですし、IBCとは全くの別物です。アトミックスワップよりもっと可能性があるので、IBCをぜひ調べてみてください。
Q.Cosmos SDKとはなんですか?
A.IBCに対応したブロックチェーンを簡単に開発することができるブロックチェーン開発キットです。コンセンサスアルゴリズムとしてはTendermintが使われます。
Q.CosmosにはTendermintが必須ですか?
A.必須でないです。冒頭紹介の前回記事に書いてある通り、IBCはTendermintとは別のコンセンサスアルゴリズムを利用しても正しくIBC通信の結果を検証できるような仕様を備えています。
対応できるコンセンサスアルゴリズムも無限に増やせます。インターフェースに従えばいいだけですからね。
Q.CosmosにはCosmos SDKが必須ですか?
A.必須でないです。IBCを独自に実装するのであればCosmos SDKを使わなくてもIBC通信ができます。
もちろん、Cosmos SDKを使えばIBC機能を備えたブロックチェーンを比較的簡単に作ることができます(絶対的に簡単とは言ってない)。
でも、Cosmos SDKを使いたくないという嗜好を持っている方でも、Cosmosは、IBCは、使えるのです。
Q.従来のブロックチェーンはどうつなげんの?
A.元のブロックチェーンと、資産の複製を防止しつつ残高をやりとりできるIBC対応ブロックチェーンを作り、そのIBC対応ブロックチェーンからIBCによって別のブロックチェーンにトークンを送信できます。
このようなIBC対応ブロックチェーンはPegZoneと呼ばれます。
もちろん、従来のブロックチェーンにIBC機能を付け足すアップグレードがなされた場合、PegZoneは不要になります。
ただし、従来のブロックチェーンにファイナリティがあるだけでIBC機能があるわけではない場合、PegZoneを設けないとIBCの通信をすることはできません。
Q.なんでこんな発信してんの?
面白い技術だから以外に理由はない。みんな応援よろしくお願いします。