ビットコイン・インスティテュート

Re: Bitcoin

マルッティ・マルミのメール(2009年5月3日05:08 UTC)

分かりました。ウェブサイトとFAQは私が担当できます。思いつく質問からFAQを書き始めます。

それは助かる! あなた (dmp1ce) をSourceForgeプロジェクトの開発者として追加し、ウェブスペースなどを編集する権限を与えた。

マルッティ・マルミ

プログラムへの機能提案があります:パスワードで保護された秘密鍵を作成し、任意の場所に保存できるUIツールです。鍵のバックアップは、コインの管理権を失わないため、また複数のコンピューターでコインを使えるようにするために必要です。パスワード保護は、鍵ファイルを偶然見つけた人が金銭を使うことを難しくするために必要です。

その通り。物事が動き始めれば、これは絶対に必須の機能になる。強力な暗号化で自分の資産を施錠でき、物理的な金庫よりも安全にバックアップできるようになる。これまでは他の機能を優先して後回しにしてきた。ビットコインに価値が付くまではまだ重要でないからだ。

次にエスクロー機能の開発に取り組む予定だ。これは物理的な物の取引をより安全にし、法定通貨での裏付けが始まる前に必要だ。

マルッティ・マルミ

私のPCの電源が入っているとき、ビットコインノードは常に稼働させています。つまりほぼ24時間365日稼働です。ビットコインはいいプロジェクトで、参加できて本当に楽しいです!

ありがとう! 今ネットワーク上にはincoming接続を受けられない人が多くいるので、受けられるノードは大いに助かる。ノードが増えれば、「(not accepted)」の問題を抑える助けになる。v0.1.6でその発生確率を下げるまでの暫定対策だ。

FAQの項目の一つとして、incoming接続を受けるためにポート8333をフォワードするファイアウォール設定の方法を入れるとよいと思う。質問は「接続が0件のときどうすればよいか」のようなものでよく、答えは設定をしないと接続できるノードが限られる可能性がある、となるだろう。

以下に、フォーラムやメールで答えてきた質問の集成を載せる。頻出質問が何で、私がどう答えてきたかの参考になるはずだ。全部や大半を使うつもりはなく、取捨選択してくれ。これまで答えた内容のダンプにすぎない。

簡単に答えられない論点は、そもそも持ち出さない方がよい。一般ユーザーはシステムが述べた通り動く (実際に動く) と仮定して満足するもので、設計の細部に入ると、システムを深く理解しなければ答えられない厄介な議論を開いてしまう。これまで受けた高度な質問は人ごとに違っていて、個別に答えるのが最善だった。

**** 質問と回答のダンプ ****

FAQに使う質問はおそらく言い回しを変えるべきだ。

質問は次のとおり。

ニコラス・ボームのメール(2009年2月12日17:52 UTC)

画面の下にはこう表示されています。

Generating 4 connections 4024 blocks 164 transactions

Generatingは分かります。ほかの4つのノードにつながっているのだろうと思います。164のトランザクション(生成に失敗したものを含みます)を記録したことも分かっています。分からないのは、blocksの数が何を表しているかです。私のトランザクションすべての横に出ているブロックを合計した数より、ずっと小さいのです。

ブロックチェーンにあるブロックの総数だ。ここでいうブロックチェーンはネットワークのブロックチェーンのことで、全員がその写しを持っている。ビットコインのどのノードも同じ数を表示し、誰かがブロックを生成するたびに、だいたい10分ごとに増える。しばらく動かしていなかった場合は、つながると、留守の間に生成された分をダウンロードして追いつくので、数が一気に増える。これをどう言い表せばよいのか(状態の表示欄に収まるように1語、多くても2語で)、よく分からない。何か案はある?

トランザクションの横の状態の欄にあるブロックの数は、そのトランザクションのあとに来たブロックの数だ。君のトランザクションは、実質的にそれだけのブロックの「中」にある。

Satoshi

マイク・ハーン

私の推測では、グローバルチェーンの長さであり、最初の急速な進行は、ソフトウェアがチェーン内の先行ブロックをダウンロードし、有効であることを検証しているためだろう。

その通り。もっと明確な表現を考えているところで、「%d network blocks」や「%d block chain」のようなものを検討している。

ニコラス・ボームのメール(2009年4月3日11:39 UTC)

珍しく(block not-accepted)の失敗が続いていて、何か意味があるといけないので、お知らせしておこうと思いました。

受け入れられなかったのは、どのくらいの割合だった? こちらでは何も変わったことはなかった。たとえば4つを超えて続いたのなら、それは普通ではなく、おそらくネットワークとの通信が途切れたのだろう。ばらばらに起きていて25%未満なら、ただの運の悪さだ。ランダムに何%か受け入れられないのは普通のことで、害はない。それに、ランダムなものはときに固まって起き、何かの型のように見えることもある。

