比特币的非算力用户双花零确认交易是什么

非算力用户双花零确认交易
比特币的非算力用户双花零确认交易是什么
对零确认的交易发起双花,理论上分为两类,一类是普通用户发起的双花;第二是矿池发起的双花。

先说第一类,一个诈骗可以在网络上物理位置相差很远的两个位置构造两笔相冲突的交易,比如诈骗者刻意把第一笔交易tx1在美国广播,同时将相冲突的交易tx2在中国广播。中美两国网络之间有时间差。诈骗犯使用在美国广播的交易tx1向一个美国店家购买电子书一本,而在中国广播的交易则是发到自己的地址上。商家看到在美国的交易后立刻发货,但没想到,最终在中国广播的那笔交易被打包了,商家就被骗了。

这一类诈骗为了提高成功率,一般会配合手续费策略。比如给商家发的交易tx1给的手续费非常低,交易尺寸非常大,手续费率低于1聪/字节。而诈骗犯自己给自己发的交易tx2手续费则高于市场值。这种情况下矿工就会优先打包tx2,双花成功率就高了。

因为现在BTC/BCH节点都有最低手续费限制,低于1聪/字节的交易在很多节点就不帮你广播了。所以诈骗犯会用的另一个辅助办法来提高成功率,就是使用RBF交易,诈骗会给tx2设定为RBF交易,然后在tx1和tx2都发出后,给tx2再追加一笔更高的手续费,以引诱矿工优先打包tx2。注意BCH无法使用RBF。

这一类双花零确认交易的攻击其实是非常容易防御的。第1个方法就是商店可以设定一个手续低限,比如,低于1聪/字节的交易就拒绝零确认,提高到1确认才认定为安全的。第2个方法就是商家延迟几秒后,至少使用两个区块链浏览器来检测是否存在相冲突的交易,如果发现有冲突的交易就中止交易,等确认。

目前BTC和BCH的生态也都针对这一类双花攻击作了一定的防御,比如区块链浏览器就会收集双花交易,并提示用户注意。大部分节点钱包也会拒绝广播手续费太低的交易,但并不是所有的钱包都会拒绝。

总的来说,非算力用户想针对零确认交易进行双花是很难成功的,只要商家有基本的比特币知识就可以防御。