了解しました。ウェブサイトと FAQ は私が担当できます。思いつく質問から FAQ を書き始めます。
それは素晴らしい。あなた (dmp1ce) を SourceForge プロジェクトの開発者として追加し、ウェブスペースなどを編集する権限を与えた。
マルッティ・マルミプログラムへの機能提案があります:パスワードで保護された秘密鍵を作成し、任意の場所に保存できる UI ツールです。鍵のバックアップは、コインの管理権を失わないため、また複数のコンピューターでコインを使えるようにするために必要です。パスワード保護は、鍵ファイルを偶然見つけた人が金銭を使うことを難しくするために必要です。
その通り。物事が動き始めれば、これは絶対に必須の機能になる。強力な暗号化で自分の資産を施錠でき、物理的な金庫よりも安全にバックアップできるようになる。これまでは他の機能を優先して後回しにしてきた。ビットコインに価値が付くまではまだ重要でないからだ。
次にエスクロー機能の開発に取り組む予定だ。これは物理的な物の取引をより安全にし、法定通貨での裏付けが始まる前に必要だ。
マルッティ・マルミ私の PC の電源が入っているとき、ビットコインノードは常に稼働させています。つまりほぼ 24 時間 365 日稼働です。ビットコインは素晴らしいプロジェクトで、参加できて本当に光栄です!
ありがとう!今ネットワーク上には incoming 接続を受けられない人が多くいるので、受けられるノードは大いに助かる。ノードが増えれば、「(not accepted)」の問題を抑える助けになる。 v0.1.6 でその発生確率を下げるまでの暫定対策だ。
FAQ の項目の一つとして、 incoming 接続を受けるためにポート 8333 をフォワードするファイアウォール設定の方法を入れるとよいと思う。質問は「接続が 0 件のときどうすればよいか」のようなものでよく、答えは設定をしないと接続できるノードが限られる可能性がある、となるだろう。
以下に、フォーラムやメールで答えてきた質問の集成を載せる。頻出質問が何で、私がどう答えてきたかの参考になるはずだ。全部や大半を使うつもりはなく、取捨選択してくれ。これまで答えた内容のダンプにすぎない。
簡単に答えられない論点は、そもそも持ち出さない方がよい。一般ユーザーはシステムが述べた通り動く (実際に動く) と仮定して満足するもので、設計の細部に入ると、システムを深く理解しなければ答えられない厄介な議論を開いてしまう。これまで受けた高度な質問は人ごとに違っていて、個別に答えるのが最善だった。
**** 質問と回答のダンプ ****
FAQ に使う質問はおそらく言い回しを変えるべきだ。
質問:
UI の下部に次のように表示される:
Generating 4 connections 4024 blocks 164 transactions
generatingは理解できる。 4 つの他のノードに接続していると思う。 164 のトランザクション (失敗した生成試行を含む) を記録していることも分かる。blocksの数字が何を表しているのか分からない。各トランザクションに対して表示されるブロック数の合計よりずっと小さい。
これはブロックチェーンのブロック総数、すなわちネットワークのブロックチェーンの数で、全員が同じものを持っている。すべてのビットコインノードが同じ数字を表示し、誰かがブロックを生成するたびに約 10 分ごとに増えていく。しばらく動かしていなかった場合、接続後に不在中に生成された分をダウンロードして急速に追いつく。 (ステータスバーに 1 語、最大でも 2 語で収まるように) どう説明するのがよいか、アイデアはあるか?
トランザクションの隣のステータス列にある blocks 数字は、そのトランザクションの後に来たブロックの数だ。トランザクションはそれだけのブロック内に本質的に「入っている」ことになる。
Satoshi
サトシ・ナカモト私の推測では ―― グローバルチェーンの長さであり、最初の急速な進行は、ソフトウェアがチェーン内の先行ブロックをダウンロードし、有効であることを検証しているためだろう。
その通り。もっと明確な表現を考えているところで、「%d network blocks」や「%d block chain」のようなものを検討している。
(block not-accepted) の失敗が普段より多く出ているようなので、何か意味があるかもしれないと思い知らせておく。
not-accepted のレートはどれくらいだった?こちらでは異常は見えなかった。仮に 4 件以上連続したら異常で、おそらくネットワーク通信の喪失だ。散発的に 25% 未満なら、単なる不運だ。不採用がランダムにある程度発生するのは正常で無害だ。もちろんランダムな分布は偏ってパターンに見えることもある。
unaccepted ブロックの表示/非表示オプションは良いアイデアだ。生成ブロック全体の表示/非表示も同様で、着信トランザクションがより見やすくなる。 unaccepted ブロックの表示は、ただ煩わしく不満を感じるだけだ。不採用率は誰もが同じで、プロセスの一部にすぎない。デフォルトでは unaccepted ブロックを隠す方がよいだろう。そもそも存在しなかったものを与えて取り上げる演出を避けられるし、新規生成ブロックも少なくとも 1 confirmation が付くまでは表示しない方がよい。通常より 15 分遅れて生成ブロックを知るだけのことで、どのみち成熟まであと 119 ブロック残っている。これは v0.1.6 の TODO だ。
Satoshi
(注:0.1.6 でこの問題をある程度軽減する改善を入れる。また、ネットワークが大きくなれば自然に改善する)
何らかの理由で、あなたからの送金が
From: unknownと表示される。私のアドレス帳にあなたを追加したのに。トランザクションリストに
Generated (not accepted)という行がある。コインの生成の試みが何かうまくいかなかったようだ。何が起きたのか分からない――おそらく私のノードがブロックの解決に成功したものの、ネットワークに送信される前にオフラインになったのだろうか?
ビットコインアドレス宛に送られたトランザクションは常に from: unknown と表示される。トランザクションは宛先しか伝えない。ビットコインアドレス送信にはいくつかの問題があるが、オンラインかどうかに関わらず誰にでも送れるフォールバックがあるのは大変ありがたい。後で改善するアイデアがいくつかある。今は、もし現実世界のように大半のトランザクションが商人とのものになれば、商人は必ず IP で受け取れるよう設定するだろう。 P2P ファイル共有ネットワークは、ユーザーの大部分にファイアウォールのポートフォワードを設定させることに概ね成功している。
間接送金にコメントを添える方法を切実に探したが、手段がなかった。ビットコインは EC-DSA を使っている。ブロックチェーンを今日の技術で実用的なほどコンパクトにするために必須だった。 EC-DSA の署名は RSA より一桁小さい。だが EC-DSA は RSA のようにメッセージを暗号化できず、署名検証にしか使えない。
Generated (not accepted) は通常、 2 つのノードがほぼ同時にブロックを見つけた場合に発生する。一方が採用されない。正常で避けられない。 v0.1.6 ではこれを隠す予定だ。ただ混乱と苛立ちを生むだけで、ユーザーに見せる理由がない。ネットワークが今のように小さい間は、 incoming 接続を受けられないと、ブロック告知を直接受け取れないため不利になる。
…今のところ
Generatedメッセージが 2 つ出ている。だがCreditフィールドは 0.00 で残高は変わっていない。コインが有効になるまでの age/maturity 要件のせいか?
そう、 credit フィールドは成熟するまで 0.00 のままで、成熟すると 50.00 になる。ちなみに、行をダブルクリックすれば詳細が見える。
…正しく理解していれば、すべてのトランザクションがハッシュ化される単一の (もしくは数本の) グローバルチェーンしか存在しない。「経済の物語」を記録するチェーンが 1 本しかないなら、これはどうスケールするのか?全球規模で展開すれば、 1 時間に数百万、数十億のトランザクションがチェーンにハッシュ化されることになる…
…インセンティブの節が分かりにくかった。特に、ノードを動かす理由が新規コインの鋳造からトランザクション手数料の徴収に移る引き金が何なのか分からない (BitCoin の要点はそもそもトランザクションコストをゼロにすることではないのか?)。おそらくシステムを取り仕切る人間がいると想定するが…
…v1 のインフレスケジュールはどう決めたのか? 2,100 万コインはどこから来たのか?これらのコインの額面は何か?価値の結合と分割の方法に言及があるが、仕組みが分からない。例えば、ビットコインは常に整数で表されるのか、それとも小数を持てるのか?…
…本当に革命的なアイデアに出会うことは滅多にない。新しい貨幣スキームでこれほど興奮したのは、リップルを見つけた時以来だ。リップルについて何か考えがあれば、ぜひ聞かせてほしい。
グローバルチェーンは 1 本だけだ。
既存の Visa クレジットカードネットワークは世界で日に約 1,500 万件のインターネット購入を処理している。ビットコインは既存ハードウェアでその何倍もスケール可能で、コストも一桁安い。実質的にスケール上限に達することがない。興味があれば、極端な規模にどう対処するか説明する。
ムーアの法則により、ハードウェア速度は 5 年で 10 倍、 10 年で 100 倍速くなると見込める。ビットコインが狂気じみた採用率で伸びても、コンピューターの速度はトランザクション数の伸びを先行し続けると思う。
近いうちに手数料が必要になるとは見ていない。だがノード運用が負担になりすぎる場合は、トランザクション手数料を含むトランザクションのみを処理するノードを動かすことも可能だ。ノードオーナーが受け入れる最低手数料を決める。今そのようなノードは何も得られない。誰も手数料を含めないからだ。だが十分な数のノードがそうすれば、手数料を含めるユーザーはより速く受理され、含めなければ遅くなる。市場が落ち着く手数料は最小限になるはずだ。ノードが高い手数料を要求すれば、そのノードは低い手数料のトランザクションを取り逃す。むしろ可能な限り多くの有料トランザクションを処理することで、出来高を増やしより多く稼げる可能性が高い。移行はシステムを取り仕切る人間に制御されるのではなく、個人が市場の力に反応するだけだ。
ビットコインの重要な側面は、ネットワークのセキュリティが、ネットワークの規模と保護すべき価値の量とともに成長することだ。短所は、開始時の小さい段階では脆弱だということだ。ただし盗まれうる価値は常に盗むのに必要な労力より小さいはずだ。誰かが別の動機で論点を証明したいなら、私が既に認めている論点を証明することになる。
コイン数と分配スケジュールの選択は教育的推測だった。難しい選択だった。ネットワークが動き出すと固定されてしまい、そのまま付き合うことになるからだ。既存通貨と似た価格になる数字を選びたかったが、未来を知らないでこれは非常に難しい。最終的に中間を選んだ。ビットコインが小さなニッチに留まれば、単位あたり既存通貨より安くなる。世界商取引の一部に使われると想像すれば、全世界で 2,100 万コインしかないので、単位あたりずっと高い価値になる。値は 64 ビット整数で小数点以下 8 桁、つまり 1 コインは内部的に 100000000 と表される。典型的な価格が小さくなっても粒度は十分にある。例えば 0.001 が 1 ユーロの価値になれば、小数点の表示位置を変える方が楽だろう。 1 ビットコインが 1000 と表示され、 0.001 が 1 と表示される、など。
リップルは信頼を扱う点で興味深い。中央サーバーに集中させる以外で信頼を扱う唯一の他システムだ。
Satoshi
0.1%が良いリスク率だと仮定すると、z=5 となり、したがってどのトランザクションもチェーンに固定されるまで 1時間弱待つ必要がある。ウェブコンテンツやバーチャルグッズなどのマイクロペイメントは、定義上低いオーバーヘッドが求められるものであり、1時間の待機はかなり大きなハードルのように思える。
実際のリスクについては、0.1%に、買い手が巨大なコンピューターネットワークを持つ攻撃者である確率を掛けてくれ。
マイクロペイメントについては、支払いを即座に安全に受け入れることができる。支払い額が小さすぎて、それを盗む労力に見合わない。マイクロペイメントはほぼ常に知的財産に対するものであり、マーチャントに物理的な損失はない。マイクロペイメントを盗もうとする人は、おそらくいずれにせよ有料の顧客ではないだろうし、知的財産を盗みたいのであればファイル共有ネットワークを使える。
現在、企業は一定の貸し倒れ率を受け入れている。1回あるいは 0回の確認ブロックでのリスクは、検証済みクレジットカード取引のチャージバック率よりもはるかに低いと考えている。
確認ブロックを待たないマーチャントに対する通常の詐欺は、マーチャントに支払いを送信し、マーチャントのコピーよりも先に二重支払いをネットワークに素早く伝播させようとすることだ。マーチャントができることは、自分のトランザクションをブロードキャストし、ネットワーク上で二重支払いのコピーを監視することだ。泥棒は監視期間中にブロードキャストできない。さもなければマーチャントのノードがコピーを受信してしまう。マーチャントはほとんどのネットワークノードが自分のバージョンを持ち、泥棒のバージョンが追いつけなくなるまで、1〜2分監視するだけで済む。わずか 1〜2分の遅延で、支払いなしで済む確率を詐欺に値しないほど低くすることができる。泥棒は通常、それに見合うだけの高い確率で商品を無料で手に入れる必要がある。論文で議論されたブルートフォース攻撃に大量の CPU パワーを使用しても、上記の詐欺に加えて、泥棒の成功確率はあまり上がらない。
ダウンロードに時間がかかるもの、ウェブサイトへのアクセス、ウェブホスティング、サブスクリプションやサービスなど、何かへのアクセスを許可するものは、トランザクションが拒否された場合、数分後にキャンセルできる。
各ブロックに必要な難易度は、ネットワークを通じてどのように伝達され、合意されるのだろうか?
伝達されない。計算式はプログラムにハードコードされており、すべてのノードが同じ計算を行って、次のブロックに必要な難易度を知る。誰かが計算式から逸脱した場合、そのブロックは多数派に受け入れられない。
コードはフリー/オープンソースなのか、それとも単なるオープンソースなのか?
フリーなオープンソースだ。MIT ライセンスで、求められるのは免責文をソースコードと一緒に保持することだけで、それ以外はほぼ何でも好きなようにできる。ソースはメインのダウンロードに含まれている。
Satoshi
新バージョンを知る方法はあるか?アプリは自動更新されるのか?何らかのメーリングリストがあると素晴らしい。
リストはこれだ:
bitcoin-list@lists.sourceforge.net
登録/解除ページ:
http://lists.sourceforge.net/mailman/listinfo/bitcoin-list
アーカイブ:
http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-list
新バージョンは必ずそこで告知する。自動更新、少なくとも新バージョンの通知は、間違いなく予定に入っている。
(このインフレ議論は、トランザクション手数料の仕組みと 2,100 万コインの固定計画が発表される前のもので、もはやあまり当てはまらないかもしれない)
無料で(あるいは人々がどのみち他の理由で持っているコンピューターの計算力のコストで)作れるのだから、それを収益化することは、単にお金を配ることを意味する。
あなたはまだ、難易度が非常に低くて、人々が欲しいだけビットコインを生成できるかのように考えている。
1 セントを生成するのにコンピューターを 1 か月 24 時間動かし続けなければならないと想像してみてくれ。1 年で 12 セント生成できることになる。それでは、人々が使うために欲しいだけビットコインを生成できる、ということにはならない。
ビットコインの価値は、その生産に消費された電力に相対的なものになるだろう。現代の CPU はすべてアイドル時に電力を節約する。計算タスクを 24 時間、アイドルにさせずに動かせば、消費電力は大幅に増え、発熱が増えるのに気づくはずだ。余分に消費されたワット数はそのまま電気代に乗り、生成したビットコインの価値はそれを下回る何かになるだろう。
新しいコインを生成することで稼げるのに、なぜ彼らがそうするのか
いや、その方法では稼げない。ビットコインを売って得る額より、電気代の方が高くつくだろう。
歴史的に、人々は希少な商品を貨幣として採用してきた。必要なら、貝殻や石など、手近にあるものを何でも採用してきた。それぞれに、この過程の立ち上げを助けた有用性の核があるが、貨幣としての価値は、最終的に機能的な価値だけよりはるかに大きくなる。価値の大半は、他者がそこに置く価値から来る。たとえば金は、美しく、腐食せず、加工しやすいが、その価値の大半が明らかにそこから来ているわけではない。真鍮も光沢があり、色も似ている。金の圧倒的大部分は、その美しさなど気にも留めない政府に所有され、金庫で使われないまま眠っている。
今までは、信頼できる第三者なしに通信チャネル上で取引できる希少な商品は存在しなかった。信頼できる第三者なしにインターネット上で取引できる形のお金を採用したいという欲求があるなら、今、それが可能になった。
Satoshi
より高性能なコンピューターハードウェアが出てくるにつれ、ユーザーあたりの自然な供給量はムーアの法則の周期ごとに倍増する。
実は、それは対処済みだ。移動平均が投入されている総労力を補正し、総生産量が一定になるようにしている。コンピューターが強力になるほど、難易度が上がって補正する。
自然にインフレする商品が貨幣として使われた経済史を、私は思い出せない
一つには金がある。金の供給量は年に約 2%〜3% 増える。法定通貨はどれも、平均すればそれ以上のインフレになるのが普通だ。
コンピューターが速くなり、プルーフ・オブ・ワーク問題をより速く解けるようになるにつれ、大規模なインフレが起きないか?
難易度は、投入されている総労力を補正して総生産量を一定に保つ移動平均によって制御されている。コンピューターが強力になるほど、難易度が上がって補正する。
誰かが二重支払いをしたら、トランザクション記録の目隠しが外され、不正者の身元が明かされるのか?
身元は使用されず、償還請求への依存もない。すべては予防だ。
…つまり、協力しないノードを特定して排除する努力はしないということか? これは問題を招き、DOS 攻撃の可能性につながると疑っている。
誰かを識別することに依存はしていない。あなたが言ったように、それは無駄であり、ソックパペットで簡単に破られる。
誰かが本物であることを確立するクレデンシャルは、CPU パワーを提供する能力だ。
しかし身元がない場合、既に二重支払いで得た商品(ウェブサイトへのアクセス、ダウンロードなど)を受け取っていれば、支払いが無効になっても彼らにとってデメリットはない。その魔法の「数ブロック」(何ブロックかどうやって知るのか?)が経過するまで支払い済みとして扱わなければ、商人は「無効な」コインを掴まされることになる。
消費者は、コインを使ってからそれが使えるようになるまで一時間も待たされるなら、使ってくれないだろう。商人の方も、客が二重支払いしたためにコインが無効と判明したとき、その客に逆請求する手段がなければ、こんなものは使わないだろう。
これはバージョン 2 の問題であり、ほとんどのアプリケーションでかなり満足のいく解決が可能だと考えている。
競争はトランザクションをネットワーク上で最初に広めることだ。6次の隔たりを考えれば——指数関数的に広がる。遅れてスタートした競合者が、最初のトランザクションがネットワーク全体を席巻する前に非常に多くのノードを獲得するチャンスはほとんどなく、わずか 2分程度しかかからない。その 2分間、商人のノードは二重支払いトランザクションを監視できる。二重支払い者は商人に知られずに代替トランザクションを世界にブラストすることはできないため、開始前に待つ必要がある。
本物のトランザクションが 90%に到達し、二重支払いトランザクションが 10%に到達した場合、二重支払い者は支払わずに済む確率がわずか 10%で、90%の確率でお金が使われてしまう。ほとんどの種類の商品に対して、詐欺師にとって割に合わない。
情報ベースの商品、例えばウェブサイトへのアクセスやダウンロードは転売不可能だ。ウェブサイトへのアクセスやダウンロードを盗んで生計を立てることはできない。それを盗むならファイル共有ネットワークに行けばいい。ほとんどの即時アクセス製品は盗む大きなインセンティブがない。
商人が実際に盗難の問題を抱えている場合、顧客に 2分待ってもらうか、メールで何かを待ってもらうことができ、多くの商人は既にそうしている。本当に最適化したい場合で、大きなダウンロードの場合、トランザクションが二重支払いとして戻ってきたらダウンロードの途中でキャンセルできる。ウェブサイトへのアクセスの場合、通常は顧客に 5分間アクセスさせて、拒否された場合はアクセスを遮断しても大した問題ではない。多くのそのようなサイトにはそもそも無料トライアルがある。
Satoshi
(規模についての質問への回答)
10 万のブロック生成ノードというのが、考える上での大規模のよい目安だ。トランザクションをネットワーク全体に 2 回伝播させても、今日の価格で合計 0.02 米ドル分の帯域しか消費しない。実際には、多くは安価なバックボーンの余剰割り当て帯域や使い放題プランを消化する形になるだろう。SPV クライアントは数百万あってもよい。彼らが影響するのは、生成するトランザクションの数においてだけだ。1、2 セントのトランザクション手数料を払えば、自分の分は自分で賄える。任意の額のトランザクション手数料を払えるようにコーディングしてある。インセンティブの補助がやがて先細りになれば、ノードに速やかに処理してもらうために、市場で決まるトランザクション手数料を自分のトランザクションに付ける必要が出てくるかもしれない。
本当に巨大なトランザクション負荷がどのようなものかを考えるために、既存のクレジットカードネットワークを見ている。オンライン購入のトランザクション数について、さらにいくつかの推計を見つけた。インターネット全体の e コマース負荷で、世界中で日に約 1,500 万トランザクションだ。1 トランザクション 1KB として、ブロック生成ノード 1 つあたり日に 15GB の帯域、つまり DVD 映画 2 本分ほどになる。今日の技術でも実行可能に思える。
忘れてはならないのは、ビットコインがドットコム並みの成長率で流行したとしても、全トランザクションの相当な割合になるには何年もかかるということだ。ハードウェアは最近すでに大規模を扱えるほど強力になったと考えているが、仮にそこに疑いがあるとしても、必要になる頃には帯域速度、価格、ディスク容量、計算力ははるかに向上しているだろう。
Satoshi
もう一つ質問があった…最も CPU パワーのある単一ノードが BitCoin の過半を生成・保持するのを防ぐものは何か?すべてのノードが他と独立に働いているなら、1 つが他より大幅に強力な場合、そのノードが他のノードより先に正しい結論に到達する可能性が高いのではないか?非力なノードも時々は幸運に恵まれるだろうが、馬力に大きな差があれば、BitCoin の大半は最強のノードが生成すると予想する。
これは「車が 2 倍速ければ必ず勝つ」というレースとは違う。1 マイクロ秒以下で済む SHA-256 計算で、それぞれの試行は独立に成功確率を持つ。あるコンピューターがハッシュ衝突を見つける確率は、その CPU 性能に比例する。性能が半分のコンピューターは半分のコインを得る、それだけだ。
(何をバックアップすべきかの質問)
ファイルは “%appdata%\Bitcoin” にある。それがバックアップすべきディレクトリだ。
%appdata% はユーザーごとのアクセス権限だ。Firefox のような新しいプログラムの多くが設定ファイルをそこに保存している。Windows のリリースごとに Microsoft がディレクトリ名を変え、スペースだらけで画面からはみ出るほど長いという逆風にもかかわらず、だ。
(何をバックアップすべきかの質問)
ディレクトリは “%appdata%\Bitcoin” だ スペースを含むので引用符が要る cd “%appdata%\bitcoin”
XP では通常こうなる: C:\Documents and Settings[username]\Application Data\Bitcoin
そのディレクトリ全体をバックアップしてくれ。すべてのデータファイルがそのディレクトリにある。一時ファイルはない。
(何をバックアップすべきかの質問)
バックアップすべき決定的に重要なファイルは wallet.dat だ。bitcoin の実行中なら、database サブディレクトリを含む %appdata%\bitcoin ディレクトリ全体をバックアップする必要があるが、実行中でなくても、常にディレクトリ全体をバックアップする方が確実に安心だ。
データベースは困ったことにファイルを “log.0000000001” のような名前にする。世間一般にとって「log」は消してよいものを意味するが、データベースの人間にとっては、消せば他のファイルの中身まで全部失うものを意味する。危険から遠ざけるため、database サブディレクトリに入れておいた。後で、ウォレットが変更されるたびにログをフラッシュするコードを書いて、wallet.dat がほぼ常に単独で安全になるようにする予定だ。
90 年代にはもっと多くの人が興味を持っていたと思う。だが、信頼された第三者ベースのシステム(Digicash など)が 10 年以上にわたって失敗続きだったあと、彼らはもう望みがないと見ている。今回は私の知る限り初めて非信頼ベースのシステムを試みている、というところに気付いてくれることを願う。
うむ、それこそがこちらの目を引いた最大の特徴だった。本当の難所は、人々に実際にビットコインを評価させ、通貨になるまで持っていくことになるだろう。
ハルが、長期的な勝算は低くとも投資対象として見られる可能性に言及していた。十年後に電子通貨を何らかの形で使っていなかったら驚くだろう。信頼できる第三者が怖気づいても骨抜きにされない方法が分かった今となっては。
一度立ち上がってしまえば、自動販売機に小銭を入れるくらい簡単にウェブサイトに数セントを払えるようになるなら、応用先はいくらでもある。
(この次の部分は、後に大きな論争になった。スパム対策、とりわけプルーフ・オブ・ワークによるものへの偏見は極端に強い)
有料メール送信にはすでに使える。送信ダイアログはサイズを変えられて、好きなだけ長いメッセージを入力できる。接続したときに直接送られる。受取人は取引をダブルクリックして全文を見る。読みきれないほどのメールが届く有名人で、それでもファンが連絡を取れる手段を残しておきたい場合、ビットコインを設置して自分のウェブサイトに IP アドレスを公開できる。「この IP の私の優先回線に X ビットコインを送ってくれれば、自分でメッセージに目を通す」というふうに。
無料体験を提供している有料サブスクリプションサイトが、本契約を食い合わないように追加の proof-of-work を求めたい場合は、体験版にビットコイン料金を設定することもできる。
(これも、なぜ含めているのか自分でも分からない。スパムに関する主張には近づかないのが一番だ。スパム対策の提案には、人々が反射的に猛反発する)
スパマーのボットネットは、送信課金型メールのフィルターを簡単に焼き払えるだろう(いつものように、コストはボットネットの飼い主やスパマー以外の人々に降りかかる)。
それなら、送信課金型のメールアドレスを設置してスパムのお金を全部集めれば、結構な利益を稼げることになる。十分な規模のボットネットを持たないスパマーに売り戻して、通貨の価値の立ち上げを助けることもできる。気づく人が増えるにつれ、収穫のための偽アドレスがどんどん設置されていく。『スパマーを食い物にして金持ちになった方法、あなたにもできる』という本が出る頃には、偽アドレスが多すぎて、スパマーは諦めるしかなくなる。
- スパマーのボットネットは送信課金型のメールフィルターをいとも簡単に消費し尽くしてしまうだろう POW トークンが有用になり、特に貨幣になれば、マシンはもはやアイドル状態にならないだろう。ユーザーは自分のコンピューターが収益を生むことを期待するようになる(報酬が運用コストを上回ると仮定して)。ボットネットによって収益を盗まれているコンピューターは、現在よりも所有者に気づかれやすくなるんじゃないかな。だから、その世界ではユーザーがコンピューターのメンテナンスに力を入れ、ボットネットの感染を除去するようになると予想できるんだ。
POW トークンに価値があるとすればスパムを抑制するもう 1 つの要因がある: スパムから POW トークンを刈り取るために、人々が大量の偽メールアカウントを立てる動機が生まれる。実質的に、POW を回収するだけでメッセージは読まない自動化されたメールボックスで、スパマーを「逆スパミング」することになる。偽メールボックスと実在の人間の比率が高くなりすぎて、スパムが採算に乗らなくなる可能性がある。
このプロセスは、そもそも POW トークンの価値を確立する可能性も持っている。ボットネットを持たないスパマーは収集者からトークンを買えるからだ。買い戻しが起きれば一時的にはスパムが増えることになるが、それは収集者がスパマーを食い物にする自滅的な循環を加速するだけだ。
興味深いことに、e-gold 系のシステムのうち 1 つには、すでに「ダスティング」と呼ばれるスパムの一形態が存在する。スパマーは取引のコメント欄にスパムメッセージを入れるために、ごく少量の金(ゴールド)の塵を送り付けるのだ。もしユーザーが受け取りに応じる最低金額を設定できるようにする、あるいは少なくともメッセージを伴う場合の最低金額を設定できるようにすれば、ユーザーは「スパムを受け取るためにいくらもらうか」を自分で決められるようになる。
私たちに最も要らないのは、メールやスパムを通すためのわずかな bitbux を生産するために、インターネット中で利用可能なサイクルをすべて燃やし、電力を消費し、二酸化炭素を発生させるよう設計されたシステムを配備することだ。
銀行口座にある本物のお金を、安く、炭素税なしで bitbux に変換するだけでは駄目なのか?頼むよ。
経済的自由と環境保全のどちらかを選ばなければならなくなるとしたら、皮肉なことだ。
残念ながら、信頼できる第三者なしに P2P 電子キャッシュを機能させる解決策として、私が見つけたのはプルーフ・オブ・ワークだけだ。仮に通貨の初期分配を割り当てる二次的な用途に使っていなかったとしても、PoW はネットワークの調整と二重支払いの防止の根幹だ。
仮に大きな電力を消費するまでに成長したとしても、置き換える相手である、労働と資源を大量に使う従来の銀行業務よりは無駄が少ないと思う。そのコストは、レンガとモルタルの建物、摩天楼、ダイレクトメールのクレジットカード勧誘のすべてを支えている数十億の銀行手数料より、一桁小さいだろう。
Satoshi
ところで、これについて話したか覚えていないが、先日、安全なタイムスタンプの話をしている人たちがいた。ある文書が過去のある時点に存在したことを証明できるようにしたい、というものだ。ビットコインのブロックの積み重ねは、これに最適に思える。
確かに、ビットコインはトランザクションのための分散型セキュアタイムスタンプサーバーだ。数行のコードで、タイムスタンプが必要なもののハッシュを追加したトランザクションを作成できる。そのような方法でファイルにタイムスタンプを付けるコマンドを追加すべきだろう。
p2presearch のスレッドから。信頼こそがあらゆる従来型金融システムの根本的な弱点だという私の長広舌から始まるものだ。
http://listcultures.org/pipermail/p2presearch_listcultures.org/2009-February/thread.html
私はビットコインと呼ばれる新しいオープンソースの P2P 電子キャッシュシステムを開発した。信頼ではなく暗号学的証明に基づいているため、中央サーバーや信頼できる第三者を必要とせず、完全に分散化されている。スクリーンショットや設計論文を見てみてほしい。
Bitcoin v0.1 のダウンロード: http://www.bitcoin.org
従来の通貨の根本的な問題は、それを機能させるために必要な、あらゆる信頼だ。中央銀行は通貨の価値を下げないと信頼されなければならない。しかし法定通貨の歴史は、その信頼への裏切りに満ちている。銀行は私たちのお金を保管し電子的に送金すると信頼されなければならないが、彼らはほんのわずかな準備金しか持たずに信用バブルの波の中でそれを貸し出している。私たちは彼らにプライバシーを委ね、身元詐称犯に口座を空にされないよう信頼しなければならない。彼らの膨大な間接費がマイクロペイメントを不可能にしている。
一世代前、マルチユーザーのタイムシェアリングコンピューターシステムにも似た問題があった。強力な暗号化が登場する前は、ユーザーはファイルを保護するためにパスワード保護に頼るしかなく、自分の情報を非公開にしてくれるとシステム管理者を信頼するしかなかった。プライバシーは、管理者がプライバシーの原則と他の懸念を天秤にかけた判断によって、あるいは上司の命令によって、いつでも覆される可能性があった。やがて強力な暗号化が大衆に利用可能になり、信頼は不要になった。データは、どんな理由であろうと、どんなに正当な言い訳があろうと、何であろうと、他者がアクセスすることが物理的に不可能な方法で保護できるようになった。
お金にも同じものが必要な時が来た。暗号学的証明に基づく電子通貨であれば、第三者の仲介者を信頼する必要がなく、お金は安全に、取引は手軽に行える。
このようなシステムの基本的な構成要素の一つがデジタル署名だ。デジタルコインには所有者の公開鍵が含まれている。送金するには、所有者がコインに次の所有者の公開鍵とともに署名する。誰でも署名を検証して所有権の連鎖を確認できる。所有権の保護にはうまく機能するが、一つの大きな問題が未解決のまま残る――二重支払いだ。どの所有者も、すでに使用したコインに再び署名して別の所有者に送ることで、再使用を試みることができる。通常の解決策は、信頼できる企業が中央データベースで二重支払いをチェックすることだが、それでは信頼モデルに逆戻りだ。中央に位置する企業はユーザーを支配でき、企業を維持するために必要な手数料がマイクロペイメントを非現実的にする。
ビットコインの解決策は、二重支払いを検出するためにピアツーピアネットワークを使用することだ。簡単に言えば、ネットワークは分散型タイムスタンプサーバーのように機能し、コインを使用する最初のトランザクションにスタンプを押す。情報は拡散しやすいが抑え込みにくいという性質を利用している。仕組みの詳細については、http://www.bitcoin.org/bitcoin.pdf の設計論文を参照してほしい。
結果として、単一障害点のない分散システムが実現する。ユーザーは自分のお金の暗号鍵を自分で保持し、P2P ネットワークの助けを借りて二重支払いをチェックしながら、互いに直接取引する。
Satoshi Nakamoto
http://www.bitcoin.org
Martien van Steenbergen Martien at AardRock.COM Thu Feb 12 08:40:53 CET 2009
非常に興味深い。これはデイビッド・チャウムの匿名デジタルマネーに似たものなのか? 彼の構想では、お金は二重に使われない限り匿名で、同じお金が二度使われた時点で匿名性は失われ、その場で「偽造者」が公衆の面前に晒される。
それと、ビットコインには ( 管理されるべき ) 限られた通貨供給量があるのか? それとも、お金は取引のたびに新しく作られるのか?
成功と楽しみを。
Martien.
非常に興味深い。これはデイビッド・チャウムの匿名デジタルマネーに似たものなのか? 彼の構想では、お金は二重に使われない限り匿名で、同じお金が二度使われた時点で匿名性は失われ、その場で「偽造者」が公衆の面前に晒される。
デジタル署名をコインに使用するという点では似ているが、プライバシーと二重支払い防止のアプローチが異なる。ビットコインの支払いの受取人は、それが最初の支出かどうかを確認でき、二重支払いは受け入れられない。二重支払い者が事後に捕まえられて恥をかかせるオフラインモードはない。それには参加者がアイデンティティを持つ必要があるからだ。
プライバシーを保護するため、鍵ペアは一度だけ使用され、取引ごとに新しいものが使われる。コインの所有者は、その秘密鍵を持っている人だ。
もちろん、最大の違いは中央サーバーがないことだ。それがチャウム式システムのアキレス腱だった。中央の会社が閉鎖されると、通貨も終わった。
それと、ビットコインには ( 管理されるべき ) 限られた通貨供給量があるのか? それとも、お金は取引のたびに新しく作られるのか?
通貨供給量には上限がある。流通量は 21,000,000 コインだ。取引は所有権を移転するだけだ。
ご質問ありがとう。
Satoshi
これを思い出した:
* AardRock » Wizard Rabbit Treasurer <http://wiki.aardrock.com/Wizard_Rabbit_Treasurer> および * AardRock » Pekunio <http://wiki.aardrock.com/Pekunio>
確かに、ネットワーク上の多数のピアにすべての取引の冗長コピーを散布するというコンセプトは Pekunio に非常に似ているが、実装は Wizard Rabbit Treasurer のようなレピュテーションネットワークではない。実際、ビットコインはレピュテーションをまったく使用しない。ネットワークを単なる大きな群衆と見なし、誰と話すか、誰が何かを教えてくれるかをあまり気にしない。ネットワーク上でブロードキャストされている情報を少なくとも一人が中継してくれる限り問題ない。嘘をつく方法がないので気にしないのだ。暗号学的証明を伝えるか、無視されるかのどちらかだ。
リップルを知っているか?
信頼システムとしては、リップルは信頼を集中させるのではなく分散させるという点でユニークだ。
(「リップルを知っているか?」は、これまでに少なくとも他に 4 回聞かれた)
きみのプロジェクトはどの程度動いているのか? 実生活で使えるようになるのはどれくらい先になると思うか?
完全に稼働しており、ネットワークは成長している。ソフトウェアを試して、あなたのビットコインアドレスをメールで送ってくれれば、コインを送る。
あとは情報を広めて、より多くの人に興味を持ってもらう必要がある。
Cryptography メーリングリストでの論文の最初の紹介へのリンクはこれだ。(インフレの論点は、トランザクション手数料と流通量固定の計画をサポートするために後で入れた変更で上書きされている。このリンクは動く的で、このアーカイブページは単に一定日数分をさかのぼるだけなので、議論は次のページへ流れ続けていく。)
http://www.mail-archive.com/cryptography@metzdowd.com/mail3.html
ソフトウェアがリリースされたときのちょっとした続報。
http://www.mail-archive.com/cryptography@metzdowd.com/mail2.html
ビットコインがビザンチン将軍問題をどう解くかについての私の説明:
http://www.bitcoin.org/byzantine.html
