ADHDエンジニアのL2キャッシュ

ADHDの能力者。思いついたことが消え去ってしまわないようにキャッシュアウトする場所です。INBOX的な役割を兼ねているので混沌としています。

Bitcoinの技術について調べてみた

はろー、にまさんだよ。 大変有名な仮想通貨であるBitcoinについて少し調べてみたのでまとめます。

以下のサイトを参考にしました。

bitcoin.peryaudo.org

はじめに

このシステムを思いついたサトシ・ナカモトと言われる人物は間違いなく本物の天才でしょう。

Bitcoinが高度な技術を使用しているからではありません。
お金の本質を完璧に理解し、過不足なくシステム化してあるからです。

Bitcoinとは簡単に言うと「全員が複写している署名付き台帳」のことです。

コインはどこで管理されているのか

Bitcoinのコインは一体どこにあるのか?

答え:「どこにもない」

まぁ強いて言うなら口座残高の数字がそれだといえるかもしれません。

日本円であれば紙幣1枚1枚にIDが振ってありますが、Bitcoinは紙幣や硬貨に相当するデータがありません。
有るのは取引履歴だけです。

これはまさしくお金の本質を射ています。

紙幣は元々は貴金属などの価値のある物品の預り証が起源と言われています。 近代まで時代が下ると、金と交換できることを前提に広くやり取りされるようになりました。 つまり、本来の紙幣の役割は以下の2つです。

  • 金と1対1で対応していること
  • 他人と取引できること

しかし、ニクソンショック以降は紙幣と金の交換は保証されなくなりました。 即ちお金の本質は以下の一点に集約されます。

  • 他人と取引できること

つまり取引の記録さえ正しく取れば通貨として成立するわけです。

Bitcoinによる送金の記録

Bitcoinの送金の記録は非常にシンプルです。 一回の送金記録はトランザクションと言われます。 トランザクションは以下のデータの集合です。

  • 宛先口座番号(=受け手の公開鍵)
  • 直前の取引のハッシュ値
  • 送金者のデジタル署名

要は「いつどこに送ったか」という情報に送金者のサインが有るだけです。

ちょっと工夫しているなと思うのが以下の点です。
まさに無駄がないといった感じでとても好きです。

  • 前後関係の管理に取引時間ではなく直前取引のハッシュ値を利用している。
  • 口座番号はデジタル署名に使う公開鍵を使用している。

不正を考慮しなければこれで通貨としては成り立ちます。

Bitcoinにおける不正監視

Bitcoinは送金記録の集まりなので起こりうる問題があるとすれば、次のような感じ。

  1. 勝手に過去のトランザクションを書き換える
  2. 矛盾したトランザクションを作る
  3. 勝手に新規発行する
  4. 持っている金額以上の送金を行う

1に関しては前回取引の記録をハッシュ値にして取り込んでいるので、ハッシュ機構とデジタル署名がまともに機能していれば防げます。
2〜3に関しては結局どの取引を信用するのかという問題になります。
4に関しても残高がマイナスになるような取引を信用せず、受け取り手が後にトランザクションを繋げなければいいだけの話です。 (逆に信用してトランザクションを繋げれば信用貸状態になるということです)

通常の通貨であれば銀行がこのあたりの責任を負うのですが、Bitcoinには中央銀行が存在しないP2Pシステムです。
Bitcoinの結論は「コストのかかっている取引を総意とする」ということです。

ブロックチェーンによる総意の決定

トランザクションはブロックという単位でアーカイブされ、これまたチェーン構造を取ります。(ブロックチェーン
このブロックチェーンはネットワーク全体に公開され、参加者なら誰でも継ぎ足すことができます。

そして、ここがBitcoinの肝なのですが、このブロックを作るには膨大な計算リソースを消費するように設計されています。
つまりブロックチェーンの長い取引ほどコストがかかっているわけです。

ブロックチェーンが競合した場合は最も長いブロックチェーンBitcoinネットワーク全体のブロックチェーンとして信用します。

自由競争市場ではモノの価値はいずれコストに落ち着く仕組みを上手く利用して、コストにより価値を維持しているのです。

通常の通貨が政府によりコントロールされているのに対して、競争の仕組みで通貨価値をコントロールしているのは、本当に経済というものをよく理解しているなと思いました。

Bitcoinの新規発行

Bitcoinは基本的には壊れたりなくしたりしないので、新規発行しなくても問題内容に思います。
通貨価値は市場原理でコントロールされますし。

ですがBitcoinは新規発行通貨をブロックチェーンに追記した者(通称マイナー)に報酬として付与しています。

これは本当に感嘆したのですが、ネットワーク維持コストをインフレによって贖っているということです。

現在Bitcoinは注目が高まっているため需要が高まり価格があがり続けていますが、一般には通貨というのは発行量が増えると価値が下がっていきます。
つまり、新規発行が増えれば増えるほど既存のBitcoin保有者は損をするということになります。
そしてその損失分はマイナーの利益として供給されます。

つまりBitcoinの新規発行の仕組みは、全Bitcoin保持者からネットワーク維持者への資金移動を実現しているのです。

この仕組みに気づいた時は「遊戯の奴そこまで考えて・・・」と驚きました。

まとめ