Bitcointalk

Bitcoin snack machine (fast transaction problem)

中本聪 · 2010 年 7 月 17 日

SN-1323 已核对来源,附原文与上下文。

阅读语言

我相信支付处理公司可以把「快速分发交易 + 足够好的校验」作为一种服务提供,在大约 10 秒或更短时间内完成。

I believe it'll be possible for a payment processing company to provide as a service the rapid distribution of transactions with good-enough checking in something like 10 seconds or less.

网络节点只接受收到的第一版交易,纳入它正在尝试生成的区块。当你广播一笔交易时,如果别人同时广播了一笔双重支出,这就是一场看谁先传播到最多节点的竞赛。谁有一点先发优势,就会以几何级数在网络上扩散得更快,拿下大多数节点。

The network nodes only accept the first version of a transaction they receive to incorporate into the block they're trying to generate. When you broadcast a transaction, if someone else broadcasts a double-spend at the same time, it's a race to propagate to the most nodes first. If one has a slight head start, it'll geometrically spread through the network faster and get most of the nodes.

粗略的估算例子:

A rough back-of-the-envelope example:

1 0

1 0

4 1

4 1

16 4

16 4

64 16

64 16

80% 20%

80% 20%

所以双重支出哪怕只晚一秒,都处于巨大劣势。

So if a double-spend has to wait even a second, it has a huge disadvantage.

支付处理器会与许多节点保持连接。收到一笔交易后,它会立刻向外广播,同时监控网络中是否出现双重支出。只要它连接的任一监听节点收到冲突交易,支付处理器就会把原交易标记为有问题。双重支出交易很难广泛传播而不被其中一个节点发现。攻击者必须等监听阶段结束后再行动,可到那时,支付处理器广播的交易已经到达大多数节点,或者在传播速度上遥遥领先,攻击者几乎不可能再争取到足够多的剩余节点。

The payment processor has connections with many nodes. When it gets a transaction, it blasts it out, and at the same time monitors the network for double-spends. If it receives a double-spend on any of its many listening nodes, then it alerts that the transaction is bad. A double-spent transaction wouldn't get very far without one of the listeners hearing it. The double-spender would have to wait until the listening phase is over, but by then, the payment processor's broadcast has reached most nodes, or is so far ahead in propagating that the double-spender has no hope of grabbing a significant percentage of the remaining nodes.

来源
Bitcointalk 原始链接 ↗ 记录编号 SN-1323

阅读字号

选择适合你的字号,之后阅读会继续使用。