見出し画像

”安全な”ブロックチェーンの仕組みって?

デジタル通貨のことや、デジタル決済やデジタルトランスフォーメーション(DX)など、お金のデジタル化にまつわる質問にお答えしていくコーナーです。

今回はデジタル通貨の基盤技術である「ブロックチェーンの仕組みがどのように安全性を守っているのか」について、技術構造を中心にお伝えしていきます!

Q.ブロックチェーンとは何ですか?

A.全ての取引履歴をブロックごとにまとめ、それぞれのブロックを1本のチェーン(鎖)のようにつなげるかたちで記録する分散型のデータベース(台帳)です。記録の塊の単位である「ブロック」でデータを管理し、それを「チェーン」のように連結させて保管するため、「ブロックチェーン」と呼ばれています。

Q.ブロックチェーンとビットコインは同じですか?

A.世界で初めてブロックチェーンが使われたのはビットコインですが、ブロックチェーンは暗号資産の一つであるビットコインを実装する基盤技術です。

車で例えるならビットコインは車種の一種で、ブロックチェーンは車を駆動させるために搭載されているエンジンです。車とエンジンと同じぐらい、ビットコインとブロックチェーンは全く異なるものです。

Q.なぜ、ブロックチェーンが生み出されたのでしょうか?

A.これまでは、ユーザー(クライアント)が一つのサーバーに対して通信を行う「クライアントサーバー」と呼ばれる通信方式が一般的で、中央管理者が必要でした。

それに対して、特定サーバーである中央管理者のいない「Peer to Peer(P2P)」ネットワークというものが2000年前後から生まれ、「Peer(ピア)」または「Node(ノード)」と呼ばれる各コンピュータ同士が直接通信し合うことで、中央サーバーを介さずに分散的なネットワークを形成することが可能になりました。

しかし、P2Pネットワークは誰でも参加可能で、悪意あるユーザーが混ざる可能性も排除できません。そこで、P2Pネットワークの中で情報を守りながら、安全にやり取りを行えるデータベースが求められるようになり生み出されたのがブロックチェーンです。

Q.ブロックチェーンのメリット・デメリットは何ですか?

A.ブロックチェーンは分散型データベースであるため、情報の処理や保存を複数のノードと分業して行います。つながっている全ノードのコンピュータの計算能力や保存領域が加わるため、メンテナンスなど中央管理システムの都合に左右されずに24時間システムを継続的に稼動させることができます。

また、攻撃したらシステムがダウンするポイントである「単一障害点」が不明確であり、例え攻撃を受けても全てのノードが同じデータをバックアップしているため、安全性が高いと言えます。何より、ブロックチェーンは追記専用のデータベースであるため、過去のデータを変更することが構造上不可能であることが最大の利点です。

一方、一度処理が受け付けられると情報の削除や修正が難しく、システムを止めること自体が困難となります。

Q.トランザクションとは何でしょうか?

A.トランザクションとは、ブロックチェーン上で行われた取引記録です。ブロックチェーン上で通貨そのものが移動しているわけではありません。足し算・引き算で取引金額をまとめる要約を一切行わずに、起きたとおりの情報を発生順に加えていく「大福帳型の記録方式」でトランザクションの履歴を全て追跡記録した台帳をつくり、譲渡の履歴を示すことで所有権の根拠としています。

Q.ハッシュ値とは?

A.ハッシュ値とは、各ページの情報を整理するブロックチェーン技術です。本で言うところのページ同士をつなぐ「糊しろ」や、それぞれのページの特徴を目立たせる「ブックマーク」のような役割を担っており、ハッシュ値によって膨大な量のトランザクションデータがやり取りされるP2Pネットワークでも瞬時にデータが一意的なものかを判断することができます。

それを可能にしているのが、ハッシュ値を算出する「ハッシュ関数」の特性にあります。ハッシュ値はハッシュ関数の計算から得られた16進法のランダムな文字列です。

ハッシュ関数は不可逆的・一方向的で、異なる入力データから同じハッシュ値が算出されることは極めて稀であるため、衝突耐性があります。また、大文字・小文字や半角スペースの有無が異なるだけでもビット数が変わるため、入力データの特徴を要約したたった一つの値であると言えます。そのため、「デジタル指紋」とも呼ばれています。

ハッシュ値という変化に敏感な唯一無二の目印をブロック構造に随所に取り込むことでデータの検証を容易にしました。このことが、オープンなネットワークシステムにおいてもブロックチェーンが安全に取引できる基礎となっています。

Q.マークルツリーとは?

A.各トランザクションデータのハッシュ値を算出できることで、トランザクションをまとめることも容易になります。この技術を「マークルツリー」と呼びます。

マークルツリーは、ハッシュ値を使ってトランザクションをリンク形式でまとめていく方法です。二本木式という二つのトランザクションのペアをつくってハッシュ値を計算し、その数が一つになるまで繰り返します。

この最後のハッシュ値は「マークルツリーのルート(ルートハッシュ)」と言われ、トランザクションの要約データとして各ブロックの「ブロックヘッダ」に組み込まれます。

マークルツリーは下の階層のトランザクションを参照することで成り立っているため、トランザクションの内容が一つでも変更されるとそれ以降の全てのハッシュ値も変わり、チェーンが切れて改ざんが発覚する仕組みになっています。

