今回学ぶこと
前回の記事で、ブロックチェーンとは
- 記録を変更・改ざんできない
- 管理者不在であり、参加者で運用する
という特徴が必要であることが分かりました。今回は、この二つを達成するためのブロックチェーンの大まかな仕組みについて解説していきます。まず大雑把な概要を解説して、次回からさらに細かく解説していくことにします。
ブロックチェーンの全体像
ビットコインを例にとって、ブロックチェーンの全体像を解説します。ブロックチェーンの仕組み自体は様々な技術に応用されているのですが、もともとブロックチェーンはビットコインのために生まれた技術なので、まずビットコインに使われているブロックチェーンから学んでいきましょう。全体像を把握するために、AさんからBさんにお金を支払うシーンを想像してください。
AさんからBさんにお金を支払うとき
まず必要になるのはAさんやBさんのブロックチェーン上の住所です。これはアドレスといわれ、銀行の口座番号のようなものです。このアドレスは電子署名という技術を用いて作成されるものですが、それは次回以降詳しく解説します。
AさんのアドレスからBさんのアドレスにお金を支払うという取引情報は、ネットワークを通じてビットコインのP2Pネットワークに拡散されます。P2PとはPeer to Peerの略称で、対等なものから対等なものへ、という意味です。ビットコインは管理する存在がいないため、ビットコインネットワークに参加している人達みんなでその取引情報を管理します。しかし、まだこの取引情報は書き換え可能なものなので、拡散された時点では取引は完了していません。つまり、まだAさんからBさんにお金は支払われていない状態です。それでは、いつAさんからBさんにお金は支払われるのでしょうか。
答えは、「AさんからBさんへお金を支払ったという情報がブロックチェーンに取り込まれたとき」です。一つずつ解説していきます。まず、ブロックチェーンとは簡潔にいうと、ブロックが繋がれたものです。そして、ブロックとは、取引情報の集合体です。AさんからBさんにお金を支払ったという情報は、P2Pのネットワークに拡散した後、マイナーと呼ばれる人たちによりブロックにされます。そして、マイナーはここで数当てゲームのようなものをします。この数当てゲームは意味のない数字を当てるゲームで、ただコンピューターの性能に任せてしらみつぶし数を探していくゲームです。ここで大事なのは、この数当てゲームは数を探すのは大変だけれど、答えが見つかればそれが答えだと確かめるのは一瞬でできるようにゲームです。イメージでいえば、サイコロを二個投げて、その合計数がある数字以下になるまで繰り返し投げさせられるようなゲームです。なんとなくイメージができますか?
世界中のマイナーはみんな必死でサイコロを投げます。この数当てゲームの難易度は、世界中のマイナーが本気で数を探して10分間でやっと発見できるように難易度調整されています。今、あるマイナーCさんが数を見つけました。この数はproof of workのnonceと言われます。nonceを見つけたCさんはP2Pのネットワークに自分がnonceを見つけたことを報告します。そして、そのnonceが正しいことをネットワークのみんなで確かめます。そして、nonceが正しいことが確かめられれば、そのブロックはブロックチェーンに記録されます。
今、AさんからBさんにお金を支払うという取引情報がブロックに取り込まれました。この取引情報を改ざんするためには、再びこの数当てゲーム、つまりはproof of workを行わなければいけません。また、このブロックの上に10分後には新しいブロックが記録されます。ブロックチェーンを改ざんするためには、そのブロックの上のブロックもすべて改ざんしなければいけないというルールがあるため、どんどん積みあがっていくブロック、それも世界中のマイナーが10分でやっと解けるような難易度の問題を解かなければならないそれぞれのブロックのproof of workをすべて解いてデータを改ざんするのは、事実上不可能です。実際には上に四つブロックが連なっているブロックはもう改ざん不可能であるといわれているため、上に四つブロックが連なった状態で初めてそのブロックの取引が完了されます。
以上が取引完了までのおおまかな流れとなっています。各々の詳細はまた一つ一つ解説していきます。これからもゆるりと記事を書こうと思います。ここまで読んで下さりありがとうございました。