TECHNOLOGY

Cosmosの可能性

Cosmosの可能性

2018/06/21 at 10:40 AM 0 comments
はじめに こんにちは! 今回も前回に引き続きクロスチェーンの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/
クロスチェーンは新しい時代を作るか?

クロスチェーンは新しい時代を作るか?

2018/06/21 at 10:19 AM 0 comments
はじめに こんにちは! 暑くなったり寒くなったり、仮想通貨の価格も安定したと思ったらまた急に下がったりですね、、 今回は、最近注目度と期待度が上がってきているクロスチェーンを実現するCosmosについて3回の連載を通して解説していこうと思います。このプロジェクトは今年2018年の4月にICOを行い、17,000,000USDの調達目標がわずか27分で達成しました。このことからも期待されていることは確かです. 今回の記事ではCosmosの構成要素や用語について解説し、次回はその利用と詳しい仕組みについて解説していきます。   公式HP:cosmos.network ホワイトペーパー:github.com Building an “Internet of Blockchains” Cosmosはブロックチェーンのインターネットを作るプロジェクトです。 Cosmosはブロックチェーンのネットワークを作り、長年の仮想通貨やブロックチエーンの課題であったスケーラビリティの問題、取引所のハッキング問題を解決する目的で開発されています。さらに、ブロックチェーン同士の相互の運用や利用をできるような仕組みも提供してくれます。 Cosmosの最終的な目的は、ブロックチェーンを簡単に開発でき、スケールしやすく、コイン・トークン同士が相互に接続されたブロックチェーンのインターネットを作ることです。 Cosmos のアーキテクチャー Cosmosは最近よく叫ばれているブロックチェーンの問題を一気に解決する可能性を持っています。 クロスチェーン クロスチェーンとは、異なるブロックチェーン間の橋渡しをして、相互に運用できることを実現するブロックチェーンのことです。このクロスチェーン取引が実現すれば、取引所などの第三者を仲介させずとも、低リスクで仮想通貨の交換や、特定のコイン同士の機能を掛け合わせて使うことができます。しかし。現状では、異なるブロックチェーンにおける仮想通貨の交換は、取引所などに依存し、クロスチェーンによる運用は行われていません。   相互運用(Interoperable) Cosmosにおいてインターオペラブル(Interoperable)という概念はとても重要です。これは、異なるブロックチェーンを双方向に運用できることを表し、Cosmosのブロックチェーンはこれらの橋渡しとなるクロスチェーンとして機能します。 この相互運用は、zoneと呼ばれる複数のブロックチェーンによって可能になります。 相互運用のためにzoneを作成することで、ブロックチェーンシステムをCosmosのHUBに接続し、仲介業者を必要とせずに、これらのzone間でトークンの交換ができるようになります。 たとえば、ビットコインをGolemに交換したい場合について考えていきましょう。ほとんどの取引所でGolemと交換できる仮想通貨はイーサリアムです。 なので、日本の取引所でまずビットコインをイーサリアムに交換し、このイーサリアムを海外の中央集権的な取引所に送金しそこでGolemと交換する必要があります。しかし、この方法は手間もかかる上に、ハッキング、盗難などのリスクもあります。CosmosのHUBを通すことで、このようなからGolemへの交換も、取引所を介さず、すぐに、より安全に行うことが可能になります。   Golemについては、【β版公開】Golemの仕組みと展望〜次世代のビジネスモデル〜を参考にしてください。   スケーリングソリューション スケーリングはブロックチェーンの未解決の問題の一つです。現在のトランザクションのスピードだとイーサリアムとビットコインは、VisaやMastercardなどの決済ネットワークのトランザクションのほんの一部のみしか支えることができません。 対照的に、Cosmosの基盤技術であるTenderminとIBCは、Cosmosのブロックチェーンを無限にスケーリングすることを可能にします。Tendermintの上に構築されたzoneは、1秒間に何千ものトランザクションを処理できます。しかし複数の人々がzoneを使用すると、今まで同様、多くのトランザクションを処理しなくてはいけなくなり、トランザクションが処理しきれなくなり溢れてしまいます。 スケーリングソリューションは様々ありますが、Cosmosではシャーディングと呼ばれる手法がスケーリングソリューションとして提供されています。シャーディングでは、別の同一のzoneをHUBに追加しトランザクションを分散して処理することで、トランザクションの処理速度を倍増させます。 分散処理ではトランザクションによって処理するzoneは異なりますが、Cosmos HUBに接続されることで接続されているzone同士の同期が保証されます。   シャーディングに関しては、イーサリアムのスケーラビリティ問題とその解決策 を参考にしてください。   Cosmosは、Tendermintを通して新しい仮装通貨の設計、既存の仮想通貨を相互運用できる形へアップグレード、分散型取引所のための手段、スケーラブルスマートコントラクトのプラットフォームとして多くのユーザーに利用されるようになります。 Hub Cosmosネットワークにおける最初のブロックチェーンは、Cosmos HUBです。 Cosmos HUBは、IBC(Inter Blockchain Communication)と呼ばれるブロック間通信のプロトコルによってzoneに接続し、各zoneのトークンの交換などを記録します。すべてのzone間転送はCosmos HUBを経由するため、zone間での流動性の高い交換や信頼できる第三者を必要としないトークン転送を迅速かつ安全に実行できます。 Cosmos HUBは、各zoneがIBCプロトコルを実装している限り、さまざまな種類のzoneに接続できます。例えば、プライベートチェーンのトークンAからのパブリックチェーンのトークンBにも交換できます。   Cosmosは、ビットコイン、イーサリアム、ZCashなどの多種多様な通貨とスクリプト言語を使用することができます。 Cosmosは単なる分散台帳ではなく、Cosmos HUBを通して様々なトークンが相互に交換できたり運用することができるプラットホームです。また、このプラットホームとなるHUBは誰か一人が作れるわけでなく、誰でも独自のHUBを作れるような設計になっています。   Proof-of-Stake Cosmosのブロックチェーンネットワークは、新しいブロックを検証しブロックチェーンに追加するバリデータたちによって構成されています。 ビットコインなどのProof-of-Workシステムでは、バリデータはマイナーと呼ばれ、マイナーが次のブロックを生成する確率は、その計算能力に比例します。 対照的に、Cosmos HUBは、Proof-of-Stakeというアルゴリズムを採用しています。これはバリデータの保有するトークンの量に依存するコンセンサス・アルゴリズムの一種です。   Cosmos Hubで使用される2つのトークン Atom Cosmosネットワークにおいて主に用いられるトークンは、Atomと呼ばれるトークンです。Comos HUBの場合、バリデータが次のブロックを生成するためのProposerに選出される確率は、バリデータがロックアップした(すなわちステークした)Atomトークンの割合によって決まります。 これらのAtomは、バリデータ自身でロックするか、デリゲータと呼ばれる検証作業をしたくない人や、検証作業を実行できない人が、Atomをバリデータに委託することでロックされます。 バリデータのロックしたAtomと委託されたAtomの合計をステークと呼びます。バリデータとデリゲーターは、Atomをロックアップし検証作業に参加することで、報酬としてAtomトや、Photon(後述)、そしてホワイトリストに記載された各種のコイン・トークン建てで取引手数料を受け取ります。 もし、ロックアップしたAtomを回収したい場合は、3週間のロックアップ解除期間を待つ必要があります。(ホワイトリストは,Atomの斬新な特徴の一つです.Atomでは,バリデーターが指定したホワイトリストにのっているトークンであれば手数料として支払いができます.そのため,イーサリアムの送金の手数料としてビットコインを使うこともできます.)   また、Atomをバリデータに委託したデリゲーターは,バリデータに対して手数料を払う必要があります。この手数料はバリデータが決められます。そこで、デリゲータはこの手数料や、安全性を考慮してバリデータを選び委託します。 まとめると、Atomは以下に示す役割を持っています。   Cosmos上でのステークに用いられる。 このステークの全体に対する割合に応じて、新規ブロック生成の提案権(Proposer)、新規ブロック生成の提案に対する投票権(Validator)が得られる。 ステークされているAtomは不正などを行うと没収される。 Cosmos内(ZoneやHub)での手数料として用いられる。   Photon AtomはCosmos HUBでのロックアップ用に設計されています。 これは、Atomが手数料を支払うことやCosmos エコシステムで他のzoneに送金されるようなことは想定していないといことです。 このことがPhotonトークンを導入する理由です。 PhotonトークンははAtomよりもはるかに大きな流動性と速度を持つ手数料支払い用のトークンです。 Photonは、Atomの後にHUB上で二番目にホワイトリストに追加されて、手数料として使うことができるトークンです。そのため、PhotonはHUBに接続されているすべてのzone間を流動性高く移動するようなトークンです。 このようにすることで、Atomの流動性を下げて価格をあげ、Atomの買い占めによる不正を防ぐ役割を担っています。   Cosmos内(ZoneやHub)での手数料   最近では、このように一つのシステムの中で使えるネイティブトークンが複数あるようなモデルをマルチトークンモデルと言ったりもします。    ホワイトリスト ここまで二つのトークンについて述べてきました。その中で少し触れましたが、CosmosHUBでは、AtomとPhoton以外にも他のコインやトークンでトランザクション手数料を支払うことができます。これは、Cosmosの利点の一つでCosmos HUBを使うユーザーはAtomなどのトークンを持たなくてもビットコインやイーサリアムで手数料を支払うことができます。どの通貨が手数料として使うことが出来るかはホワイトリストに記載されています。また、このホワイトリストへの新しいトークンの追加はHUBに参加しているバリデータの投票によって決まり決まります。   Cosmos Hubの参加者 Cosmos HubにはValidatorとDelegatorの2者がいます。それぞれの役割を解説します。 Validator Cosmos HUBのバリデータは、ブロックチェーンに追加される新しいトランザクションブロックを作成する責任があります。 しかしバリデータになることは簡単ではありません、技術的な知識とハードウェアへの投資が必要だからです。 また、バリデータになるには、多くのAtomを持っている必要があります。メインネットローンチ時には、バリデータの数は100に固定されています。実際、バリデータになる意思があり、かつ最も多くのステークを持つTop100 に入っているアドレスだけがバリデータとなることができます。(ネットワークではTendermintのProof of Stakeベースの合意形成の性質上、バリデーターの数が増えると合意形成時のコミュニケーションが複雑になりネットワークが遅くなってしまうことから、バリデーターの数は当初の100から300を上限に毎年13%ずつ増やす計画だとしています。)そのため、このランキングの上位に入らないほとんどの人はバリデータになれず、代わりにデリゲーターになり、バリデータ候補のうちの誰かにAtomを委託することになります。。またこのバリデータ選出のランキングでは自分のAtomのstakeのみではなく、自分に委託されたデリゲーターからのstake分を合計した総Atom量(stake)が計算に用いられます。   また、バリデータが二重に署名したり、頻繁にオフラインになったり、ガバナンスに参加していない場合、そのステークしたAtom(委任されたユーザーのAtomを含む)は削除できます。このようなペナルティの度合いは違反の重大性に依存して決定されます。 Delegator 十分なAtomを保有していないために、バリデータとして検証を実行できない、または十分Atomを保有しているがバリデータを担いたくない人は、引き続きデリゲーターとして検証プロセスに参加できます。 デリゲーターの役割は、バリデータの報酬条件や安全性を考慮してAtomの委託先を選ぶことです。 まとめ Cosmosの登場人物について理解することで次の記事がずっと読みやすくなると思います! 次回は、Cosmosでどのようなことができて、それがどのような仕組みで実現できるかについて書いていきます。   reference https://cosmos.network/   ーーーーーーーーー記事は上部までーーーーーーーーー