Q.安全で堅牢なブロックチェーンのデータ構造とは何ですか?

A.ブロックチェーンのブロックは大きく二つのデータ構造に分かれています。一つは、直前のブロック情報やブロック内のトランザクションの要約データ、取引された時刻などの情報を格納した「ブロックヘッダ」。もう一つが、実際のトランザクションをまとめた「ブロック本体」です。

ブロックヘッダには、ブロック内の全情報から算出したハッシュ値を「ブロック番号」として付けます。ブロック本体というのはトランザクションをまとめたマークルツリーのことで、全部のトランザクションから導き出されたハッシュ値をブロックに格納します。

「直前のブロック」と「ブロック本体」は別のデータベースに情報が格納されており、ハッシュ値で参照したり、改ざんがないか検証することができます。このように“別のブロックやデータベースを参照し合うことで成り立っている構造”が、ブロックチェーンの堅牢なデータベースの基盤をかたちづくっているのです。

Q.Proof of Work/マイニング、ナンスとは?

A.ブロックの生成に必要なブロックヘッダのハッシュ値を求めるのには、難解なハッシュパズルを解かなければいけません。具体的には「ナンス」と呼ばれるランダムの数字を見つけ出し、「難易度」によって指定された数の0が先頭に付いたハッシュ値を探すことが求められます。

これは、数字がピッタリ揃わなければ開かないダイヤル錠と似ており、知識やロジックではどうにもならないため総当たり戦で解いていくしかありません。ハッシュパズルを解くには膨大な計算が必要となるため、「大量のハッシュ計算をしたことの証明=Proof of Work(PoW)」や、希少なハッシュ値を導出することが、あたかも金塊を採掘するかのような過程という意味合いで「マイニング」とも言われます。

このようにブロックチェーンは、情報の変更に対するコストが非常に高く、全てを変えるか変えないかの“ゼロか百”しか選択肢が事実上ありません。そのため、履歴の改ざんが限りなく不可能に近い構造となっています。

Q.トランザクションの暗号化技術とは?

A.暗号化は、個々のトランザクションデータを保護する技術です。なぜなら、オープンなP2Pネットワークは誰でもアクセスが可能で、送金など資産(所有者情報)を移転する際には資産を守るためにトランザクションを暗号化して保護する必要があるからです。

「暗号化」とはデータを保護するための“デジタル世界で使用できる鍵”のイメージです。一般の人からは何が書かれているのか特定できない暗号文を作成する鍵と、暗号化されたデータを解除する「復号」のための鍵の2種類があります。暗号化と復号の組み合わせを使い分けることによってデータにアクセスできるユーザーに制限をかけることができます。

暗号化・復号のどちらにも同じ鍵が使われる「対称鍵暗号(共通鍵暗号)」と、二つの対になる鍵が使われる「非対称鍵暗号(公開鍵暗号)」があり、ブロックチェーンには非対称鍵暗号が用いられています。

二つの鍵はそれぞれ「公開鍵」と「秘密鍵」と名付けられており、常にペアになっています。技術的にはどちらの鍵でも暗号文を作成することができますが、暗号文を復号するには、必ずもう一つの対になった鍵を使わなければいけないという工夫がされており、トランザクションが守られる仕組みになっています。

Q.デジタル署名とは?

A.「公開鍵」と「秘密鍵」による暗号化はデータの保護だけでなくトランザクションを送受信する際の本人確認や承諾書としても機能しています。これは、「秘密鍵から公開鍵」の解除方式で行われます。

トランザクションを送信する際、送り主は自分の公開鍵と対になる秘密鍵を使ってトランザクションの内容をもとに暗号文をつくります。この暗号文は「デジタル署名」と呼ばれるもので、筆跡から本人であることを特定する直筆の署名のように、署名を作成した人が本人であることと、署名した内容に承諾していることを示します。

暗号文には、トランザクションのハッシュ値を暗号化したデータが含まれます。そのため受け手は送られてきたトランザクションのハッシュ値と、復号したデジタル署名に入っているハッシュ値を検証することで、データが正しいもので、送り主が合意した内容であることが分かります。

その後、送付アドレスが正しいかどうかのアカウントの識別が「公開鍵から秘密鍵」の解除方式で検証され、問題ない場合はトランザクションを受け渡すことの承認=送信が実行されます(ただし、これらは承認の過程としてシステムに自動で組み込まれているため、実際の送受信でユーザーがこのプロセスを意識することはありません)。

このようにブロックチェーンはオープンなネットワークでも安全に機密情報を送り合えるよう、データの改ざん防止と保護のためにさまざまな技術が使われています。

これらの技術は、伝統的に使われてきたものが多いですが、それらを組み合わせることで、簡単には破られない頑丈なシステム構造が実現されました。この発明が、ブロックチェーンが次世代のネットワークの基盤として注目される所以です。

参考記事 ▷ 
vol1:ホントにわかるブロックチェーン1 ブロックチェーンとは?
vol2:ホントにわかるブロックチェーン2 ブロックチェーンって本当に安全?
vol3:ホントにわかるブロックチェーン3 ブロックチェーン取引を守る技術