CosmosJapan
Published in

CosmosJapan

Cosmos Hub Theta Upgrade(2022 Q1)で変わること-Interchain accounts編-

この記事では、2022年Q1にCosmos Hubにて予定されているアップグレード、Theta Upgradeに含まれるInterchain accountsについて紹介と解説をおこなっていきます。

はじめに

2021年はIBCの実装が完了し、Cosmos Hubをはじめとして、様々なチェーンが実際にIBCを用いて繋がり始めた記念すべき一年となりました。

これにより、DPoS(Delegated Proof of Stake)を実現するためのコンセンサスエンジンであるTendermint、誰もが簡単に自分でブロックチェーンを作ることができるようにするCosmos SDK、そしてそれらを用いて作成されたチェーンをトラストレスに接続するためのプロトコルであるIBC(Inter-Blockchain Communication)の基本的な実装が完了し、Cosmosのホワイトペーパーで最初に示されたものは全て揃いました。

IBC適応後もCosmosの中心的な存在であるCosmos Hubにて継続的なアップグレードが行われており、Cosmos Hub上で稼働するDEX、Gravity DEXの追加や、Cosmos HubとEthereumとの接続に用いるGravity Bridgeへの適応が行われています。

2022年においても、2022年1月18日現在、四半期ごとにCosmos Hubのアップグレードが予定されており、2022Q1にはTheta Upgradeが予定されています。

本記事ではそのTheta Upgradeの中から、IBCの体験を大きく向上させると期待されるInterchain accountsの紹介と解説をおこなっていきます。

また、今後もTheta Upgradeに限らず、Cosmosに追加される機能の紹介や解説をシリーズ化して記事を出していく予定ですので、Cosmos JapanのMediumアカウントまたは、Twitterアカウントをフォローしていただければ幸いです。

主な参照元

本記事においては主に以下の、提案者による解説記事やICS27という規格を参考にしております。コードレベルでの仕様等を確認したい方は参照してみてください。

概要

Interchain accountsとは、一言で表すと”IBCを用いてあるブロックチェーンのアカウントが他のブロックチェーンのアカウントを安全にコントロールすることを可能にする機能”となります。

これにより、Cosmos内のブロックチェーンの各機能の連携がとても簡単になり、ユーザーとしても各チェーンごとにアカウントを管理する手間が省けるようになります。

今現在、Interchain accounts適応前のCosmosにおいて、あるブロックチェーンから他のブロックチェーンへのアプリ機能の実行は、(不可能ではないですが)なかなかスムーズに実行できる環境ではありません。

例えば、ある人がAチェーンにあるAトークンをBチェーン上のDEXを用いてBトークンに交換したい場合、IBCを使って、Aチェーン上の自身のアカウントからBチェーン上の自身のアカウントにAトークンを送金し、改めてBチェーン上の自身のアカウントからBチェーン上のDEXにて、AトークンをBトークンに替える必要がありました。交換したBトークンを元のアカウントで持っておきたい場合は、さらにBチェーンからAチェーンに送り返す必要もあります。

Interchain accountsが適応されることによって、この一連の流れがAチェーン上から一回のトランザクションで済ませることが可能となります。あるチェーンから他のチェーンの機能をスムーズに実行できるようになるのです。これはInterchain accountsによって、あるチェーンのアカウントから、他チェーンのアカウントを”安全に”扱うことができるため可能となります。

“安全に”というのは、

  • 自分のアカウントから操作する接続先チェーンのアカウントを、別のチェーンや他のアカウント経由して作成されることはない。
  • 自分のアカウントからIBCを介して指示した内容のみ、他チェーンの自分のアカウントにて実行される。

ということを意味しています。簡単にいうと、自分のものは自分のものであり、その資産や機能実行する権利を他人にそれが脅かされないようになっているということです。

このように他チェーンの機能を安全に、スムーズに実行できるようになることで、今までできなかった様々なことが実行可能となります。

上記参考に挙げた提案者による記事においては、あるチェーンから別のチェーンに対してステーキングの指示ができるInterchain Staking、Ethereum上のコントラクトウォレットのように資産管理を可能にするInterchain Wallet、別チェーンにあるトークン同士をチェーンを跨いで直接売買するCross-chain token swaps、複数チェーン上に展開されるDAOであるMultichain DAOsなどの機能が簡単に実装できるようになるだろうと説いています。

なぜこのInterchain accountsが今重要なのか

2021年3月のCosmos HubのIBC対応後、それを追うようにCosmos各チェーンがIBCに対応し、互いにトークンの送金が可能となりましたが、このIBCへの対応は各チェーンによってタイミングがバラバラとなっていました。

特に、IBCの実装が完了する以前から経済圏やそれを支える機能が成長していたTerraやSecret Network、Kavaなどのチェーンは比較的IBCへの対応が遅れました。それらの理由の一つとして、既に実装している独自の機能をIBCに対応させるためには、多くの開発コストが必要だったということが挙げられます。

