零确认交易 指的是一个比特币(或其他加密货币)交易已经被广播到网络,但尚未被矿工打包进任何一个区块时的状态。

“确认”指的是交易被包含在一个区块中,并添加到区块链上。每增加一个后续区块,就增加一次确认(例如:1次确认、6次确认等)。“零确认”意味着确认次数为0,即它还在内存池中等待处理。
工作原理详解
为了更清楚地理解,我们可以把它想象成一个现实生活中的场景:
-
创建交易:假设Alice向Bob支付0.01 BTC购买一杯咖啡。Alice的钱包会创建一笔交易,用她的私钥进行签名,证明她拥有这些币。
-
广播交易:这笔被签名的交易立即被Alice的钱包广播到比特币P2P网络中的所有节点(计算机)。
-
节点验证:网络中的节点收到这笔交易后,会立刻对其进行验证。验证内容包括:
-
签名是否有效?
-
输入地址是否有足够的余额?
-
交易格式是否正确?
-
是否不是双花交易?
-
进入内存池:如果验证通过,每个节点都会将这笔交易放入自己的“内存池”中。内存池就像是矿工等待处理的“候车厅”,所有未确认的交易都暂时存放在这里。
-
零确认状态:此时,Bob的咖啡店POS机或钱包看到了这笔交易,并且知道网络节点已经验证了它是有效的。尽管它还没有被正式记录到区块链上,但Bob选择相信它最终会被打包,于是他决定接受这笔零确认交易,马上将咖啡交给Alice。
-
最终确认:稍后,某个矿工将这笔交易从内存池中选出,并将其打包到一个新的区块中。当这个区块被成功挖出并添加到区块链上时,这笔交易就获得了1次确认。之后每增加一个区块,确认数就+1。
为什么有人会接受零确认交易?
主要为了速度和用户体验。
-
即时性:等待一个区块确认平均需要10分钟(比特币),有时甚至更长。对于像买咖啡、快餐这种小额、面对面的交易,等待10分钟是完全不现实的。零确认交易实现了“近乎即时”的支付。
-
便利性:它提供了类似刷信用卡或现金的体验,即付即走。
零确认交易的风险:双花攻击
接受零确认交易的最大风险是双花攻击。
-
什么是双花? 双花是指花钱的人将同一笔钱花费两次。
-
如何利用零确认进行双花?
-
攻击者:恶意用户Alice在Bob的店里用零确认交易买了一杯咖啡。
-
同时操作:Alice在广播这笔给Bob的交易的同时(或之后极短时间内),秘密地向网络广播另一笔交易,将相同的比特币发送到她自己的另一个地址,并且支付更高的矿工费。
-
矿工的选择:矿工通常会优先打包手续费更高的交易。因此,第二笔交易(高手续费)很可能先被矿工打包进区块。
-
结果:第一笔给Bob的交易会因为“双花”而被节点拒绝,变得无效。Bob的咖啡被骗走了,而且没有收到付款。
注意:执行这种攻击需要一定的技术能力,并且对于小额交易来说成本效益不高(因为要支付更高的手续费)。但对于大额交易,风险极高。
如何降低零确认交易的风险?
尽管有风险,但商家仍然有一些方法来评估是否接受一笔零确认交易:
-
监听交易广播:高级的POS系统会同时连接多个比特币网络节点。如果它们看到这笔交易被广泛地广播到了全网多个节点,那么攻击者想要用另一笔交易替换它的难度就大大增加了。
-
Replace-by-Fee (RBF) 识别:RBF是一种允许发款人通过支付更高手续费来替换未确认交易的功能。商家可以设置他们的系统拒绝来自支持RBF的钱包的零确认交易。
-
手续费分析:支付了足够高手续费的交易,更有可能被矿工优先打包,从而快速确认,减少了被双花的风险窗口。
-
仅限小额交易:这是最普遍的做法。只对咖啡、零食等小额商品接受零确认交易。即使被骗,损失也在可接受范围内,类似于信用卡盗刷的风险。
总结
特性 | 零确认交易 | 已确认交易(1次确认以上) |
---|---|---|
状态 | 已广播,已验证,在内存池中等待 | 已被打包进区块,并记录在区块链上 |
速度 | 极快(几秒钟) | 慢(10分钟到1小时或更长) |
安全性 | 低,存在双花风险 | 高,确认次数越多越安全 |
适用场景 | 小额、面对面的即时支付 | 大额转账、线上购物、金融结算 |
总而言之,零确认交易是在安全性和速度之间的一种权衡。它对于加密货币的大规模日常应用至关重要,但需要商家和用户清楚地了解其背后的风险并采取相应的预防措施。
在其他加密货币(如莱特币、比特币现金)中,零确认交易的概念类似,但由于其出块时间更短(如2.5分钟),风险窗口相对更小。