ブロックが連なるブロックチェーンの理論

このレッスンではなぜブロックチェーンと呼ばれているのか、ブロックが連なるとはどういうことなのかを詳しく説明していきます。

ビットコインのブロックとは、約10分間の取引の固まりのこと

ビットコインの取引は過去から現在まですべて記録されており、一度記録したら書き換えることができません。ブロックチェーンの「ブロック」とは、この全期間のうち「ある一定期間(平均)」の取引情報を記録したものです。

過去からのすべての取引を「ある一定期間(平均)」ごとに区切って、それぞれブロックの固まりをつなげて処理を行っていきます。ビットコインの取引は、ハッシュ値(暗号学的ハッシュ関数によって計算された値)でつながれたブロックに格納されます。

取引はタイムスタンプやバージョン情報などとともにチェーン状に記録されていきます。このようにチェーン状につながっているので、一度ブロックに取り込まれた(封印された)取引データの内容を書き換えることは、非常に難しいしくみになっています。

そして、ブロックの処理を行いながら、次のブロックが継ぎ足されていくのが特徴です。従来の中央サーバーを用いた取引では、「過去の取引を確定してから次の取引」という順番ですが、ブロックチェーンの場合、取引が確定しなくても次に進みます。

その結果、取引履歴が枝分かれしてしまった場合、「一番長いチェーンが正しいもの」というルールの下、それ以外の枝分かれしたチェーンを自動的に破棄するしくみになっています。

ブロックは平均で約10分ごとにlブロックが生成されます。生成されたブロックはP2P (ピア・ツー・ピア)ネットワークを介して、ほかのビットコイン参加者に共有されます。

「ブロック」が連なる「チェーン」

ブロックチェーンはビットコインによって生み出された技術です。現存するほとんどの仮想通貨はこのブロックチエーンの技術を使っています。ブロックのデータには取引内容が記載され、必ず1つ前のブロックのデータの一部を含むように設計されています。

ブロック同士が一部同じものを共有しているので、「チェーン(のように連なっている)」と表現されます。ビットコインのブロックは、2009年1月の誕生以来すべてのブロックが連なっています。

そのため、歴代のブロックをたどれば、すべての取引履歴を検証することができます。これはいわば過去の取引を全て記入した台帳といえます。この台帳はすべてオンライン上で公開されているため、例えば譽察がマネーロンダリングなどの捜査をする場合、現金取引の捜査より比較的容易だと考えられています。

ブロックチェーンの技術は、多方面で注目されており、データ保存技術として多くの研究機関が開発を進めています。ブロックチェーンの強みは、データがすべて連なっているため一部だけの変更ができない点にあり、これを応用して物流や証券、保険や公共サービスなど、さまざまな分野で活用方法が研究されています。

ビットコインの「中央管理者不在」という意味
ビットコインシステム参加者には、誰でもなれます。これを読んでいるあなたも、設備さえ整えることができれば参加することが可能です。つまり「取引者間にはブロックチェーンのみ存在するが、それを管理するのは誰でも可能」であるため、「中央」の管理者が不在になるのです。管理者自体は、不特定多数の参加者という形で存在しています。

暗号を使ってチェーンをつなげる

ビットコインのブロックは、ヘッダと呼ばれるデータの先頭部分でつながっています。ブロックがチェーンに追加される際に、新しいブロックのヘッダ内に前のブロックのヘッダの一部が暗号化されて組み込まれます。

ブロック同士をつなぐ部分は、SHA-256と呼ばれる暗号化技術を使って求められます。SHA-256はハッシュ関数というアルゴリズムの一種で、ハッシュ関数により暗号化されたものをハッシュ値と呼びます。

ヘッダには、前のブロックのヘッダのハッシュ値、取引データのまとめ、ナンスと呼ばれる任意のデータが含まれています。前のブロックのヘッダを元にハッシュ値が求められ、次のブロックのヘッダに含まれます。

これが繰り返され、チェーンのように連なっていきます。ハッシュ値は、元のデータが少しでも変わると、その値が大きく変わります。1つの取引が終わる前に次のハッシュ値を予測することは、ほぼ不可能なため、ネットワーク攻撃者による取引の改ざんは今まで一度も起きたことがありません。

ナンスを変更するとハッシュ値も変わる?

ビットコインなどのブロックチェーン技術は、取引データを「ブロック」という固まりに含めています。ビットコインの場合、1つのブロックに約10分間分の取引データが含まれています。このブロックを過去から現在までチェーン状につなげていることから、ブロックチェーンと呼ばれているのです。

