ブロックチェーンを知るためにビットコインについて知っておこう
前回はブロックチェーンを支える重要な技術として、P2P注1やハッシュ注2といった基本的な仕組みとそれぞれの特長について説明した。今回は、それらが実際にどのような働きをして、ブロックチェーンのサービスが実現されているのかを見ていこう。
その具体例として、今回はインターネット上で利用できる仮想通貨、ビットコインを採り上げる。ブロックチェーンを使ったサービスはビットコインだけではないが、ビットコインはブロックチェーンが実際に使われた最初であり、ブロックチェーンの特長を活かしたサービスの事例として、広く世の中に知られている。このため、ブロックチェーンの仕組みを理解するために、ここではビットコインを例に見ていく。
ブロックチェーンとは名前の通り、「ブロックのつながり(=チェーン)」である。ブロックとは、ブロックチェーン上でのやりとりの記録がひとかたまりにまとめられたものを指す。ビットコインでいうと、仮想通貨の取引記録がこれに当たる。例えばAさんがBさんに100BTC(ビットコインの単位)を送金した場合、その記録が残るが、これで完了ではない。第三者によって作られる「ブロック」に取り込まれることで、初めて「ビットコイン上で行われた取引の記録」として認められるルールがあるからだ。
このように、ビットコインにおける「ブロック」とは、「承認された正当なビットコイン取引の記録」の単位として扱われている。紙にたとえれば、毎月の取引を記した伝票が各月ごとに1冊のバインダーにまとめられ、表紙に「承認済み」のハンコが捺されているようなものである。もちろんビットコインの取引は紙ではなく、デジタルデータで記録されるので、このデータ容量は、本記事の執筆時点(2017年11月)で1ブロックあたり最大1Mバイトの上限が設けられている。ブロックは、平均して10分に1度の間隔で作成される設定になっている。またこの10分間のブロックには、およそ2,000〜3,000件の取引データが含まれている。
ビットコインのブロックチェーンの概要
繰り返しになるがビットコインでは、ブロックチェーン上で行われた取引が正当なものであることを証明するため、第三者がブロックを作成していく。電子データはコピーや変更が簡単にできるが、仮想通貨取引ではこれがマイナスに作用してしまう。証明書(=ブロック)を簡単に書き換えられてはたまらない。そこで、ビットコインでは改ざんを防ぐために、連載第1回(2017年11月号)で紹介した「ハッシュ」という技術を利用して、数珠つなぎになったブロックを作成している。
〔1〕ヘッダとトランザクション
図1は、ビットコインにおけるブロックチェーンのブロックについて、その概要を示したものである。ブロックは、ブロック自身の概要を表す「ヘッダ」と、実際の取引内容が記された「トランザクション」の2つに分かれている。このヘッダ部分をハッシュと呼ばれる特別な計算式にかけて、その結果出てきた値(ハッシュ値)が次のブロックのヘッダに記載される仕組みである。数珠つなぎに連結されたブロックのどれか1つでも改ざんすれば、その後に続くすべてのブロックを書き換える必要があるため、実質的に改ざんが難しい仕組みとなっている。
図1 ビットコイン(Bitcoin)のブロックチェーンの概要
出所 森 一弥氏(インフォテリア株式会社)提供資料より、2017年8月29日
また、ここでブロックを作成した人には、1件につき12.5BTC(2017年11月現在)を報酬として受け取る権利が与えられる。ブロックには数千件の取引が記録されていて、それらの手数料をブロック作成者は総取りできるルールになっている。
ちなみに2017年11月末の1BTCの相場が、日本円では100万円を軽く超えていることからも、実際の報酬額は膨大なものになる。
〔2〕ブロックの作成を専門的に行うマイニング(採掘)
この報酬を目当てに、ブロックの作成を専門的に行うのが、「マイニング」(採掘)と呼ばれる行為であり、マイニングを行っているものを「マイナー」(採掘者)と呼ぶ。
マイナーには1つのブロックにつき1人しかなれないので、世界中の誰が報酬を得られるかはネット上での国境を越えた競争になる。「ブロックの承認は平均して10分に1回」というのは、承認のハッシュ計算に10分前後かかるからなのだが、無数のライバルを出し抜くには、他の誰よりも速く計算を終えなくてはならない。
とはいうものの、この計算は簡単ではない。ハッシュ値は元のデータに対して一瞬で作成することができるが、ビットコインには、「計算の結果得られたハッシュ値の最初の十数文字が「0」の場合のみブロックが正当なものとして認められる」というルールがある。しかし、単に新しく作成したブロックのヘッダをハッシュにかけても、都合よく最初の十数文字が「0」になる保証はまったくない。データが少しでも異なると大きく値が変わってしまうのがハッシュの特徴だからだ。
そこでヘッダの中の「Nonce」(ノンス)注3と呼ばれる数ケタだけは自分で数字を変えてよいことになっているので、このNonceの値を少しずつ変更してはハッシュにかけ、最初の数字が「0」になるまで延々と繰り返す。文字通り、「正解」の鉱脈を掘り当てる「マイニング=採掘」なのだ。
だがこうしたブロックの作成の方式は、膨大な電力を浪費するといった問題をはらんでいるため、ブロックチェーンに関係する複数の団体が、それぞれ改善方法を検討し、ビットコインとは別のブロックチェーンを作成している。
もちろんこうした問題は、ビットコインの承認方法という側面的な問題であって、ブロックチェーンの本質は高い信頼性や可用性、堅牢な情報セキュリティ、そして優れたコストパフォーマンスであることに変わりはない。より良い使い方を考えていくのは、私たちのこれからの課題なのである。
Profile
工藤 淳(くどう あつし)
オフィスローグ。
広告制作会社、出版社などに勤務の後、フリーライターとして独立。主にエンタープライズIT関連のビジネス記事を手がける。
▼ 注1
P2P:Peer to Peer(ピア・ツー・ピア)。複数のコンピュータ端末が対等の立場で通信するネットワークの仕組みを指す。
▼ 注2
ハッシュ(Hash):「細切れにする」という意味で、データを「細切れにして」何かしらの値を取り出す仕組み。元になるデータから特定の計算式を使って算出した文字列で、同じデータからは同じ文字列(ハッシュ値)が算出される。
▼ 注3
ノンス:ハッシュ値を特定の値(先頭に0がn個並ぶ)にするための調整値。それ自体は特に意味をもっていない。