什么是双花(Double Spending)?它是指同一笔数字资产被花费了两次。区块链通过全网共识保证每笔资金在账本上只能被花一次,所以双花无法在同一条最终确定的链上发生;攻击者能做的,是让接收方先看到一笔付款并认可它,之后再让这笔付款失效,把同一笔币花到别处。对企业来说,双花风险几乎都出现在确认不足就入账的时候。
区块链是怎么防止双花的?
节点在打包交易前会检查其中的资金是否已经被花过。在比特币这类 UTXO 模型的链上,同一个未花费输出只能被一笔交易花掉;在以太坊这类账户模型的链上,每个地址的 Nonce 保证同一个序号的交易只会执行一次。两笔互相冲突的交易最终只有一笔会被写入链上。问题在于,在交易被打包并获得足够确认之前,哪一笔会胜出还没有定论。
双花攻击有哪些常见方式?
最简单的是零确认下的竞争攻击:攻击者几乎同时广播两笔花费同一笔币的交易,一笔付给商户,一笔转回自己,如果商户在交易还停留在内存池时就发了货,而最终上链的是另一笔,商户就会落空。比特币的 RBF 机制允许发送方用更高的手续费替换未确认交易,也让零确认收款更不可靠。更严重的是通过区块链重组实现的双花,攻击者在交易已经获得几个确认后,用一条更长的链把它回滚,这通常需要掌握多数算力,也就是 51% 攻击。
企业怎么防范双花?
最根本的是不按零确认入账,并按链和金额设定足够的确认数,大额充值要等更多确认或等到区块最终确定。其次,在监控链上交易状态时如果发现已入账的交易被替换或回滚,要能及时冲正。最后通过定期对账核对链上余额和业务记录,确保没有因双花造成的账面差异。
总结
双花是同一笔资产被花两次,区块链本身能阻止它,但确认不足时,接收方看到的付款仍可能被替换或回滚。企业要避免零确认入账,按链和金额设定确认数,并通过监控和对账及时修正。Safeheron 的 MPC 钱包即服务为企业提供 MPC 密钥管理和策略引擎。
想让充值入账不再担心双花? 联系 Safeheron 销售团队,预约一对一演示