タグ: "PoS"

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/   ーーーーーーーーー記事は上部までーーーーーーーーー  
ビットコインやイーサリアム等のブロックチェーンを書き換える「51%攻撃」のコストは安い?

ビットコインやイーサリアム等のブロックチェーンを書き換える「51%攻撃」のコストは安い?

2018/05/30 at 6:25 PM 0 comments
51%攻撃に必要な費用を算出したサイトが登場しました。昨今、PoWを採用しているいくつかの仮想通貨がこの被害にあっています。なぜ51%攻撃は発生してしまうのか。それには意外と安価なコストで行えるといった裏事情が存在することが一つの理由なのかもしれません。今回記事では、その価格帯を紹介します。 最近、いくつかの仮想通貨が51%攻撃の被害にあっています。それに伴い、仮想通貨の相場価格は全体的に下落しました。その51%攻撃が発生してしまう理由は、それら仮想通貨のPoW (Proof of Work)プロトコルが原因です。51%攻撃とは、端的に説明すると、ブロックチェーンにおいて、誰かが全体の50%以上の計算量を持つことができた場合、彼らは自分たちにビットコインの支払いが行われるような不正な取引にブロックの情報を書き換えて、誰よりも早く計算結果を見つけてブロックに繋げてしまうことです。 この51%攻撃を起こすためのコストが思いのほか安価であることが、話題となっています。 51%攻撃に必要な費用 Crypto51.appというサイトが、各仮想通貨に51%攻撃を1時間行い、二重支払いにより不当に利益を得る際にかかるコストを算出しました。その時間内で、一般的なPoWチェーンでは6つ以上のブロックを生成することが可能です。 (1時間当たりにおける51%攻撃価格表 引用:https://www.crypto51.app/) 「Crypto51.app is a new website that tracks the theoretical cost of launching a 51% attack on a Proof of Work coin. It calculates the cost of attacking each coin for an hour, during which time it should be possible to confirm six or more blocks, for a typical PoW coin, and to use this window to push through double spend transactions before depositing these funds at an exchange.」(引用:https://news.bitcoin.com/you-can-now-51-attack-a-coin-for-as-little-as-500/) 時価総額20位以内の仮想通貨でも約$500 時価総額10億ドルを超えるBytecoinに対して51%攻撃を仕掛ける場合においても、そのアルゴリズムの特徴と低いハッシュレートのおかげもあり、たったの$557で行うことが可能です。 「Bytecoin has a $1 billion market cap and is a top 20 cryptocurrency, but could be 51% attacked for a mere $557 thanks to its choice of algorithm and low hashrate. Bitcoin private, recently backed by professional shiller John McAfee, could be attacked for just $778. Ever since verge was attacked twice in two months, in between successful attacks on bitcoin gold, monacoin, and possibly electroneum, miners have been on the lookout for signs of another attack. Only today, May 29, verge is reported to have suffered its third 51% attack.」(引用:https://news.bitcoin.com/you-can-now-51-attack-a-coin-for-as-little-as-500/) まとめ 現実的に51%攻撃を行えるのか確証と保証はありませんが、以上のサイトの計算上では可能なようです。確かに、仮想通貨によってそのアルゴリズムはまちまちであり、ハッシュレートにも差が生じています。その結果、ビットコインゴールドやモナコインに生じた攻撃が発生しているのは疑いもない事実です。この問題を解決するイーサリアムプロジェクトが実装中のPoSのような技術を、その他仮想通貨も取り入れていく必要があるのかもしれません。 「In reality, there is no guarantee that a one-hour attack would work, as this would quickly be detected and exchanges placed on high alert for any suspicious deposits. 」(引用:https://news.bitcoin.com/you-can-now-51-attack-a-coin-for-as-little-as-500/)
EOSの価格上昇、イーサリアム(Ethereum)とEOSの相違点

EOSの価格上昇、イーサリアム(Ethereum)とEOSの相違点

2018/05/15 at 11:29 AM 0 comments
近頃、仮想通貨市場全体がバブル崩壊から回復しきれていない中、現在時価総額5位に位置付いてるEOSの価格は日々上昇しており、最高値を更新し続けています。 EOSとイーサリアム(Ethereum)は両者とも、DApps(分散型アプリケーション)が開発され、それが動作するために設計されたスマートコントラクトを実装したプラットフォームです。EOSのプロジェクトが成功すれば、イーサリアムプラットフォームを基に開発されたERC20の様なトークンが生まれると言うことです。 イーサリアムとEOSは、考えの相違から様々な面で異なる特徴を持ちます。この記事では両者の特徴とEOSの将来性について分析します。 イーサリアムとEOS:特徴の比較 コンセンサスアルゴリズムの違い 両者の異なる点として多く挙げられるのが、コンセンサスアルゴリズムの違いです。 イーサリアムは現在POWからPOSに移行することを計画(メトロポリスの次の段階であるセレニティで移行すると言われている)しています。これに対しEOSは、DPOS(Delegated Proof of Stake)を採用しています。 DPOSとはエコシステムにより選出された少数の人(21人)のみが、マイニングやコンセンサスに参加できるというコンセンサスアルゴリズムです。限られた人のみがコンセンサスプロセスに関わるため、一見分散化が実現できていない様に思えます。しかしPOWやPOSでもマイナーはマイニングプールと呼ばれる、マイナーのグループに所属する事になります。 結果的にこれはマイナーがどのマイニングプールを選択するかという”選挙形式”となっており、DPOSと類似するシステムであるとも考えられます。 傍観主義的アプローチ VS スタンダード機能の内蔵 イーサリアム・ネットワークは、Vitalik Buterin氏が中心となって開発された全てのアプリケーション開発に対応したプラットフォームです。イーサリアム設計原理書はイーサリアムに初期設定がなく、ユーザーが自身でコントラクトにサブプロトコルを付け加え、独自の機能も開発する事を求めるとしています。この傍観主義的なアプローチが柔軟性をもたらし、アプリケーションの機能肥大化による効率低下を避けます。 これに対しEOSは、開発者が自社のビジネス面の機能に集中できるように、暗号アルゴリズムや、アプリ/ブロックチェーンのアクセス機能があらかじめ内蔵されています。これによりブロックチェーンに精通していない開発者も、時間や資金をかけることなくアプリケーションを作成することができます。 フォークによるコミュニティの統一性 VS Graphene technology イーサリアムは規範を遵守する事を重視し、コミュニティ内で大きな見解の相違が生じた場合、DAO事件と同じくフォークにより解決します。この解決方法を採ることにより、コミュニティの統一性を保ち、ネットワークの効率化を高める事ができます。 EOSはDelegated Proof-of-Stake (DPOS)合意メカニズムを用いる、Graphene technology Scalabilityを利用します。このメカニズムはハードフォークの際、チェーンが分岐し競合チェーンが生まれる事を防止します。さらに、EOSは法的拘束力のある第三者機関を取り入れ、コミュニティ内における争いを解決し、ステーク加重投票制で自己資金によるコミュニティのアプリケーション開発に関する決断を下します。 GAS VS 0フィー イーサリアムは、計算処理、データ保存、バンドワイズ使用の際、GASというフィーを支払う必要があります。必要とされるフィー(GAS)の額は変動し、マイナーはフィーが高いトランザクションを選択することができます。開発者たちはGASの低価格化と、マイナーが GASの大きさをもとにトランザクションを選択できない様にする計画を進めています。 EOSは所有権モデルを採用しており、EOSトークンの所有者は、発行されているEOSトークンを占める自身の所持割合だけネットワークのバンドワイズ、ストレージ、処理能力の一部を所有する事ができます(全体の5%のEOSトークンを所有する場合、システムの5%を所有し、これを自由に利用することができる)。 ユーザーは予測可能な量のネットワーク・バンドワイズと処理能力が提供され、EOSを追加で購入することにより、これらをアップグレードする事ができます。ネットワークの取引手数料はゼロ(イーサリアムで言うGASはなし)であり、開発費用を徴収される事もありません。DAppsを無料で使うことを可能にしているのです。アプリ開発側としても、無料で使えるほうがユーザー獲得に有利なはずです。 トランザクション数 イーサリアム・プラットフォームは現在、約毎秒15のトランザクション処理が可能です。今後は、POSへの移行、Raiden、Plasmaなどを実装することによるスケーラビリティ問題の解決を計画しています。 EOSはストレステストで毎秒10,000-100,000トランザクションを処理することに成功しました。またシステムの並列化により、何百万ものトランザクションを可能にしネットワークのスケーラビリティを向上する事を目指しています。 ヴィタリックのEOS批判 Reddit上のイーサリアムに関するスレッドで、自身が開発したEOSプラットフォームが可能なトランザクション数とそのシステムの柔軟性からイーサリアムのそれより優れていると主張するDan Larimerに対し、イーサリアムの顔であるヴィタリックが反論しました。 ヴィタリック氏はEOSが多数のトランザクションを処理できることは認めましたが、マークルツリーのセキュリティ性を無視する形で実現していると批判しました。(マークルツリーについての説明はこちら) ヴィタリック氏は、EOSプラットフォームは一般のユーザーがシステムを監査するには自ら大規模なハブを購入する必要があり、稼働させない限り不可能なシステムを構築していると主張しています。さらに、EOSの分散型システムDPOS(Delegated Proof of Stake;EOSコインの所有者が投票により選出されたマイナーだけがマイニングする)はシステムに関わる人全体が投票しなければ成り立たないとも指摘しています。投票を動機付けるメカニズムが作り出されなければ、投票結果はかなり偏ったものになると予想されます。1つのマイナーグルーブがマイナーの座を独占する様なことがあれば、もはやプラットフォーム として成り立たなくなることは明らかです。 またヴィタリック氏はフィーについて、取引可能量は所持しているコインの量に比例することから、資金力のないユーザーにとって、システム上で取引する際に必要なコインは途方もない金額となるとして批判しています。 価格の上昇 EOSチームが、7月2日にメインネットのローンチを発表した事により、4月20日から1週間で約60%の上昇をみせました。ビットコイン、イーサリアム、リップルなどの代表的な仮想通貨が下落前の半分以下の価格で停滞しているなか、EOSは1月に記録した$18.00を越えて$22.00付近まで上昇しました。 まとめ 理論上ではEOSは、イーサリアムの高いフィー、スケーラビリティ問題を解決する次世代のプラットフォームであり、より優れているものだと考える人も多いでしょう。確かに手数料がかからず、イーサリアムの何倍ものトランザクション数を処理できることはかなり魅力的です。 しかしEOSのプラットフォームはメインネットにまだローンチしておらず、イーサリアムが実際に稼働しているプラットフォームを持つことを考えると、EOSがイーサリアムと同規模までに発展することはまだ先だということがわかります。 DPOSは消費エネルギー、スピードなど様々な面で優れていますが、本当に成り立つかは、実際に稼働してからわかることでしょう。
イーサリアムブロックチェーンの仕組み PoSが解決すること

イーサリアムブロックチェーンの仕組み PoSが解決すること

2018/01/25 at 7:06 PM 0 comments
この2回の連載記事では、仮想通貨イーサリアムやビットコインブロックチェーンの基本的な仕組みと、その核となる考え方 ”コンセンサスアルゴリズム”  について簡単に解説します。 前回の記事ではブロックチェーンの仕組みと、コンセンサスアルゴリズムであるPoW、そしてその問題点について触れました。 2回目の本記事ではPoWが持つ、51%攻撃、マイニングコスト、スケーラビリティなどの問題を解決する可能性を持つコンセンサスアルゴリズム、Proof of Stake (PoS) について解説します。 Proof of Stake(PoS)の仕組み PoSを直訳すると、”所持金額による証明” となります。PoSを採用している仮想通貨では、ブロックチェーンに新しいブロックを追加する際、よりその通貨を所有している金額が高い人ほど、ブロックをチェーンに繋ぎやすくなる仕組みです。 PoWとの違い 前回の記事で書いた通りビットコインが採用しているPoWでは、より多くの計算を行った人が計算問題の答えを見つけて、ブロックを繋いで報酬を得ることができました。対してPoSでは、計算能力によってではなく、元々持っている通貨の量によって計算の成功率が変わってきます。前回同様に数独を例にすると、PoSでは持っている通貨の量に応じて最初に与えられる問題の難しさが違う、つまり既に埋まっている数字の数が違うことになります。 上図を見ると、右の問題の方が簡単に解けそうな事は一目瞭然です。 またPoSアルゴリズムではどんな人でもある時間のうちに行える計算の回数が決まっています。そのため、PoWの様に計算が難しい分を高性能な計算機を用意して太刀打ちするということはできず、計算を成功させる可能性を上げるには純粋にその通貨の保有量を増やす必要があります。 PoSのメリット PoWに対して、PoSは直感的に分かりにくいと感じた人も多いのではないでしょうか。なぜ保有量に応じて問題の難易度を変える必要があるのでしょうか?ここからは、PoSの仕組みを利用するメリットの側面からこの疑問に答えます。 51%攻撃を行う目的を無くす PoWでは、ネットワーク全体の計算力の50%以上を持つことによって不正な取引情報をブロックに追加することが可能です。これを「51%攻撃」と呼びます。PoSでは、保有する通貨の量でマイニングの可能性が決まるので、同じように全体の通貨の50%以上を保有することによって「51%攻撃」を仕掛けることは依然可能です。しかしPoSでは51%攻撃ができる立場の人がそれを踏みとどまるような仕組みが確立されています。 もしある通貨の50%以上を持つ人が、51%攻撃によって不正な取引情報が入ったブロックを誰よりも早くブロックチェーンに繋げたとしましょう。その時確かに、攻撃を仕掛けた人はその取引によって不正にそのブロック内の通貨を得ることができます。しかし攻撃を仕掛けた直後には、攻撃された側がその不正を暴いてしまい、その事実を世界中に発信するでしょう。 この攻撃の事実が知れ渡ると通貨の信用は大幅に下がってしまい、これは通貨自体の価値(価格)の暴落を招きます。 結果として攻撃を仕掛けた人は、不正なブロックによって多少の通貨を得られても、自分が元々保有していた50%以上の通貨の価値が暴落してしまうため、結局はトータルで損をします。 この様にPoSでは51%攻撃ができる人は攻撃をするメリットが無く、51%攻撃は起こらないとされています。また資金的に考えても、ある通貨の50%以上を保有する事は容易ではありません。 莫大な電気代・専用装置を必要としないマイニング PoSでは、計算できる量に制限があることから、PoWの様に膨大な計算を行うコンピューターを必要としません。よって、マイニングに大量の電力を消費するといった事も起こらなくなります。 実際のPoSでのマイニングは非常にシンプルで、一般的に使用されているコンピューターにPoSを行うソフトウェアをインストールして、常時起動しているだけです。 前回の記事で、PoWでは莫大な電気代がかかる為に電気代の安い中国でマイニングが集中している問題を書きましたが、PoWでは通貨を保有さえしていれば良いので電気代などの地理的な条件でマイニングが集中することも無くなります。 その一方で、例えばイーサリアムの様な市場規模が非常に大きな通貨の場合、ある程度の量の通貨を保有できる人は大口の投資家、大企業、又は初期段階で大量にその通貨を購入して保有し続けた人(多くの場合はこれも大口投資家や開発者達)と限られてきます。そのため、やはり一部の人たちが殆どのマイニング報酬を寡占してしまう問題が指摘されています。 スケーラビリティへの対応 ビットコインでは利用者が多すぎる為に、リクエストされた取引をシステムが処理しきれない”詰まり”問題が発生しています。これはPoWシステムの弱点と言えます。詳細はこちらの記事に解説がありますが、PoSを採用することによってサイドチェーンやシャーディングといったスケーラビリティ問題を解決するアルゴリズムをシステムに組み込むことが可能になります。 PoSが持つ問題点 Nothing at Stake Nothing at Stakeを直訳すると”掛け金がない” という状態です。PoWでは不正なブロックを作るのにも、ある程度のコンピューターで時間をかけたマイニング作業が必要です。特に既にブロックチェーンに書き込まれた情報を書き換えようとすると、それ以降のブロック全ての計算を解き直す必要があるため、そのようなハッキングはかかる手間を考えると現実的ではありませんでした。 しかしPoSでは、もしある程度の通貨を保有していれば簡単に、手間を要さずにブロックを作る事が可能になります。これは彼らにとって、なんのリスクもなくハッキングが可能になることになります。これをNothing at Stake問題と呼びます。 Long-range攻撃 PoSアルゴリズムが持つ別の問題としてLong-range攻撃があります。もしあるPoSアルゴリズムを採用する通貨で、初めの頃のブロックに記録されている通貨を全体の1%程度の少量でも持っていれば、そこから不正なブロックチェーンをNothing at Stakeな状態で長く繋いでいくことができ、簡単に本物のチェーンと同じ長さのものを作ってしまう可能性があるという問題です。この問題の仕組についてはイーサリアムの生みの親Vitalik氏によって解説されています。 “A version of this attack also exists for naively implemented proof of stake algorithms. In a naively implemented proof of stake, suppose that there is an attacker with 1% of all coins at or shortly after the genesis block. That attacker then starts their own chain, and starts mining it. Although the attacker will find themselves selected for producing a block only 1% of the time, they can easily produce 100 times as many blocks, and simply create a longer blockchain in that way. ” (引用:https://blog.ethereum.org/2014/05/15/long-range-attacks-the-serious-problem-with-adaptive-proof-of-work/) イーサリアムのPoS移行 イーサリアムでは、ホワイトペーパーに則ってFrontier, Homestead, Metropolis, Serenityの4段階に分けて主要なアップデートが予定されています。現在は、2017年10月にMetropolisの中のByzantiumへのアップデートが完了し、次期constantinopleへのアップデートを待っている状態ですが、その次のSerenityへのメジャーアップデートではコンセンサスアルゴリズムをPoWからPoSへと変更する予定です。 イーサリアムのMetropolisや全体のロードマップについてはこちらの記事で詳細に解説しています。 イーサリアムでは、基本的なPoSアルゴリズムに独自の要素を加えたCasperと呼ばれるPoSアルゴリズムの開発が進んでいます。このCasperアルゴリズムでは基本的なPoSの流れを汲むことで、スケーラビリティへの対策を打ちつつ、Nothing at Stake, Long-rangeといった問題への解決策が組み込まれています。既にCasperのテスト版は稼働しており、PoSへの移行への準備が着々と進んでいると考えられます。 Casperのαテスト版は2017年12月31日から稼働しており、Karl Floersch氏のTwitterで稼働中の様子が報告されています。 Casper testnet stats! So much love to all the Casper implementers on the Ethereum research team! @changwu_tw, @ChihChengLiang, @davidlknott, @jon_choi_, and of course @VitalikButerin ❤️ pic.twitter.com/LIt60NjLm4 — Karl Floersch (@karl_dot_tech) 2017年12月31日 まとめ 如何でしたでしょうか、簡潔ではありますが本連載でブロックチェーンの基本的な仕組みから始めて、核となる考え方であるコンセンサスアルゴリズムについて主要な方式であるPoWとPoSの基本やその特徴について解説しました。
イーサリアムのスケーラビリティ問題とその解決策

イーサリアムのスケーラビリティ問題とその解決策

2018/01/24 at 7:47 PM 0 comments
本記事ではイーサリアムのスケーラビリティ問題とその解決について説明します。そもそもスケーラビリティ問題とは一体何なのでしょうか?なぜイーサリアムは“詰まって”しまうのでしょうか? なぜイーサリアムは詰まるのか イーサリアムに関わらず、ビットコインをはじめとする仮想通貨はブロックチェーンと呼ばれる分散型台帳システムに取引(トランザクション)の記録を書き込むことによって動いています。ある一定時間内におけるトランザクションは、最新のブロック(ブロックチェーンの先頭)に書き込まれることになりますが、書き込むことができるトランザクションの量(容量)には限りがあります。よって、あるブロックに収まりきらなかったトランザクションは、次のブロックに書き込まれるのを待つことになります。 例えば、一つのブロックは10件のトランザクションを取り込めるとし、100件の未承認のトランザクションが存在するとします。現在のブロックは10件しかトランザクションを取り込めないため、ブロックに入ることが出来なかった残りの90件のトランザクションは、次回以降のブロックを待つことになります。この状態においては全てのトランザクションが承認されるのは9ブロック先となります。(実際には常に新しいトランザクションが発生しているため、9ブロック先までに取り込まれる保証はありません。) イーサリアムのブロック生成時間は15秒~17秒と言われており、1ブロック待つ程度であれば人によっては気にならないかもしれません。しかしこれが1ブロック、2ブロック…と待たされることになると、トランザクションが“詰まった”と感じるユーザーが多くなるでしょう。 最近はこのトランザクション詰まりが頻発するようになってきており、それに対する解決策の導入が期待されています。このことを「イーサリアムのスケーラビリティ問題」と呼んでいます。このスケーラビリティ問題に関して私たちができることは、イーサリアム送金時の手数料を高めに設定することぐらいです。これは高い手数料が付加されたトランザクションほどブロックに取り込まれやすいためです。 ここで”一度に取り込めるトランザクション数を増やせば良いのでは?”と思いつく方もいるかもしれません。一つの方法としてブロックの容量を増やす必要があります。しかし単純にブロックサイズを大きすることには次のようなデメリットがあります。 それはマイニングに関わる者(マイナー)に、より高性能な計算機リソース(ストレージ容量、通信速度...etc)が求められることです。マイナーには個人から企業まで様々な規模が存在します。しかし肥大化したブロックチェーンの処理が、企業のような大規模マイナーでしか処理できないようになってしまうと、イーサリアムネットワークの分散化が妨げられ中央集権化が進む恐れがあります。これはイーサリアムにとって望ましい状況とは言えないでしょう。 数字で見るトランザクション詰り ここで実際にどれほどのトランザクションがイーサリアム上で実行され、詰まっているのかを確認してみましょう。 次の図はイーサリアムのトランザクション数の日時推移を示したものになります。一目見て分かるように、トランザクションの数は2017年の7月あたりから大幅に増加していることが分かります。グラフを見る限り、このままトランザクションの数は増え続けることが考えられます。 (12月12日午前11時点 引用:https://ethgasstation.info/gasguzzlers.php) 一方で、下図はPending transactions Queueの数、つまりどれだけのトランザクション数が詰まっているか(送金待ちか)を示したグラフになります。2018年1月12日~2018年1月17日の状況が掲載されており、1分間あたり2万~3万件ほどのトランザクションが詰まっていることが分かります。 (引用:https://etherscan.io/chart/pendingtx) トランザクション詰まりの要因 トランザクション詰まりが起こる根本的な原因としては、ある一つのブロックに書き込めるトランザクションのデータ量に限りがあることは先に述べた通りです。ここでは、トランザクションのデータ量が増えてしまういくつかの要因について説明します。 ユーザー数の増加 トランザクションの数が増える要因として、真っ先に思い浮かぶのがユーザー数の増加です。具体的にイーサリアムを利用しているユーザーの人数を正確に知ることは難しいので、代わりにイーサリアムのアドレス数で考えてみましょう。下図はイーサリアムのアドレス数の増加を示したグラフになります。 (12月12日午前11時点 引用:https://etherscan.io/chart/address) 2018年1月18日現在、アドレス数は2200万を超え、約20万/日の勢いで増加しています。さらにグラフの傾きを見ると急激にアドレス数が増加していることが分かり、今後も増え続けるものと考えられます。ユーザー数が増加している背景としては、イーサリアム上で動作するアプリーケーションの開発(ICO,Dapps)が活発化していること、イーサリアムの価格が高騰していることなどが挙げられます。これらに関しては下記の記事が参考になるでしょう。 「ICOが変える世界(2017年概況と2018年再加熱の可能性)」 「2018年イーサリアムとDAppは飛躍するか?」 「【イーサリアム】2017-2018 相場高騰 価格変動 チャート」 当然、ユーザー数(アドレス数)が増加すればするほど、トランザクションの数も増えることになります。一方で、イーサリアムの一つのブロックの容量は簡単に増やすことができません。ですので、多くのユーザーが一度にイーサリアムの送金を試みた場合(価格が暴騰、暴落した場合など)、トランザクションが詰まる状況が発生してしまいます。 ICO, DAppの増加 イーサリアムは、ブロックチェーン上で動作するアプリケーションのプラットフォームを目指してこれまで開発を続けてきました。簡単にトークンの発行/スマートコントラクトの実行ができることから、ICO(Initial Coin Offering/新規仮想通貨公開)やDApp(Decentralized Application/分散型アプリケーションサービス)にイーサリアムが用いられています。 これらのアプリケーションの実行には、当然イーサリアムのブロックチェーンを利用することになります。そうするとイーサリアム自身は単純に「送金情報」のトランザクションを取り込むだけでなく、「送金+様々な情報(スマートコントラクト)」のトランザクションを取り込む必要があります。最近はICOやDAppの数が爆発的に増加していることもあり、それ自体は悪い事ではないのですが、イーサリアムに対して負荷となっています。 ノード数 イーサリアムをはじめとする仮想通貨の多くは、P2Pと呼ばれるネットワーク上で動いています。P2Pネットワークを結ぶ一つ一つの点をノードと呼ぶのですが、イーサリウム上には32,000ほどのノードが存在しています。これらノードには様々な種類がありますが基本的にはトランザクションの処理 – 検証作業(マイニング)および情報の伝搬- を行なっています。 ノードの数が多いことは、それだけネットワークが分散化しており、非中央集権化されているということになります。このオープンなネットワークは、誰でも参加できるものであるがゆえ、各々のノードのスペック(処理速度、通信速度…etc)は大きく異なります。低スペックのノードはそれだけトランザクションの処理・伝搬が遅く、ネットワークにとっては足手まといになってしまいます。なぜならトランザクションはすべてのノードの行き渡り検証される必要があるからです。 このノード数という点に関しては、分散化とトランザクションの処理速度はトレードオフの関係にあります。また今後イーサリアムの拡大に伴い、各ノードに求められるスペックが上がってくると、当然脱落するノードも出てきます。こうなるとある特定のノードしかトランザクションを処理することができなくなり、非中央集権化→中央集権化の流れが進むことになってしまいます。 スケーラビリティ問題の解決策 今後のイーサリアムの発展のためには、非中央集権化とセキュリティーを維持しながら、トランザクションの処理速度を上げていく必要があります。現在、スケーラビリティ問題に対してどのような解決策が考えられているのでしょうか?いくつかの手法がオフチェーン処理、オンチェーン処理として考えられています。 オフチェーン処理における解決 まずオフチェーン処理とはそもそもなんでしょうか?オフチェーン処理とは、本来ブロックチェーン上で処理されるトランザクション(の一部)を、ブロックチェーン外で行うことです。これによって、ブロックチェーン本体で処理されるトランザクションの情報量を減らすことができ、トランザクションの処理速度を高めることができます。 プラズマ(Plasma) プラズマは、イーサリアムのブロックチェーンから不必要なデータを取り除き、トランザクションを高速化することを試みているプロジェクトです。プラズマは2017年8月にイーサリアム創設者のヴィタリック氏によって発表されました。 現在起きているスケーラビリティ問題は、イーサリアムのブロックチェーンにトランザクションの全ての情報が記録されてしまうことが原因とも言えます。そこでブロックチェーンに記録されるデータ量を減らしてあげることが一つの解決策となりえます。 階層構造を持ったサイドチェーンをブロックチェーンとは別に用意することで、トランザクションの拡張が可能です。後述するライデンネットワークは、マイクロペイメント(少額支払い)に焦点を当てた解決策ですが、プラズマはより複雑なトランザクション処理に焦点を当てているためイーサリアム上で動作するDApp等が恩恵を受けられると考えられます。 ライデン(Raiden) ライデンとは、現在イーサリアム上で処理されているEtherやERC20に準拠したトークンの送金をオフチェーンにおいて行うスケーラビリティ解決策です。ライデンネットワークの導入によって、イーサリアムの1秒あたりのトランザクション数の引き上げとトランザクション手数料の引き下げが可能とされています。主にライデンネットワークはマイクロペインメントをターゲットとしており、以下のような特徴を持った支払いが可能です。 高速性:1秒以内に送金完了 安い手数料 秘匿性:ブロックチェーンには個々の取引は記録されない 拡張性:100万トランザクション/秒 ライデンネットワークに参加するユーザーは、送金の際にある金額のEtherをデポジットし、支払いのための専用チャンネル(ペイメントチャネル)を開きます。このペイメントチャネルを利用することによって二者間の送金が実質無制限に(ただしデポジット金額を超えない範囲で)行えます。 取引の途中経過は記録されず、最終的な結果のみがメインのブロックチェーンに記録されます。また複数のユーザー間における送金もカバーしています。ライデンネットワークはマイクロペイメントに焦点を当てているため、イーサリウム上で動作するDApp等はその恩恵を受けづらいと考えられます。 オフチェーン解決策として、プラズマおよびライデンを取り上げましたが、これらの技術は実装に向けて開発中の段階で、実用化の目処は今のところ公表されていません(2018年1月23日現在)。 オンチェーン処理における解決 オフチェーンの対義語として、オンチェーンが挙げられます。オンチェーンとはブロックチェーン自身のことを指しており、本記事における”オンチェーン処理における解決”とは、イーサリウムのプロトコル基盤自身を変更することを指しています。 PoSの導入 現在、イーサリアムの合意形成(トランザクションの検証作業)はプルーフ・オブ・ワーク(PoW)と呼ばれるアルゴリズムによって行われています。しかし将来的にはプルーフ・オブ・ステーク(PoS)と呼ばれるアルゴリズムに移行することが予定されています。 簡単にPoW/PoSの違いを述べると、PoWはトランザクションの検証作業(マイニング)に最も貢献した者が報酬をもらえますが、PoSは仮想通貨をより多く、そして長く保有している者が報酬をもらえる仕組みになっています。 より詳細なPoW/PoSの仕組みに関しては、こちらの記事が参考になります。 「ビットコイン&イーサリアムブロックチェーンの仕組み PoWの特徴と課題」 PoWからPoSへ移行することによって、検証作業に割かれる時間がなくなりブロックの生成時間を早めることが出来ます。結果として、1秒あたりに処理できるトランザクションが増えるため、スケーラビリティ問題を解決する一つの手段になりえるでしょう。 シャーディング ノード数増加において、検証作業を担う全てのノードが全部のトランザクションの処理を行う必要があると述べました。これではイーサリアムネットワークの処理能力は一つのノードの処理能力と同じになってしまいます。そこでイーサリアム創設者のヴィタリック氏が提唱しているのがシャーディング(Sharding)です。 シャーディングとは、処理すべきトランザクションをいくつかのシャード(Shard:破片)に分割し、それをいくつかのノードが集まったグループが役割を分担しながらトランザクションを並列的に処理することです。普段は割り当てられたトランザクションのシャードをグループごとで処理し、定期的にその結果をグループ同士で同期し合うことになります。 このシャーディングによって、大幅に処理速度を上げることができ、スケーラビリティ問題を解決することができると考えられています。なおこのシャーディングの導入にはセキュリティの観点からPoSの導入が前提とされています。シャーディングにPoSの導入が必要な理由は以下の記事に分かりやすくまとめられています。 「シャーディングは、全てのノードが全てのトランザクションの検証作業を行うのではなく、複数のノード群でトランザクションの検証作業を役割分担していくことでした。つまり、それぞれのシャードごとに状態が異なり独立して成り立っています。なので、少ないマイナーのハッシュパワーによってセキュリティが維持されているシャードに対して、攻撃が簡単になってしまうという問題があります。例えば、シャードAとシャードBをという2つのシャードに分かれて検証作業を行っているとします。そして、シャードAが全体の10%のハッシュパワーを持っていて、シャードBが90%のハッシュパワーを持っている場合、シャードAに対してはたった5.1%のハッシュパワーで51%攻撃が可能になってしまいます。」(引用:https://zoom-blc.com/sharding-ethereum)
ビットコイン&イーサリアムブロックチェーンの仕組み PoWの特徴と課題

ビットコイン&イーサリアムブロックチェーンの仕組み PoWの特徴と課題

2018/01/19 at 5:20 PM 0 comments
近年ブロックチェーンは革新的な技術だと騒がれ、そんなブロックチェーン技術をベースにした仮想通貨が大きなトレンドになっています。なんとなく多くの人が認知しているブロックチェーンですが、その仕組など技術的な部分を調べてみるとなかなか難しく理解しずらいと感じている方が多いのではないでしょうか。 そこでこの2回の連載では、ブロックチェーンの基本的な仕組みとその核となる考え方 ”コンセンサスアルゴリズム”  について簡単に解説します。第一回目の本記事のテーマは「 ビットコイン&イーサリアムブロックチェーンの仕組み PoWの特徴と課題」です。第二回目の記事「イーサリアムブロックチェーンの仕組み PoSが解決すること」はこちら。 ブロックチェーン ブロックチェーンとはその名前の通り、ビットコインなどの取引のデータの塊、つまり “ブロック” を ”チェーン状” に連ねたものです。新しい取引データは新しいブロックとなりブロックチェーンに繋がれていきます。 ビットコインやイーサリアム等の仮想通貨のブロックチェーンはインターネット上で世界中に公開されており、誰でも同じ一つのブロックチェーンを信用して取引内容を確認することができます。 ここで、誰でも ”同じ一つのブロックチェーンを信用して” 取引できる仕組みがブロックチェーン技術の革新的な所です。この仕組みが無いと人によって異なるブロックチェーンを信用したり、そもそもブロックチェーンの内容を信用できなくなったりしててしまい、そのデータを信用した仮想通貨の取引等は行なえなくなってしまいます。 ここからどのようにして同じ一つのブロックチェーンを信用するのかを解説します。 ブロックチェーンに新しいブロックを繋げる方法はとてもシンプルです。手順は、まず新しいブロックを作りその中に取引の情報を入れます。チェーンを繋げる際には、一個前のブロックの情報と、ある計算問題の答えをブロックの中に一緒に入れなければなりません。 この計算問題は答えを見つける事はとても難しく、答えが合っているかどうかはとても簡単に確かめられるという特徴を持っています。数独がとても良い例になります。 数独は3x3のマス、縦、横の列全てで1~9までの数字を1回づつ使ってマス目を全て埋めるゲームです。答えを探すには色々なパターンの数字を入れてみるので時間がかかる一方で答えを見ればそれが合っているかどうかはとても簡単に確かめられます。 またあるブロックでの計算問題は”一つ前のブロックの情報の一部を使って問題が作られている” という仕組みがあります。例えば新しい数独の問題に前のブロックの数独の答えの一部を持ってくるような感じです。(但し実際には数独ではなくハッシュ関数という暗号理論が用いられています。) このように問題が順番に解かれることで繋がっているブロックチェーンは、それぞれのブロックの中の数独の答えが合っているか確認することで、正しく繋がっているチェーンなのかを確認できます。 正しいブロックかを確認するのは簡単ですが、内容を自分に有利な様に書き換えようとすると、書き換えたブロックの次のブロックの計算問題が変わってしまうので問題の答えも書き換えなければなりません。更に、この問題の答えが変わるということは、その次のブロックの問題も変わるので…と言った具合に、既に繋がっているブロックの情報を改ざんするには途方もない計算問題を解き直す必要が出てきます。これは内容を改ざんする事は事実上不可能だということです。 このようにブロックチェーンの内容は改ざんが途方もなく難しいので、あるブロックチェーンに記録された取引情報は信頼することができます。 そしてブロックチェーンでは、更に”幾つかの正しいブロックチェーンがある時は、一番長く繋がれた物が正しいので皆で信頼する” というルールがあります。これに皆が従うことで「同じ一つのブロックチェーンを信用して」取引できることになります。 ブロックチェーンの世界では、世界中の至る所にブロックを繋げる計算に挑戦する人がいますが、その半分以上が悪巧みを考えていない正直な協力者だと考えています。もしこれが本当であれば、いつでも悪巧みを考えている人より正直な人たちの集団が作ったブロックチェーンが一番長くなることになります。 コンセンサスアルゴリズム ブロックチェーンに新しいブロックを追加する作業を通称 ”マイニング” 、それを行う人を ”マイナー” と呼びます。仮想通貨ではマイニングをすることによって、新しい取引の記録をブロックチェーンに記録し有効にし、またマイニングに成功した人(計算問題の答えを見つけた人)はその時に報酬として新しく発行された仮想通貨を貰うことができます。 コンセンサスアルゴリズムとはこのマイニングをする際に、誰がどうやって問題の答えを見つけるのかを決めているルールです。 実際のコンセンサスアルゴリズムには代表的なものとしてビットコインが採用しているProof of Work (PoW)やイーサリアム(現在はPoWを採用)が今後採用予定のProof of Stake (PoS)があります。 Proof of Work(PoW)とは? Proof of Workでは世界中のマイナーが同じ計算問題を解きます。計算問題には特に攻略法は存在しないので、ただ繰り返し適当に数字を入れてみて合ってるか検算するしかありません。この繰り返しをより多くするほど答えを見つける可能性が上がるので、マイニングはどれだけ多くの繰り返し計算ができるかの競争になります。 Proof of Workの問題点 Proof of Workは計算の競争を続けることでブロックチェーンの信頼性を上げる革新的な方法としてビットコインの発明者 ”サトシ・ナカモト” によって提唱されました。(Bitocoinのホワイトペーパーでは半ページ程でPoWについて説明されています。) しかしPoWには幾つかの問題があると言われています。 51%攻撃 ブロックチェーンでは、マイナーの半分以上(50%以上)が悪巧みを考えていない正直な協力者だと考えました。しかし、もしそうでなかったら、つまり誰かが全体の50%以上の計算量を持つことができた場合、彼らは自分たちにビットコインの支払いが行われるような不正な取引にブロックの情報を書き換えて、誰よりも早く計算結果を見つけてブロックに繋げてしまうことが可能になります。 これは通称 ”51%攻撃” と呼ばれており、Proof of Work の根本的な問題点だとされています。CoinDeskによると過去には、Ghashという当時最大規模のマイニング業者のマイニング量が全体の50%を超えそうになり、ビットコインの価値(信頼)が大きく下がるという事が発生しました。 マイニングに掛かるコストの増加 ビットコイン等のマイニングに掛かる電気代は急激に上昇しています。当初ビットコインは研究者やエンジニアの研究や実験として2009年に始まりました。しかし、それが通貨として認知され始めると、一気にビットコインを使おうとする人や、マイニングに参加して利益を得ようとする人が増えました。 ビットコインは計算問題の難しさが自動でコントロールされる設計になっています。よって、もしより沢山のマイナーがビットコインを得る為に計算してブロックを繋ごうとすると、自動的に計算問題が難しくなります。数独で言うと、最初のマス目の空白が増えることになります。 問題が難しくなるにつれて、マイナーはより高性能なコンピューターを用意したり、沢山のコンピューターを用意したりする必要が出てきます。一般的に沢山のコンピューターを繋げたり性能を上げたりすることで消費電力は高くなります。 事実、ビットコインマイニングにかかる電力は急上昇しており、Expressによる記事では既にデンマーク一国分の消費電力に相当し、このペースで上昇を続けると2020年までに全世界の消費電力に追いついてしまうとも言われています。 これはマイナーが高い電気料金の支払いを強いられるだけでなく、環境面でも非常に深刻な問題です。 限られたマイナーによる寡占 計算の難しさが上がるに連れて、かつては家庭用のコンピューターでも出来たマイニングが、普段では使用しない様な高性能なコンピューターが必要になり、しまいにはASICと呼ばれるビットコインの計算問題だけに特化した装置を使わないと利益が上がらなくなりました。 計算装置がより専門的になったこと、マイニングにかかる電気代が上昇したことによって、一般の人がマイニングを続けることは困難になりつつあります。 その代わり、中国など世界的に電気代が安い地域にある大手のマイニング業者がその大部分を行うようになりました。更にこの様な業者同士の中でも熾烈な効率化競争が進み、淘汰が進んでいます。結果としてビットコインのマイニングでは、ほんの数社の企業がマイニング量の半分以上を占めています。(このシェアはリアルタイムでBlockchain.infoで確認できます。)BBCの記事によれば地域別でも、中国内でのマイニングが世界全体の7割以上を占めています。 2017年8月1日にビットコイン(BTC)からハードフォークしてできたビットコインキャッシュ(BCC)は、中国のマイナー達に強く後押しされて作られた仮想通貨だとされています。このような一部の強力なマイニング能力を持つ集団によって彼らに有利な形で中央集権的に物事が進むということも実際に起きたのです。 これは本来何者にも管理されない世界中に分散された取引システムを目指すビットコインの考え方と矛盾していると言えます。 スケーラビリティ問題 PoWを採用するシステムでは一定の時間で処理できる取引量に限界があり、大量の取引が行われた時に、ブロックチェーンへの取引情報の追加に時間がかかる”詰まり”という現象が発生します。このあるシステムの利用者が増えた時に発生する問題は一般に ”スケーラビリティ問題” と呼ばれています。 この問題については本メディアの以下の記事で詳細に説明しています。 ・イーサリアムのスケーラビリティ問題とその解決策 Proof of Stake(PoS)とは? これらPoWの問題点の解決策としてPoSを始めとした新たなコンセンサスアルゴリズムが開発されました。そこで次の記事ではPoSがどのようにこれらの問題点を解決するのかを解説します。 第二回目の記事「イーサリアムブロックチェーンの仕組み PoSが解決すること」はこちら。