[p2p-research] ビットコイン:P2P通貨のオープンソース実装

私はBitcoinと呼ばれる新しいオープンソースのP2P電子キャッシュシステムを開発した。信頼ではなく暗号学的証明に基づいているため、中央サーバーや信頼できる第三者を必要とせず、完全に分散化されている。スクリーンショットや設計論文を見てみてほしい。

Bitcoin v0.1のダウンロード: http://www.bitcoin.org

従来の通貨の根本的な問題は、それを機能させるために必要な、あらゆる信頼だ。中央銀行は通貨の価値を下げないと信頼されなければならない。しかし法定通貨の歴史は、その信頼への裏切りに満ちている。銀行は私たちのお金を保管し電子的に送金すると信頼されなければならないが、彼らはほんのわずかな準備金しか持たずに信用バブルの波の中でそれを貸し出している。私たちは彼らにプライバシーを委ね、身元詐称犯に口座を空にされないよう信頼しなければならない。彼らの膨大な間接費がマイクロペイメントを不可能にしている。

一世代前、マルチユーザーのタイムシェアリングコンピュータシステムにも似た問題があった。強力な暗号化が登場する前は、ユーザーはファイルを保護するためにパスワード保護に頼るしかなく、自分の情報を非公開にしてくれるとシステム管理者を信頼するしかなかった。プライバシーは、管理者がプライバシーの原則と他の懸念を天秤にかけた判断によって、あるいは上司の命令によって、いつでも覆される可能性があった。やがて強力な暗号化が大衆に利用可能になり、信頼は不要になった。データは、どんな理由であろうと、どんなに正当な言い訳があろうと、何であろうと、他者がアクセスすることが物理的に不可能な方法で保護できるようになった。

お金にも同じものが必要な時が来た。暗号学的証明に基づく電子通貨であれば、第三者の仲介者を信頼する必要がなく、お金は安全に、取引は手軽に行える。

このようなシステムの基本的な構成要素の一つがデジタル署名だ。デジタルコインには所有者の公開鍵が含まれている。送金するには、所有者がコインに次の所有者の公開鍵とともに署名する。誰でも署名を検証して所有権の連鎖を確認できる。所有権の保護にはうまく機能するが、一つの大きな問題が未解決のまま残る――二重支払いだ。どの所有者も、すでに使用したコインに再び署名して別の所有者に送ることで、再使用を試みることができる。通常の解決策は、信頼できる企業が中央データベースで二重支払いをチェックすることだが、それでは信頼モデルに逆戻りだ。中央に位置する企業はユーザーを支配でき、企業を維持するために必要な手数料がマイクロペイメントを非現実的にする。

Bitcoinの解決策は、二重支払いを検出するためにピアツーピアネットワークを使用することだ。簡単に言えば、ネットワークは分散型タイムスタンプサーバーのように機能し、コインを使用する最初のトランザクションにスタンプを押す。情報は拡散しやすいが抑え込みにくいという性質を利用している。仕組みの詳細については、http://www.bitcoin.org/bitcoin.pdf の設計論文を参照してほしい。

結果として、単一障害点のない分散システムが実現する。ユーザーは自分のお金の暗号鍵を自分で保持し、P2Pネットワークの助けを借りて二重支払いをチェックしながら、互いに直接取引する。

Satoshi Nakamoto http://www.bitcoin.org

Martien van Steenbergen wrote:

非常に興味深い。これはデイビッド・チャウムの匿名デジタルマネーに似ているか? 彼のコンセプトでは、マネーが不正使用されない限り匿名性が保たれ、つまり 同じマネーが複数回使われた場合、「偽造者」は直ちに公に晒される。

デジタル署名をコインに使用するという点では似ているが、プライバシーと二重支払い防止のアプローチが異なる。ビットコインの支払いの受取人は、それが最初の支出かどうかを確認でき、二重支払いは受け入れられない。二重支払い者が事後に捕まえられて恥をかかせるオフラインモードはない。それには参加者がアイデンティティを持つ必要があるからだ。

プライバシーを保護するため、鍵ペアは一度だけ使用され、取引ごとに新しいものが使われる。コインの所有者は、その秘密鍵を持っている人だ。

もちろん、最大の違いは中央サーバーがないことだ。それがチャウム式システムのアキレス腱だった。中央の会社が閉鎖されると、通貨も終わった。

また、ビットコインには限られた通貨供給量があるのか(管理が必要な)?それとも取引の瞬間に通貨が作られるのか?

通貨供給量には上限がある。流通量は21,000,000コインだ。取引は所有権を移転するだけだ。

ご質問ありがとう。

Satoshi

http://www.bitcoin.org/

Martien van Steenbergen wrote:

通貨の供給と管理が不要なサポートも見てみたい。維持がより簡単で安価になり、 いつでもどこでも十分な通貨量が得られる。希少性も過剰もなく、 常に適切な量が自己組織化される。

それは実現可能だ。あらゆるルールセットに従うようにプログラムできる。

私はビットコインを、Marcのアイデアやここで議論されているようなプログラム可能なP2Pソーシャル通貨を実装したい場合の基盤であり第一歩と見ている。まず通常の基本的なP2P通貨を動作させる必要がある。それが確立され実証されれば、動的なスマートマネーは簡単な次のステップだ。

仮想的な、地理に縛られないコミュニティが新しい経済パラダイムを実験するというアイデアが大好きだ。

これを思い出した: * AardRock >> Wizard Rabbit Treasurer および * AardRock >> Pekunio

確かに、ネットワーク上の多数のピアにすべての取引の冗長コピーを散布するというコンセプトはPekunioに非常に似ているが、実装はWizard Rabbit Treasurerのようなレピュテーションネットワークではない。実際、ビットコインはレピュテーションをまったく使用しない。ネットワークを単なる大きな群衆と見なし、誰と話すか、誰が何かを教えてくれるかをあまり気にしない。ネットワーク上でブロードキャストされている情報を少なくとも一人が中継してくれる限り問題ない。嘘をつく方法がないので気にしないのだ。暗号学的証明を伝えるか、無視されるかのどちらかだ。

Rippleを知っているか?

信頼システムとしては、Rippleは信頼を集中させるのではなく分散させるという点でユニークだ。

ビットコインはプロトコル仕様としても利用可能か(異なる言語バインディングと実装を容易にする;仕様で統一し、実装で競争する)。

C++のソースコードを参照するのが最善だろう。ソフトウェアを使って任意の言語から取引を送受信するためのインターフェースを実装する予定だ。これにより、サーバーサイドのコードがウェブベースのeコマースサイトで簡単に使用できるようになる。

Satoshi

Michel Bauwens wrote:

プロジェクトはどの程度稼働していますか?実生活で使えるようになるのは いつ頃だと思いますか?

完全に稼働しており、ネットワークは成長している。ソフトウェアを試してくれれば、あなたのビットコインアドレスにコインを送る。

あとは情報を広めて、より多くの人に興味を持ってもらう必要がある。

次のメッセージでリリースの紹介文を転送する。

Satoshi

http://www.bitcoin.org/