ko-zuの日記: Bitcoinを解説してみる
本家にBitcoin関連のポストが多いようなので。
主要なアイデアは、特定のハッシュを持つトランザクションログ(正確にはツリー)のみ意味を持つ、という点。
トランザクションログの先頭、つまり最初の資金保有者に自分を書き加えることが出きれば、新たなBitcoin通貨を発行できることになる。
資金移動をしたい人は、トランザクション情報を放流し、誰かがログを生成するのを待つ。計算者が資金移動を含めた新しいトランザクションログ=新しいBitcoinを生成することで、トランザクションが検証される。そのたびにBitcoin市場流通量が少しずつ増えていく、というわけである。
トランザクションログのハッシュを計算することで計算者はBitcoinとして対価が得られる。逆に既存保有者は、トランザクションの正当性を計算者が検証してくれることに対して、保有するBitcoinの相対的な価値の低下として対価を支払う。
なお、計算者はtransaction feeも受け取る事ができる。これはあくまで優先的にトランザクションを処理してもらうためのチップであり、DoS攻撃回避にのみ必要としている。よってBitcoinの規模増加にしたがって減少し今は0.0005 BTCと当初の1/20になっている。
このように、価値を持つハッシュを生成するための計算コストと、Bitcoin経済でのBitcoin=正当なハッシュ、あたりの価値が見合う限り、継続して利用できる。
この平衡が生成有利になるとインフレが起こり、Bitcoin有利になるとデフレが起こる。いずれもトランザクションログが適切な頻度で生成されなくなるため、Bitcoinが破綻してしまう。
Bitcoin経済の健全な運用に必要な主なパラメータは、
・新規Bitcoin=ハッシュの生成コスト
・トランザクションログの維持コスト
・Bitcoinのレート
このうち、Bitcoin発行元が関与できるのは生成コストになる。
適切な頻度で一回に生成されるBitcoinの価値を変更することで、コンピュータの発展で生成コストが下がり過ぎたり、トランザクションが解決しない=検証されるまで時間がかかりすぎる、といったことがないように調整する。
破綻のシナリオとしては、当然ハッシュアルゴリズムの脆弱性が発見されるような暗号論的問題のほか、
トランザクションが予想以上に増える一方、計算コストの減少がおいつかない場合。
この場合、ハッシュ生成の価値を高く維持することで計算者にハッシュ生成=トランザクションログ維持の意欲をもってもらう必要があるが、それはBitcoinの流通量増加と価値下落を意味する。Bitcoin保有者がこのインフレを許容できなかった場合、Bitcoinが崩壊する。
このシナリオには対症療法的に、無給の計算者が、Bitcoin経済に流通させないと定義した死蔵Bitcoinを生成する、という方法がある。Bitcoin経済の維持自体に利益を見いだせる人間が十分多ければ、これは成立するだろう。またこの手法は実施と効果が誰にでも検証できるため、論理的にはうまく働くはずである。
生成コストが下がりすぎた場合。
単純に発行元は新規発行を減らしていけばよい。生成コストが下がるということは、トランザクション維持コストも下がるので、これは自体は問題ではない。
ただし、発行元は迅速に新規生成されるBitcoinの価値を低下させなければならず、秘密裏にBitcoinの低コストな算出方法を誰かが見つけている、という市場の不安を払拭し続けなければならない。
生成コストが下がりすぎた場合、ハッシュアルゴリズムをより計算困難なものに改善した次のバージョンのBitcoinに移行することが考えられる。(デノミの逆)
原理的に、Bitcoinはハッシュアルゴリズムと密に結合しているので、既存のトランザクションを内包する新しいBitcoinを作るのは難しいように思われる。旧Bitcoinが手元にあっても、新Bitcoinを即座に得られるわけでは無いため、とくに新Bitcoin立ち上げ当初はレートが大きく変動する。
基本的には、旧Bitcoinの新規生成価値をゼロに落として、発行元やボランティアが一定期間計算者を肩代わりし、新Bitcoinとは市場取引で移行してもらうことになると考えられる。
もっとも、新Bitcoinに移行を迫られる程に生成コストが下がっている状況は、そもハッシュアルゴリズムが安全でない、ということなので、そも考慮する必要は無いかもしれない。
結局のところ、既存通貨と同じく、Bitcoinの価値は、発行元の信頼性に依存する。(造幣局が日銀と独立して通貨発行するみたいなイメージ的違いはあるが)
法的な裏付けがあるわけではない一方で、誰にでも容易に通貨流通量の健全性は検証できる。
Bitcoinを解説してみる More ログイン