いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

ブロックチェーンとは何か

 ビットコインが面白そうです。いや、投機の対象?になるのかどうか知りませんがそっちにはあんまり興味はなく、技術面のことです。本も読み始めたんだけれどまだ進んでいません。 

www.omoshiro-suugaku.com

今回はそういう状態ではありますが理解している部分を書いてみます。一応今回新しい本も手に入れて読んでいる最中です。 こちらも参考にしつつ。

 ビットコインとは、P2Pネットワーク上で動作する決済システムです。「AさんがBさんにいくら支払う」というのをネットワークで実現します。P2P(Peer to Peer)ネットワークとは、メインのコンピュータなどのない、個々のコンピュータ同士が作るネットワークです。つまりビットコイン全体を管理するコンピュータはどこにもありません。ビットコインの単位にはBTCを使います。2015年6月で1BTCは約3万円でしたが、今では120万円とか。一体何がどうなってこういうことになるのか、1ドルが昔は360円だったけれど今では100円みたいなものなのか、その辺はよく分かりませんがここでは技術面について書いてみます。
 「AさんがBさんに3BTC払った」のような、個々の取引をトランザクションと言います。複数のトランザクションをまとめたものが「ブロック」です。ビットコインの仕組みが始まって以来の全てのトランザクションはいくつかずつブロックに入れられ、それらたくさんのブロックたちは1本の鎖のようにつながっていて「ブロックチェーン」と呼ばれます。ビットコインはこのブロックチェーンの技術によって支えられています。ブロックチェーンビットコインで取引をする人たちが共通のものを個々に持っています。つまり、ブロックチェーンとは誰でも見ることができる公開取引簿なのです。従ってが過去どんな取引をしたのか、チェーンを最初から順に調べればすぐ分かります。しかしそうなると心配なのが改ざんです。ブロックチェーンは誰かが金庫にしまっておくわけでもないので書き換えること自体は簡単です。しかし書き換えはできますが、それがすぐにばれる仕掛けになっています。その仕組みが「ハッシュ値」です。例えば……40人の試験の得点をコンピュータで管理するとします。このデータをみんなの手に触れるところに置いておくと誰かが意図的に、あるいは意図せずに書き換えてしまうかも知れません。そこで、例えば合計を計算して控えておきます。翌日、改ざんされていないか心配になったら合計を調べればよいのです。実際には合計を使うと2人の得点を+3、-3点してしまえば改ざんは見抜けませんし、あるいは得点の順番を変えても分かりません。もっとよく考えて改ざんをしっかり検出できる方法が必要です。これがハッシュ値なのです。ハッシュ値にはたくさんの種類があり、ブロックチェーンではさっきの合計などよりはるかに複雑な方法、「SHA-256」などが使われます。これを使うと順番を入れ替えても、何カ所かで+、-して辻褄を合わせようとしてもすぐにばれます。ブロックチェーンは、トランザクションをいくつかまとめたブロックを最後尾に追加する作業を繰り返してだんだん伸びてゆきますが、ブロックを追加する際、そのブロックの一部にひとつ前のブロックの内容から作成したハッシュ値を入れるのです。そうするとブロックチェーンのどこかのブロックを改ざんした場合、それは以降の全てのブロックに書き込まれるハッシュ値に影響を与えます。みんなの手元にはブロックチェーンがあり、その最後尾、つまり最新のブロックに書いてある(正しい)ハッシュ値はみんな知っています。だから「あ、誰かがどこかを改ざんしたぞ!」と分かってしまうのです。

 本当はもっと突っ込んだ内容も書きたいんですが(マイニングとか)、勉強はこれからです。今回はここまで。