No.017 特集:量子コンピュータの実像を探る

No.017

特集:量子コンピュータの実像を探る

連載01

ネット革命第2波、ブロックチェーンの衝撃

Series Report

ブロックチェーンの仕組みと特徴

ここからは、ブロックチェーンという技術の特徴を知るため、この技術の原点であるビットコインに使われている技術を中心に、その仕組みのさわりを解説したい。

ビットコインでは、10分の間に世界中で起きた取引記録を、ネットワークの参加者全員で共有する分散型デジタル取引台帳に記録し、管理している。10分間の全取引記録を「ブロック」と呼び、刻々と出来上がるブロックを鎖のようにつないで並べたものを「ブロックチェーン」と呼ぶ。各ブロックの間には、つながりの順番を間違えないようにするためのデジタル割印を押していく。こうすることで、後から過去にさかのぼって、勝手に取引記録を改ざんできないようにしている。

ブロックチェーンでは、白日の下にさらされた取引台帳を取引に参加者する人全員で見守ることになる。そのため、権威や信用を持つ第三者がいなくても不正を見逃すことがない(図3)。これまでの取引に不可欠だった第三者は、実は円滑な取引をする上で不都合な存在でもあった。仲介業者のいる取引では、常にそこがコスト要因や処理を遅らせる要因になる。さらには与信がブラックボックス化しがちであることから不正の温床になったりする可能性さえある。ブロックチェーンを基にした取引では、こうした欠点が解消する。

[図3] ブロックチェーンの仕組み
出典:経済産業省発行「平成27年度 我が国経済社会の情報化・サービス化に係る基盤整備(ブロックチェーン技術を利用したサービスに関する国内外動向調査)報告書」
ブロックチェーンの仕組み

ブロックチェーンを構成する3つの要素技術

ブロックチェーンは、「P2P(Peer to Peer)型ネットワーク技術」「暗号技術(ハッシュ関数*3、公開鍵暗号*4、電子署名*5)」「合意形成の仕組み」という3つの要素技術を組み合わせて作り出した複合技術である。1つひとつは既存技術なのだが、それらの相乗効果で「不正できない」「システムが止まらない」「安価に構築・運用できる」といった特徴を持つ分散型デジタル台帳を作成可能にした。

P2P型ネットワーク技術は、ノード(ピアと呼ぶ場合もある)と呼ぶネットワーク上の機器やシステムそれぞれの間でデータを保持し、他ノードにデータを提供するための技術だ。一般的なクライアント/サーバー型のネットワークでは、データの保持・提供の役割をサーバーに集中的に担わせる。責任が重いサーバーがダウンするとネットワーク全体がダウンしてしまう。一方、P2P 型ネットワークではネットワーク内で行う処理が各ノードに分散するため、一部のノードがサイバー攻撃を受けてダウンしたとしても、取引や契約の処理はストップしない。これは、交換器を使った電話網に対するインターネットと全く同じメリットである。

暗号技術は、改ざんなどの不正行為を防ぐ、安全な取引には不可欠なものだ。先に挙げた割印の検証のほか、新しいブロックチェーンの生成、取引データ生成者の本人証明などに関わるデータが、暗号化の対象になる。ただし、大量の情報を記した取引台帳をP2P型ネットワーク上の各ノードに分散させ、暗号技術に関わる複雑な処理を実行すると、避けて通れない重大な問題が生じてくる。各ノードに相応の計算能力を用意しておく必要が出てくるため、確実にコスト上昇要因となることだ。ブロックチェーンのメリットを生かして、活発な取引を維持するためには何らかの対策が必要になる。その対策は、次に説明する合意形成の仕組みの中に盛り込まれている。

不正を働くより、正式に参加した方が儲かる

