(O+P)ut

OutPut Log by SE in SIer



(O+P)ut

OutPut Log by SE in SIer

ブロックチェーンでトレーサビリティが確保できる理由

スポンサーリンク

f:id:mtiit:20181218225214p:plain
ブロックチェーンの応用例として、ブロックチェーン追跡機能を利用するものがあります。

ブロックチェーンには、自動で取引履歴が残り改ざんできない、信頼性の高い情報のトレース(追跡)機能があります。

今回は、ブロックチェーン技術の持つトレース機能を説明するために、
暗号通貨であるビットコインを取り上げます。

ビットコインでは、自分が受け取ったビットコインがどのように流れてきたか、そして自分が送付したビットコインがどのように流れていくのかを追跡することが可能です。

その理由を解説することで、他の応用のイメージを掴んでいただければと思います。

トランザクションを追跡できる理由

Aさんが500円玉を使ってコンビニで買い物したとします。
その500円玉に着目すると、以下のように持ち主が動いていくことでしょう。

取引時刻 送り主 受け取り主 使用シーン
08:00 お客 Aさん 店員 Bさん コンビニで500円玉で支払い
08:12 店員Bさん お客 Cさん コンビニで500円玉のお釣り
08:49 お客さんCさん 店員Dさん カフェで500円玉で支払い

と言っても、当たり前ですが誰も硬貨1枚ずつを管理しているわけではないのでAさんはそれを追跡することは不可能です。

一方でこの500円玉がビットコインとなれば話は別です。追跡可能です。

なぜ追跡が可能なのか

それは送付する時の仕組みを見れば理解できます。

例えば、過去AさんがBさんに3BTC送りました。ある時、そのビットコインを使ってBさんがCさんに1BTC送りたいとします。

普通に考えれば、3BTCを持っているので1BTCだけをCさんに送って残りの2BTCをBさんは持っておきます。

しかし、ビットコインではそれはできません
3BTCを全て送る必要があります。

ただし、もちろん全部送ると手元に何も残らないので
2BTCを自分宛に送ります。
f:id:mtiit:20181222214302p:plain

300円を持っていた場合に100円の商品を買うのに300円払って200円お釣りをもらうイメージです。*1

なぜこんなことをするのかというと、
そのトランザクションの正当性の確認に利用するからです。

Bさんが発生させたトランザクションの正当性を確認するポイントは以下の2つです。

1. 過去にBさんは3BTCを送付されている
2. 送付されてからBさんはそれを送付していない

かなりシンプルな制約です。


つまりBさんの残高なんてどうでもよく、過去に同額のトランザクションを受け取っていることのみがポイントになります。


ブロックチェーンでは分散台帳型システムを採用し、参加者全体でその取引に不正がないかをチェックしあっています。そして過去の取引はブロックチェーンに参加する各参加者が皆共有しています。

例えば悪意のある誰かが不正な送金をしようとしても
「あなたは過去にその金額を送付されていないよね?」または「その金額は既に使ってるよね?」という観点で簡単に不正を見破ることが可能です。
これが受け取った同額を送付に利用させる仕組みの肝です。


この仕組みがおもしろいのは、
Bさんが受け取った3BTCはAさんから来ましたが、Aさんが誰にもらったのかも突き止めることができます
ブロックのどこかに、誰かがAさんに3BTCを送っているトランザクションが存在するからです。

逆に、BさんはCさんに支払った1BTCがどのように使われるかは、Cさんが送付する情報を見れば分かってしまいます。どんな形であれ、1BTCを送付するからです。


これがブロックチェーンのトレース機能です。


この仕組みを用いれば、例えば赤十字に送られたビットコインがどのように使用されるのかもきちんと追うことができるのです。*2

補足

ちなみに、受け取ったトランザクションを合算して送付することも可能です。
f:id:mtiit:20181222224244p:plain

まとめ

ブロックチェーンでトレーサビリティが確保できる理由は、

からです。

ご参考になれば幸いです。

*1:トランザクションモデルと呼んだりします

*2:もちろんビットコインアドレスが分かるのみなので、厳密に個人を特定することは不可能です。