仮想通貨

ビットコインをイチから説明してみる その2

投稿日:2018年2月16日 更新日:

この記事は前回の続きです。
ここから読んでもべつに問題ありませんのでご安心ください。

もくじ

今回のお品書き

ビットコインを初めとする仮想通貨が成り立つには、「誰もが信じられる台帳」が必要です。
今回は「台帳」とはどういうものか、というのを説明してみましょう。

理想の台帳の姿をかんがえる

仮想通貨のために必要な「台帳」とは、一体どういうものでしょうか。
仮想通貨から逆算して、理想的な台帳の姿を考えてみましょう。

ではまず、仮想通貨とは、一体どういうものでしょうか。

  • 「人」ではなく「ルール」を信じる。「悪いことをたくらむ人が混ざっている」というのを忘れない。
  • 「誰がいくら持っているか」を保証できる仕組みが必要。
  • 仮想通貨を使って何かを買うために、「自分のお金を誰かに渡す」(これを「取引」と言います)ことができないといけない。

最低限こんな感じです。
上記の要件を満たすために、「台帳」が必要になります。
どんな台帳があれば良いでしょうか。

  • 悪い人が好き勝手に書き換えることができない。
  • 「取引」が簡単に台帳に記録できる。
  • 行った「取引」は本人ですら取り消せない。

こんな感じですかね。
さて、こういう台帳を考えてみましょう。
思いつきますか?私は思いつきません。
しかし答えは既にあります。「ブロックチェーンを使った分散台帳」です。

分散台帳とは

一旦、「ブロックチェーン」の部分は置いておきましょう。
分散台帳、というところだけ着目して説明します。

分散台帳とは、「(ビットコインの)参加者全員が台帳を持つ」ということです。
「分散」と付いていますが、全員の台帳は全く同じものです。

図にしましょう。こうです。全員が、同じ台帳を持ちます。これが分散台帳です。

Dさんは都合により居ません。そしてEさんは見た目通り悪い人です。

ここでEさんがいろいろと悪いことを企んだとしましょう。悪いことを企むのはEさんの得意技です。

たとえば、自分の台帳の数字をいじって大金持ちになろうとした、とします。

……他の人の台帳と数字が合わないので、Eさんがウソをついているのがバレバレですね。
台帳の数字をダイレクトに書き換えようと思ったら、参加者全員の台帳を全てハッキングする必要があります。とうていムリな話です。
基本的に、分散台帳の利点はここにあります。「誰か一人が自分の台帳だけを改ざんしても、意味がない」というところです。

自分の台帳を直接書き換えてもイミがない。全員の台帳を書き換えるのはちょっとムリ。じゃあ次にEさんはどういう手に出るでしょうか。
取引の偽造」です。

「取引」ってなんだろう

仮想通貨の世界でのお金の取引を「トランザクション」と言います。
トランザクションは、お金を払う側が参加者全員に伝わるようにネットワークに流します。
例えばAさんがBさんにビットコインを1枚渡す場合、「Aさん→Bさん 1枚」という情報を、CさんやEさんも含めた全員に伝えます。
ビットコインはP2Pネットワークで構成されていて、トランザクションを受け取った人は、まだ受け取れていない人に伝言ゲームしてあげる決まりです。例え自分と関係ない取引でも、です。これは、トランザクションは後で台帳に記載するために、あらゆるトランザクションを全員が知っておく必要があるからです。

取引を偽造しよう

さあEさんが、取引の偽造を試みます。
とりあえずBさんからお金をもらったと主張してみましょう。

しかし周りからはウソだと見抜かれてしまいます。なぜでしょう。Bさんの署名がついてないからです。
トランザクションには「デジタル署名」が付きます。これによって、誰が作ったトランザクションか判別できます。
送り主の署名がないトランザクションは、すぐにニセモノだとバレてしまうわけです。
この署名を作るには、それぞれの参加者が持つ「秘密鍵」が必要になります。

次にEさんが少しアタマをひねります。
なんと、さっき「Aさん→Bさん」で使ったAさんの署名をコピペしてきます。

しかしこれもまたウソだとバレてしまうのです。
なぜなら、「デジタル署名」というのはただのAさんのサインではなく、「取引内容の情報を含んだAさんの署名」だからです。
署名の中の取引内容と、署名がくっついている取引の中身が違えば「確かにAさんの署名だけど、中身が違う」ということが分かるのです。
ちなみにこういう、「ホンモノの通信データを再利用して悪いことをする」手法を「リプレイ攻撃」と言います。

最後に、Eさんが、Cさんの秘密鍵を盗んだとしましょう。
そしてなんと、盗んだ秘密鍵を使って署名を完全に偽造してしまいます。

さすがの分散台帳も、秘密鍵を盗まれてしまうとホンモノとニセモノの区別が付きません
すると、参加者は「これは正しいトランザクションだ」と解釈してしまいます。
Eさんはようやく仮想通貨を盗み出すことに成功したわけです。

さて、この秘密鍵を盗まれたマヌケのCさんは誰でしょうか
そうですね、CoinCheckです。
こうなってしまえば、一度認められた取引を取り下げることはできません。それは仮想通貨のルールに反する行為だからです。
(逆に言えば、参加者の合意のもとに「ルールをねじ曲げて取り下げさせる」というのも手段の一つとして可能です。このように通貨のルールを変える行為を「フォーク」と言います。CoinCheckのXEM盗難事件でも検討されましたが、開発団体であるNEM財団が「ルールをねじ曲げて対応すべきものではない」として却下しました)

分散台帳のまとめ

というわけで、分散台帳は非常に優れた仕組みではありますが、「とにかくなんでもいいから安全!」というわけではありません。
自分の身は自分で守らないと、自分一人をターゲットに攻撃を食らってしまうと、自分の仮想通貨を盗まれる可能性があるんですね。

次回はこの分散台帳を実現する仕組みである「ブロックチェーン」、そして「マイニング」のあたりを説明…できたらいいですね。

(追記)続きできたよー

-仮想通貨

執筆者:

関連記事

Dogecoinを買って仮想通貨の波に乗ろうぜ

注意:この記事は前回の株よりも激しくジョークです。 また、PC、とくにWindowsでの閲覧を強くオススメします。 激しく読みづらい可能性がありますが、Dogecoinとはそういうものです。 仮想通貨 …

$XP のゲームにおける活用パターンを考える

もくじ 要約 $XP (Experience Points)は、「人生に経験値を」という理念のもとに開発されている暗号通貨である。$XPはゲーム内の報酬として利用されることを想定している。しかし、20 …

no image

公文書偽造はブロックチェーン技術で防げるか

もくじ まえがき 世間では公文書を偽造したとかしないとかが話題ですね。 一部ではブロックチェーン技術を使って公文書偽造を防ごうとか防ぎたくないとかって話題も出ているので、少し解説と検証をしましょう。 …

CentOSでXPdをビルドする

$XPの公式がどうやらUbuntu派っぽいんだけど、個人的にはCentOS派なのでメモ。 大前提 対象OSはCentOS7。 2018年1月14日現在(バージョン1.1.0)の情報なので気をつけること …

no image

ビットコインをイチから説明してみる

もくじ はじめに 仮想通貨についてそこそこ内容がわかってきて、何がどうなっているのかをおぼろげに理解できてきました。 自分の整理もかねて、「ビットコインってなんなんだよ」っていうのを吐き出してみたいと …