ここがすごいよビットコイン

ビットコインってなによ

これ、コミュニティ内でもある程度認識が一致してるけど、ゲーム通貨です。なんのゲームの通貨というと、マジック・ザ・ギャザリングっていうカードゲーム。カードの売買にビットコインが使われ、その結果価値をここまで引きあげました。

この通貨自体の価値を保障する人はいません。みんな独自にこのシステムを気に入って購入、売買しています。保障されていることは、新たなビットコインの発行には大量の電気代がかかること、ビットコインの総量が決められていること、採掘者の多数決で決が採れない場合、システムの変更が不可能なことです。

再度言いますが、ビットコインの所得枚数は保障されますが、ビットコイン一枚辺りの価値は保障されていません。

仕組みとか―行使側―

専用のソフトを立ち上げて、送金したい相手のアドレスを入力し、送金ボタンを押すだけ。手数料として3円相当のビットコインを取引仲介者に渡し、ブロックチェーンにその取引が記録されます。この取引の送信は秘密鍵を使って行われます。

秘密鍵ってなんぞ

結果だけ書くと、公開鍵によって暗号化されたデータは秘密鍵でしか復号出来ない、また秘密鍵によって暗号化されたデータは公開鍵でしか復号出来ない、といった暗号の方式です。動きとしては、公開鍵を受け取った人は、その鍵で暗号化を施すと、公開鍵で復号出来なくなり、秘密鍵を持っている者のみ復号出来るデータとなります。そう出来てるんです(思考停止)

・なんでそれで取引が出来るの

ビットコインのウォレットアドレスは公開鍵で出来ています。「あの人にビットコインを送金したい」と思った時、取引相手の公開鍵と、取引金額、手数料、あと色々なデータをパッケージにし、これを自分の秘密鍵で暗号化した取引データを作成し、ブロックチェーンへ送信します。この取引データは自分の公開鍵でしか開くことが出来ません。一件「なんでそんな無駄なことするの」と思われがちですが、この「秘密鍵で暗号化したデータ」というのがミソで、自分の公開鍵で復号出来るデータを秘密鍵を持たない赤の他人が生成することはとても難しいのです。そう出来てるんです(生命活動停止)

・ブロックチェーンってなんぞ

ブロックチェーンは世界中のビットコインの取引情報を全て把握しているデータ群です。このデータは全ての取引仲介者(採掘者、マイナーと呼ばれます)に渡され、また全体で完全に同期しています。この同期は力業によって成されており、採掘者と名乗る人は一人一人、誰がいくら持っているのかを全て把握しています。採掘者はこのブロックチェーンデータを保持しなければ取引を仲介、採掘出来ません。

・取引の正当性の確保

この取引は、ある特定の取引仲介者によってブロックチェーンに書き込み、そのチェーンデータを取引仲介者全体に渡し、大丈夫だと判断された場合に限りブロックチェーンが同期されます。悪意ある仲介者が改ざんした場合、他の善意の仲介者によってブロックチェーンの同期から弾かれます。

仕組みとか―採掘者側―

ビットコインの生成

ビットコインは善意の採掘者、取引仲介者たちの手によって運営されます。初めのうちはブロックチェーンに取引を記録する度に、取引手数料の他に新たにコインを生成する権利を与えられます。

・採掘

取引仲介者たちは、取引の仲介の他に、採掘と呼ばれる作業を行っています。ビットコインを掘り当てた人達にはコインが分配され、同時にブロックチェーンへの書き込みを許可されます。コインの採掘作業は、ハッシュ関数について理解がないと把握出来ません。

ハッシュ関数ってなに

ハッシュ関数とは、入力されたデータを元に超適当に数値を算出する(基数から乱数を算出する)アルゴリズムの総称です。この関数だけを全体で共有すると、この関数はAという入力に対しBという乱数が得られますよ、といったことを、全体で再試験し、再確認出来る様になります。

・採掘難易度

ブロックチェーンへの書き込みは、乱数がある結果に収束した場合に作成されます。この条件は、「先頭から10桁までがゼロになる数値」といった具合になります。採掘者達はこの「ゼロを10個返す」ハッシュ値を算出する為に、基数のパターンを大量に入力し続けています。

・採掘難易度の自動調整

ビットコインは10分間に一回ブロックチェーンが追加されるよう、二週間に一度のペースで再計算ブロックに接触し、採掘難易度が再計算されます。「あれ?一週間で二週間分掘っちゃったぞ?」となった場合、採掘難易度を倍にするよう求められ、以降は再計算ブロックにぶち当たるまで採掘難易度が倍になったまま動き続けます。ちなみに実際の計算式はもうちょっと複雑です。

 

ここまで書いて力尽きたのでまた今度書くんじゃよ

結果的にどうなるのか

自身が送金したい相手へビットコインを送金するには、ブロックチェーン上にある自分の公開鍵であるビットコインアドレスの取引記録をジェネシスブロック(ブロックチェーンの開始位置)から順に追っていき、そのアドレスへの送金やそのアドレスからの出金、もしくは採掘されたビットコインを段階的に精査していき、最終的な残高を確認してから、送金したい金額以上のコインを所持しているかどうかを判断され、持っていた場合その処理が認証されます。この取引の改ざんは自身の秘密鍵がバレない限り不可能です。

そうして送金されたビットコインは、そのアドレスから送信されたデータであるかどうかを公開鍵であるビットコインアドレスで復号して確認を取り、確認が取れた場合に保持、また取引データを拡散し、採掘出来た人が、自身が採掘した証明と、正当な送金処理だったことを確認してブロックチェーンに書き込み、そのブロックを周りの採掘者に投げ渡し、周りの採掘者が確認出来たら順次新しいチェーンを書き込んでいく、という挙動になります。

つかれた

公開鍵と秘密鍵について呪文みたいな書き方をしてしまったのがとても心苦しい。全体の挙動についてはちゃんと書いたつもりなので、後は後述する本を買って、暗号化処理についての正しい知識を持って、それからビットコインに手を出すととても安心すると思います。(2015年8月26日に改訂されたばっかだよ!ビットコインについての記述も加筆されたそうなのでみんなで読もう!)

Amazon.co.jp: 暗号技術入門 第3版 秘密の国のアリス: 結城 浩: 本