暗号資産(仮想通貨)の基礎

すべての送金記録を並べるブロックチェーン|ブロックチェーンの基礎

前回、ブロックチェーンではトランザクションが世界中のマイナー(サーバ)に配信されるまでに異なる時間がかかるので、一定時間ごとにトランザクションを集めてブロック化する原理を説明しました。トランザクションの到着順序がマイナーによって異なることは、仮想通貨の残高を記憶する方法にも違いをもたらします。

参考記事:ブロックチェーンが「ブロック」を使う理由|ブロックチェーンの基礎

通常の預金口座管理方法とブロックチェーンの管理方法を比較してみましょう。


通常の預金口座管理方法


通常、銀行の預金口座はコンピュータセンタに設置したコンピュータシステムのデータベースの中に口座番号毎の預金残高を記録しています。証券会社の株券管理口座やインターネットショップの個人会員管理口座なども同様な原理でシステムが作られています。

例えば口座A、B、Cにそれぞれ100万円、10万円、10万円の残高がある場合を考えてみましょう。ここに「口座Aから口座Bに50万円を送金する」というトランザクション①が到着するものとします。すると口座Aからは50万円が引き算されて口座Bには50万円が足し算されます。結果として口座A、B、Cはそれぞれ50万円、60万円、10万円となります。同様に「口座Bから口座Cに20万円を送金する」というトランザクション②が到着すると残高は50万円、40万円、30万円となります。2件のトランザクションが正常に完了するわけです。

【図1】

通常の預金口座管理方法

通常の預金口座管理では中央のコンピュータシステムのデータベースに最新の残高を記録する方式なので、トランザクション処理の順番が重要です。上記の例でトランザクションの到着順がトランザクション②、トランザクション①となると仮定すると、トランザクション②を実行する時点では口座Bには10万円しか残高が無いので送金に失敗します。

通常の預金口座管理方法ではトランザクションの到着順の管理が非常に重要になるのです。

ブロックチェーンでは多数のマイナーにそれぞれ異なる順序でトランザクションが到着してしまうので、上記のような方法ではマイナー毎に送金可能/失敗が変わってきてしまい整合性がとれないのです。


ブロックチェーンによる口座管理方法


通常の預金口座管理においてトランザクションの到着順が重要に基本的な原因は「トランザクション発生時には最新の口座残高が確定していない」ことです。そこでブロックチェーンではトランザクション発生時には自分が今持っている分だけのお金しか送金要求ができない仕組みにしました。

具体的には、ブロックチェーン上にすべてのトランザクションを記録します。インターネット上のすべてのマイナーは、最初にお金が生成されてから誰に送金されたのかを順に追跡することにより、知りたい口座の残高を計算しなければなりません。すべての取引を順に記録して消さないという意味では、江戸時代の商人が使っていた大福帳と同じような考え方になります。

例えば、図2に示すように①~③の3個のトランザクションがあるとします。口座Xには最初から1.0 BTC(Bit Coin)ありYに1.0 BTC全額を送ることにします。トランザクション②では口座Yの1.0 BTCから口座Zに0.5 BTCを送金します。ブロックチェーンでは②のトランザクションを作るときには、口座Xから送られてきた1.0 BTCの送金トランザクションを小口に分けて転送する形式で新たなトランザクションを生成します。

さらに③のトランザクションのように口座Yから口座Wに0.3 BTCを送金する場合、口座Xから送られたトランザクションの残り0.5 BTCをさらに小分けにした0.3 BTCのトランザクションを生成して転送する形式で新たなトランザクションを作ります。

【図2】

ブロックチェーンによる口座管理方法

つまり、自分の口座番号に送られてきたトランザクションに書いてあるお金だけしかつぎの送り先には送ることができないのです。これはあたかもお金に自分の口座番号を書いて送ってもらい財布に入れておき、自分が支払うときには支払い先の名前をお札に書いて送るといったイメージになります。トランザクションがお札の役割をしていると考えることもできます。

口座番号毎の残高はトランザクションをすべて追跡することにより計算をします。

以上のようにブロックチェーンでは通常の銀行預金口座の管理とはまったく異なる考え方で管理しなければなりません。なぜこうなったかというと、上述のように、中央の管理者がおらず、世界各地に存在する多数のマイナーで管理しなければならないからなのです。


本記事の監修者・上野 仁(Hitoshi Ueno)


1984年山梨大学大学院修士課程(計算機科学専攻)修了後、株式会社日立製作所入社。システム開発研究所、エンタープライズサーバ事業部などで主としてコンピュータアーキテクチャおよび基本ソフトウェアの研究開発に従事。

2015年より第一工科大学東京上野キャンパス情報電子システム工学科教授に就任。生体信号処理に関するプログラム開発や種々の先端ソフトウェアついての調査研究に興味を持つ。技術士(情報工学)。博士(工学)。


本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。



この記事をシェアする

ホーム » 暗号資産(仮想通貨)の基礎 » すべての送金記録を並べるブロックチェーン|ブロックチェーンの基礎