看这篇文章时,不要太大惊小怪,更不要用重大利空之类的话。比特币协议仍然很安全,这个双花问题实际上已经解决了。http://www.8btc.com/double-spend-unconfirmed-transaction-is-easier-than-people-think首先声明,这不是一个希望造成大众恐慌的 FUD,比特币协议仍然很安全。写这一篇文章,只是想告诉大家,对零确认的交易进行双重花费的成功概率比人们预想得要高得多,所以在交易金额较大时,请至少等待交易被确认后再付款。而按中本聪的创世论文所说,至少要获得 6 次确认才能认为交易不可逆。
几天前,有人推出了一项叫 BitUndo 的服务。顾名思义,它在你的交易被确认之前,通过将花费的金额转回你的地址来实现“撤销”操作。这件事在 Reddit 和 HackerNews 上都引起了热烈讨论,更有好事者通过实例证明,即使在现在网络确认速度提升不少的今天,要实现对零确认的交易进行双重花费的成功概率比人们预想得要高得多。
例子:交易 1 被 交易 2 双重花费了。
实现的原理是什么呢?其实这是利用了不是所有的矿工对内存池操作时策略都相同的事实。在上面的例子中,由于最近交易费调整后,交易 1 的交易费由变为 0.1mBTC/KB,这意味着还没有升级到 0.9 版后的矿工不会接受,虽然这笔交易依然可能被传递下去。同时,人们还可以利用某些算力对特殊地址进行了特别处理的事实,比如有些会直接阻止发送到 Satoshi Dice 地址,脑钱包 “correct horse battery staple” 地址等等。
有兴趣的童鞋,可以自己尝试一下。
https://github.com/petertodd/replace-by-fee-tools因此,希望大家能明白,未确认交易真的很不安全。而这对于 BitPay、CoinBase 之类的即时交易处理服务而言,其中的风险自然不言而喻。而这一点,相信在较长的一段时间内,对于小额交易,脱链交易( off-chain transactions ),货币托管担保等服务存在不少影响。
当然,如果你发送的是一个 Dorian,或许就没必要操心确认这事了。
哈?你不知道什么是 Dorian ?A Dorian is an unconfirmed Satoshi!