关于0确认的讨论总会时不时的出现,问题总是围绕着:0确认真的安全吗?开发人员是否应该做些事情让它们变得更安全?这些0确认交易会不会造成双花从而骗取商家等等?
0确认是什么?
对于BCE和BCH来说,0确认交易是发送方将交易发送给其他的网络进行广播但是尚未确认的交易。一旦交易进行广播将会加入到缓冲空间内存池(mempool )中,并且需要一直等到纳入被挖的区块中。一旦开始挖矿,这个交易将会有1个确认,添加到区块链的每个新区块都会在其上添加一个确认。但是从交易到达内存池到被矿工挖出的这段时间中,很多事情都可能发生。
举个例子,“替代费用(RBF)”就允许交易发送方通过增加费用来替换之前的未经确认的交易(比特币现金中不再存在此选项)。商家看到的节点与整个网络的其他节点之间可能存在差异:当交易广播完成时,它可以在网络的两个非同步部分引入差异,有时会被解释为双花尝试。
在这个过程中,双花是将相同的币发送到两个不同地址的同一笔交易。可以在https://doublespend.cash等网站上监控一些此类双花交易。大多数情况下,支付较多费用的交易会获胜(被添加到下一个被挖的区块中),而另一个则被丢弃。
真正的风险是什么?
从商家的角度来说,主要风险是未经确认的交易(0确认)可以由另一个替代或取消,而这笔交易中的货币最终到达的目的地并不是他们的口袋,而是消费者自己的口袋。
然而,为了能够让这种诈骗成功,需要有足够复杂的条件,而这个操作并不经济。通常情况下,除了将足够的算力部署到对手矿工之外,还意味着要增加商家节点的延迟或商家将查看的交易是否达到了内存池第一个节点的延迟,这需要以某种拒绝服务或者流量攻击的形式完成。
在这一点上,我们必须明白,这种攻击绝不是简单的,如果交易是基于少量的话将会非常麻烦。因此试图用这些方法来欺骗商家只为了一杯咖啡的情况是不会发生的。另一方面,如果金额比较大,商家只需等待交易至少取得一次确认即可完成交易,从而大大降低风险。
事实上,对于商家来说,接受0确认交易纯粹是风险分析的问题。根据计算(截至2018年6月)交易价格低于32000美元(约35至40 BCH)的交易,欺诈风险接近于零,并且在任何情况下都低于目前的一些主要信用卡公司。
0确认有多危险?
如上所述,任何接受未经确认的交易的商家都有风险。然而,为了了解这种风险有多低,让我们回顾一下,几个月前,Cryptonize.it提供的用于双花的测1000美元的礼品卡。几个月来,没有人能够成功地制定双花交易,实际上,这种尝试甚至使黑客黯然失色:
此外,比特币现金具有使双花更不可能发生的特征:更大的区块不仅意味着比特币现金可以每秒处理大量交易(目前约为100),这也意味着mempool中的大部分交易(如果不是全部的话)将会在下一个区块中,并在接下来的10分钟内得到确认。这进一步缩短了交易可以花费双倍的时间。不过在BCE中,由于吞吐量限制为每秒3笔交易,任何时候网络达到此容量时,即使在费用达到天价的时候,交易在下一个区块中的平均时间也会增加。
由于比特币现金区块大小是为了在下一个区块中能够清除内存池而设计的,所以制定双花尝试对于攻击者来说是一个非常冒险且代价高昂的速度游戏,因为网络中的所有激励措施都是为了保持速度。
为什么0确认很重要?
记住前面的几点(非常低的风险,一个浅的内存池,一个包含在下一个区块中的低费用的交易),正如Eric Voorhees在2015年的那篇论文中解释的那样,0确认对于普通商家来说确实是一个可行的选择。
对于客户来说,这意味着一个快速而可靠的交易:在5秒内,一方发起的交易将出现在另一方。
用户体验是至关重要的:没有麻烦的变化,没有延迟,没有不确定性。
从商家角度来说,与信用卡收费相比,收费是微观的。
Paypal在每笔交易中收取2.7%至4.4%的费用。大公司信用卡收取的费用在1.5%至3.5%之间... 而比特币现金费用的中位数则低于0.1%。
除此之外,为了接受信用卡,大多数企业需要与商户服务提供商(Merchant Services Provider, MSP)签约,后者在商家和信用卡发行商之间充当中间人。MSP的存在增加了交易成本,每笔交易的成本从0.08美元到0.10美元,再加上0.18%到0.25%,而且还有月租(价格在99美元左右)。
最后还有一点不同。对于小商店来说选择比特币现金付款可以直接使用手机或者是免费的PoS软件,而使用信用卡则需要拥有信用卡读卡器,普通的信用卡读卡器可以达到几十美元(比如VeriFone vx520读卡器的价格为161美元)。
因此基于比特币现金的0确认交易是非常有必要的,而且它还提供了大多数其他加密货币严重缺乏的速度和效率。对于商家来说,也不用过于担心欺诈行为。