ブロックチェーン

ブロックチェーンについて解説します。

ブロックチェーンとは

ブロックチェーンは従来のクライアント・サーバー型の中央集権管理システムとは異なり、ノードと呼ばれる各端末が対等な立場で相互に通信を行うP2P(ピアツーピア)ネットワークの一種です。取引記録をまとめたブロックというデータを定期的に作成し、それらを時系列でつなげたデータをブロックチェーンと呼びます。

ブロックチェーンとは

分散管理システム

ブロックチェーンは、全てのノードの合意を得た正しい取引記録を、全てのノードにコピーして保持します。一つのサーバーで全ての情報を管理するシステムでは、サーバーに対する攻撃によって全ての取引データが破損するリスクを抱えていましたが、ブロックチェーンでは、仮にいくつかのノードが攻撃されデータが改ざんされたとしても、他のノードに正しい記録がバックアップされているので、ネットワークを構成する全てのノードを破壊しない限りデータが失われることはありません。

コンセンサスアルゴリズム

全てのノードが同じブロックチェーンの記録を持つために、どのブロックが正しい取引記録であるのかを決める必要があります。正しいブロックを判断するための仕組みはコンセンサスアルゴリズムと呼ばれます。コンセンサスアルゴリズムにはルール別に様々なものがあり、どの種類のアルゴリズムを採用するのかはブロックチェーンによって異なります。

PoW(Proof of Work)

PoW(Proof of Work)は、ビットコインなどのブロックチェーンに使用されているコンセンサスアルゴリズムです。難易度の高い計算問題を一番先に解いたノードが次のブロックを作成します。この作業のことをマイニングと言います。

マイニング

ビットコインの場合、マイナーはまず複数のトランザクションを含めた未承認のブロックを生成します。続いてハッシュ値の探索を行います。ハッシュ値の探索はパスワードを総当りで探し当てるような作業であるため、大量のマシンパワーを消費します。一番早くハッシュ値を見つけた人が承認させたいブロックをネットワークノードに提示します。提示されたブロックが正しいかどうかをぶつけたハッシュ量に応じで投票します。51%の承認を得ることができれば、そのブロックが正式なブロックとして承認されます。マイニングに成功したマイナーは報酬として25BTCを得ます。

改ざん耐性

ハッシュ値は一つ前のブロックのハッシュ値、ナンスと呼ばれる正解の文字列、取引群によって生成されます。一つ前のブロックのハッシュ値を含めることによって、過去のブロックが改ざんされると、それ以降のブロック全てを改ざんしなければならなくなります。その間にも正しいチェーンは長さを伸ばしているので、改ざんされたチェーンが正しいチェーンに追いつく事はできません。チェーンは常に一つとは限らず、分岐していきます。ビットコインでは分岐点から先がより長い方を正しいチェーンであるとしています。

51%攻撃

51%以上のハッシュレート (ハッシュを計算するためのマシンパワー) を手に入れることができれば、自由にブロックの承認することが出来ます。これによって不正なブロックの承認、正当な取引の拒否、マイニングの独占を行うことができます。これはPoWの欠点ですが、51%以上のハッシュレートを得る事は莫大なマシンリソースを必要とするため、難しいと言われています。

PoS(Proof of Stake)

Proof of Stake(PoS) は、Ethereumのセレニティと呼ばれるアップデートによって採用される予定の技術です。保有する暗号通貨の量が多いほどブロック作成を行える確率が高くなります。PoSにはコインエイジと呼ばれるコインを保有する期間を考慮して、長期間保有されているコインに優先的にブロック作成の権利が与えられる仕組みと、純粋にコインの保有量に応じで確率が与えられる仕組みがあります。

ブロックチェーンの種類

パブリックブロックチェーン

誰でもノードになる事ができます。誰でもマイニングに参加可能なため、真の意味でブロックチェーンの分散管理の思想を実現している仕組みです。コンセンサスアルゴリズムによって選ばれたブロックを不特定多数のノードが検証することで取引が承認されます。

プライベートブロックチェーン

管理者によって承認されたメンバーだけがノードになれます。限定された一部のノードがブロックの作成と検証作業を行うため、パブリックブロックチェーンに比べて透明度が低くなります。しかしその分、取引速度が速いという特徴があります。

ビットコインの仕組み

ブロックチェーン技術は、ビットコインという暗号通貨を作るために考案され実用化されました。したがって、ビットコインについて知ることはブロックチェーンを理解する第一歩となります。

秘密鍵

秘密鍵は、誰かに知られると保有するビットコインを盗まれ、紛失すると保有するビットコインを永久に引き出せなくなる最も重要な情報です。1 ~ 2^256までの数字ならどれでも秘密鍵になることができます。これに該当する数字は観測可能な宇宙に存在する原子の数ほどあると言われているので、全人類が秘密鍵を作ったとしても被ることはないと考えられています

