ブロックチェーンの定義(自分の忘備録)

日本ブロックチェーン協会は、ブロックチェーンを下記のように定義している。

狭義の定義

  • ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル、またはその実装をブロックチェーンと呼ぶ。」
    • A blockchain is defined as a protocol, or implementation of a protocol, used by an unspecified number of nodes containing Byzantine faults, and converges the probability of consensus reversion with the passage of time to zero.

広義の定義

  • 電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現する技術を広義のブロックチェーンと呼ぶ。」
    • In a broader sense, a blockchain is a technology with a data structure which can easily detect manipulation using digital signatures and hash pointers, and where the data has high availability and integrity due to distribution across multiple nodes on a network.


WikiPediaでは下記(定義というよりは説明)。

分散型台帳技術、または、分散型ネットワークである。
ビットコインの中核技術(サトシ・ナカモトが開発)を原型とするデータベースである。
ブロックと呼ばれる順序付けられたレコードの連続的に増加するリストを持つ。
各ブロックには、タイムスタンプと前のブロックへのリンクが含まれている。
理論上、一度記録すると、ブロック内のデータを遡及的に変更することはできない。
ブロックチェーンデータベースは、Peer to Peerネットワークと分散型タイムスタンプサーバーの使用により、自律的に管理される。

ブロックチェーンは、「ブロック」と呼ばれるデータの単位を一定時間ごとに生成し、鎖(チェーン)のように連結していくことによりデータを保管するデータベースである。
つまり、ここでいうブロックはノードである。
主鎖(黒)の同一性は、起源ブロック(緑色)がもつハッシュ値を究極的な拠り所とする。主鎖は、起源ブロックから現在のブロックまでの最長の一連のブロックで構成されている。
孤児ブロック(紫色)は、主鎖の外側に存在する。
あるブロックチェーンに参加する者のうち、プルーフ・オブ・ワーク(PoW)と呼ばれる、計算に時間のかかる値を最初に計算した者が、次のブロックを生成することができる(Proof-of-stake(PoS) など別の手法もある)。
あるブロックの内容は直前のブロックのハッシュ値に依存するため、いったんチェーンに追加されたブロックを改竄することは(それ以降のブロックを全て破棄しない限り)できないとされている。
要約値とも呼ばれるハッシュ値は、データの同一性・関連性を認める際に目安となるが、その信頼性は衝突の頻度による。ブロックチェーンに応用した場合は、改竄でないデータを改竄として検出しないかどうか、応用自体の正否に立ち入った検証を必要とする。
ブロックチェーンは孤児ブロックを検出すると、ハッシュ値に基づく「多数決」によって正統な主鎖を決定し、ブロック間の同期を確保する。

ハッシュ関数とは、元となるデータから一定の文字数の不規則な文字列(ハッシュ値)を生成する関数です。
同一のデータであれば同じハッシュ値が生成されますが、少しでも異なれば全く異なるハッシュ値が生成されます。
また、生成された文字列から、元のデータを読み取ることができない「不可逆性」を持っているのが特徴です。
ブロックデータには、ハッシュ関数によって暗号化されたトランザクションと直前のブロックデータのハッシュ値が含まれています。
直前のハッシュ値と、「ナンス値」という特別な数字を見つけ出すことにより整合性が取ることができ、ブロックがブロックチェーンへ新たに追加される流れを「承認」といいます。