編集部注:この原稿は朝山貴生氏(@takaoasayama)による寄稿で、2015年5月に掲載したものを一部アップデートしたものとなる。最近ではビットコインに関する記事も増えたが、その概念から詳細に解説しているものはそう多くはない。この年末年始に改めて仮想通貨について学びたい読者にとって、普遍的な価値がある内容だと考えている。なお朝山氏はビットコインと国産暗号通貨のモナーコインを扱う国内向け取引所の「Zaif Exchange」(ザイフ)を2015年3月初旬にオープンしたテックビューロの創業者で代表取締役。2017年10月にはICOによって100億円以上の資金調達を行っている。
ビットコインは本当に怪しくて危険なのか?
2014年、日本のメディアでも華々しくデビューを果たしたビットコイン(Bitcoin)。しかしその登場シーンは、ビットコイン取引所Mt.Gox(マウントゴックス)の破綻という最悪のニュース。同社は日本に本社を置くにもかかわらず、当時は世界最大のビットコイン取引所だった。そのMt. Gox社が、約490億円相当ものビットコインを「盗まれた」と宣言し、その事がたちまちメディアを賑わせた(編集注:債権者は約2万4700人、債権総額は2兆6000億円超となった。一方でビットコインの価格高騰を受けて債権者は2017年11月、東京地裁に同社の民事再生手続きを申し立てた)。
Mt. Gox事件の真相は闇の中であり、いまだに各国の機関において調査が継続している。しかし、当初からはっきりしている事実はただ一つ。これは単に、ユーザーのビットコインを預かっていた取引所であるMt. Goxが破綻しただけであり、ビットコイン自体には何ら問題がないということだ。しかし、それから1年以上経った今でも、日本のメディアでは依然ビットコインにネガティブなイメージがつきまとう。
ところが、それら「怪しい」、「盗まれてしまう」、「消えてしまう」、「信用できない」といったイメージは全くの誤解だ。むしろビットコインは「取引は全て透明性が高く」、「盗むことは非常に困難」であり、「消したくとも消せない」もの。そしてある意味一般的な通貨や銀行よりも「信用できる」ものなのである。ただし法定通貨に対しての、金よりも激しいとされるその価格変動性(ボラティリティ)を除いては、という条件付きだが。
ビットコイン本来の素晴らしさを証明しようと、ビットコイン擁護派がイメージ回復のためにどれほど躍起しようとも、その利点を説明するためには常に技術的なボキャブラリーが欠かせず、それが更に印象を悪くするという悪循環を生んでいる。中でも、ビットコイン自体が生み出した「暗号通貨(Crypto Currency)」という言葉が示すとおり、その根幹となる「ブロックチェーン技術」を説明するためには「暗号」という言葉が避けて通れない。この、「暗号」という言葉が「怪しい空気」を醸しだし、一般人とビットコインとを隔てる溝をより深くする。
と、以上冒頭の4パラグラフだけでも「意味がわからん!タイトル詐欺ではないか!」と、続きを読むことをためらう方もおられるに違いない。
実際に私自身も、この何年間にも渡って、ビットコインをできるだけ簡単に説明する方法をずっと考えてきては諦めることを繰り返していた。そして今までにも日本語で、「これを読めばわかる」的な記事もいくつも出てきてはいるが、やはり一般的に理解されるようなレベルの内容ではなかった。
どうしても、難解な用語とその説明を避けて通れないのだ。
しかし何年も考え続けてみるもので、突如深夜の入浴時にその説明法に関するアイデアがわき出した。
ロールプレイで理解しやすくなる
その時、私がビットコインを説明する方法として思いついたのが「ロールプレイ」だった。
まずは、あえてビットコインの根幹となる暗号技術についての詳細を端折ることにより、その原理と仕組みを比喩的に理解してもらおうという作戦だ。要するに、一番売りである技術的セールスポイントをまずなかったことにして、概要を理解したあとでそこを埋めるという、ビットコイン推進派としては回り道な啓蒙戦術だ。
しかし技術用語を無視するとしても、「P2Pネットワーク」やら「Proof of Work」(後ほど説明)やらといった、ビットコインをビットコインたるものにする特徴の説明が非常に難しい。そこを架空の「役割」を持ったキャラクターが存在する世界で考えることによって、難しい技術用語が苦手な人にも想像しやすくしようと考えたのだ。
ここから続きを読んで頂ければ、あなたにもビットコインがどういうものなのかを理解して頂けるに違いない。そう願う。
では早速その「ロールプレイ」の世界に行ってみよう。
一般的な銀行とお金の仕組み
実は、全く知識のない人にビットコインを説明する際に、「銀行」や「日本円」といった法定通貨と比較することは逆効果である。
当然、それらの比較自体は有効な手段なのだが、原理を説明せずにそれらの違いを話そうすると「それ、電子マネーみたいなものやん?どこが違うの?」で片付けられてしまうのだ。最悪の場合は「中央管理者がいない? それって信用できるどころか逆に不安やん?」と気まずい雰囲気の中そこで話が終わる。
しかし、今日はあなたが遂にビットコインの原理を理解する日だ。従ってその比較は有効だ。まずは一般的なお金や銀行の世界を、それぞれの役割を担った「ロールプレイ」の世界で見てみよう。
通常、お金は国=政府(Dくん政府)が発行している。Cくん銀行は、Dくん政府の許可をもらって銀行業を営んでいる。
AさんもBくんも、Cくん銀行に審査を受けて、それに合格した上で「銀行口座」を持っている。
AさんやBくんが預けた現金は、実際に元帳上にはその金額が残高として載ってるが、実はCくん銀行がEさんなどに貸し付けて利息を受け取っている。Cくんはその利息やその他の手数料で生計を立てているのだ。
ある日BくんがAさんに1,000円を振り込んだ(振り替え)。通帳の残高は振込手数料が取られて8,500円に減ったが、その実態は、単にCくんが元帳で「Bくんの残高が1,500円減った」ことと、「Aさんの残高が1,000円増えた」ことを書き込んだだけだ。その差分の500円は、元帳に書き込む手数料としてCくんのものになる。
これが一般的な銀行だが、もしあなたがBくんである場合、ここで起こっていることの全ては日々当たり前に行われている行為であり、一連のお金の流れは「信用するに足りる」話に聞こえるだろう。誰かに1,000円振り込んだら、相手にお金が入って、自分のお金が減る。そして手数料が取られる。引き出せば現金がATMから出てくる。なんて日常的な話なのだろうか。
その当たり前の話が通じるのは、財政が比較的安定した、日本を含む一部の近代国家における銀行の話。世の中には国民が銀行を信用しない国もある。以下では、そのような財政が破綻した国家とその銀行のような、預金リスクが最大である環境を想定して書いてみよう。
あなたの銀行残高は本当に存在するのか?
では、本当にあなた(Bくん)の残高8,500円は銀行に存在しているのか?もしそうでない場合は、誰かが保証してくれるのか?
事実として、銀行に預けられた現金のほとんどはそこにはない。銀行は、なんと預かっている合計金額よりも大きい金額を外に貸し出すことができるのだから。
実際、この銀行という仕組みはあなた(Bくん)が、お金を発行するDくん政府と、銀行を営むCくんを信用しているという前提において成り立っているのだ。
「銀行が信用できなくてどうする?」
そう思われる方も多いだろうが、日本でも1金融機関1預金者あたり、1,000万円までが保護される仕組み(ペイオフ)が導入されていることはご存知だろう。ペイオフ解禁で補償額が制限されてしまったものの、このような仕組みがあるだけでもまだ恵まれている。米国も同様のFRB制度が設けられているが、こんな制度さえない国家も山ほどある。
ようするに、お金を借りているEさん達が一斉にCくん銀行からの借金を踏み倒したり、Cくんがそもそも銀行の経営に失敗した場合、あなた(Bくん)のお金はなくなってしまう可能性があるということだ。
その場合、あなたの通帳に残高データはあっても、銀行にはもうそのお金さえもないのかも知れない。
銀行の残高データは消えてなくならないのか?
次に、違う切り口から極端な例を考えてみよう。
ある日誰かが、Cくんの管理する銀行の元帳に火をつけた。Cくんは念のため、バックアップとして常に3冊同じ記録をつけて、別々の場所に保管していた。しかしそれらもなぜか同時に火を付けられた。
その場合、あなた(Bくん)のお金(残高)はどうなる?
そう。消えてなくなる。記録、すなわち残高のデータが消えてなくなってしまうからだ。
現実世界にあてはめると、「もしあなたがお金を預ける銀行が管理する全サーバーが一斉に爆撃されたらどうなる?」と言ったところだろうか。
現実社会ではまずそんなことが起こる確率は低いし、先進的な銀行では当然のことながらサーバーも複数箇所に分散して管理してている。
ではこんな場合はどうだろう?
本当に銀行は信用できるのか?
Cくん銀行自体が私利私欲のために、あなた(Bくん)の知らないうちに、その残高である8,500円を元帳上でこっそり自分の名義に書き換えた。その場合、あなたの残高は当然消える。Cくんによる、いわゆる業務上横領である。
さすがに、現代の金融機関システムをそんな風にアクセス権限を飛び越えて違法に操作することは難しいが、今日でも銀行員が預金者の金を横領するなどいう古典的な事件はたびたび起こっている。
その場合、損失を銀行がカバーしてあなたの残高に戻すわけだが、人手を介する業務プロセスがゼロとならない限り、そう言った横領事件が世の中からなくなることがない。
あなたも、今までに友達と人生ゲームをプレイしたことがあるならこんな経験があるに違いない。銀行役をしていたプレイヤーが、ずるをして自分の手元のキャッシュをこっそり増やしたり、トイレに行っているプレイヤーのキャッシュを悪戯でくすねる。それを見つけた他のプレイヤーが怒る。あれが現実にも起こりうる言うことだ。
銀行は大丈夫だ。預金なんてなくならない。実は私も以前はそうだろうと考えていた。しかし、15年以上も前のことであるが、突然欧州の某国で、とある銀行に預けている残高をいきなり半分にされた。たった一通の通知を封書で送りつけられるだけで。銀行が破綻して、残高の半分を再建の原資に回すというのだ。当然、その国には日本のペイオフのような制度はなかった。
人が運営して経営している以上、銀行というシステムには必ずこのようなことが起こりうると言うことだ。
では、国なら信用できるのか?
もし、Dくん政府が国の財政政策で失敗したらどうなるだろう?Dくんがお金を発行しまくったらどうなるだろう?預金の消失を免れ、銀行の残高データは変わらずとも、あなた(Bくん)のお金はただの紙切れになるかも知れない。例えば、缶コーヒーが1本1万円になるかもしれない。
「そんなの、金の純度を下げてでもコインを作りまくった、古代ローマ帝国の話じゃあるまいし」と思われるかも知れない。しかしこの21世紀にも、現実として数多くの国が金融危機に陥っている。近年だけでも、ギリシャ、アルゼンチン、キプロス、その他多数。そんなとき、あなたがCくん銀行に詰め寄って残高を現金化しようとしてもシャッターを閉められ、もし一部を現金化できても日々その価値が下がり、紙くず同然になってしまう可能性だってある。
銀行を信用するしない以前に、国もしくはそれが発行する通貨が破綻してしまっては元も子もない。
ちなみに、皮肉なことにそんな財政破綻しているような国々で特にビットコインの利用が激増している。キプロスでは学費をビットコインで払えるし、アルゼンチンではコンビニでペソをビットコインに両替できる。
さて、以上までの、既存の国家やお金、銀行で起こりうる問題をざっとまとめ直すと以下の通りとなる。
「中央集権」で、誰か人間が運営管理している限り、既存の法定通貨や銀行のシステムではこのような問題が発生する可能性があるというのが事実だ。
さて、私が今日したいのは、日本円や日本の銀行でこんな問題が起こりうるかどうかの議論ではない。繰り返すが、これは金融リスク、預金リスクが最大の環境で実際に起こりうる最悪の問題を「ロールプレイ」した結果のまとめである。
ここまでは、あくまでも既存金融システムに潜んだリスクを理解するための前置き。以上を踏まえた上で、ここからやっとビットコインの仕組みを見てみよう。
ビットコインは単なる電子マネーではなく決済システムだ
まずビットコインは、本当はいわゆる「通貨」ではなく、「電子マネー決済システム」だ。違うことを言う人もいるが、これはビットコインを発明したナカモトサトシの論文タイトルと序章にも書かれている事実だ(これは後ほど紹介)。
ビットコインというのは、何か物理的なものが誰かから誰かに渡っているわけではなく、誰にいくつ発行され、誰から誰にいくら支払われたかのデータを記録する仕組みだ。ところが、その名称だけではなく、単位自体もビットコイン(よくBTCと略される)と呼ばれるから話がややこしくなる。
よくビットコインは「暗号通貨」と言われるが、それは実際に通貨のように使えるから便宜上そう呼んでいるに過ぎない。そして、お偉い学者さんの間でも、いまだにビットコインが通貨であるかどうかの議論が続いている(編集注:日本では2017年4月にいわゆる仮想通貨法が施行され、法定通貨ではないが、支払手段の1つと定義された)。
実際あなたが日本で使う電子マネーも、同じ決済システムの一種である。その場合はあなたがチャージすると、現金と等価交換でその金額が残高としてどこかに記録され、コンビニで使えばコンビニにその残高が移行したとして記録される。どこかにEdyやSuicaなんていうコインが置いてあるわけではない。
繰り返しになるが、ビットコインも「Bitcoin」というコインが存在していて、誰かがそれを管理しているなんてわけではない。ビットコインはお金ではなく、決済システムだと言うことをまず覚えておこう。
「ビットコインも現金で買うんじゃないの?」という問いへの答えは「イエス」だが、それはあくまでも勝手に第三者が現在のバリューで売買するサービスを提供しているだけだ。だからビットコインは常時価格が変動する。それに対して一般的な電子マネーは、サービス運営者がその買い取り自体を手数料ビジネスとしている。上のコンビニの例で言えば、客から支払われた電子マネーを、手数料を差し引いて買い戻す訳である。
しかし、ビットコインはEdyやSuicaみたいな電子マネーとは「全く違う」。根本的な思想からして違うのだ。
ビットコインはオープンだ
実は、ビットコインはソフトウェアだ。そして、それは「オープンソース」という仕組みで、プログラムの中身(ソースコード)がそのまま一般公開されている。要するに、誰もが中身を見て、無料でインストールできる。
「さっき、ビットコインは決済システムって言ったやん?」
そう。ビットコインは中身が丸見えで、誰でもインストールできる決済システムのソフトウェアだ(インストールについての話は後ほど)。
中身が丸見え、ということは、プログラムが読める(書ける)世界中のエンジニアが、その中身に不正が潜んでいるかどうかも自由に精査できると言うこと。
では、そのプログラムは誰が作っているのか? というと、世界中の有志であるエンジニア達だ。しかも、世界でトップレベルの人材が集まっていると言っても過言ではない。
かつて銀行システムの黎明期に、システム開発者が全ての計算を「切り捨て」にして、端数を全部自分の口座に入れていた不正が発生したことがあるとかないとか。そんな不正がビットコインでは不可能だと言うことだ。
銀行システムの場合、開発を請け負う業者が徹底的に不具合を精査して、運営に差し支えないようしらみつぶしにつぶす。ビットコインだと、世界中の有志であるスゴ腕エンジニア達がそれをつぶす。
あなたが使っている電子マネーや銀行のシステムが、その中身を「公開」しているなんて聞いたことがあるだろうか?そんなことはセキュリティー上絶対にあり得ない。
ビットコインは全てが公開されているから、世界中の誰にでも精査や監査ができて、「仕組み自体には不正がない」と言い切れる、「信用できる」決済システムなのである。これはOSやサーバー、セキュリティ関連のソフトウェアといったインターネットを支える基盤技術で、オープンソースのものが成功していることとも無関係ではない。不特定多数の人の目にさらされて、常時改訂を繰り返しているからこそ信用できるのだ。
発行量までオープン
一般的なお金では、その法定通貨という名が表すとおり、国が発行して流通をコントロールしているということだった。よって、国が財政に失敗したり、通貨を発行しすぎたりすると、お金の価値がどんどんと下がってしまう可能性もある。
しかし、ビットコインでは先ほど説明したとおり、全てのプログラムが無償で一般公開されている。その中には、なんとビットコイン自体が発行される量までが最初から組み込まれており、そのルールまでもが全てオープンに公開されている。
ビットコインでは、公開された2009年から毎日ほぼ10分ごとに発行されているが、およそ4年ごとにその発行量が半減し、合計2,100万ビットコインを上限とすることが最初から決まっている。
2015年3月時点で既にもうその半数以上が発行されているが、また2年後である2017年に発行量が半減する。
次第にその発行量は少なくなり、ビットコイン自体の価値が陳腐化しないように計算されている。
日本円や米ドルのように、中央管理する誰かが発行量や流通量を決めて価値をコントロールしているわけではなく、ビットコインは最初からこの先どのように発行されていくかが明記されているという、極めて「透明性が高く」、健全な仕組みなのだ。
では、誰がそのソフトウェアを何に入れて、何のための動かしてるのか?
その疑問は先送りにして、アカウント(口座)の概念をまず見てみよう。
ビットコインのアカウントは自分で勝手に開く
先述の通り、銀行で口座を開設するには、あなたは印鑑を押し、身分証明書を提出して開設を申し込まなければならない。
銀行はあなたが反社会的勢力でないかどうか、過去にその銀行で問題を起こしたことがないかどうかなどを調べた上で、あなたの口座を開くかどうかを決める。言い換えれば、「あんたなんかには口座を開いてやらない」と拒否されることがあるということ。全くの誤解で口座が開けない、なんてこともある。
実は、ビットコインには管理者がいない。その説明も後回しだが、ビットコインには「口座の開設」という概念がないのだ。当然管理者がいないので審査なんてあり得ない。「僕、ビットコインの口座開きたいんだけど、方法を教えてください」。そんな質問に、「勝手に自分でいつでも開けるでしょ?」と、ちょっと詳しい気取りの人からそんな冷たい答えが帰ってくる理由はここにある。
ビットコインではあなたの(口座番号にあたる)アドレスは、あなたがそれを勝手に自分のものと決めて使い始めることによってあなたのものになる。
言わば「今日からこれが俺のアドレスや!」と勝手に宣言するのだ。
ではどうやって?
ビットコインのアドレスは一人100万個でも持てる暗号鍵
世の中には「乱数」という言葉があるのをご存じだろうか?その名の通り、「ランダム」に発生させた数字である。ビットコインの暗証番号にあたる文字列は、その乱数を元にして作られる。
実際の乱数はプログラムが発生させるのだが、めちゃくちゃ乱暴に端折って例えると、ビットコインでは70回ほど10面サイコロを振った数字を出して、それを文字列に変換したものがまずあなたの「暗証番号」にあたるものになる。正式名称は「秘密鍵(Private Key)」。色んな形式があるが、どれも最終的に英数字に変換されている。
例えば、こんな感じ。「5Kb8kLf9zgWQnogidDA76MzPL6TsZZY36hWXMssSzNydYXYB9KF」
(残念ながら私の秘密鍵ではありませんのであしからず)
その秘密鍵を難しい暗号プログラムに通すと、それが「1」か「3」で始まる26文字から35文字の文字列になる。しかも、間違えられにくいように(??)見分けにくい小文字の「l(エル)」と大文字の「I」、数字の「0」と大文字の「O(オー)」は含まれない状態で。これは、飛行機の座席で「I」と「1」が見分けにくいから「I」席が存在しないのと同じ感じだ(笑)。こちらの文字列の正式名称が「公開鍵(Public Key)」。しかし通常は「ビットコイン・アドレス」(Bitcoin Address)と呼ばれる。これがあなたの「口座番号」にあたる。
例えば、こんな感じ。「1P95EfkCvo6HcPN21eVc3aPvzxqEjjGtQy」
(送金を是非お待ちしております(笑))
この「暗証番号」にあたる「秘密鍵」からは、そのプログラムを通せば誰でも「口座番号」にあたるまったく同じ「公開鍵」が作れる。しかし一方通行なのでその逆はできない。「公開鍵」から「秘密鍵」は推測できない。
ちょっと難しい説明になってしまったが、完全に理解する必要はない。ビットコインの根幹には、この「公開鍵暗号」という技術が使われていることだけ頭の片隅に置いておこう(後でもう一度簡単に説明する)。
ここで言いたかったのは、ビットコインの利用においてはこの「秘密鍵」が絶対的な存在だということ。もしこれが他人に渡れば、自動的に「公開鍵=アドレス」を教えることになるのは当然のこと、秘密鍵を持つ人物はそのアドレスにある残高を全て自由に送金することができてしまう。
冒頭でも触れたMt. Goxの破綻。それも、何万という客から預かっているビットコインを管理する秘密鍵が直接犯人の手に渡ったか、もしくはそれを操作する仕組みに違法にアクセスされたか、そのどちらかが起こったと言うことになる。
もともと個人情報を紐付けた「所有権」が存在しないので、「秘密鍵」が他人に知られた時点で、コントロールを失う。これについては自己責任だ。
そこが銀行口座とは違う。その残高や送金を誰も保証してくれない。
もう一つ注目すべきポイントは、実は技術的な話を端折ってさらっと簡単に「10面サイコロを70回振る」と表現した部分。これは要するに、70桁以上の数字が無作為に作られて、変換されてあなたの「秘密鍵」になるということ。
アドレスとして使えるその数は、星の数ほどの組み合わせがあって、計算上あまりにもバリエーションが多すぎて他人のそれとダブることはない。そんな原理で、ビットコインのアドレスは作られる。
例えば、76桁の数字だとこんな感じ。
「5,738,109,574,369,060,248,638,013,835,744,990,135,867,462,664,001,844,289,011,300,385,771,209,384,756」
世界人口が72.5億人だといわれているが、その数字でもこれだけにしかならない。
「7,250,000,000」
どう見ても他人と数字がダブる桁数には見えない。
従って、このアドレスはプログラムを通したら誰でも簡単に作れてしまう。一人当たり、いくつでも作れてしまう。だから、もし必要ならばあなたは100万ビットコインアドレスだって持てる!
では、そのアカウント間の送金はどうやって動くのだろう?
ビットコインは元帳までオープン
送金の仕組みを見る前に、金融システムに必須な元帳の仕組みを覗いてみよう。冒頭で見た銀行の概念を、根底から覆す仕組みがここに登場する。
ビットコインでは、元帳の内容まで全てオープンなのだ。しかも、スタートした2009年から全ての支払い記録(トランザクション)が誰にでも入手できて閲覧することができてしまう。この部分だけでも、もう金融システムとしては非常識きわまりない。
ここで、先ほど後回しにした「ビットコインのインストール」についての話が登場する。
ソフトウェアとしてのビットコインは、そのルールに従って様々なバージョンが作られており、色んなハードウェアで動かせる。PCはもちろんのこと、専用機もあるし、やろうと思えばあなたが持っているスマートフォンで動かすことだって可能だ。
実際にソフトウェアとしてのビットコインを自分のPCにインストールすると、2009年から始まったその何十ギガバイトという元帳データをダウンロードして同期することから始まり、ひどい場合にはそのデータ同期には数日以上もかかる(ただし元帳データを同期しないようにもできる)。
「そんなことしたら、僕の支払いがみんなに丸見えで、プライバシーもくそもないやん!」
そう考えるのはごく自然だが、先ほど説明したとおり、ビットコインには個人情報は一切関係ない。存在するのは、ランダムに作られた無数の「アドレス」だけ。その元帳には、「どのアドレスからどのアドレスにいくらビットコインが送金されたか」だけしか書かれていない。
よく、ビットコインは「違法なビジネスに使われやすい」とか「匿名で送金できる怪しいシステム」と言われる。実際にアドレス間のやりとりだけで成り立っているからそう言われるのは仕方ないのだが、アドレス間の送金は全て記録されていて、一般に公開されているのである。
もし、あなたがAさんとBくんの「アドレス(公開鍵)」を知っていて、BくんがAさんに送金した場合、その元帳を検索すれば、その支払いの時間と金額について知ることができる。
それが、冒頭に言った「ビットコインの透明性が高い」理由だ。
これって、よく聞くビットコインのイメージである「匿名性」と相反するように聞こえないだろうか?
ビットコインは、アドレスの所有者については「匿名性」が高く、アドレス同士のトランザクションについては「透明性」が高いのである。
よく「ビットコインがマネーロンダリングを容易にする」などと言われるのだが、アドレスを個人情報と結びつけることが困難なだけで、送金された内容を見るには、時間さえ掛ければ全てその記録から追いかけられるのである。その点では、既存の金融機関を駆使したマネーロンダリングに比べれば、よほどトレースしやすいと言える。銀行間のマネーローンダリングであれば、わざわざ経由した銀行全てに開示命令を持って、それぞれ個別に情報を取らなければならないのだから。
ビットコインで多額のマネーロンダリングを行っても、大金はどこかで現金にするしかない。アドレス間でぐるぐるたらい回しにしてから、デルのPCをビットコイン建てで大量に買い付けても(アメリカではデルもビットコインで払える)、売却と現金化が大変だしそこで足が付く。現行のマネーロンダリングでさえ、犯人の検挙には入り口と出口、中継地点となる口座での個人情報との紐付けが必須だ。知識と手順、手間の問題だけで、結局、ビットコインを使ったマネーロンダリングの検挙と、手間はそう変わらない。
一部のお偉い方達は、理解が難しいビットコインを怪しく思い、必要以上に危機感を感じているというわけだ。
ただしビットコインの場合も、複雑に送金を繰り返して追いかけにくくするようなサービスは存在している。ビットコインもあくまでもツールであり、実際の金融機関と同じく、そこに寄ってきて悪用する嗅覚の鋭い犯罪者がいるというだけの話。
いずれにせよ、銀行の仕組みではその元帳の公開など絶対にあり得ない。むしろセキュリティ上あってはならない。ビットコインでは、それが公開される前提で作られている仕組みだということだ。ビットコインはこのように、「極めて透明性が高い仕組み」であることを覚えていて欲しい。
中央管理者がいない?
ビットコイン推進派があなたにアピールしてくるとき、「中央管理者いないんだぞ!」や「非中央化されてるんだぞ!」、果てには「Decentralizedやで!」など謎めいた言葉を投げかけてくるだろう。必死なその言葉が宗教的に聞こえてしまうこともあるかもしれない。
実はビットコインの送金を理解するのに必須なのは「非中央化(Decentralization)」の理解。しかし、あなたの頭に浮かぶごく自然な疑問は「管理者がいなくて、金融サービスが動くわけないやん」ということ。
ここでは一旦その「Decentraなんとか」のことは忘れよう。
乱暴に言い換えれば、ビットコインは「ネットワーク参加者全員が管理」しているのだ。
冒頭の銀行の説明では、Cくんが銀行を管理運営していた。バックアップの元帳を別の複数箇所に管理していようが、これは「中央管理(Centralized)されている」と言う。法律や規制はあれど、Cくんの気持ち一つで不正や横領どころかサービス閉鎖も自由なのだから。
しかし、「ビットコインはオープンである」と説明したところで出てきたように、ビットコインは誰でも無料でダウンロード出来てしまう。すなわち、それを動かせば、誰でもビットコインの管理者(正しくは管理者ではないけれどその説明は後ほど)になることができるということ。
では誰が、何の目的でわざわざそんなソフトウェアを入れて動かすのか?
ただのボランティアなのか?そしてそんな管理者もいない無秩序に聞こえる世界で、どうやって送金の仕組みが動くのか?それを解き明かすために、再びロールプレイの世界を見てみよう。しかも、前回よりは遥かにドラマティックな展開を見せるロールプレイを、さらにそのプレイヤー達に近い視点から。
ビットコインは少数点第何位まである?
今回は、BくんからAさんに1,000円ではなく、0.1BTC(ビットコインの略)を送金する場合で考えてみる。
「ん? ちょっと待った!0.1BTC? 少数点あるやん?」
そう。実はビットコインの最小単位は1ではない。日本円にも、かつては1/100円である「銭」という単位があった。
ビットコインの最小は0.00000001(=1億分の1)BTC。1ビットコインは2015年3月25日現在約3万円だから、最小単位を円に換算すると0.0003円ほどだ(編集注:2017年12月28日時点で170万円弱、実に60倍近くだ)。この最小単位を、ビットコインの発明者のナカモトサトシに敬意を表してビットコイン業界(笑)では慣習的に1 Satoshiと呼ぶ。
しかし、実際にはビットコインで送金できる最小金額は仕様上5,460 Satoshiとなっており、この金額未満はDust(くず)と呼ばれる。日本円に換算すると約1.638円だ。この額以上であれば送金が可能なので、ビットコインは充分に魅力的な少額決済が可能なシステムとも言える。
クレジットカードは送金(決済)のコストが高いので、10円なんて死んでも決済したくない。(元々クレジットカード決済事業を営んでいた私から見て、これはホンネの表現)。特に日本では大赤字になる。銀行は振込手数料さえ支払えば10円でも振り込んでくれるが、さすがに利用者の割に合わない。
さて、話がそれたが、BくんからAさんへの送金がどう処理されるかに視点を戻そう。ちなみに先ほどの円換算で言うと、約3,000円ほどの送金である。
「ビットコイン・ネットワーク」の参加者が送金処理を請け負う
ソフトウェアであるビットコインは誰でも無料で入手して、インストールすることができることは既に説明した。そのソフトウェアをインストールしていると、誰でもすぐに「ビットコイン・ネットワーク」に参加することができる。今日からあなたでもできる。
その参加者は、「ビットコイン・ネットワーク」上で他人の送金決済の承認を担うノード(node=接続ポイント)の一つとなるのだ(このノードと言う言葉もよく使われるので覚えてしまおう)。
では、そのネットワーク参加者(ノード)の間で何が起こっているのか。
ここでは、Oくん、Pくん、Qくんがソフトウェアであるビットコインを動かしていて、ネットワークに参加しているとしよう。わかりやすいように、PCではなくスマホ上でソフトウェアとしてのビットコインを動かしていることにする。3人ともスマホはインターネットにつながっている。この3人は立派な「ビットコイン・ネットワーク」上のノードだ。
送金したい者は、インターネットにつながっている、いずれかのノードにその旨を伝えればよい。それだけで直ちに送金処理が始まる。
全ての送金依頼は「公開鍵暗号」で「電子署名」される
では、BくんがAさんに0.1BTCを送金したい場合はどうすればよいか?
Bくんは、先述の自分の(暗証番号にあたる)「秘密鍵」を使って、自分のアドレスからAさんのアドレスに対して0.1BTC送金したい、という情報をそのネットワークに流す。
ここでは、わかりやすくするために、Aさんのアドレスは「xxxxxxxx」、Bくんのアドレスは「yyyyyyyy」ということにしておこう。
ややこしい暗号技術の話は端折る約束だが、簡単に説明すると「秘密鍵」を使った電子署名は、その「秘密鍵」を知っている人間にしかできない。これで作った「(Bくんのアドレス)yyyyyyyyから(Aさんのアドレス)xxxxxxxxに送金したい」という情報は、yyyyyyyyの「秘密鍵」を握るBくんにしか作れないのである。
しかし、他人からはBくんの「公開鍵」を使えば、これはBくんが作ったものだとちゃんと確認できる。しかも、この場合Bくんの「公開鍵」はBくんのビットコインアドレスそのものだから、それをそのまま使えば「これはちゃんとBくん本人が作った送金リクエストだ!」と本人確認できてしまう。
アドレスの作り方を説明したところから出てきたこの「公開鍵暗号」という仕組みは、「電子署名」という名の本人確認ができてしまう非常に便利な仕組みなのだ。
通常の銀行送金の場合であれば、インターネット上でつながった銀行のウェブサイトにそのパスワードを入力せねばならない。だから、PCに怪しいマルウェアが仕込まれていたりすれば、パスワードが第三者に漏れて残高を盗まれる可能性も高まる。実は日本だけでも、一般預金者がそんな被害を年間何十億円も被っている。
ところがビットコイン送金で必要なこの電子署名は、インターネットにつながっていない端末でも署名することができる。いったん署名した情報は他の誰にも改ざんできないから、安全に依頼ができるというわけだ。
それこそ、インターネット接続を切ったスマホでまず電子署名して、それからその署名したファイルを他の端末に移して送金リクエストを出すことだってできる。こんなにも安全な送金依頼方法は、既存の金融システムではまずありえない。
ビットコインはP2P電子マネー
さてBくんは、早速その送金リクエストの情報をOくんのノードに投げた。
「yyyyyyyy(Bくんのアドレス)からxxxxxxxx(Aさんのアドレス)に
0.1BTCを送金 by yyyyyyyy(電子署名済)」
そして、一つのノード(Oくん)に送り込んだ送金リクエストは、インターネットでつながった全部のノードに一気に広がる。
ここで初めて、ビットコイン好きな人からよく聞かされる言葉である「P2P(Peer to Peer)」が理解しやすくなる。
オンラインバンキングのように利用者が一斉に一カ所に用意された中央サーバーに接続する(「クライアント・サーバー方式」と呼ぶ)のではなく、それぞれのノードが蜘蛛の巣のようにインターネット上でつながって、個々のノード同士がが情報を交換するから、この仕組みを「P2P方式」と呼ぶ。
図の右側では、BくんもGくんも両方同じCくん銀行のサーバーに接続している。しかし、図の左側のビットコインでは、手元で作った送金リクエストファイルを、好きなノードに投げるだけで良い。
よく知られているソフトウェアでは、インターネット電話のSkypeがこのP2P接続で成り立っている。音声を、無数にいる利用者の端末を都合良くつないで経由するのだ。
そこで見て欲しいのが、前の方で紹介を約束していた、ビットコインの発明者であるナカモトサトシの論文タイトルだ。
「Satoshi Nakamoto(中本 哲史)(2008)
Bitcoin: A Peer-to-Peer Electronic Cash System
(ビットコイン:P2P電子マネーシステム)」
タイトルに入れるほど、この「P2P」の仕組みがビットコインにとって大事だと言うこと。なのでこれは今のうちに頭に入れておこう。
ではBくんの送金に話を戻そう。
O君のスマホはそのBくんのリクエストを受け取った。すぐにO君が入れているソフトウェア版のビットコインは、そのリクエストが正しいものなのかを検証する。O君のスマホは過去全部の元帳データを持っている。だから、B君のアドレスが支払うに十分な残高を持っているかどうかもすぐに分かる。
これは正当な支払いリクエストだ。そのことが分かった瞬間、O君のスマホは「ビットコイン・ネットワーク」に参加している全員にも、先ほど出てきた「P2P接続」を利用してリクエストを配信する。当然PくんもQくんもそれを受け取ることになる。
これは、O君個人の意思ではなく、スマホに入っているソフトウェアとしてのビットコイン(覚えなくて良いが、通常デーモンと呼ばれる)に組み込まれている絶対ルールなのだ。ネットワーク参加者は、平等にそのリクエスト情報を受け取ることができる。
では、ここでみんなに広がったB君の支払いリクエストについて、その情報を「ビットコイン・ネットワーク」上で「正式に支払い済」として採用するにはどうすれば良いのか?
それは、この新しいリクエストを新しいページに書き込み、そのページを元帳の最後のページにのり付けすればよいのだ。そうすれば、Bくんの送金は正規の元帳に記されたトランザクションデータの一つとなるはず。
Oくんは、早速新しいページを用意して、そこに書き込んだ。
「yyyyyyyy(Bくんのアドレス)からマイナス0.1BTC。xxxxxxxx(Aさんのアドレス)にプラス0.1BTC」
しかし、誰でも単にこのページを正規の元帳の最後にのり付けすれば良いというものではない。そんなのが有りなら、それこそ不正し放題の世界だ。
物事にはルールがある。ビットコインもしかり。のり付けする権利を得るのは、たった一人だ。
そしてバトルの火蓋が切って落とされる
そうだ。ここでついにビットコイン・ネットワークの真相を明かそうではないか。
この新しいページを既存の元帳に正式な1ページとして追加するには、実は参加者(ノード)全員が参加するバトルに勝たねばならないのだ!
よくみると、手元の元帳の最後のページには謎の暗号文字が書かれている。
「お題:00LhRlQs8A」
(実際にはもっと文字数が多いのだが、ここではわかりやすく短くしてある。)
Oくんはその文字列をスマホカメラで読み込んだ。スマホ画面には、その文字列が現れ、その下に「ノンス(nonce=使い捨てのランダムな値)」という空欄と送信ボタン、そしてさらにその下に「計算結果」という空欄の合計3行が表示された。
ちなみに「ノンス」は、ひたすらランダムな文字列を生成して放り込む。正解の計算結果を出すためだけに使われる、使い捨ての項目を意味する。
画面が表示されると、突然Oくんは画面の連打を始めた!ひたすら連打する度に「ノンス」の欄に意味不明な文字列が表示され、計算結果の欄にも意味不明な文字列が表示された。そして画面に大きな赤い「×」が「はずれ」の文字と共に表示されている。
その赤い「×」がでた瞬間に同じボタンを叩く、Oくんは気が狂ったように、ひたすらそれだけを繰り返す。
Pくん、Qくんも同様だ。Oくんに負けずと、無心にスマホ画面上のボタンを連打している。その度に、3人の画面には赤い「×はずれ」が表示されるばかりだ。
そして10分後……。
Pくんの画面に、今までの赤い「×はずれ」とは違う青い「○正解」という文字が表示された。
「正解!勝者zzzzzzzz(Pくんのアドレス)!
おめでとうございます!
頭の『00』がそろいました!
賞金、25ビットコイン!
(30,000円換算でなんと750,000円)」
勝者のPくんは休む暇もなく、自分が先ほど書いた新しいページの最後に、スマホ画面の「計算結果」という欄に表示された文字列を書き込んだ。
「お題:00ue7EGxpV」
さらに、自分のアドレス残高に賞金の25ビットコインを追加するよう自らページに書き込んだ。
「zzzzzzzz(Pくんのアドレス)にプラス25ビットコイン」
そして、糊でそのページを元帳の最後に貼り付け、新しいページの撮影をして、ビットコイン・ネットワークに送信した。
それと同時に、Oくん、Qくんの画面にもメッセージが表示された。
「Game Over!」
「残念、勝者はzzzzzzzz(Pくんのアドレス)でした」
「zzzzzzzzが導き出した正解を検証してから、新規ページに書き写してそれを元帳に足しなさい」
バトルの敗者となったOくんとQくんは、Pくんから送られてきた正式な新しいページをまず検証する。Pくんが不正をしていないか確認するためだ。
バトルに使うアプリはどれも、同じ「ノンス」を入力すると一方通行で同じ計算結果を算出するから、検証は簡単だ。Pくんがもし不正をしていれば、違う答えが出るからだ。
これは、参加者(ノード)全員が、その他の全員が不正しないよう勝者を360度監視するバトルなのだ。
Oくん、Qくんは、Pくんの答え=「ノンス」が正しいことを確認したので、自分たちが書いたページの下書きを破り捨てた。新しい用紙に勝者Pくんから送られてきたページの内容をそのまま書き写し、元帳の最後に貼り付けた。これでPくんの新規ページが正式に承認されたことになる。
当然その元帳の最新ページには「BくんからAさんへの送金」、「Pくんが勝ち取った賞金」、「新しいお題」の全てが記録されている。
これで、一連の送金手順がひと通り完結することになる。Bくんからは、Aさんに正式に0.1ビットコインが支払われたことになった。
そして、Pくんは何故か賞金25ビットコインも受け取った。
さて、いきなり賞金付きのパズルバトルなんて、ここでは一体何が起こってるというのだろうか?
新規発行ビットコインを賭けた欲望バトル、それが採掘
じつは、Oくん、Pくん、Qくんが参加していたのは、賞金を巡る果てしないパズルバトルだった。
そのルールというのは以下の通りだ。
- まず新しく「ビットコイン・ネットワーク」に投げられてきた送金リクエストの中から、好きな物を自分で選んで新しいページに書き込む。
この場合、「(Bくんの)アドレスyyyyyyyyからマイナス0.1BTC。(Aさんの)アドレスxxxxxxxxにプラス0.1BTC」
- リクエストを新規ページに書き終わったら、手元にある元帳の最後のページにある「お題」という文字をスマホで読み込む。
この場合、「00LhRlQs8A」がそれにあたる。
- すると、スマホでパズルバトルが始まる。元のお題の文字列に対して、「ノンス(nonce=使い捨てのランダムな値)」というランダムな文字列がボタン叩く度に表示され、その2つの文字列が暗号プログラムに通されて「計算結果」の欄が算出される。
- ボタンをひたすら叩き、約10分後に「計算結果」の欄に最初の2文字が「00」になる結果を一番最初に表示した者が勝者となる!
- 勝者には、賞金として25BTCものビットコインが新規に発行される!
- 勝者は、自分が書いた新しいページに算出された計算結果=新しいお題を書き込み、自分の残高にも25BTCを書き足してから元帳の最後に貼り付ける。この場合、「(Pくんの)アドレスzzzzzzzzにプラス25BTC」
- 勝者は、そのページを撮影し、ネットワークに流す。
- 他のプレイヤーは、勝者の「ノンス」を使って、勝者の計算が本当に正しいかを検証する。ぶつけた「ノンス」の数(計算力)をもって投票権とし、51%以上のプレイヤーが正しいとすればよし。
- 検証の結果、敗者は失敗したページを破って捨て、プレイヤー全員は勝者が作った新しいページを、正式に採用(承認)する。
これで1ページ分の送金が完了し、休みなく次のバトルへと進む!
すなわち、元帳の正規ページをのり付けするために開催される、この無謀な総当たり連打バトルに勝った者に、新規のビットコインが発行される仕組みになっていたのだ。
注目すべきはルールその8。
「他のプレイヤーは、勝者の『ノンス』を使って、勝者の計算が本当に正しいかを検証する」
実はここにも、ビットコインのアドレス作成の箇所で学んだ、一方通行の暗号方式が使われている。Pくんがかなりの苦労を伴って算出した正解である「ノンス」。しかし一旦誰かがその正解を導き出せば、あとは誰がその「ノンス」を使っても、同じ計算結果が出る。
と言うことは、OくんとQくんがPくんの答えを検証するためには、その正解の「ノンス」を同じ暗号プログラムに放り込むだけ。それで一発で完了する。
これが冒頭でチラ見せした、ビットコインで重要な「Proof of Work(PoW)」という概念なのだが、詳しくはまた後ほど。
ここでもう一度、冒頭で説明した一般的な通貨を思い出して欲しい。それら法定通貨は、国=政府が勝手に発行量や流通量を決めてコントロールする。我々国民は、いくらどのように発行されているのかさえ気にしない。
しかしビットコインでは、決められた発行量がこのバトル勝者に発行される。ビットコインの発行量を説明した時に、「約4年ごとに発行量が半減される」と説明した。実はこれはわかりやすいようにい言い換えただけだった。これを正しく言い換えると、「10分ごとに勝者が発表されるバトルにおいて、21万バトル(ページ)ごとに支払われる賞金が半減される」となる。
すなわち、2015年現在25BTC支払われているものが、2017年には12.5BTCに半減されると言うことだ。そして2021年にはそれが6.25BTCになる。
この新規発行されるビットコインは、支払いリクエストの承認作業をするためにバトルに参加するプレイヤー(マイナー=採掘者)達への賞金としてのみ用意されている。
ビットコインを手に入れるには3つの方法しかない。買うか、もらうか、それとも自分で採掘するかだ。このバトルがその3つめにあたる。
あなたもよく、ビットコインに関してこの「発掘」や「採掘」、「mining(=採掘)」という言葉を聞いてきただろう。これは、「コイン=金」という発想から、連想される「採掘」という言葉を採用しただけの話で、本当は土を掘る行為でも何でもない。もうおわかりのように、それは新規発行される賞金のビットコインを賭けた、欲望によって成り立つ暗号パズルバトルだったのだ。それが「ビットコイン採掘行為」の実態である!
ただし、ここまでの内容はわかりやすくするためにかなりデフォルメしてある。
実際には人が無心に画面を叩くわけでもなく、決まった暗号方式でひたすらコンピュータや専用機がノンスを総当たりでぶつけながら計算し続けているし、元帳のページも決まった方式でデータを整えて用意しなければならない。そして元帳1ページあたりにはかなりの量のトランザクション(送金リクエスト)が記載できる。
これら全ての行程はビットコインの仕様として詳細が決められており、人を介さず全自動で、かつ、とてつもない速さで処理されている。
さて、このバトルでは、ソフトウェアであるビットコインに組み込まれているルールが絶対だ。しかし、ここでもそれを逆手に取る者がいる。
実は、この採掘バトルでは、上記のルールさえ守れば「総当たり連打するための武器は問わない」のだ。
採算を賭け武器も場所も問わないバトル、それが採掘
Oくん、Pくん、Qくんは日本に住んでおり、かろうじて賞金総額(新規発行された獲得ビットコイン)が食費(消費電力の電気代)を上回って生活している。「腹が減っては戦はできぬ」のだ。
そこに、Sさん、Tさん、Uさんが参加してきた。しかも、Sさん、Tさん、Uさんは資金も潤沢で高級な「画面連打専用強化ギブス」を購入してバトルに備えてきた。
この「ギブス」は、ひたすらボタンを連打するマシーン。手でボタンを叩く何百倍もの速さで画面上のボタンをたたくことが可能だ。
ただ実は、この「ギブス」を使うと、使わないOくん達に比べて何倍も速く腹が減る(電力を消費する)。そこが唯一の難点だ。しかし、食費(電気代)が遥かに安い中国在住のSさん達には問題ない。電気代が馬鹿高い日本に住むOくん達よりも、高いコスト効率で賞金稼ぎに専念できるため、高いギブスのコストも十分に回収できるのだ。
この例えが、まさに近年のビットコイン採掘バトルを象徴している。電気代や土地代の安い中国では、部屋どころか工場を丸ごと専用採掘機(ASICと呼ぶ)専用のデータセンターに改造し、巨大な水冷装置でそのコンピュータを冷やしながら日々大量のビットコインを採掘している。
ビットコイン採掘競争がグローバル規模で激しくなればなるほど、我々電気代の高い近代国家(当然日本は一番不利な方)に住む採掘者にとっては、参加するには採算の合わないバトルへと変貌している。
ここで、鋭い人には一つの疑念が浮かぶ。
採掘バトルの厳しさも自動で調節するビットコイン
「先ほど、ルールでは1バトルにおいて、約10分後に勝者が生まれると言っていた。これだけルール無用のバトラーが数多く参入してきたら、1バトルあたりの合計連打数がどんどん増えて、1バトルに要する時間も10分よりどんどん短くなっていくのでは?」
全くその通り、しかし、ソフトウェアであるビットコインはそれも自動的に制御している。
先ほどのルールに出てきたお題である「00LhRlQs8A」。計算結果はこのお題と同じく最初の2桁がゼロであれば勝利、となっていた。しかし、バトル参加者が増加して、合計の連打ペースがどんどん上がってくると、ソフトウェアであるビットコインはこのルールを自動的に変更する。
すなわち、1バトルあたりの時間がちょうど10分になるように、そろわなければならない頭のゼロの桁数を増減させるのである。バトル参加者の連打が増えれば、ゼロの桁数を増やす。連打が減れば桁数も減らす。これが、実に2,016バトル(ページ)ごとに自動的に調整される。
実際のビットコインでは、この例で出したものより遥かに文字数が多く、揃えなければならないゼロの桁数も現在は16桁前後である。これを総当たり戦で正しいノンスを割り出すには、とんでもない計算能力が必要になる。その計算力についての詳細は、また後ほど説明する。
「Bitcoinの決済には10分かかる」と耳にされたこともあるかもしれないが、その10分という数字はここに由来するというわけだ。
厳密に言うとすれば、ビットコインの採掘では、1バトルの時間制限が10分に設定されているのではなく、10分でバトルが終了して勝者が生まれるようにルール自体が自動的に調整されていたのだ。これにより、元帳のページは平均して10分に1ページずつ増えていくことになる。
ビットコインの決済手数料とは?
「ビットコインの送金手数料は銀行のそれに比べて遥かに安い」とよく言われる。しかし、「無料で送金できる」という者もいる。
一体何が正しいのだろう?
正解は、「両方とも正しい」である。
例えば、BくんとAさんに加えてもう一組、GくんとFさんが同時に0.1BTCを送金したい、とリクエストしたとしよう。
Bくんはケチで、手数料を払いたくない。そこで、送金時に「手数料0」としてリクエストに署名して「ビットコイン・ネットワーク」に送信した。
ところが、GくんはFさんに同じ0.1BTCを送金する際、0.001BTC(約30円)を手数料として含めて署名し、「ビットコイン・ネットワーク」に送信した。
そう、ビットコインでは、送金リクエスト時に好きな分だけ送金手数料を上乗せしてリクエストできる。例えば、1BTCを送金するために100BTCの手数料を支払うことも可能だ。もったいないけど。
カード決済のように受け側(商店側)が手数料を負担するのではなく、日本の銀行振り込みのように支払側が手数料を設定する。
ここで、採掘バトルのルールをもう一度見てみよう。ルールその1にこうある。
「新しく『ビットコイン・ネットワーク』に投げられてきた送金リクエストの中から、《好きな物を自分で選んで》新しいページに書き込む。」
実は、ビットコイン・ネットワークに投げられた送金リクエストは、各ノードにある「プール」と呼ばれる場所に一旦保留される。新規ページに自分が承認したいリクエストを書き込む際に、採掘者は自分が「好きなものをプールから自由に選べる」というわけだ。
ではもし、BくんGくん両方の送金リクエストが届いた時点で、採掘バトラーPくんのページには、もう既に最後の1リクエスト分しか書き込むスペースが残っていない場合はどうするだろうか?
答えは簡単である。Pくんは、手数料ゼロのBくんの送金リクエストを蹴って、手数料0.001BTCのG君の送金リクエストを書き込んでからバトルに参加する。
その結果Bくんのリクエストは、今回のバトルでは無視されてプールに放置されてしまった。次のバトルでページにとり上げられるのを待つしかない。
こんなことが起こる理由は明白だ。自分が採掘バトルに勝って元帳の正規新ページに採用された場合、そこに載せた送金リクエストの手数料全てが合算されて自分のものとなるという取り決めがあるからだ。
Pくんにとって、タダよりも0.001BTCの手数料の方が貴重だ。ちりも積もれば山となる。それに、時々送金の設定をミスって手数料1BTCなんてのも送られてくる。この話、実際に起こりがちだから手数料収入も馬鹿にならない。
勝者には、賞金である実に25BTCという大金が与えられるが、それ意外にも、この手数料収入が上乗せされて発生する仕組みになっているというわけだ。
ちょっとビットコインを勉強した人から、こんなことを聞かれることが多い。とくにビットコインのあらを探す反対派の人達から。
「ビットコインの発行量、すなわち採掘者の報酬が4年ごとに半減するなら、採掘のインセンティブと魅力が下がっていって、どうせ将来はビットコインの仕組み自体が機能しなくなって破綻するんだろ?」
確かに先述の通り、2017年には報酬が25BTCから12.5BTCへと半減し、2021年には6.25BTC、2025年には3.125BTCとなる。しかし「ビットコイン・ネットワーク」は、年を増すごとに「採掘インセンティブ重視」から「送金手数料(トランザクション・フィー)インセンティブ重視」の、より純粋な決済ネットワークへとシフトしていくだけである。
ナカモトサトシ先生は、そんな誰もが思いつくような懸念について、最初から思いつかないほどの馬鹿ではない。
ちなみに、ビットコインの「送金手数料が安い」というのも事実だ。上記の0.001(約30円)でなくとも、0.0001BTC(約3円)も支払えば、充分に短い時間で送金が承認される。
現在の一般的な海外送金を考えてみて欲しい。数万円を送金するだけでも何千円もの手数料を支払い、長い場合には送金先に着金するまで2日3日かかる。大企業がどれだけ交渉しても、その料金は800円程までにしか下がらない。
さらには送金金額が非常に多い場合、銀行は1日2日分の金利を稼ぐためにわざと外部への送金を遅らせるということまで平気でやってのける(日本の銀行は知らないが、私は欧米の銀行で過去よくやられた)。最近では一般消費者向けの海外送金手数料も下がってきたが、ビットコインとは桁がまだ3つくらい違う。
そんなしがらみや無駄なコストが一切なしに、10分もあれば少額でも世界のどこにでも送金できてしまうのがビットコインである。
いや、実際にはビットコインが海外に送金されるわけではないので、厳密に言えば世界中どこにいる相手にでも、10分もあれば残高の権利を移行できる、としておこう。
手数料ゼロで送金できるのも真実
「では、手数料ゼロの送金リクエストは採掘者に損なので、永遠に無視し続けられるのでは?」
ビットコインでは、そんなことも想定してルールが作られていた。さすがナカモトサトシ師匠。
実は、先ほどのバトルのルールその2では、とある詳細を割愛していた。それがこれだ。
「なお、新規ページ上には決まった分だけの特別スペースを確保しておき、その分を『手数料が極めて小さくても承認されずに一定時間以上が経過しているなど、陳腐化しそうな送金リクエスト』で必ず埋めること」
儲かるトランザクションを優先することは自由だが、儲からないが時間が経過しているトランザクションも一定量は優先して載せねばならないという特別ルール。
これにより、時間がかかっても原理的には漏れなく送金リクエストは処理される。
手数料をゼロとしてリクエストしたビットコインの送金が、当日には全く完了しないのにもかかわらず、数日後の忘れた頃に承認される現象はこれに起因している。
従って、「ビットコインは手数料ゼロで送金できる」というのも正しいと言うわけだ。
純粋な、採掘者の欲望の優先順位で成り立っている「ビットコイン・ネットワーク」。ここは「早く送金の処理をされたければ、手数料は高く払え」という現金な資本主義の世界なのである。
不正や破綻が困難なビットコイン
もう一度、「ロールプレイ」における銀行とお金の仕組みを思い出そう。あの金融リスクや預金リスクが高いことを想定した世界では、不正や破綻を起こすのは簡単だった。
そもそもお金の流通量をコントロールするDくん政府が財政でミスを犯すか、Cくん銀行が同様に経営でミスを犯す、もしくは故意に客の残高を操作するだけで、あなた(Bくん)の持っているお金の価値が紙くず同然になったり、銀行残高がいきなり半減したりする可能性があるという話だった(そう言えば実際に現実社会で半減された経験者は私だった)。
では、ビットコインではどうなのか?
採掘バトルのルールその8を見るとこうある。
「他のプレイヤーは、勝者の『ノンス』を使って、勝者の計算が本当に正しいかを検証する。ぶつけた『ノンス』の数(計算力)をもって投票権とし、51%以上のプレイヤーが正しいとすればよし」
すなわち、誰かが全く嘘の「ノンス」でバトルに勝ったふりをしても、ビットコインの360度監視多数決ネットワークでは他の採掘者には一切誤魔化しは認められない。
ではどうすれば不正ができるのか?原理は簡単で、51%以上の投票権を掌握した上で嘘のページを正式に元帳に採用すれば良いのだ。
これを、ビットコインの世界では「51%アタック」と呼ぶ。
ちなみに、この「ノンス」は暗号の関数を通って算出された文字列であるため、多くの場合は「ハッシュ(Hash)」と呼ばれる。したがって、元帳最後のページに載ってる「お題」もハッシュと呼ばれる。なのでここからは「ハッシュ」という言葉を覚えて使おう。
実際には今この瞬間も、恐ろしい数の採掘者達によって、恐ろしい数のハッシュが総当たり採掘バトルにぶつけられている。
このハッシュがぶつけられている(バトルの喩え話で言えば連打されている)単位を、1秒間あたりのハッシュ数を使って、「GH/s(Giga Hash per Second=1秒辺りのハッシュ数/1,000)」で表す。まるでドラクエの呪文のような言葉だ。「ギガハッシュ!」
2013年3月半ば現在で言うと、この数字はおよそ35万GH/sである。それをちゃんとした数字で表すとこうなる:
350,000,000,000GH/s = 1秒間あたり3,500億ハッシュ
この数値を、ビットコインの世界では「ハッシュ・レート」と呼ぶ。
新規発行されるビットコインを巡って、これだけのハッシュが総当りで毎秒試されているのだ。
もしあなたがビットコインで不正をしたい場合は、ルールその8に従って、51%以上となる秒間1,785億以上ものハッシュ・レートをぶつける環境を用意せねばならない。
しかもそれは、現在動いている採掘ノードを乗っ取った場合の話。新規で参入して不正を働くには、既存の秒間3,500億ハッシュを49%以下に抑えるために、実に秒間3,643億ハッシュもの計算能力が必要となる。
そうすれば、自分が支払い済みのトランザクションを改変するなど、ビットコインの正常な動作を妨ることができる。
しかし、そんなことは現実問題として到底不可能だ。
ビットコイン・ネットワークは、すでにそれぐらい巨大なサイズにまで成長している。現実的に、ビットコインの元帳を意図的に書き換えることはもう不可能であることをおわかり頂けたはずだ。
さて、これを聞いて、データやサービスの信頼性が高いのはこの時点でどちらと思われるだろうか?あなたが知ってるお金や銀行?それともビットコイン?
完全破壊が不可能なビットコイン
もう一度しつこく、「ロールプレイ」の世界の銀行とお金の仕組みを振り返ろう。
Cくん銀行で、あなたの銀行残高データを破壊するのには、その銀行が管理している元帳(実際にはデータを記録してるサーバー)を全て破壊すれば良い。
いくらバックアップとして冗長化され、複数箇所に分散してデータが保存されているとは言え、これは中央管理者によって中央管理されている「Centralizedな環境」と表現される。
それに対してビットコインはどうだろう?
ビットコインでは、採掘バトルに参加しているコンピュータに加え、ソフトウェアであるビットコインを稼働させている全てのコンピュータ内の全てに元帳データが保存されている(実際には、元帳データを持たないものもあるが、ここではいったん無視)。
すなわち、ビットコインであなたの残高データを破壊するには、それらネットワークに参加する全てのコンピュータをほぼ同時に破壊するしかない。でなければまた新たに生まれたノードに元帳がコピーされる。
「ビットコイン・ネットワーク」に参加しているコンピュータは、それこそ世界中に無数に散在している。中国の田舎にある巨大な採掘工場から、日本のとある会社員宅の押し入れの中まで。それを全て、しかもほぼ同時に破壊するなんてことはもう到底不可能な話だ。
前項のとおり「データを改ざんできない」どころか、「データを破壊したくともできない」。それが、ビットコインの実態だ。
ここでもう一度同じ質問を投げかけよう。データの信頼性が高いのはどちらだろう?あなたが知ってる銀行?それともビットコイン?
ビットコインだけに起こるデータの不整合と解決法
では、ビットコイン・ネットワークに参加するコンピュータの全ては、ずれもなく常に完璧に同じ元帳データを保有しているのか?
実は、それがそうではないことが時々発生する。
とある勝者が勝利を宣言したと同時に、他の採掘者もほぼ同時に勝利を宣言したらどうなるか。そのデータはほぼ同時に無数のコンピュータに伝搬を始める。
そして、それぞれが一部のノードに承認されてしまうことがある。ノードたちが正解を検証する前に二人共が勝者としてデータが出回っている状態だ。
その場合はどうなるのか?ひどい場合は、複数ページにわたって、「ビットコイン・ネットワーク」が分裂して、それぞれを正しいものとして扱ってしまうことがある。
これを、元帳のFork(分岐)と呼ぶ。
分岐といえども、元帳に複数枚ずつページがぶら下がる訳ではない。ネットワーク内で、2種類の中身が異なった元帳が正しいとされて、同時期に二重に存在してしまう感じだ。
実際、1年に数度は、実に40分間ほど(4ページ)にもわたってこのForkが発生することがある。
ではそうなってしまったあと、どちらの元帳が正しいと判断すればよいのだろうか?
実は、そのルールもビットコイン自体に組み込まれている。さすがナカモトサトシはんやで。それは……
「元帳は長い(分厚い)ほうが常に正しい」である。
きわめてシンプルで潔いルールだ!すなわち、ページ数が長く伸びている方が正しいとされ、短いほうが破棄されるのである。
よく、ビットコイン関連のサービスで、「あなたの入金を確定するには最低6認証必要です」と言ったような表現を見かける。これは、6認証すなわち6ページも元帳が進めば、もうFork(分岐)してその支払いが取消になることはなく、それ以降は改ざんの恐れもなく、支払いが100%確定するだろうということである。
ビットコインの世界では、これが最も確実な回収リスクの回避方法である。
Decentralized(非中央化)された世界
もうこれであなたにも、ビットコインには銀行や国と言ったような、中央管理のための管理者自体が存在しないどころか、全くその必要さえないこと、そしてそれらが存在せずともトランザクションの信用性とデータの冗長性が客観的に保てることも理解して頂いたはずだ。
破ることができない絶対ルールは、最初からソフトウェアとしてのビットコインに組み込まれており、全ての送金承認プロセスは、ネットワーク上に無数に存在するノードが賞金のためにその役割を担う。
この「Decentralized」なビットコイン・ネットワークは、詳しい仕様を見れば見るほど、なぜか「生物の仕様」や「宇宙の仕様」を見ているかのように思えてくる。
各ノードが知性を持ってルールに則った自律活動をし、それら無数のノードが互いにP2P接続し、「新規発行されるビットコインを得る」という共通の欲望をエネルギー源として活動している。
ノードが得たインセンティブが活動コスト(電気代)を上回ればその活動は拡大し、下回れば活動を止める。
世界のどこかでノードが消滅していく傍ら、どこか別の場所でさらにノードが生まれる。
採掘者である個々のノードは、経済的な(採掘能力的な)格差は別として、数学的に平等にその労働に対して報酬獲得のチャンスを得る。
この「ビットコイン・ネットワーク」はとても有機的というか、生物的な集合体(コレクティブ)であるかのようにも感じられる。
この自由で誰にも縛られない「Decentralized(非中央化)」された世界が、世界中のリバタリアン達の支持を得て、ギーク以外のもう一つの文化圏としてビットコインが普及するきっかけとなった。
その証拠に、ビットコインはシリコンバレーなどの活動値が盛んな地域だけではなく、片田舎で開催される小規模なリバタリアンのお祭りなどでも使える。まさに、ビットコインは21世紀仕様のデジタル・ヒッピー・マネーだ。
そしてこの「Decentralized」という言葉は、今やビットコインを語るに欠かせない重要なキーワードの一つとなっている。
ブロックチェーンとはなんぞや?
「ちょっと待った」
ビットコインを勉強したことのある方であれば、冒頭でちょこっと触れただけのあのフレーズが気になっているに違いない。
それが、ビットコインにまつわるキーワードの中で最も重要な「ブロックチェーン」である。
「Decentralized」が理念であれば、「ブロックチェーン」は設計や規律と言ったところだろうか。
しかし、ここまで読んだあなたには、一発で「ブロックチェーン」の意味が理解できる。次の2文を読めば、もう「ブロックチェーン」の全貌を知ることになる。
ここまでに散々登場した「元帳の1ページ」単位が、ビットコインでは「ブロック」と呼ばれる。そして、そのブロックがつながった状態の「元帳」を、「ブロックチェーン」と呼ぶ。
それだけである。
ここまでの文章において、「ページ」を「ブロック」に、「元帳」を「ブロックチェーン」に置き換えても、全て話が通る(銀行の部分を除く)。
図解ではあたかも直方体の「ブロック」として表現したが、本来は単なる容量と書式が決まったデータの塊である。その名前が「ブロック」であるから、わかりやすくこのようなブロックのつながりや、単なる正方形のつながりとして表現される事が多い。
よく聞く「ブロックチェーン」が、こんなにも理解が簡単だったのかと驚かれることだろう。当然、技術的な仕様は難解であるが、コンセプトが「元帳」であることが分かっていれば理解しやすいはずだ。名前というものは、知らないフレーズが使われているだけで、敬遠しがちになり、全く意味がわからないものになるのだ。
なお、この「ブロックチェーン」は、単にこの元帳の仕組みを指すだけではなく、先ほどの暗号ハッシュを用いた採掘バトルの仕組みや、トランザクション承認の仕組み、「Decentralized」されて、P2Pネットワークとして稼働している仕組みも含めてそう呼ぶことが多い。
ブロックチェーンの「Proof of Work」
そして、そこでの採掘バトルに採用されている評価概念が、冒頭に出てきた「Proof of Work(PoW)」と呼ばれるものだ。「回り道ができずコストがかかる単純行為」をしたという事実を使って、仕事をしたということを証明する仕組みを指す。
変な例かも知れないが、例えば広大な野原で四つ葉のクローバーを見つけた人に対して、10分に一つ完成するおにぎりを渡すとしよう。
おにぎりを得るには、ひたすら野原を這いずり回るという行為でクローバーを見つけるしかない。しかしおにぎりを渡す側は、その仕事を評価するには参加者が取ってきた四つ葉のクローバーを見て確認するだけで良い。参加者がより数多くのおにぎりを得るには、仲間を連れてきて人数を増やすしかない。
すでに学んだように、参加人数が増えても10分に一回おにぎりを渡すには、ゲームのルール(難易度)を調整すれば良い。「よし、今からおにぎりは四つ葉ではなく五つ葉のクローバーに与えられる」と。
「ブロックチェーン」では、暗号技術を使ってこの「Proof of Work」を実装している。ランダムな「ノンス」を一つ前のブロックにあるハッシュと併せて、一方通行の暗号アルゴリズムに放り込めば出てくる計算結果の頭のゼロがそろっていれば当たり。評価するには当たったノンスをもう一度そのアルゴリズムに通すだけ。
ビットコインでは、その正解となったハッシュが、次のブロックで採掘する際の問いのハッシュとして使われる。これが永久に続き、ブロックが鎖(チェーン)のようにつながって伸びていく。
この仕組みでは、ハッシュが一定の計算コストを持って仕事の証明になることから、「Hashcash」と呼ばれていて、メールのスパムを防止する仕組みなどにも使われている。スパマーは、メールを送るたびに一定の計算で仕事したことを証明せねばならないから、何億通もメールを送るのに計算能力をかなり消費してコストがかかってしまう。しかしメールを受けた側は一発で検証できる、という仕組み。
それを、金融システムにおけるトランザクション承認プロセスに応用したナカモトサトシさんかっこいい。
将来有望なブロックチェーン
これらを含めた全ての仕組みがあまりにも画期的であり、信頼性が高いため、様々な分野で「ブロックチェーン」の仕組が採用され始めている。
実際、IBMが「ブロックチェーン技術」をIoT(物のインターネット)や主要通貨の決済システムに採用を進めており、あのIntelまでもがついに暗号通貨関連の研究者を募集している。
本当にこのビットコインの「ブロックチェーン技術」が、一般的に思われているように「怪しい」、「信用出来ない」、「データが改ざんされてしまう」ような技術であれば、先進的なテクノロジー企業がそれを参考に、採用して新しいプラットフォームをつくろうとするはずがないだろう。
「ブロックチェーン」を用いれば、改ざんできない透明性の高いプラットフォームができあがる。それを世界で初めて、決済プラットフォームとして実働させ、証明したのが「ビットコイン」なのである。
そして様々な大小の問題を乗り越えながら、ビットコインは2009年から止まらずに立派に稼働している。
ビットコインの真の姿
もう、まとめる必要さえないかも知れない。
しかし最後にもう一度、冒頭で私が宣言したビットコインの真の特性を思い出してほしい。私は、ビットコインは「消したくとも消せない」と書いた。
2008年11月7日午前9時30分36秒(PST)。実際にビットコインが稼働するよりも前の日付だ。この日、とある暗号関係のメーリングリストに送られて来た質問に対して、ビットコインの未来の姿を予言する返答を返した人物がいた。
「Yes, (you will not find a solution to political problems in cryptography) but we can win a major battle in the arms race and gain a new territory of freedom for several years.
そうだ。(我々は暗号技術における政治的な問題の解決法は見いだせないだろう。)しかし、我々は激しい戦いにおいて大勝利を収め、数年間は新しい自由の領地を得るだろう。
Governments are good at cutting off the heads of a centrally controlled
networks like Napster, but pure P2P networks like Gnutella and Tor seem to be holding their own.
各国政府は、中央管理されたNapsterのようなネットワークを遮断することは得意だが、GnutellaやTorのような純粋なP2Pネットワークはまだそれに屈していないようだ。
Satoshi
哲史
Satoshi Nakamoto Fri, 07 Nov 2008 09:30:36 -0800
The Cryptography Mailing List
Re: Bitcoin P2P e-cash paperより」
そう。発明者ナカモトサトシは、「Decentralized」なP2P方式で、「力を持った第三者にも首が落とせない」前提でビットコインを作った。そしてそれは今も独自の経済圏、すなわち彼のいう「自由の領地」を拡大し続けている。
ここでは最低「数年間は」と謙遜気味に書いているものの、すでに6年間以上に渡って、「ブロックチェーン」はあらゆる圧力や問題に屈さず、人々の経済活動を刻み続けているのだ。
「ビットコインは『取引は全て透明性が高く』、『盗むことは非常に困難』であり、『消したくとも消せない』もの。そしてある意味一般的な通貨よりも『信用できる』ものなのである」
ビットコインの原理を理解した今、冒頭で宣言したこの言葉に偽りはあっただろうか?
念のため、ここで最後にビットコインの特徴をもう一度まとめておこう。
『不正』、『破綻』、『盗難』、『消失』
そんな言葉は、ビットコイン自身にではなく、Mt. Goxなどの、盗難や破綻による被害を発生させた取引所やサービスに向けるべきものである。ビットコインは消えていないし、消せない。
『怪しい』『不正送金』『マネーロンダリング』
そんな言葉は、ビットコイン自身にではなく、それを時代に先駆けて活用している犯罪者に向けるべきものである。まさに殺人事件における、罪のない鋭い包丁。ビットコインも同様に、あくまでも単に鋭すぎる決済ツールなのである。
最後に
ついにビットコインの原理を知って、あなたはどう感じられただろうか?
もし、あなたがテクノロジー産業に従事しているにもかかわらず、今日これを読んでもビットコインの原理について理解ができなかった場合は、あなたと暗号通貨やブロックチェーン技術とは相当相性が悪いのかもしれない。
と言っても、この先一切ビットコインを使わなくとも、あなたに何か問題が起こるわけでもない。ただ、大きな可能性を秘めた新しい分野を一つ見逃すことになる。
しかし、まったく無の状態からこれを読んでビットコインに興味を持った方や、今日まで抱いていたビットコインのネガティブなイメージを払拭できた方、そしてビットコインの革命性に感銘を覚えた方には、この先に広がるさらに大きな世界の可能性について何かを感じて頂けたはずだ。
2008年に謎の人物ナカモトサトシの論文として発表されたこのビットコインは、実にこれほどまでに、世界のトップエンジニアや研究者たちが熱狂するに値する斬新な仕組みなのである。
そしてこの「ブロックチェーン」技術の利用は、単なる決済システムにとどまらない。また、何百ものビットコインクローンである他の暗号通貨(Altcoinと呼ばれる)の根幹技術としてのみ使われている訳でもない。
その他にも、全ての電子契約やプログラムをブロックチェーン上に乗せるという壮大な「Etherium」というプラットフォームや、オープンな電子トークン株式市場を実現している「CounterParty」、現実に存在する金融資産を同価で取引できる「BitShares」、消せない特性を利用してデータ記録に特化した「Factom」など、Bitcoin 2.0と呼ばれる分野がこの「ブロックチェーン技術」を応用し、既に国境を越えて世界中に広がり始めているのだ。
日本が、世界各国に比べ、ビットコイン自体への理解と受容に数年以上も出遅れる中、そこから派生した理念と技術は、国境を超えて既存の仕組みを着実に侵食している。
ここで、今までのものと大きく状況が違うのは、この「ブロックチェーン」技術を用いたプラットフォームは、ナカモトサトシが予言したように、一政府の圧力や法律、一個人の思惑では原理的に潰すことができないということだ。
そして、それらが日本に攻め入る日も近い。我々も、否が応でもそれを受け入れなければならない日を想定して、日本からもイニシアティブを取るべく準備を進めねばならないだろう。
なぜなら、そのパイオニアであるビットコインでさえも、止めたくても、もう誰にも止められないのだから。