ビットコインそのものは、「署名」がひたすら繋がっていくイメージ

――ビットコインそのものは数列ではないんでしょうか?

ビットコインそのものは、何というか、署名がひたすら繋がっていくのがビットコインというか。

――署名が繋がっていく。

そういうイメージです。昔からカネは天下のまわりものといいますが、ビットコインの署名の連鎖を図に示してみると確かに、縦横無尽にのびていったり渦のようにぐるぐると廻ったりと、署名が繋がっていく様子が手に取るようにみてとれます。

岡田氏によると、ビットコインそのものは、署名がひたすら繋がっていくイメージだという

(出典:ビットコイン勉強会・福岡(2)資料(近畿大学産業理工学部・山崎重一郎教授))

(※ http://www.slideshare.net/11ro_yamasaki/bitcoin2 )

――署名が繋がっていくというのがイメージ、コインのように実物があるわけではないということですね。そのものを作り出す作業というのは、よく新聞を見ると、高度な技術を駆使して複雑な数式を解けば、自分でビットコインを作り出すことは可能だと書いてあるのですが。

マイニングでビットコインを作り出す話ですね。その話をする前に、どうやって偽造を防ぐ仕組みになっているのか、ナカモト論文のアイデアを順にお話しましょう。

電子的なお金も所詮はデータなので、誰かに送りましたと言っても、そのコピーはまだパソコンにありますよね。だから、同じものを2回送れてしまうんです。すると、お金が2回使えるので、二重使用問題、多重使用問題が起こってしまう。これが長年の問題でした。さっきの署名でいうと、1番、2番、3番と署名すべきところを、2番に送ったものを2'番にも送る。この人に署名したけど、あの人にも署名したという、そういうふうに分岐してしまう。これを防ぐ方法はないかと解いたのがナカモト氏の論文です。具体的にどうするかというと、大勢の人で同じ記録を持てば偽造できないだろうと。つまりさっきの1番から2番にいきましたと、するとそれを次に参加者全員にブロードキャストするわけです。バケツリレー方式で、参加者全員に行き渡るまで記録を流していきます。時間はかかりますが、すべての参加者が同じ記録を受け取ります。すると、これとは違う流れをつくろうとすると、全員が持っている記録とは合わなくなるので、全員の記録を書き換えない限り偽造ができないということです。

多重使用問題を解決するために、大勢の人で同じ記録を持てば偽造できない仕組みが作られた

(出典:ビットコイン勉強会・福岡(2)資料(近畿大学産業理工学部・山崎重一郎教授))

(※ http://www.slideshare.net/11ro_yamasaki/bitcoin2 )

――要するに1回使うと、使えなくなってしまう。全員に送ることで、記録を書き換えられなくする。

このお金は誰々さんから誰々さんにいくらの量行きましたよと。実際に、その画面をお見せしますと、これが今行われているトランザクションです。実際に、取引を1個開いてみると、このアドレスから、これとこれのアドレスにそれぞれこれだけの量が送られましたと。

――これは秘密なんですね。写真とか撮れないですよね。

これは公開です。自分のパソコンでも見ることができます。ブロックチェーンです。

ブロックチェーンというサイトで取引状況が分かる

――取引サイトですね。

取引サイトというか、ビットコインのすべてのデータはオープンデータとして公開されているので、オープンデータですから、誰が加工して見やすくしてもいいですよね。その中で、ブロックチェーンというサイトが最もわかりやすい。

――この人がこの人にビットコインを送っているという取引中ということでしょうか。

取引は行われました。今アンコンファームド・トランザクションと書いてあるので、いわゆるマイニングの作業を経て、コンファームドに変わるのですが、マイニングが終わっていないので、取引がありましたということは全員にブロードキャストしているけれども、まだブロックに取り込まれていない状況です。未承認取引です。

――未承認取引ですか。

いま行われている取引が時々刻々と、1分前の取引、4分前の取引と出ていますけれども。よく匿名通貨だといわれますが、それはある程度当たっていて、これが誰のアドレスかはわからないのです。

――完全に公開されていますね。

このアドレスが誰のものなのかは匿名だけど、取引内容は全部公開というルールです。

――先ほどビットコインの公開鍵、秘密鍵を入れるには、ウォレットをダウンロードすればよいということですが、それはパソコン上にダウンロードすればいいのですか。

そうです。スマホでもアンドロイドであればダウンロードできます。

――そうすると、だれでも取引に参加できるということですか。

ウォレットをつくることはできます。ウォレットができれば、とりあえず、誰か友達からビットコインを送ってもらえば、受け取ることはできます。

――投資の対象になっているみたいな話があるのですが、誰かから送ってもらうという作業をしてもらって、それでその対価としてお金を払うということになるのでしょうか。

ちょっと違いまして、投機の対象となっている場合は、たとえば日本円でビットコインを買いたいという場合は、一番簡単なのは知り合いからビットコインを送ってもらって、100円ねと手で渡すのは簡単ですけれども、普通はそういう相手がいないので、ドルを手に入れるときと同じように、交換所に行って日本円を出してビットコインをくださいと、はいビットコインを売りますと。実際には対面ではなくてネット銀行から振り込んで、その対価のビットコインを自分のアドレス宛に交換所が送金する。

――交換所がウォレットにビットコインを送金してくれるんですね。その交換所はマウントゴックスだったわけですか。

日本では。日本になくてもインターネット経由ですからどの国にあっても利用できるので、海外の交換所を利用している人もいます。海外から日本のマウントゴックスを利用している人も数多くいました。

――ネット銀行から、たとえばマウントゴックスに送って、それはどのネット銀行でもいいのでしょうか。

実際には、マウントゴックスが受け付けていたのは二つぐらいのネット銀行ではないかと言われています。マウントゴックスは口座が開設されるまでの期間が3カ月もかかっていた状態だったので、正確なことはわかりません。限られた人数でやる分量としては仕事量が大きすぎて、すでに破綻状態でした。

――破綻状態だった。人が足りなかったという感じですか。

それほど人数の多くない事務所で、数千億円相当の価値を動かしていたわけですから、とてもとても追いついてなかった。

――口座開設というのは。

本人確認はありました。一定以上の金額を不特定の相手と取引する場合には。

――ウォレットをダウンロードするだけではなく、本人確認作業も必要でビットコインが得られていたわけですね。

ですから、マウントゴックスに自分のアカウントを登録して、マウントゴックスのユーザーになるという、その手続きに既に3カ月かかっていたんです。

――キャパシティがオーバーしていた状態だったんですね。

ちょっとマウントゴックスの例を出すとわかりにくくなってしまうのですが、本来、交換所とユーザーとの関係は、日本円を振り込んだり、USドルを振り込んだり、その分のビットコインを送ってもらうという。空港などにある外貨の両替所と同じような役割です。

――ナカモト論文がすごかったのは、二重支払い問題を解決したがゆえにというところなんですね。

その説明はもうちょっと説明が必要でして、一つは大勢が見ているから偽造しにくいという、でもこれはアンコンファームドの状態で、とりあえずトランザクション情報を出しましたと。これにタイムスタンプを打って偽造をやりにくくする。

具体的には、1個1個にタイムスタンプを押すのではなくて、マイニングをやる人たちは、直近のアンコンファームドの取引を大体4~500件かき集めてくるんです。何件とは決まっていなくて、およそ80件から1450件の間ぐらいの適当な件数です。それを束ねて、大福帳を1冊作るんです。大福帳、これをブロックというのですが、一つのブロックに固めるんです。この400件とかのアンコンファームドの取引を集めて、これにちょっと時間のかかる計算をして、これは時間のかかる計算に成功しましたよ、という証拠を貼り付けるんです。

――それがタイムスタンプですか。

そうです。

ビットコインはどうやって作り出される?

――時間のかかる計算をしたという証明みたいなものですか。

具体的には、ある条件を満たす計算が終わったことを証明すると。

――それもナカモト論文に書いてあったと。

そうです。ここがすごいところです。実際に、やっている作業はこんな感じですが、この画面に見えているのがブロック、いわば大福帳です。400件ぐらいの取引の束を大福帳にまとめ、そこにまた次の束を大福帳にまとめ、ずっと繋がって一つの大福帳を編纂するように糸を通していきます。大福帳と大福帳を繋いで、糸を通す作業をするためには、とても面倒な計算に成功しないと繋がらない。

この計算は大体10分くらいかかる面倒な計算ですが、具体的に何をやっているかというと、ある3つのデータの塊を計算しているのです。

1つ目は、さっき集めてきた400件の取引データの塊です。一つの取引ごとに64桁のIDが振られているのですが、これが400件分あって、一つの塊になっています。まず、この塊をかき集めてきます。

2つ目は、直前のブロックのハッシュ値です。ハッシュ値というのは、ハッシュ関数の答えです。ハッシュ関数というのは、要は何でもいいから数字を放り込むと、64桁の英数字が出てくると思ってください。ナカモト論文ではSHA256などのハッシュ関数を使うと書いてあります。SHA256というのは、日本語ではよく「シャーにごろ」と読むのですが、この関数にデータを入れると、256ビットすなわち英数字で64桁の答えが出てきます。

1つ目のデータの塊では64桁の取引IDを400件集めてきましたが、これに2つ目の、直前のブロックのハッシュ値の64桁の数字を足します。1つ目のデータと2つ目のデータを足して、まとめて再びSHA256の関数に放り込むと、また答えとして64桁の英数字列が出てきます。でもこれは、長いパスワードのようなランダムな英数字列です。

ここで、3つ目の乱数が登場します。さきほどの1つ目と2つ目のデータを足した数字に、さらに3つ目として適当な数字を足します。この数字はなんでもよいのですが、1つ目と2つ目に3つ目の適当な数字を足して、SHA256の関数に放り込みます。そして、この答えがきれいなものになったら、問題が解けたことになります。

きれいな答えというのは、64桁の英数字列の最初に、今だったら15桁ぐらい0が並ぶと、きれいな答えが見つかったことになります。きれいな答えになるような3つ目の数字が見つかるまで、3つ目の数字を代入しては計算するという単純な作業をひたすら繰り返すわけです。1を代入して計算してだめだ、2を代入して計算してだめだ、100を代入してだめだ、101を代入してだめだ、1京の位の数を代入してだめだ、1垓の位の数を代入してだめだ、こうした作業をひたすら繰り返して、よほど運が良ければ、10分後ぐらいにある数字を代入したときに、きれいな答えが見つかります。

――それでビットコインを採掘したことになるんですか?

そうです。

――それは1BTCになるんでしょうか?

25BTCです。今現在は、だんだん減るんですけれども、最初はワンブロックで50BTCでしたが、今は25BTCです。

――糸でブロックが繋がっていましたが、一つのブロックを解いたということで、その前のブロックもやろうと思ったらできる感じですか。

前のブロックは誰かが既に繋げる作業をやっているんです。やったから、一つ前のブロックと繋がったんです。これは一本の糸でずっと全部繋がっているんです。

――このシステムをつくったのがナカモト氏ということですね。

考えついたのがナカモト論文です。1を代入して計算しなおす、だめだ、2を代入して計算しなおす、だめだ、ずっと数字を入れ替えていくのです。よく高度な数学的問題を解いてと書いてありますが、違うんです。ひたすら作業する力仕事なんです。

ビットコインの"採掘"は「力仕事」という

(出典:ビットコイン勉強会・福岡(4)資料(近畿大学産業理工学部・山崎重一郎教授))

(※ http://www.slideshare.net/11ro_yamasaki/bitcoin-4 )

世界中できれいな答えを見つける競争をしていて、先着一名が採掘に成功したことになります。二位の人には、報酬はありません。電気代と時間の無駄遣いに終わります。

きれいな答えが発見されると二つの効果があって、一つ目は見つけた人は25BTCをもらえると、これは作業ご苦労様という報酬です。二つ目は、これが本来の目的なのですが、そもそもこの計算は何のためにやっているかというと、この400件の取引がアンコンファームドからコンファームドに変わるのです。この瞬間に、この400件の取引は承認されました。

従来であれば、こういう作業は銀行のサーバーで全部取引があって、これは間違いなく記録されているので、そこでやればよかったのですが、この論文では銀行がないので代りに誰かがやるんです。誰かがやるためには報酬がないとやらないので、それで400件をコンファームドにする作業をやってくれた人には25BTCをあげると。

――報酬なんですね。自分が読んだ説明とは、少しイメージが違いますね。

ちゃんと説明するのは面倒なので、しばしば省略してあります。

――この採掘というか、ゼロを今だったら15桁並べることができた人に25BTCをあげるというのが、ナカモト論文の基本的なことなんですね。

そのとおりです。

――これによる効果というか、どういうものですか。

大福帳を束ねて糸で繋げていっても、力づくでずっとさかのぼっていけば改ざんできますよね。でも、ここまでの取引を改ざんするには、この64桁のきれいな答えを元に戻すための計算をしなければいけなくなります。ゼロが15個並ぶきれいな答えを導くNonce(適当な数字)を探すために10分かかったわけですが、元に戻すのは10分では足りなくて、はるかに長い時間がかかります。このSHA256のハッシュ関数というのは、何でもデータを放り込めば64桁の答えが出るのですが、64桁の答えの元になる問題が何だったかを解く方法はないんですね。つまり、可逆的ではない。元の形に戻して、そこから3つ目の乱数を引いて、2つ目のハッシュ値と、1つ目の塊を再現して、それらを都合よく書き直すということはできないのです。だから、不可逆的だといわれる。

――偽造ができないというのが最大の利点なんですね。

ついでにいうと、それでもすごく苦労して再現して、これで書き直せるといっても、苦労して解けたのはブロック一つ分だけです。もともとは、たったの10分かけて作られたものでも、可逆的に再現して偽造するのには、何倍もの時間と計算量を費やすわけです。一つ分のブロックを書き換えて利益が得られたとしても、それは大した利益にはならない。本当に偽造で利益をあげるには、ブロックチェーン全体を支配しなければならない。ところが、チェーンはどんどん増えていくので、一体何個解けばいいんだ、となる。それよりは、そんなことができるほど計算量があるのだったら、素直に採掘したほうがよほど利益もあがります。

――そういうことになるわけですね。岡田さんが実際になさったことはありますか。ビットコインをつくったことは。

ないです。画面に戻りましょう。これが通算のブロックの数ですので、2028万8850個目のブロックが今できているところです。

――全部ブロックで繋がれているわけですね。その番号があるわけですね。

大福帳の何冊目かですね。このブロックごとに。

――ブロックにはコンファームドが入っているんですね。

ブロックに入っているのは、採掘が終わっているものですから、コンファームドです。ブロックに固められたものは、ワンブロックでおよそ80件から1450件ぐらいの取引、たとえばこのブロックでいうと427件のトランザクションが入っていて、この427件はめでたくコンファームドされている。その報酬として、この人たちが25BTCゲットしましたと。報酬をゲットした採掘者のグループ名も書かれています。

――そういうことなんですね。

ついでにいうと、ビットコインでは発行者がいないわけですが、誰がいつ発行するのかというと、この計算が終わった瞬間に25BTCが突然現れるんですね。手元で。やった! ゼロが15個並んだ、それが25BTC。もうちょっと正確にいえば、解けると、解けた答えに自動的に25BTCついてくるようになっていて、自分が束ねた427件+今わいてきた25BTCが手元に現れる。だから、このブロックには正確にいうと428件の取引が入っている。これを人にあげるなり、売り飛ばすなり、自分のものになると。これがビットコインの発行で、何もないところから突然ぽっと増えるので、金を掘り当てたのと似てるよねという、その感覚で採掘と言っているのではないでしょうか。