タグ: "Sharding"

イーサリアムブロックチェーンの仕組み 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が解決すること」はこちら。
【イーサリアム】Devcon3 Vitalikの発表:シャーディングによるEthereumの効率化

【イーサリアム】Devcon3 Vitalikの発表:シャーディングによるEthereumの効率化

2017/11/08 at 7:01 PM 0 comments
ビットコインに次ぐ市場規模/時価総額2位の暗号通貨「イーサリアム」 年に一度開催されるイーサリアムの大規模カンファレンス「Devcon3」が、メキシコカンクンで開催されました。初回ロンドン、昨年上海、2017年カンクンは3回目の開催です。 11月2日(Devcon3の2日目)、Ethereum/FounderであるVitalik Buterin(ビタリックブテリン)氏が、シャーディングによるEthereumの効率化についてプレゼンを行いました。   Devcon3 Vitalik Buterin(ビタリックブテリン):シャーディングによるEthereumの効率化 Ethereum(イーサリアム)の創設者は、Devcon3の出席者に、シャーディングのプルーフオブコンセプト(PoC)の完成に近づいていると発表し、他の作業中のプロジェクトにも言及しました。   Ethereumの創設者であるVitalik Buterin氏は、11月2日(Devcon3 2日目)、毎年開催されるカンファレンスであるDevconで、彼のブロックチェーンに対する近い将来のビジョンを共有し、データをサブセットに分割するプロセス:シャーディング(sharding)を中心に発表しました。これによりブロックチェーンにおいて、これらのより小さいデータパケットは、ネットワーク上の全取引履歴を保存する代わりに、一個一個のノードに格納することができます。   これを可能にするソフトウェアはまだ開発中ですが、Buterin氏はこのアプローチが彼が「おそらく一番の問題」だとする、トランザクションコストと処理時間を短縮し、スケーラビリティを向上させるためのEthereumにとって最も良い選択肢であると考えています。   プレゼン中に彼が示唆したように、Ethereumのチームは、プログラミング言語Pythonによってシャーディングのプルーフオブコンセプト(PoC)をあと少しで完成させますが、そのようなソリューションをネットワーク経由で展開するのはさらに困難なことです。   Ethereumの研究者は、シャーディングシステムに関連するいくつかの課題をリサーチしています。Buterin氏は、ネットワークの分散元帳を構成するデータの一部のみを格納しているノード間の信頼を可能にする問題も説明しました。   Buterin氏はまた、シャーディング(細かく)されたデータを格納している他のノードと並んで、元帳全体を格納するフルノードが存在する新しいタイプのシャーディングを提案しました。彼は建設的計画によって、開発者がプラットフォーム全体の操作と処理時間に影響を与えないシャードの実験的な変更を試用できるようになると予想しています。   彼はEthereumパイプラインの他のプロジェクトにも言及しました。例えば「Ethereumバーチャルマシーン(Ethereum flavored WebAssemblyまたはeWASMと呼ばれるメカニズムでウェブブラウザをEthereumのノードとして使用することを可能にします。)」や、「ステートレスクライアント(もしこのコンセプトが開発され実装されることがあれば、クライアントとネットワークを同期させるプロセスを合理化することができます。)」などに触れました。   (ソース元記事:https://www.ethnews.com/buterin-to-devcon3-sharding-will-boost-ethereums-efficiency)