こんにちは。ユーキムラです。
今日はインターオペラビリティプロトコルであるCosmosとPolkadotの話をしよう。
Cosmos
まずCosmosの正体はなんなのかというと、
「異なるブロックチェーン同士で、IBCというトークンを送る通信を、 Cosmos Hubというブロックチェーンを経由して、する」
たったこれだけの非常にシンプルなものです。全く難しくはありません。
ここでちょっと理解のある人はここで思うでしょう。
あれ?Tendermintは?
本質を言うと、CosmosとTendermintは分離可能です。
なぜか。
確率的ではなく決定的なファイナリティをもつブロックチェーンであれば、IBCさえできればTendermintでなくても別にいいからです。
言い換えれば、確率的ではなく決定的なファイナリティを持つブロックチェーンをつくるためにTendermintを標準的に使っているだけなんですね。
確率的ファイナリティ
確率的ファイナリティファイナリティについて丁寧に補足しておきましょう。
ブロックチェーンはときどき「reorg」と呼ばれる巻き戻しが起こります。これは「ブロックの承認がある確率で取り消させる可能性がある」からにほかなりません。
一方で、Tendermintのように決定的なファイナリティを持つブロックチェーンは、「一回ブロックが承認されると、巻き戻らない」ようになっています(この便利なものを手に入れた分、トレードオフとしていくつかの代償を払ってはいますが)。
Cosmosのようなインターオペラビリティネットワークでは、確率的ファイナリティのブロックチェーンが参加することはできません。
例えばチェーンAとそのネイティブトークンA’があったとして、チェーンBにトークンA’を送ったとしましょう。
で、チェーンAでreorgが起こり、チェーンAで「チェーンBにA’を送った」履歴が消えてしまったとしましょう。
これが、大問題になるわけですね。このように確率的ファイナリティはインターオペラビリティに使うことはできないのです。
Polkadot
PolkadotはCosmosと比べていくらか複雑です。
仕組みをかなり要約して一言で言うと、「異なるブロックチェーン(ここではパラチェーンと呼ぶ)同士で情報をやりとりするべく、リレーチェーンというチェーンでまとめてパラチェーンのブロックを承認する(マージバリデーションとここでは呼んでおく)」というものです。
このパラチェーンは、Substrate(ブロックチェーン開発キット)を使って作ることになります。
厳密にはCosmosとTendermintが分離可能であるように、厳密にはPolkadotとSubstrate分離可能なのではないか、と言われると、答えは「できる。ただしマージバリデーションを部分を実装できるなら」ということになるでしょう。
IBCより仕組みが複雑な分、わざわざ別のもので実装するのはTendermintよりも手間がかかるだろうということです。
両者の違い
仕組みは全く違いますが、やりたいことはだいたいどちらも同じで、利用者側はほとんど気にせず使えると思います。
しかしながら利用者側にも決定的と思われる差があります。マージバリデーションを標準的にしているかどうか、です。
Cosmosでは、IBCで相互接続するブロックチェーンのそれぞれのブロック承認は、それぞれのチェーンに任されています。
一方Polkadotでは標準的にマージバリデーションすることになっています(一応オプション的に独自のブロック承認を使うことはできるが標準的ではない)。
個人的な感想
個人的には、Cosmosのようにインターオペラビリティ要素とバリデーション要素は疎結合な設計としたほうが柔軟性が高い(Cosmosにも後付オプションでマージバリデーションのようなものはいくらでもつけられる。 Polkadotのようにオプションでマージバリデーションを外すのとは対照的)と考えています。
また、マージバリデーションの仕様上、リレーチェーンのバリデーターはバリデーション手数料を下げるインセンティブが働かないように見えます。パラチェーン側が入札かける感じで高値競争に陥るのではないか。
結果として、Polkadotに接続するブロックチェーンをつくるよりもCosmosに接続するブロックチェーンをつくるほうがはるかに安上がりになるような気がする。
最終的にはCosmosとPolkadot同士ですら相互にやり取りできるようになると思っているので最終的にはどうでもいいんですが、このへんを気づける人はまだまだ少ないように思います。
[…] https://yu-kimura.jp/2019/04/18/cosmos-polkadot/ […]