Quote from: satoshi on July 17, 2010, 10:29:13 PM
決済処理会社がサービスとして、10秒以内程度の十分な検証を行いつつ、トランザクションの迅速な配信を提供することが可能になると考えている。
ネットワークノードは、生成しようとしているブロックに取り込むために、受信したトランザクションの最初のバージョンのみを受け入れる。トランザクションをブロードキャストした時、他の誰かが同時に二重支払いをブロードキャストした場合、最も多くのノードに最初に伝播させる競争になる。一方がわずかに先行していれば、ネットワーク全体に幾何級数的に速く広がり、ほとんどのノードを獲得する。
大まかな概算の例: 1 0 4 1 16 4 64 16 80% 20%
したがって、二重支払いがたった1秒でも待たなければならない場合、非常に不利になる。
決済処理業者は多くのノードと接続を持っている。トランザクションを受信すると、それをブラストし、同時にネットワーク上の二重支払いを監視する。多数のリスニングノードのいずれかで二重支払いを受信した場合、そのトランザクションが不正であることを警告する。二重支払いのトランザクションは、リスナーの1つに検出されずに遠くまで伝播することはないだろう。二重支払い者はリスニングフェーズが終わるまで待たなければならないが、その頃には決済処理業者のブロードキャストがほとんどのノードに到達しているか、伝播において非常に先行しているため、二重支払い者は残りのノードの大部分を獲得する見込みがない。
これは良い出発点だが、まだ完璧ではない。この種のセキュリティは、ノードの大多数(結局のところIPの大多数)が正直であるという事実に依存している。しかし、攻撃者が多くのIPアドレスを集めることができれば、伝播を制御でき(例えば、自動販売機でのトランザクション情報の転送を拒否するなど)、二重使用攻撃を成功させることができる。これはBitcoinの核心的な新しいアイデアに立ち戻る:真実はIPではなく計算能力によって投票される。
飲み物1本のためにはこの攻撃は経済的でないように思えるかもしれない。しかし、代わりにマシンが少額のギフトカードを配り、攻撃が何千回も(おそらく同時に協調して)行われると想像してみてほしい。すると、そのIPブロックのコストは攻撃者にとって格安になるかもしれない……