受け入れられなかったブロックを表示するか隠すかを選べるようにする、という考えはいい。生成したブロックをすべて表示するか隠すかを選べるようにして、受け取ったトランザクションを見やすくするのもいい。受け入れられなかったブロックが見えても、苛立たしいだけだ。受け入れられない割合は誰でも同じで、それは仕組みの一部にすぎない。初めからなかったものを与えては取り上げるように見せないよう、受け入れられなかったブロックは既定で隠し、新しく生成したブロックも、少なくとも1回の承認を得るまでは表示しないのが一番だろう。生成したブロックがあると知るのが、いつもより15分遅れるだけのことで、どのみち、成熟までにはまだ119ブロックある。v0.1.6でやることの一覧に入れてある。

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

ダスティン・トランメル

もう1つ質問があったんだけど…… CPU性能が最も高い1つのノードがビットコインの大半を生成して保有してしまうのを、何が妨げているんだろう? 各ノードが他のノードから独立して動作しているのなら、あるノードが他よりも大幅に高性能だった場合、そのノードが他のノードより先に正しい解にたどり着く確率が高くなるんじゃないか? 性能の低いノードもときどき幸運に恵まれるかもしれないが、馬力差が大きい場合は大半のビットコインは最も高性能なノードが生成することになると思うんだ。

これは「車が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を求めたい場合は、体験版にビットコイン料金を設定することもできる。

(これも、なぜ含めているのか自分でも分からない。スパムに関する主張には近づかないのが一番だ。スパム対策の提案には、人々が反射的に猛反発する)

ジョナサン・ソーンバーグ

スパマーのボットネットは、送信課金型メールのフィルターを簡単に突破できるだろう(いつものように、コストはボットネットの飼い主やスパマー以外の人々に降りかかる)。

それなら、送信課金型のメールアドレスを設置してスパムのお金を全部集めれば、結構な利益を稼げることになる。十分な規模のボットネットを持たないスパマーに売り戻して、通貨の価値の立ち上げを助けることもできる。気づく人が増えるにつれ、収穫のための偽アドレスがどんどん設置されていく。『スパマーを食い物にして金持ちになった方法、あなたにもできる』という本が出る頃には、偽アドレスが多すぎて、スパマーは諦めるしかなくなる。

ハル・フィニーの投稿(2009年1月24日16:48 UTC)
  • スパマーのボットネットは送信ごとの支払いメールフィルターを簡単に突破できる もしPOWトークンが本当に役に立つようになり、とりわけ貨幣になったら、マシンが遊んだままになることはなくなる。ユーザーは自分のコンピューターが稼いでくれることを期待するようになる(報酬が運用コストを上回ると仮定して)。ボットネットに稼ぎを盗まれているコンピューターは、今よりも持ち主に気づかれやすくなる。だから、そういう世界では、ユーザーはもっと熱心にコンピューターを手入れし、ボットネットの感染を取り除くようになると予想できるだろう。

POWトークンに価値があるとすればスパムを抑制するもう1つの要因がある: スパムからPOWトークンを刈り取るために、人々が大量の偽メールアカウントを立てる動機が生まれる。要するに、POWを集めるだけでメッセージは読まない自動のメールボックスで、スパマーにスパムをし返すことになる。偽メールボックスと実在の人間の比率が高くなりすぎて、スパムが採算に乗らなくなる可能性がある。

このプロセスは、そもそもPOWトークンの価値を確立する可能性も持っている。ボットネットを持たないスパマーは収集者からトークンを買えるからだ。買い戻しが起きれば一時的にはスパムが増えることになるが、それは収集者がスパマーを食い物にする自滅的な循環を加速するだけだ。

興味深いことに、e-gold系のシステムのうち1つには、すでに「ダスティング」と呼ばれるスパムの一形態が存在する。スパマーは取引のコメント欄にスパムメッセージを入れるために、ごく少量の金(ゴールド)の塵を送り付けるのだ。もしユーザーが受け取りに応じる最低金額を設定できるようにする、あるいは少なくともメッセージを伴う場合の最低金額を設定できるようにすれば、ユーザーは「スパムを受け取るためにいくらもらうか」を自分で決められるようになる。

ジョン・ギルモアの投稿(2009年1月25日22:40 UTC)

一番要らないのは、電子メールやスパムを通すための少しばかりのビットバックスを作るために、使える計算資源をすべて燃やし、電気を食い、二酸化炭素を出すように設計された仕組みを、インターネット中に配ることだ。

銀行の口座にある本物のお金を、ビットバックスに替えるだけではだめなのか? 安く、炭素税もなしに。頼むよ。

経済的自由と環境保全のどちらかを選ばなければならなくなるとしたら、皮肉なことだ。

残念ながら、信頼できる第三者なしに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

原典の外部ソース

https://mmalmi.github.io/satoshi/
2024年2月、COPA対ライト裁判の証言の一環としてGitHubで公開。原ヘッダーSent: Sun, 03 May 2009 23:32:26 +0100 (= 22:32:26 UTC)。

他の外部ソース