2012年09月12日

Bitcoinの一貫性維持の原理について

http://en.wikipedia.org/wiki/Bitcoin が十分詳しい。
wikipediaを参照するな!というのは置いといて。

Bitcoinでは公開アドレス間の送金を全て検証することで、仮想通貨としての一貫性
・資金を持っている人だけが送金できる
・架空の資金を送金することはできない(残金ゼロなのに送金したり、同じ資金を二人対して使うことができない)
を実現している。

まず前者は非対称暗号による署名で実現している。
まず財布を作りたいユーザは秘密鍵と公開鍵をつくる。このペアから更に、アドレスと呼ばれる使い捨ての財布を生成する。
この公開されるアドレスからの送金情報を、秘密鍵で署名しP2Pネットワークに放流することで、送金を宣言できる。
検証するには、送金元アドレスに対応する公開鍵で送金情報を検証すれば良い。


つぎに架空の送金や二重送金はチェックは少し複雑になる。これはハッシュブロックのチェーンと呼ばれる一貫性のある送金情報のデータベースをP2Pネットワーク全体で維持することで実現される。
さらにこのときこの一貫性を維持する作業に協力した場合に、bitcoinを得られるという利益を与えることで、bitcoinの恒常性が維持されている。(bitcoinを既に持っているヒトのbitcoin価値がわずかに減る)

これは大雑把に言えば次のようなプロトコルに為る。チェーンを維持するための計算をするヒト=以下マイナー(採掘者)は

・前提となる既に世界的に認められた送金情報データのブロック(後述)を取得する。
・P2Pネットワークから、送金情報を得て、署名を確認する。署名が不正な送金はここで除去する。
・送金情報を一定数まとめて、前提となるブロックのハッシュと、送金情報を含めて署名する。これがブロックと呼ばれる検証単位になる
・ブロックの送金情報がある特定のハッシュを持つ場合のみ、ブロックは有効なトランザクション情報として認められる。つまり、適切なハッシュをもつデータの組み合わせを調べることが、マイナーに課される計算課題であり、これが一瞬では済まない困難な問題であることが信頼性を担保している。
・有効なハッシュを持つブロックをP2Pネットワークに放流する

(なお、同時に複数のマイナーが同じブロックに対して分岐したチェーンを作ってしまうことがある。この場合、二箇所に送金情報が登録されることになるが、より長いチェーンのみ信頼することで、分岐した枝は無視される。マイナーは常にネットワークを監視して、最長のチェーンの末端ブロックを確認しなければならない)

有効なブロックを計算してネットワークに提供したユーザには、送金手数料(1回あたり1セントくらい)と、ブロックの計算困難性から自動的に算出されるbitcoinが与えられる。マイナーは計算を行うことで、bitcoinの維持に貢献しつつ利益を得られる。

ある送金を受け取った時、二重送金が行われていないか調べるには、P2Pネットワークから有効なハッシュを持つトランザクション情報を取得し、該当する送金からさかのぼって送金元アドレスの残金がマイナスになっていないか調べる。
たとえば、トランザクション情報をいくら遡っても送金元への入金が見つからなければ、その送金は架空の資金からの送金として無視される。対応する入金が見つかり、送金元アドレスの収支バランスが0以上になれば、検証済みとなり、送金が正しく行われたとみなして良い。
通常のクライアントソフトは自分への送金元だけを検索してチェックすればいいので、計算負荷はとても小さい。


上記のシステムからわかるように、bitcoinでは、送金の発生はほぼ瞬時に通知されるが、検証は何時まで経っても終わらないという事がありうる。それを避けるために、送金手数料が必要となっている。得られる手数料が高いほうがマイナーは優先して計算対象に含めてくれるため、


なお、パケットロストなりで送金情報が消えてしまった場合(いつまでもトランザクション情報ブロックに掲載されない場合)、適切なタイムアウトの後に送金をリトライすることになる。
#この送金をリトライするタイムアウト時間がwikiを見ても見当たらなかったのだが、どこに書いてある?

posted by ko-zu at 00:27| Comment(0) | TrackBack(0) | Bitcoin | このブログの読者になる | 更新情報をチェックする

2012年09月10日

Bitcoinの追跡可能性となぜ資金洗浄に利用できるかの解説

Bitcoinの取引所がクラックされ、bitcoinが不正に送金され盗難した。
盗難したbitcoinは回収されうるだろうか?結論としては、無理だと思う。bitcoinは追跡可能だが、資金洗浄は排除できない。

なぜbitcoinは不正な送金や資金洗浄に利用されうるのか。bitcoinwikiなどには詳細に書かれていないようなので解説してみる。

Bitcoinのシステムとしては

・ユーザーがWalletIDという秘密鍵を持つ
・秘密鍵から使い捨ての公開アドレスを生成する(公開アドレスに対応するWalletIDはわからない)
・だれでも公開アドレスに送金できる
・だれでも公開アドレスの収支バランス(残金)が確認できる
・だれでも公開アドレス間の送金が確認できる
・秘密鍵を持つ人だけが公開アドレスから送金できる

