ブロックチェーン

使われたトランザクションアウトプットの所有権を証明した一方で、そのトランザクションアウトプットがたしかに存在しているかどうかは証明していないことに、ひょっとすると気づいているかもしれない。実はこここそが、ブロックチェーンの主機能が秀でるところである。

ブロックチェーンは、ジェネシスブロックとして知られている最初のビットコインのトランザクションが発生して以降の、すべてのトランザクションのデータベースとなっている。そしてブロックチェーンは世界中に複製されている。もしビットコインコアを使っているなら、あなたのコンピューターにもブロックチェーンの最初から最後までが保存される。一度トランザクションがブロックチェーン上に表れたら、その存在を証明するのはとても簡単なのだ。

マイナー は、ビットコインブロックチェーンにトランザクションを記録することだけがゴールである。しかしマイナーはトランザクションを1つ受け取るたびにビットコインブロックチェーンを変更しているわけではない。そうではなく、それぞれのマイナーは、ブロック と呼ばれる同時期に発生したトランザクションの集まりをブロックチェーンに追加しようとする。ネットワーク上にある他のノードは、その新しいブロックがビットコインプロトコルに示されているルールに従っているかを確認する。もし2人のマイナーが同時にブロックに加えたら、フォーク が生まれ、しかし結局は最もマイニング労力(work) が費やされたフォークだけが生き残る。もしマイナーがブロックに無効なトランザクションを含めようとしたら、他のノードがそれを承認しないので、そのマイナーはブロックを作るために使われた投資を無駄にすることになる。

あるマイナーが有効なブロックを送信できたら、そのブロックに含まれているすべてのトランザクションが Confirmed(承認済) となったと認識される。このときすべてのマイナーはその時点で取り組んでいるマイニング作業を破棄して、新しいトランザクションをブロックに含める作業を始めなければならない。ブロックが承認されると、ビットコインブロックチェーンにそれが書き込まれ、その後他のブロックがどんどん追加される度に、そのブロックの承認が取り消される可能性は劇的に下がる。

歴史の中で初めて、私たちは簡単に書き換えられず、信用の必要性を排除し、検閲ができない、そして、広く分散化されたデータベースを手にした。ブロックチェーンを台帳にたとえるのは、ビットコインを通貨として考えるときにだけ妥当な話である。

ビットコインブロックチェーンはデータベースで、だれでもそのデータに好きな意味を持たせることができる。すぐに気づくだろうが、ビットコインのトランザクションはただのビットコインの移動だけではなく、より多くの情報を持つことができる。ビットコインのトランザクションデータと消すのが不可能なデータベースの中の1レコードといえる。

ユーザーとして、2つの方法でブロックチェーンの中にある特定のトランザクションの存在を確認することができる。

  • ブロックチェーン全体から探す。ブロックチェーンは、本書を書いている時点で数十ギガバイトのサイズだ。

  • 数キロバイトの部分的なマークルツリーを探索する。マークルツリーについては Simple Payment Verificationと関連するので、後で、解説する。