このブロックの中には、取引データのほかに、1つ前のブロックの情報が詰まった「ハッシュ値」と、「ナンス(Nonce)」と呼ばれる値が含まれています。「ハッシュ値」とは、もとになるデータから暗号学的ハッシュ関数と呼ばれる特殊な計算式により求められた固定長の値です。

ハッシュ値はもとのデータからは必ず同じハッシュ値が得られ、少しでもデータが異なっていると、まったく異なる規則性がないハッシュ値となります。また、不可逆性を持つので、ハッシュ値からもとのデータを逆算することはできません。

「ナンス」とは、Number used once(一度だけ使用される使い捨ての数字)の略で、新しいブロックを生成するために利用される値のことです。新しいブロックはある条件を満たすハッシュ値を求めたものに生成する権利が与えられます。

具体的には、前のブロックのハッシュ値、新しいブロックに含まれる取引データ、ナンスの3つやタイムスタンプ、バージョン情報などを暗号学的ハッシュ関数(特殊な計算式)に入れてその値(2進数で256桁)を求めます。

この値は、ひたすらナンス値を変化させながら、総当りをして計算し続けるという単純な方法でしか、導き出すことができません。

ハッシュ値がブロックをつなぐ役割をしている

ブロックチェーンには取引を正しい履歴順にするための工夫が施されています。そもそもビットコインは、過去からのすべての取引が取引台帳に記録されており、この記録の方法としてブロックチェーン技術を採用しています。

ブロックチェーンとは、取引データのかたまりをブロックとして時系列でつなげていったものです。それぞれのブロックには、1つ前のブロックの内容に基づいて生成された「ハッシュ値」という値を持っており、これらをつなげる技術をハッシュチェーンと呼びます。

具体的にはハッシュチェーンを構成するハッシュ値をもとに計算を行い、再び次の新たなハッシュ値を計算します。この作業を繰り返してハッシュ値の連鎖を行ったものがハッシュチェーンです。ハッシュチェーンにより、データの前後の整合性が保たれ、誰かが何らかの方法でブロック内のデータを改ざんすることができにくくなります。

従来のシステムでは、サーバーのデータベースにアクセス権限があると、そのデータを書き換えることが原理的には可能でした。よって、サーバーに誰もアクセスできないようにセキュリティ対策を強固に行う必要がありました。

しかし、ブロックチェーンでは、プルーフ・オブ・ワークや、このハッシュチェーンというしくみを採用しているため、取引履歴がすべて公開されているにも関わらず、誰も取引履歴を書き換えられず、安全にシステムの運用を行うことが可能です。このコペルニクス的転回とも言える考え方がブロックチェーンの肝と言われています。

中央管理者不在でも不正を防ぐ仕組み
ブロックチェーンでは、取引をデータ化し「ブロック」と呼ばれるひとまとまりのデータを作成していきます。ブロックを参加者が作成し、検閲し、繋いでいくことで、銀行が管理している帳簿と同じ意味を持たせます。ここで問題になるのは「どうやって参加者にブロック(帳簿)を不正なく作成させるか」ということです。銀行などを利用した取引では、中央管理者によって不正が行われていないか監視され、この問題をクリアします(もちろんクリアするための要素はそれだけではありませんが、不正かどうかを中央管理者が判断する、ということです)。このような取引では「不正なく送金できる」と、銀行を人々が信頼している必要があります。取引を管理する「中央管理者」がいることで、その中央管理者の責任の下、不正が働いていないか監視されるのです。そんな中央管理者の監視に対して、ビットコインは「ブロックチェーン」とその他の付随するシステムによってこの問題をクリアします。ブロックチェーンを不正なく作成していくシステムは、様々な要因があるので一言では説明できませんが、ブロックチェーンのみに焦点を当てて簡単に言うと「ブロック作成ごとに行われる、参加者による検閲」によって不正を防ぐのです。ある参加者が作成したブロックは、他の参加者が必ず検閲するルールになっています。そこで不正が見つかると、そのブロックは破棄されます。「他の参加者によって検閲」されるルールがブロックチェーンにある事で、中央管理者不在でも不正が防げます。これがブロックチェーンの不正防止の仕組みの一つです。このルールを実施するために、ブロックチェーンは世界中に公開されており、誰でもそこに不正がないかを確認できるのです。