という基本原理で成り立っている。この原理を維持するために、ハッシュのツリーまたはチェーンを分散生成するシステムが構築されている。ここの原理はまた別に書きたい。(書いた。 Bitcoinの一貫性維持の原理について http://causeless.seesaa.net/article/292069372.html)

このシステムは、だれでも匿名の財布を持つことを許す(匿名性)を実現する一方で、追跡不可能性を保証しない。
すべての送金を監視すれば、例えば不正にBitcoin資金を得た公開アドレスから、Bitcoinの流れを追跡することが出来る。
そういう意味で、資金洗浄としてBitcoinの追跡不可能性は不十分。しかし、実際に資金洗浄というか違法薬物などの不正送金に使われているらしい。

Bitcoinが資金洗浄として有用な理由は、誰が汚れたBitcoinを判断するのか不明確であることが重要になる。
これは中央集権的な権威をもたないBitcoinの特性上の利点であり欠点である。

Bitcoinのシステムの外で、たとえば秘密鍵をハッキングで盗みだすような形で"不正に"取得されたbitcoinと、普通のbitcoinをbitcoinシステムは区別することができない。誰かが、ある公開アドレスに送金されたbitcoinは不正取得されたものだと主張しても、その公開アドレスとの取引を制限したり、bitcoinを没収する権限は誰も持たないからだ。

slashdotには以下のように書いた
今回流出したBitcoinを追跡し、汚れたBitcoinを現金化した人が犯人、現金等で購入した人が資金提供者、と推定することは可能です。操作の糸口にはなるでしょう。ですが、汚れたBitcoinを排除するのは難しいと思います。

Bitcoinは追跡不可能性は提供しません。Bitcoinでは使い捨ての公開アドレス毎に収支バランスが広報される仕組みになっています。もちろんアドレスから支払いができるのはそのアドレスを生成したプライベートキーを持っている人だけですが、資金移動を追跡することは可能です。Bitfloorの使用しうるアドレスはBitfloorが知っている(侵入で削除されてなければ)ので、どのBitcoinアドレスに送られたかわかります。トラフィックを継続的に監視して、汚れたBitcoinを持っているアドレスのリストを作り公表できるなら、良識ある利用者はそのアドレスとの取引を拒否するかもしれません。

しかし、Bitcoinには権威ある中央が無いので、汚れたBitcoinを市場取引から除外するような機能がありません。例えばアメリカの銀行に入っている汚れた資金ならアメリカ政府がその資金を没収できますが、そういったシステムが作れません。したがって、この事件を知らない多数の人間が汚れたBitcoinを受け取り、使用したからといって、それを汚れているからと拒否させることはできません。(自分のポリシーとして取引しない、ということは可能)

主要な取引所で協定を結ぶなどして、汚れたBitcoinを受け取らない仕組みを作ることは可能かもしれません。ですが、その協定外での取引を規制する方法はありません。汚れても気にしない人が集うBitcoin界のブラックマーケットが出来るだけです。また、推定されているBitcoin利用の違法取引の市場規模を見ると、大手取引所経由で買われるBitcoinの少なくない部分が違法購入に使われ、売られるBitcoinのいくらかは違法販売収入と考えられるので、全ての取引所が排除に合意できるかは疑問です。今回盗まれたBitcoinも結局取引所経由で現金化されるのでは?

今直ぐ主要な取引所が、悪用された公開アドレスとの取引に注意するよう声明なり警告なりを出せば、不正な資金洗浄を遅らせることが出来るかもしれない。しかし、bitcoinのユーザの全てが取引所の方針に従わない限り、資金洗浄コストが増えるだけで汚れたbitcoinを排除することはできない。

今後、bitcoin取引所の中には、取引所が認定した不正Bitcoinと悪用されたアドレスをブラックリスト化して、該当するbitcoinを受けいれない、あるいは警察に通報するような、トランザクション監視とブラックリスト作成を実装した、"取引所にとって安全な”取引所が出来るかもしれない。けれど、自分が持っているbitcoinがブラックリストに乗っているか判断するのは、全てのトランザクションをチェックしていない一般利用者には不可能であり、一般利用者にとってはかえってリスクの高い取引所で取引したい人は限られるだろう。結局、取引所はそんな監視をしないほうが良い。

単純に取引所の存在する国の法律との兼ね合いになり、過剰に仮想通貨取引を規制すれば海外に取引所が移転するだけだろう。
posted by ko-zu at 22:47| Comment(0) | TrackBack(0) | Bitcoin | このブログの読者になる | 更新情報をチェックする

2012年08月16日

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
posted by ko-zu at 10:46| Comment(0) | TrackBack(0) | Bitcoin | このブログの読者になる | 更新情報をチェックする

Bitcoinでの違法な薬物取引が拡大

日記 by ko-zu 2012年08月09日 12時31分
本家/.より、
SilkRoad ( http://en.wikipedia.org/wiki/Silk_Road_(marketplace) )という闇マーケットにおいて、Bitcoinによる違法薬物の取引が毎月190万ドルにも上るそうだ。

この匿名で利用できる新しい電子マネーは、それが成功した場合、資金洗浄など不法行為のために使われるということは当然予想されていた。そしてFBIの調査によれば2012年5月時点で、Bitcoin全体で3500万ドル以上の経済規模と見積もられていて、政府に危険視されつつあるようだ。(Wired.jpの記事 http://wired.jp/2012/05/12/fbi-fears-bitcoin/

もっとも個人的には、ファイル共有ネットワークへの情報流出と同様、不正資金や違法薬物自体が出回らないよう対策する方が筋が良いと思うのだが。
ラベル:Bitcoin
posted by ko-zu at 10:37| Comment(0) | TrackBack(0) | Bitcoin | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。