ブロックチェーン・インパクト vol.3
Jul 13 2018
ビットコインの仕組み
ビットコインは、ブロックチェーンを世に広めた立役者であるといっていいだろう。しかし、近年では、ビットコイン取引所・マウントゴックスの破綻、取引レートの乱高下など、あまり良いイメージを持たれていない印象もある。
とはいうものの、これからブロックチェーンを様々な分野に応用していくスタートとして、ビットコインの知識は欠かせないものであることは間違いない。
連載第3回は、ビットコインの仕組みについて、特にブロックチェーンの活用というところに焦点をおいて整理してみたい。
INDEX
世界中に分散化された管理者
分散化されたコンピュータ
ビットコインは世界で最も流通しているトークンであり、その時価総額は12兆円(2018年7月現在)にも上る。これは中堅国の国家予算に匹敵する額であり、2位のイーサリアム(5兆円)、3位のリップル(1.9兆円)と比べてもケタ違いに大きい額である。
この膨大な金額に相当するビットコインはだれが管理しているのか?
何度も言うが、1つの「ビットコイン株式会社」という企業が管理しているわけではない。
世界中からインターネットに接続された、一定のアプリケーションがダウンロードされたコンピュータ(ノードと呼ばれる。ノード:「つなぎ目」の意)がそれぞれの役割をもって管理している。
ノードは世界中に存在する
下図の通り、ノードは世界中に散らばっているが、国別に順位を見ると、アメリカ、ドイツ、中国となっている。アメリカがトップなのはうなずけるが、ドイツでもブロックチェーン関連のスタートアップは多い。
また中国は電気料金の安さを背景にマイニングを主な役割とするノードが多く存在することが理由であろう。ノードは世界中に11,000ほど存在する。
(図1)ノードの分布
出典:https://bitnodes.earn.com/
ビットコイン取引の裏側
さて、前置きはそこそこにして、ビットコイン取引の裏側を探っていこう。ビットコイン取引をブロックチェーンとして記録していく過程は「支払、伝達、承認、報酬」に大きく分けられる。それぞれを見ていこう。
支払(送金)
現在は取引所が発達しており、取引所の口座にあるビットコインを取引所のアプリに送金先のQRコードを読み取らせて送金する、という具合で送金ができる。
そのほか、取引所の口座ではなく、ビットコインのデータを格納できるアプリケーションやUSB保管装置(「ウォレット」と呼ばれる)から別のウォレットに送金指示が行われる場合もある。
これを単純化すると、
「AさんからBさんに1BTC(例)を送金する」
ということになる。これはビットコインで物品を購入する場合も同様で、単純化すると誰から誰にいくら送金する、という取引になる。
伝達
送金の情報は一定のデータに変換されて、ビットコインが格納されているウォレットからネットワークにつながっている1つのノードに伝達される。
ノードは受け取った取引情報をほかのノードに伝達し、情報を共有する。実際は同時に多くの支払手続(「トランザクション」と呼ぶ)がなされているため、いくつかの取引が共有されることになる。
この時点では、取引は確定しておらず、未承認のトランザクションが積みあがっている状態となっている。
承認(採掘・マイニング)
ブロックチェーンに記録するには、この取引を改ざん不可能な状態で暗号化しなければならない。この未承認のトランザクションがいかにして暗号化されるのか。この暗号化の過程がいわゆる「マイニング」と呼ばれる作業である。
暗号化には特別な関数(ハッシュ関数・SHA256)が用いられる。この関数は、どのような情報も64文字のランダムな英数字に変換してしまう。また、元情報の文字が一文字でも異なると、全く異なる英数字を返すという特性を持っている。例えば以下のようにだ。
・ドラえもん
「4DEDC416D6842C5522DB0A052C1065E0260
F7CF1FA253D5AE01E70B3E83D5A1F」
・のらえもん
「7A0FAFA963BCD35FF36D5607783657B568B3
04E313F99123DEFF355201358C4」
・私はその人を常に先生と呼んでいた。だからここでもただ先生と書くだけで本名は打ち明けない、これは世間を憚かる遠慮というよりも、その方が私にとって自然だからである。
(夏目漱石・こころ(上)より)
「533EA75DC47ABEB1AAAF47F682817B1FC0E
3FAE1CAFAC834C03D34C90E29864D」
単に暗号化するだけであれば簡単だ。ハッシュ関数をプログラム化して、取引の羅列を入力すれば、上記のような64文字の暗号化された英数字の列(「ハッシュ」と呼ぶ。)に変換される。
しかし、ビットコインのブロックチェーンに接続されるブロックとして適合するハッシュは、以下のようなルールに基づかなければならないとした。
・未承認のトランザクションの束に一つ前のハッシュを加えること。
・さらに何個かの数字(「ノンス」と呼ぶ。)をくわえて、先頭に15個「0(ゼロ)」が並ぶようなハッシュ値を求めること。
つまり、「ドラえもん」に何個かの数字を加えて暗号化した答えが、
「0000000000000001D96E7E22A46DA6FFB663
2838778106E3D57B00A07192FBAE」
になるようにしろ、ということだ(上記英数字列は架空のもの)。
マイニングの実態はわかりにくいが、単純化すると、
「暗号化の結果、先頭にゼロが15個並ぶ英数字の列になるような「何個かの数字(ノンスと呼ばれる)」を見つける作業」
であるといえる。
この作業は、適当な値を順番に加えて暗号化し、その都度検証していくという単純作業を延々と繰りかえすということでしかない。
大規模コンピュータによる膨大な労力をかけた計算が必要であり、コンピュータが発する熱をさます冷房設備などが加わって電力消費量は相当なものになる。
マイニングを行っているコンピュータが中国、ミャンマー、ロシア、日本では北陸などに多いのは、電力価格が比較的安いところのほうが、利益率が高いからであるといえる。
こうして、未承認のトランザクションの束(だいたい1500~2000ほど)は暗号化されて1ブロックとなり、前のブロックの後に記録される。
(図2)ブロックチェーンの中身
報酬支払
見事に先頭にゼロが15個並ぶような英数字の列になる「ノンス」を発見したマイナーは、1ブロック当たり12.5BTCを受け取ることができる。
どこから受け取るのか?それはどこからでもない。ビットコインの仕組み自体に報酬システムが組み込まれている。つまり、1ブロックが完成するごとにビットコインの全体の発行量に加えて12.5BTCずつ増えていくということだ。
ビットコインの発行上限
マイニングが成功するたびに、ビットコインの量は12.5BTCずつ増えていく。ハッシュは、先頭にゼロが15個並ぶ、といったが実は1ブロック・約2000トランザクションのマイニングの時間が10分程度になるように難易度が定期的に調整される。
ゼロが14個でよければ難易度は下がるし、16個であれば難易度は上がる。このようにして、10分ごとに12.5BTCが発行されていく。
こう考えると、ビットコインは限りなく発行量が増加し、ビットコインの価値が下がり続けるのではないか、という思考が働くが、その点についてもぬかりなくルール化されている。
すなわち、この報酬が支払われるのには上限があり、このままのペースで行くと、2140年ごろにはその上限に達することが分かっている。発行量としては約2100万BTCほどだ。
その後のマイニング報酬は、トランザクションの手数料等から支払われることになるだろう。
ビットコインに悲観的な人も
だいぶ駆け足となったが、ビットコイン内部でのブロックチェーンの生成を追ってみた。なぜ改ざんが困難なのか、分散化されたネットワークとは何かがイメージできたと思う。
これほどまでに時価総額を膨らませたビットコインであるが、いくつかの問題点もある。次回は、ビットコインの問題点について探っていく。