連日、「ビットコイン」に代表される仮想通貨がニュースで取り上げられています。ビットコインは、「ブロックチェーン」と呼ばれる画期的な技術によって構築されています。
ブロックチェーンは当初、ビットコインを実現するための技術という位置付けでした。現在では、ビットコインにとどまらず様々な分野・領域での活用が進められています。
前回はブロックチェーン技術の概観について解説記事を書きました。
今回からは、内容をさらに掘り下げてブロックチェーンの仕組みやブロックチェーンを支える技術などを3回に分けて説明していきたいと思います。これを読めば、ブロックチェーンの基本的な知識が身に付きます。
ブロックチェーンではなく仮想通貨取引に興味があるという方はこちらをどうぞ。
ブロックチェーンの定義とは?
ブロックチェーンは、「Satoshi Nakamoto(サトシ・ナカモト)」と名乗る人物が2008年にインターネット上で発表した論文『Bitcoin: A Peer-to-Peer Electronic Cash System』(ビットコイン:P2P電子マネーシステム)で提唱したことが誕生のきっかけです。
「ブロックチェーンとは何か?」という問いに答えるのは非常に難しいです。なぜなら、その解釈は人によって異なり、ブロックチェーンの定義は専門家の間でも曖昧だからです。例えば、日本ブロックチェーン協会が定義する、広義(広い意味)でのブロックチェーンは以下の性質を持っています。
(1)「暗号化技術」によって改ざん検出が容易な「データ構造」を持っている
(2)ネットワーク上の「複数のコンピュータ上に分散」してデータを保持している
(3)(2)の特徴を強化することで、停止しない状態を実現している
(4)(2)で分散保有しているデータの同一性を保証する仕組みを持っている
この記事では、上記(1)~(4)までの定義を踏まえてブロックチェーンの仕組みや技術を紹介していきます。そのキーワードは「特殊なデータ構造」「暗号化技術」「分散型システム」です。
ブロックチェーンの「特殊なデータ構造」
ブロックチェーンは「分散型取引台帳」(Distributed Ledger)技術とも呼ばれ、「過去の取引データが全て記録されている仮想的な台帳」と言い換えることができます。正しく行われた取引の記録を積み重ねてできています。
ブロックチェーンでは「ブロック」という単位で取引データを記録します。ブロックには時系列順に番号が振られています。小さい番号が振られているブロックほど過去の取引となり、大きい番号が振られるほど新しい取引となります。その時の最新のブロックが一番後ろに追加されていきます。
ブロックが鎖状につながっているため、ブロックチェーンと呼ばれているのです。ビットコインの場合、10分間に行われる取引を1ブロックとしてブロック同士を時系列につなげて保持しています。
各ブロックには「取引データ」「前のブロックのハッシュ値」「ナンス値」などが含まれています。
取引データとは「2017年9月29日午後8時16分、AさんがBさんに1BTCを送金した」というような情報を指します。ちなみに「BTC」とはビットコインの取引単位のことです。
ハッシュ値とは「ハッシュ関数という暗号化技術(計算方法)を用いて、あるデータを一定のデータ長の値に変換したもの」です。ハッシュ値は「変換前のデータに戻せない」「変換前のデータが少しでも変わると全く異なる数値になる」という特徴を持っています。
ブロックチェーンでは、前のブロックのハッシュ値が入れ子の関係でそれぞれのブロックに含まれています。あるブロックのハッシュ値が変わってしまうと、そのブロック自体のデータも変わります。また、その後に続くハッシュ値も連鎖的に変わってしまいます。
そのため、ハッシュ値を確認することでデータの破損や改ざんを調べたり、データをハッシュ値に変換することで重要なデータを安全に保管したりすることができます。ビットコインの場合、「ブロックのハッシュ値は必ず一定数の0から始まる」というルールを決めることで、データの改ざんをより難しくしています。
先ほど説明したように、ブロックのハッシュ値は不規則な数値です。どうすれば「一定数の0から始まる」ように変更するのでしょうか。ハッシュ値を調整するのが「ナンス値」と呼ばれる任意の数字です。このナンス値を変化させることで、前のブロックのハッシュ値を一定数の0から始まるようにしています。
新規ブロックを追加する作業「マイニング」とは?
ブロックを最後尾に追加する承認作業を「マイニング」(採掘)と呼びます。ブロックチェーンのネットワークに参加していれば、誰でもマイニングに参加できます。マイニングの参加者を「マイナー」と呼んでいます。
マイニングは「誰が一番早くナンス値を見つけるかという競争」と想像してみると分かりやすいでしょう。マイナーは、前のブロックのハッシュ値に数字を当てはめてナンス値を探します。見事、最初にナンス値を見つけたマイナーにはブロックの追加作業を手伝ったお礼として報酬(ビットコイン)が支払われます。
ナンス値をピンポイントで見つけるのは非常に難しく、コンピュータによる膨大な計算を行うためにマシンパワー(CPU)が高いほど速くマイニングを行うことができます。
惜しくもナンス値を見つけられなかったマイナーは、ナンス値を見つけたマイナーが作成したブロックが正しいかを確認します。ブロックのデータにハッシュ関数をかけて一定数の0が並んでいるかを確認します。
膨大な計算作業を行ったマイナーがブロックを作成できる権利を得て、全てのマイナーの過半数が正しいブロックだと承認すれば、正式に新規ブロックとみなされてブロックチェーンに追加されます。このような認証(合意形成)の仕組みを「プルーフ・オブ・ワーク」(仕事の証明)と呼びます。
ブロックチェーンとは、文字通り「データの連鎖」である
今回説明してきたように、ブロックチェーンはハッシュ関数(暗号化技術)によって、改ざんの検出が容易なデータ構造を持っています。また、ブロックの追加作業であるマイニング、マイナー間での承認形式としてのプルーフ・オブ・ワークを解説してきました。
引き続き、ブロックチェーンを支える技術の1つである「暗号化技術」の解説はこちらをどうそ。
コメント