ビットコイン相場で話題の「マイニング(採掘)」って何?
Aの電子財布を作成するのと、Aが銀行に口座開設するのとは似ているような感じもするが、実際には異なる。具体的に、預金データとビットコインを比較してみると、次のような違いがある3(図表1)。
-----
3 以下で説明するようにデータとして銀行口座データとビットコインデータには違いがあるが、例えば決済業者にビットコインの保管を委託し、利用するという立場から見ると、預金口座や証券口座を保有するようにビットコイン口座が保有できるため、利用上の感覚は類似する。
まず、預金は様々な人・企業の口座(残高や口座間の異動)データであり、銀行が管理している(図表1の最上段)。Aさんは自分の口座の残高情報や数年前までの取引履歴を知りたいときには、銀行に依頼して、銀行が保有しているデータの一部をAさんに開示するという手続きを踏んでいる。
送金や現金の引き出しは、銀行に対して(ATMカードなどで)Aさん本人であることを示した上でなされ、また、その取引・残高データは銀行が記録する。
一方、ビットコインは、「取引」が連なったデータであり、ネットワーク参加者全員に共有されている(フルノード参加者全員が保有している)。なお「取引」データは、コインがどこからどこに行ったのかを記した、原資(資金源)と送金先・金額が記載されており、「残高」という視点でデータは蓄積されていない。
例えば、図表1中央下段の「【取引3】A→Cに100異動」の「取引」では、送金するための原資(【取引2】〔(3)〕の取引)と送金先((3)からCに100〔(4)〕)というデータが記される。そしてAの残り540(手数料除き)も「取引」の一部として((3)からAに540〔(5)〕)として記される。この後、Aがこの540を原資としてBに送金する場合は、(5)の原資からBに△△という取引が続くことになる(原資と送金先はそれぞれ複数で1つの「取引」となることもある(図表1の一番右の例))。Aが保有するビットコイン(使えるビットコイン)の残高を知りたいと思ったら、これまでの「取引」をすべて集めた上で、まだ送金されておらず原資として使える金額を合計する必要がある。
「取引」データの追加は、ある参加者が正しい(データ上不備のない)「取引」を作成すると、他の参加者にその「取引」データが伝送される形で、全参加者に共有されていく。参加者なら誰でも自ら「取引」を作成することができ、それが全参加者に共有される仕組みである(ただし、原資を保有する人しか、その原資をどこかに送金する「取引」を作成することはできないようになっている。これは前述の最初の疑問に関連する仕組みである)。
この「取引」がいくつかまとまって「ブロック」と呼ばれるデータの集合となる。そして、この「ブロック」の全体がビットコインのブロックチェーンと呼ばれている(チェーンと呼ばれる理由は後述)。「取引」の共有と同じく、基本的にはこのブロックチェーン(ブロックの集合体全部)を取引参加者全員が保有している4。この、ビットコインのような参加者(ノード)がすべてのデータを共有、管理している仕組みは「分散型」のシステムと呼ばれる5。
-----
4 前述の通り、ここまで参加者によるデータの共有については、いわゆるフルノードの参加者を念頭に説明している。ネットワーク参加者でも、すべてのブロックをダウンロードしない軽量型のノードが存在する(計量型のノードは他のフルノードが持つブロックチェーンの情報を参照することで軽量化を実現している)。
5 分散型システムで保有されるこのデータのことを「(分散)台帳」と呼ぶことも多い。なお、共有されているデータは完成されたブロックチェーンだけでなく、「ブロック」になる前の「取引」なども含まれる(承認前の取引の意味であり、詳細は後述する)。また、「分散型」は銀行によるデータの独占のような「中央集権型」「集中型」の対義語となっている。