公開鍵

公開鍵は、秘密鍵を使って作られます。秘密鍵から公開鍵を計算することは容易ですが、公開鍵から秘密鍵を計算することは現実的には出来ません。したがって、公開鍵を誰かに知られたとしてもビットコインを盗まれる事はありません。公開鍵は、Secp256k1という楕円曲線暗号を用いたデジタル署名アルゴリズムによって秘密鍵から計算されます。

公開鍵ハッシュ

公開鍵ハッシュは、公開鍵に対してSHA256とRIPEMD-160というハッシュアルゴリズムによる不可逆な処理を加えたものです。

アドレス

ビットコインでは、アドレスという文字列がビットコインを送信する際の目印となります。誰かにビットコインを送信する時は、その人のアドレスに向けて自分のアドレスが保有するビットコインを送信します。アドレスは、公開鍵ハッシュから生成されます。ビットコインアドレスから公開鍵ハッシュを計算することは可能なので、実質ビットコインアドレスは公開鍵ハッシュと同じものと考える事ができます。公開鍵ハッシュからビットコインアドレスを作るには、公開鍵ハッシュの先頭にバージョンバイトという1バイトの情報を付け足します。0x00は本番ネットワークのアドレスである事を表し、0x6Fはテストネットワークのアドレスである事を表します。続いて、チェックサムというものを計算します。これはバージョンバイト付きの公開鍵ハッシュにSHA256を2回かけたものの先頭4バイトです。バージョンバイト付きの公開鍵ハッシュにチェックサムを加えたものを、Base58という形式でエンコードすればビットコインアドレスの完成です。

トランザクション

トランザクションは、アドレスからアドレスに向けてビットコインが送信された記録のことを言います。各トランザクションは、前のトランザクションのハッシュ値、新たな所有者の公開鍵、元のコインの所有者の秘密鍵による電子署名が含まれています。誰がそのトランザクションを行ったのかについての情報がP2Pネットワーク上に共有されます。

ここで考えられるのは、二重譲渡を防ぐ事が出来ないという問題です。AさんがBさんとCさんにそれぞれ全く同じコインを送金した場合、どちらかのトランザクションを無効にする必要があります。普通に考えれば先に作られたトランザクションを承認して、後から作られた方は無効にするところですが、P2Pネットワーク全体において、どちらが先に行われた取引であるかは確実に断定できません。不正を働くことができるのはコインを送信した本人だけなので、矛盾する2つの取引がある場合、どちらが正しいかどうか自体は重要ではありません。

重要なのはネットワーク全体でこのどちらが正しい取引であるのかを決めることです。そのためにコンセンサスアルゴリズムが存在しているとも言えます。そのためブロックチェーンでは、ブロックに含まれたトランザクションだけが正しい取引として扱われ、データの信頼性を担保しています。

ブロック

一定期間に発生したトランザクションは、ブロックという単位にまとめられます。しかし、一つのブロックに含める事ができるデータ量には制限があり、全てのトランザクションをブロックに含めることは出来ないので、手数料を高く設定したトランザクションからブロックに含められます。ブロックは、多数のトランザクション、ナンス、前のブロックのハッシュ値を情報として持ちます。

マイニング

ブロックに含まれたトランザクションだけが正しい取引になりますが、全てのノードが平等であるP2Pネットワークにおいては、ブロックの作成者が誰になるかという問題が発生します。ビットコインでは、PoWによって、誰でも作れるわけではないが、誰か一人だけが作れるわけでもないという特性を持つことを可能としました。ビットコインでは大体10分に1個のブロックが生成されるようになっています。PoWには莫大な計算資源が必要になりますが、マイニング成功者には報酬としてビットコインが与えられます。

Alibaba Cloud の Blockchain as a Service (BaaS)

Alibaba Cloudは、最先端のブロックチェーン技術に基づいたBlockchain as a Service、及びエンタープライズレベルのプラットフォーム(PaaS)をサービスとして提供しています。このサービスは、ユーザーが安全で安定したブロックチェーン環境を構築し、ブロックチェーンソリューションを容易に展開、運用、保守、開発、管理するのに役立ちます。企業は、インフラストラクチャの管理ではなく、ビジネスの革新に集中することができます。

まとめ

ブロックチェーンはこれまで中央集権的に行われていたデータ管理のあり方にパラダイムシフトを起こしました。一般的にブロックチェーン≒仮想通貨という認識をもたれていますが、世の中では金融以外の領域での活用についても数多く議論されています。

一方でブロックチェーンは莫大な計算量とマシンリソースを必要とするため、電気量の極端な消費を課題と感じている人も多くいます。その点、まだまだ我々の生活に深く関わる技術にまでは成熟している技術とは呼べないものの、分散型の思想それ自体が価値あるものとして今後様々な場面で実用化が進んでいくと考えられます。