メモ帳

ゲームをプレイした時、美味しい物を食べた時、面白い作品に触れた時に忘れないようメモしています。

ブロックチェーンを支える技術②

 

f:id:ne_w:20170821212658j:plain

 

new-glg.hatenablog.com

 

 

 

 

取引データは書き換えできない特殊処理が行われる


ビットコインなどのブロックチェーン技術は、取引データをブロックと言う塊に含めています。
ビットコインの場合、1つのブロックに約10分間分の取引データが含まれています。
このブロックを過去から現在までチェーン状に繋げている事から、ブロックチェーンと呼ばれているのです。

このブロックの中には、取引データのほかに、1つ前のブロックの情報が詰まったハッシュ値とナンス(Nonce)と呼ばれる値が含まれています。

ハッシュ値とは、元になるデータから暗号学的ハッシュ関数と呼ばれる特殊な計算式により求められた固定長の値です。
ハッシュ値はもとのデータからは必ず同じハッシュ値が得られ、少しでもデータが異なっていると、全く異なるハッシュ値となります。
また、ハッシュ値からもとのデータを逆算する事ができません。

ナンスとはNumber used once (一度だけ使用される使い捨ての数字)の略で、新しいブロックを生成するために利用する値の事です。

新しいブロックはある条件を満たすハッシュ値を求めたものに生成する権利が与えられます。
具体的には前のブロックのハッシュ値、新しいブロックに含まれる取引データ、ナンスの3つやタイムスタンプ、バージョン情報などを暗号学的ハッシュ関数(特殊な計算式)に入れてその値(2進数で256桁)を求めます。

この値は、ひたすらナンス値を変化させながらの総当たりをして計算し続けるという単純な方法でしか導き出すことが出来ません。

 

日本で一番簡単にビットコインが買える取引所 coincheck bitcoin

 

取引を正しい履歴順にするために行われている事


ブロックチェーンには取引を正しい履歴順にするための工夫が施されています。
そもそもビットコインは、過去からのすべての取引が取引台帳に記録されており、この記録の方法としてブロックチェーン技術を採用しています。
ブロックチェーンとは、取引データのかたまりをブロックとして、時系列でつなげていったものです。

それぞれのブロックには、1つ前のブロックの無いように基づいて生成されたハッシュ値という値を持っており、これらをつなげる技術をハッシュチェーンと呼びます。
具体的にはハッシュチェーン構成するハッシュ値をもとに計算を行い、再び次の新たなハッシュ値を計算します。
この作業を繰り返してハッシュ値の連鎖を行ったものがハッシュチェーンです。

ハッシュチェーンにより、データの前後の整合性が保たれ、誰かが何らかの方法でブロック内のデータを改ざんする事ができにくくなります。

従来のシステムでは、サーバーのデータベースにアクセス権限があると、そのデータを書き換える事が原理的には可能でした。
よって、サーバーに誰もアクセスできないようにセキュリティ対策を強固に行う必要がありました。
しかしブロックチェーンでは、ブルーフ・オブ・ワークや、このハッシュチェーンと言う仕組みを採用しているため、取引履歴が全て公開されているにも関わらず、誰も取引履歴を書き換えられず、安全にシステムの運用を行う事が可能です。
このコペルニクス的転回ともいえる考え方がブロックチェーンの肝と言われています。

 

ビットコインの合意の方法は仕事の量

取引を正しい履歴順にするために行われている事


ブロックチェーンは分散された複数のコンピュータで処理を行っています。
それぞれのコンピュータが同一のデータを保持しており、ハッキングなどがあった場合にもデータの不整合が起きないような仕組みがなされています。
このデータの一致の方法を『合意アルゴリズム』と言います。
ここで言う合意とはあくまでもデータの一致の事です。

ビットコインでは、改ざんを防止するためにコンピュータの仕事量を使います。
コンピュータの計算により、ある数字を早く見mつける競争をしているのです。
世界中でコンピュータと電気代を使って単純計算を繰り返して当たりくじを探しているイメージです。
当たりくじを最初に探し当てた人が、新しいブロックを追加する権利と報酬を貰えます。

そしてそのブロックに当たりくじがあるのを確認して、そのブロックを自分の台帳に追加します。
こうして取引データが全コンピュータで共有されています。

このように仕事量により改ざんを防止し、使ったコストを参照して合意を形成します。
このアルゴリズムを『プルーフ・オブ・ワーク』と呼びます。

別のブロックチェーンではまた異なる改ざん防止の仕組みを採用する事もあります。
代表的なのが『プルーフ・オブステーク』です。
これはコインの保有割合に応じブロック承認の割合を決定する仕組みです。

 

 

取引チェックなどの協力者に報酬を与えるプルーフ・オブ・ワーク


プルーフ・オブ・ワークとはビットコインで採用されている改ざんを抑止するための仕組みです。
直訳すると『作業の証明』の事で、
分散している各コンピュータに作業を行わせて、条件を満たす数値を導き出したものが生成するブロックを正しいとする仕組みです。
そして、条件を満たす数値を導き出したコンピュータに対して報酬としてコインを与える事になっています。
このことにより、経済的なインセンティブを与え、ビットコインのネットワークシステムの維持を行っています。

ただ、このプルーフ・オブ・ワークはナンス呼ばれる値をひたすら変換し計算を行うのみで、それ自体の作業は実はなんらの意味を持ちません。
また、多数のコンピュータを用いて一斉に計算を行うので、多くの電気代も消費します。
そのため電気代が無駄にかかってしまうと言う事、さらに現在数社のマイナーが全マイニングの多くの割合を独占している状況であり、いわゆるマイニングの寡占化が進んでいます。
このまま寡占化が進み、彼らの発言力が増してくると、非中央集権というビットコインの理想そのものも崩れてしまうと危惧されています。

これらの批判からプルーフ・オブ・ワークに代わる新しい改ざんを抑止するための仕組み(プルーフ・オブ・ステークなど)も台頭してきており、こちらはあるとコインで採用されています。