現在、IBCを用いた仕様や機能についての規格は、ICS(Interchain Standard)に定められており、現在進行形で様々な規格が提案、議論、制定されています。IBCに対応したチェーン間でトークンを送り合うことができるのも、このICSの中のICS20という規格に各チェーンが対応しているからです。

Cosmos内の各チェーンやこれから新しく登場するチェーンは、Cosmos内で自身のチェーンの機能を十二分に活かすためにも、それぞれが持っている機能をそれぞれでICSに対応させる必要があります。これは先に説明したIBC対応と同じく、開発において大きなコストが発生しますし、既に安定して稼働している機能を作り替える場合、意図しない脆弱性を生む可能性が懸念されています。

これらの課題を解決し、各チェーンのIBC対応速度を早めてくれるのがInterchain accountsなのです。

具体的にどういう仕様なのか

https://twitter.com/TheInterchain/status/1163217199487565824

Cosmos内のチェーンは基本的にCosmos SDKを用いて実装されています。Cosmos SDKはレゴブロックのように機能ごとに作られたモジュールの組み合わせによって一つのブロックチェーンが構成される仕組みとなっています。
具体的には、各アカウントの残高を管理するモジュール、ガバナンスを管理するモジュール、Stakingに関するモジュール、コンセンサスを管理するTendermintモジュール、そのチェーン独自の機能を管理するモジュール、IBCに対応してくれるIBCモジュール、などなど、様々なモジュールが存在します。

IBCに対応するにはIBCモジュールを新しく組み込んであげる必要がありました。(現在ではCosmso SDKにデフォルトで入っています。)

そして、Cosmos内のIBCの仕組みとして、各チェーンが各チェーンのIBCモジュールを用いて他のチェーンと通信を行っているという特徴があります。(上図参考)

Interchain accountsを適応しない現在までの仕様だと、このIBCモジュールが他のチェーンから受け取ったトランザクション(Message)を、各モジュールに渡し、渡した先でトランザクションが実行される仕様となっています。IBCモジュール自体がトランザクションの仕分け作業をしてくれるわけです。しかし、IBCモジュールはあくまでもチェーン間の通信を行うプロトコルでしかないので、渡すトランザクションが渡す先の機能(モジュール)で正しく実行できるか、ICSに対応したものなのかなどは確認してくれません。

また、ブロックチェーンごとに実装する機能(モジュール)は違うので、通信プロトコルでしかないIBCモジュールを各チェーン固有の仕様に実装し直してしまうと、IBCモジュール自体のアップデート対応が難しくなるため、トランザクションを受け取る側の各機能モジュールをICSに対応する必要がありました。

Interchain accounts機能は、このIBCモジュールと各機能モジュールの間に入り、今までIBCモジュールがやっていた仕分け作業と、IBC対応を代わりに担ってくれる部分となります。これのおかげで、各ブロックチェーンの開発者はモジュールの機能実装する際、時間をかけてICSに対応させる必要がなくなったのです。

具体的には、Interchain accounts モジュールが、IBCモジュールから受け取ったトランザクションを、IBCを利用した特殊なトランザクションとしてではなく、IBCを利用していない普通のトランザクションのふりをさせて、必要なモジュールに渡してくれるものとなっています。この普通のトランザクションのふりをさせる部分に、トランザクションを送った元のチェーンのアカウントのみが制御できるInterchain accountを利用することとなっているのです。ここの理解が一番難しいかもしれません。先にも言ったように、IBCモジュールと各機能モジュールがやりたくなかったことをInterchain accountsがまとめて肩代わりしてくれて、それによって機能実装やIBC対応が簡単になると理解できれば大丈夫です。

おわりに

ここまで、 Cosmosの技術的仕様や規格等にも触れながらInterchain accountsについて紹介&解説を行ってきましたが、IBCに最適化した規格であるICSも並行して制定されていくため、実際はICSが細かく決まるまでの間にも、Cosmosでの相互作用の恩恵を受けられるよう最低限整備しておこうというものがこのInterchain accountsであると筆者は理解しています。

まず2022 Q1にCosmos Hubに適応される予定ですが、今後Cosmos Hubだけでなく様々なチェーンに適応されるはずです。これにより今までにないインターオペラビリティを用いたブロックチェーンの活用方法も現れると考えているので、大きく期待しております。

皆さんも一緒に、Cosmosの世界がどう広がっていくかを想像してみると楽しいかもしれません。

最後まで読んでいただきありがとうございました。

CosmosJapanでは、今後積極的にCosmosの日本語での良い発信を見つけ次第Twitter等で拡散させていただく予定となっています。
書いた記事やツイートまとめなど、もし拡散してほしい場合は、#CosmosJapan のハッシュタグをつけてツイートしてみてください。

皆さんのツイートや記事を楽しみにしております。

--

--

Cosmos公式に関する情報を中心に日本語の情報発信を行います。

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store