世界に公開されているブロックチェーンの仕組み
全世界に取引記録を公開することで、誰でもチェックできるようにして、不正を防ぐブロックチェーンですが、自分の取引が「誰にでも見られてしまう」という懸念はないのでしょうか。もちろん、ビットコインにはプライバシーを保護する仕組みもあります。ビットコインを保有する場合は「ビットコインアドレス」が必要です。しかし、ビットコインアドレス作成には個人情報は必要ありません。個人情報と紐づかないビットコインアドレスがブロックチェーンに記載されるため、「取引記録」が公開されていても、個人情報が取得されることはありません。A君がB君に1BTC送金した場合、「アドレスA(A君のビットコインアドレス)からアドレスB(B君のビットコインアドレス)へ1BTC」というデータがブロックチェーンに記載されることになります。アドレスAの取引記録を参照しても、A君の取引記録だとは誰も分からないのです。なお、ビットコインが犯罪に利用されたケースなどで、警察などの捜査機関がビットコインアドレスから、どの端末で利用したかなどを調べることは可能です。ビットコインには匿名性はあるものの、不正利用を防ぐ透明性も持ち合わせています。ただし、これは捜査権を持つ機関が行う場合のみで、私人が権限なしに個人情報にアクセスすることは難しいので、安心しましょう。

ブロックがつながれていく仕組みと過去ブロックの改ざん防止
ここまでの説明で、ブロックチェーンは「ブロックというひとまとまりの取引データから成り立っていること」「それを参加者が作ること」そして「検閲が行われることで不正を防いでいること」が分かりました。続いて、なぜそれがブロック「チェーン」と呼ばれているかその理由と、ブロックがつながれていく仕組みを解説していきます。「参加者がブロックを作成する」と先ほど説明しました。そのブロックを作成する際に、取引データ以外にもあるデータを埋め込みます。そのあるデータとは「一つ前に存在するブロックのデータの一部」です。ブロックチェーンのブロックは、全てにおいてその一つ前のブロックデータの一部が次のブロックに使用されることにより「繋がれている」ことが証明されます。この「一つ前のブロックのデータを次のブロックに埋め込んで繋ぐ」ことが、過去のブロックの改ざんを防ぐ仕組みの一つになります。仮に、最新のブロックから10個目のブロックを改ざんしたとしましょう。すると、次のブロック(先頭から9個目のブロック)のデータに矛盾が生じます。なぜなら、9個目のブロックには10個目のブロックのデータが入っているからです。10個目のブロックデータが変われば、9個目に埋め込んだ10個目のブロックデータの一部を変更しなくてはいけません。そうなると、自動的に8個目、7個目…と先頭までのブロックを改ざんしていかなくてはならなくなります。そうしている間にも新たなブロックが追加されていくため、結果的に改ざんは終わることが無くなります。そのため、事実上誰も改ざんができない状態となるのです。これがブロック「チェーン」の過去記録の改ざん防止機能です。「なぜ過去の改ざんを行っていっても先頭のブロックに追い付かないか」は、「改ざんにかかる時間」と「ブロックを作成する時間」が関係しています。改ざんにかかる時間が、新規ブロックを作成するための時間と同じだけかかる仕組みになっているため、改ざんが追いつくことがないのです。

ハッシュ関数とは?
ビットコインではさまざまなハシシュ関数が使われていますが、代表的なのが上で説明したSHA-256です。ハシシュ関数はキーとなる入力値(引数)を元に、不可逆な数値変換(ハシシュ化)を行い、関数ごとに定められた固定長の出力値を出力します。特定の入力値に対しては常に一定の出力値を返すため、膨大なサイズのデータをハシシュ化してデータの索引を作れるほか、入力データの改ざんを防ぐ、ために用いられます。ハシシュ関数のアイデアは1950年代に考案されました。

正当じゃない取引はどうなるの?
正当と見なされなかったブロックチェーンに含まれた取引は、無効となります。また、そのブロックチェーンのマイニング報酬も消滅します。しかし、たまたまブロックが分岐する確率はおよそ0.2%以下であるとされています。そのため攻撃者が意図的に分岐させない限り、ブロックの分岐が起こる確率はかなり低いのです。また取引自体が消滅するため、ビットコインはもう一度使えるようになります。

コンテンツ一覧

  1. 設定方法

    シンボルウォレットのダウンロードと設定方法【Symbol W…
  2. 設定方法

    シンボルウォレット ハーベスト設定方法【Symbol Wal…
  3. 設定方法

    Symbol モバイルウォレットの使い方【Symbol Wa…
  4. 設定方法

    シンボルウォレット ハーベスト設定方法【Symbol Wal…

ピックアップ

  1. 暗号資産

最新コンテンツ


PAGE TOP

設定方法

シンボルウォレットのダウンロードと設定方法【Symbol Wallet】デスクト…

設定方法

シンボルウォレット ハーベスト設定方法【Symbol Wallet】デスクトップ…

設定方法

Symbol モバイルウォレットの使い方【Symbol Wallet ios】ア…

設定方法

シンボルウォレット ハーベスト設定方法【Symbol Wallet】モバイルウォ…

設定方法

Symbol Wallet バージョンアップの方法【シンボルウォレット更新】アッ…