合意形成の仕組みは、正しい取引が行われたことを参加者の間で合意し、新しいブロックとして記録する時の認証に使われる。ブロックチェーンの仕組みでは、取引や契約のやり取りを記す台帳の1ページとしてブロックを生成する。その時、誰もが自由にブロックを生成できてしまうと、改ざんブロックを容易に生成できてしまう。そのためブロック生成に関与する参加者には何らかの制約を加える必要がある。ビットコインでは、この部分に「仕事による証明」という意味の「Proof of Work(PoW)」と呼ぶ巧妙な方法を使っている。

ブロックチェーンは、過去から現在に至るつながりを持った取引台帳である。特定のブロックを改ざんしようとすると、その後の全取引を含むブロックも計算する必要が出てくる。改ざんするには、ブロックチェーンの全参加者を上回る速度で不正なブロックチェーンを上書きし続ける必要がある。つまり、とんでもない労力を費やして、嘘の上塗りをし続ける必要があるのだ。それに要する労力は莫大なものであり、改ざんは非常に難しい。

また、PoWでは、合意形成に必要な手続きの一環として、参加者全員に必要以上に手間が掛かる作業をあえて課している。ただ重労働を課すだけでは、参加者は無駄骨を折ることになってしまう。そこで、作業自体に報酬を出している。ビットコインでは、課す作業として単純計算の繰り返しの速さで競う宝探しゲームを用意し、最も早く宝を探した人に賞金を出すルールを採用している。この宝探しのことを「発掘(マイニング)*6」と呼んでいる(図4)。

[図4] PoWの仕組みを使った宝探しの仕組み
出典:筆者が作成
PoWの仕組みを使った宝探しの仕組み

こうしたマイニングによって得られる報酬は、暗号技術に関連した処理を行うためにコストを費やすインセンティブになっている。ブロックチェーンの仕組みを積極的に支えると、儲かるような仕組みを作ったのだ。この方法の巧妙な点は、不正を企む人がいたとしても、取引台帳を改ざんするより正式にマイニングに参加した方がずっと儲かることである。研究者の試算では、不正な取引を成立させるためには、ネットワーク中の全ノードの総計算能力の過半を占める必要がある。これだけの計算能力があれば楽々とマイニング競争を勝ち抜くことができる。

[ 脚注 ]

*3
ハッシュ関数: 数値を入力すると入力値とは一見何の関係もない一定ケタ数の値(ハッシュ値)を出力する関数。入力値が同じならば必ず同じハッシュ値が得られるが、わずかでも違えば全く脈絡のない大きく違う値を出力する点が特徴である。ハッシュ値から逆に入力値を推測するのは非常に困難とされるため、データ改ざんの検出などに応用されている。
*4
公開鍵暗号: 暗号化と復号化のそれぞれに一対の鍵を用いる暗号化方式である。暗号を解読(復号化)する人だけが使う秘密鍵と、暗号化に使う公開鍵の2つを用意する。公開鍵だけを情報を送信する側の人に渡せば、秘密鍵を管理している人に向けて、安全に情報を送信できるようになる。
*5
電子署名とは、ネットワークを介して送信するデータが正しいものであることを証明する仕組みである。受信者に送付するファイルのハッシュ値を送信者の秘密鍵で暗号化したものを電子署名として、元のファイルと共に受信者に送付する。受信者は、送信者と同じハッシュ関数を用いて元のファイルのハッシュ値を自ら生成し、送信者の署名を送信者の公開鍵で復号化して得られるハッシュ値と照合して、送信者の署名が正しいものであることを確認する。
*6
マイニング:ビットコインのマイニングでは、具体的には以下のよう作業をすることになる。ブロックに書き込む取引情報と前のブロックのハッシュ値、「ナンス」と呼ぶ参加者が任意に決めた値をハッシュ関数に入れて、ハッシュ値を計算する。あらかじめ決められた値より小さなハッシュ値(宝探しの宝)を見つけたら、そのブロックを承認する。そして、その値を最も速く見つけ出したノードを宝探しの勝者とする。探している宝を見つけるためにナンスは総当たり方式で地道に決める必要があり、宝を見つけるまでには大量の計算を行う必要がある。
ナノテクミュージアムから最新情報をお届けします。FacebookFACEBOOK