Cosmosの可能性

目次

    はじめに

    こんにちは!

    今回も前回に引き続きクロスチェーンのCosmosについて書いていきます。今回は、特にCosmosがどのように使われて、どのような可能性があるのかについて解説していきます。

     

    公式HP:cosmos.network

    ホワイトペーパー:github.com

    Cosmosの可能性

    相互運用性(Interoperability)とは

    相互運用性とは、異なるブロックチェーン同士の機能を掛け合わせて利用したり、取引所などの第三者を介さずに、様々な仮想通貨・トークンを交換したりすることができることです。

     

    ここでは、イーサリアム・ゾーンとジーキャッシュ(Zcash)・ゾーンがHUBに接続している場合を考えましょう。これらの仮想通貨はHUBのおかげで相互運用ができて、取引を秘匿したままイーサリアムのスマートコントラクトを実行することが可能になります。

    このように、相互に利用できることは非常にメリットで、いくつかのトークンや仮想通貨の特徴を掛け合わせて使うことができるので、様々な可能性を秘めています。

     

    Cosmosの基盤技術Tendermintとは

     

    Cosmosのブロックチェーンは、Tendermintと呼ばれるジェネリックエンジンで動いています。CosmosはTendermintをベースに作られているため、上記で述べた相互運用が可能になります(詳しくは後述)。そこで、この節では、Cosmosを支えているTendermintがどのようなものなのか解説します。

    Tendermintの特徴

     

    Tendermintは次のような特徴を持っています。

    • コンポーネント化された設計
    • ABCI後述)によって様々な言語で開発可能
    • 以上の設計によって独自ブロックチェーンを容易に実装可能
    • Proof of Stakeによるコンセンサスのためトランザクションの処理速度が早い
    • フォークしない
    • ファイナリティを得られる(フォークが起きないので後からブロックチェーンに刻まれた事実が覆らない。)
    • コンソーシアムチェーン、パブリックチェーンどちらも作成可能。

     

    Tendermintのアーキテクチャ

     

    Tendermintについて知るために、はじめにブロックチェーンのアーキテクチャについて確認しましょう。ブロックチェーンは、複数人が検証し、承認されたデータを送受信し合い、同じ台帳を共有するという特徴から以下の三つの要素が必要になります。

     

    ネットワーキング(networking)

    コンセンサス(consensus)

    アプリケーション(Application)

     

    ネットワーキングのレイヤーでは、全てのノードがユーザーによって発行されたトランザクションを受け取れるように設計されています。ノードは、トランザクションを受け取ったら、そのデータを用いてlocalのstateを変更するかどうか合意を取る必要があります。この部分がコンセンサスレイヤーです。合意が取れれば、実際にstateを更新します。この部分をアプリケーションレイヤーが担当します。このようにして、ブロックチェーンが機能します。

     

    そのため、分散型アプリケーションを開発者したい者にとってこれらを全て一から作ることは、骨が折れる仕事です。

     

    そこで、Tendermintはとても役にたちます。Tendermintを使うことでブロックチェーンのネットワーキングやコンセンサスアルゴリズムにリソースを割くことなくアプリケーションレイヤー層のみに集中して開発を行うことができるからです。Tendermintでは、PoS型のコンセンサスエンジンを備えたコンセンサスレイヤーとネットワーキングレイヤーが誰でも使える形で提供されています。(簡単なアプリであればすぐに動かせます。)

    したがって、Tendermintは、独自ブロックチェーンを作る時に必要な要素のうちアプリケーションレイヤー以外を提供する、ジェネリックエンジンです。Tendermintではこのように、ブロックチェーンに必要な各レイヤーがコンポーネント化されているため、より開発者が使いやすいような設計になっています。

     

    ABCI (Application Blockchain interface Interface)

     

    図のブロックチェーンのコンセンサスエンジンとアプリケーションロジックを繋ぐ役割をするのがABCIです。ABCIは、アプリケーションをあらゆるプログラミング言語で構築、処理することができるAPI、server socket提供します。

     

    Consensus

     

    前回の記事のCosmosでも紹介したように、Tendermintで構築したブロックチェーンはProof of Stakeアルゴリズムでコンセンサスをとります。PoSを用いるメリットは、Proof of Workアルゴリズムで発生する膨大な計算による電力消費を削減することです。

    Tendermintでは、誰がブロックを提案し承認するかを事前に決めることができます。Tendermintはブロックの伝搬とそのブロックをどのようなプロセスで承認するかを決めているに過ぎません。このときブロックを承認する人たちをバリデーターと呼びましたが, このバリデータをどのように構成するかは、アプリケーションレイヤーで決めることができます。そのため、どの程度のトークン保有者をバリデーターとして承認するか, バリデーターの選定を事前承認性にするかなどは、ブロックチェーンごとに決めることができます。すなわち、Tendermintは PoSとしてもPoA(Proof of Authority: 承認された人のみがブロックの追加をできるコンセンサスアルゴリズム)としても使うことができます。

     

    例えば、はじめに特定の人にトークンを渡しておき、コンソーシアムブロックチェーンとして作成し、徐々にそのトークンを外部の利用者に解放していくことで、アルゴリズムを変更せずにブロックチェーンをよりパブリックに変更していくことも可能になります。

     

    また、Tendermintのアルゴリズムは、処理能力に優れていて1秒当たり数千トランザクションを扱えます。

     

    さらに、tendermintにおけるコンセンサスではブロックの生成後すぐにファイナリティを得られます。(一度承認されたトランザクションは覆らないようになっています。)。これは、コンセンサスの方法が工夫されていて、選出されたプロポーザーが提案してブロックを二回の投票によって承認します。具体的には。バリデータの2/3が正しいブロックであるということを投票することで承認されます。もし投票が2/3以上集まらない場合や、設定された制限時間になっても承認が終わらない場合は、もう一度やり直すことになります。このようにして、ブロックチェーンは、フォークせずファイナリティーがすぐに得らる仕組みになっています。

     

    プロポーザーとバリデーターについては、Cosmosの記事を参考にしてください。

     

    また以下のサイトでは、Tendermintを用いて進行しているプロジェクトがまとまっています。

    https://forum。cosmos。network/t/list-of-projects-in-cosmos-tendermint-ecosystem/243

    異なるブロックチェーン同士をつなぐIBC(Inter Blockchain Communication)

     

    異なるブロックチェーン繋げることをブリッジングと言います。IBCは、このときブリッジとしてブロックチェーン同士が情報を容易に交換でき、相互に運用できるように機能します。このような相互運用を可能にするためにIBCでは、IBC Packetと呼ばれる統一された通信用プロトコルが定義されており, ブロックチェーンのデータはこのIBC Packet形式に準拠する必要があります。

    しかし、どのようなブロックチェーンでもデータ形式を変換してIBCを利用した通信ができるわけではありません。

     

    Tendermintは、先ほど述べたように、ネットワーキング、コンセンサスレイヤーを提供します。そのため、Tendermintを使うと異なるアプリケーションであるが、 ネットワーキング、コンセンサスレイヤーが同じであるブロックチェーンがいくつか生まれるわけです。IBCは、これらのTendermintを用いて作成されたブロックチェーン同士の通信を行うためのルールです。

     

    これらのブロックチェーンは同じ規格を使って作られているので、お互いに通信するのが容易です、さらに、ファイナリティーがすぐ得られるため後から取引が覆らず、以前に他のブロックチェーンに送った情報が覆ることがおきないので、相互運用に適しています。

    また、特筆すべき点としてプライベートチェーンとパブリックチェーンを繋げることも挙げられます。

    また, 既存のイーサリアムやビットコインを相互運用できるのかどうかが気になりますが, これも可能です。すぐにファイナリティーが得られるように、新しくイーサリアム専用のブロックチェーンを作ることによってうまくいきます。これについては後ほど説明します。

     

    異種のチェーンの接続による問題点

     

    様々なブロックチェーンが接続されることによって発生する問題もあります。その一つとして考えられるのが二重支払いです。例えば、ブロックチェーンAとBの間で通信を行いトークンAとBを交換する場合を考えます。このとき、取引に用いられるトークン AがブロックチェーンAと接続している他のブロックチェーンでは使われていないかを確かめる必要があります。

     

    具体例として100個のブロックチェーンがそれぞれ相互に接続された場合を考えます。この時に存在する接続の組み合わせは、100C2=4950個 になります。非常に多くの接続が行われることになり、これらを全てチェックするのはとても時間がかかり非効率です。そこで考え出されたのがCosmosHUBです。Cosmosを間に入れることで、100個のブロックチェーンは全てCosmosHUBを介した接続がされるので、接続数は全部で100個に収まります。また、このHUBであるCosmosのブロックチェーンで異なるブロックチェーン間でのトークン交換や、相互運用の記録を残すことによってより安全で不正が起きないシステムが実現されます。取引などの二重支払いがないかどうかは、Cosmosのブロックチェーン1つだけを調べればいいことになります。

     

    ETGate

    はじめに述べたとおり、既存のブロックチェーンを繋げるには、まずゾーンに繋げる(ブリッジする)必要があります。

    イーサリアムの場合、ETGateと呼ばれる技術を用いることによってイーサリアムブロックチェーンとTendermintゾーンの間で双方向のやりとりができるようになります。

    この仕組みは、簡単には以下のようになっています。

    まず、イーサリアムは、ブロックがよくフォークするのでブロックが途中から覆る場合があります。もし、他のブロックチェーンとトークンの交換をしてからブロックチェーンが覆ると、二重支払いが可能になってしまいます。そのため、取引が覆らないことを保証するためのブロックチェーンを作る必要があります。それがPeg-Zoneです。

     

    Peg-zoneでは、オリジナルのチェーンのファイナリティーを決める閾値を設定します。

    例えば、イーサリアムの場合は、トランザクションを行ってから100ブロックが承認されれば、ブロックチェーンが覆る確率は、ほとんどないので100ブロックという閾値を設定するわけです。この閾値に達したら、イーサリアムのスマートコントラクトによって,

    Peg-Zone上に同量のイーサリアムに対応するトークンが露出します。もちろん、Peg-Zoneはtendermintによって作られているので、IBCを用いて他のトークンと交換可能になるわけです。

     

    HUBとZone

     

    前節で説明したようにCosmosでは、異なるブロッックチェーン(Zone)をつなげるためにCosmosHUBを用いてトランザクションの管理を行います。この様子を図解すると以下のようになります。

    異なるアプリケーションがABCIによってTendermintと通信をしながら、Tendermintは、異なるブロックチェーンとIBCを通して通信を行う。これがCosmosの全容です。

     

    問題点

    当然ですが、課題もあリます。CosmosはTendermintを用いたProof of Stateを採用しているため、少数の組織が莫大な資金を投じることによってネットワークを攻撃する可能性があります。その影響はCosmosだけでなく、接続されている他の全てのブロチェーンに影響が出る恐れがあります。また、Cosmosには懲罰制度としてスラッシャーという機能が実装されています。スラッシャーは、バリデーターが不正な行為をしたり、バリデーターノードが6時間以上ダウンした場合、バリデーターおよび、当該のバリデーターに委託していたデリゲーターのステークトークンを没収するアルゴリズムです。そのため、大規模な通信障害や、故障等でマシーンが動かなくなりステークしていたトークンを失う可能性があるので、バリデーターになるには、現状かなりのハードルがあります。

    まとめ

     

    今回と前回では、クロスチェーンを実現しようとしているCosmosのプロジェクトについて取り上げました。ブロックチェーンのインターネットがどのように実現され、どのように活用されるか期待が高まります。

    reference

    https://cosmos.network/

    https://blog.cosmos.network/

    コメントする

    メールアドレスが公開されることはありません。