不管是在最初的物物交换时代,还是现在的钱物交换时代。我们都希望能够在交易的过程中,做到实时交换。作为商家当把商品和服务卖出之后,势必希望货币已经在自己的账户中了。但是这并不是每时每刻都能实现的。例如我们刷卡购物,到账的时间也是会受到银行的控制。

如果把这种期望放到比特币的世界中,就变得更加难办。不管是比特币转账还是比特币现金转账都需要区块的确认。当我们把交易发送出去之后,我们还需要等待6个确认才真正的算是交易成功。为了提高交易的速度,零确认交易被提出了。

什么是零确认交易

零确认交易就是发送方将交易发送给网络进行广播但是尚未确认的交易。在区块链上的交易大概每隔10分钟会被确认一次,“零确认交易”并不存在于区块中。它指的是一笔交易被广播到全网,即将被打包进入区块前的状态。接受零确认交易就意味着可以很快的结束用户的支付请求。毕竟与几乎即时完成的支付体验相比,要求用户在发送交易后至少需要等待一个确认才交付在大多数的场景下是不现实的。

0确认最初是由中本聪提到的。中本聪在 2010 年回复 BM 质疑比特币十分钟确认太慢的时候,曾提出了 Payment Processor 的说法用于快速交易支付:

由于这时候零确认只存在节点的内存池中,并没有被打包上链,所以存在双花的风险,中本聪将零确认交易称为“二等居民”,并在 Snack Machine 一帖中,给出了他的解决方案:

也就是说,中本聪在设计比特币的时候,认为零确认交易是可行的。其方法是节点将交易信息加到自己的内存池,如果发现有相同的 UTXO 则拒绝。由于试图双花的交易发出的时间将晚于发给商家的交易,商家只需要稍等片刻,待交易信息传递到绝大多数节点即可。

比特币和零确认的渊源

虽然我们知道零确认交易对于比特币来说是可行的,但是凡事都有两面性,双花问题也是一直被讨论的。在早期比特币不拥堵的时候,零确认也曾被一些商家尝试,例如加密货币电子商务网站CoinCola都曾推出零确认。

但是随着比特币链上交易越来越拥堵,加上core开发团队并不是很支持零确认交易,也不曾为解决双花问题劳心劳神。而且为了缓解交易长时间没法确认的情况,BTC 引入了替换手续费 Replace-by-fee 的功能,允许用户将交易标记为 replaceable 并在这笔交易未确认前增加手续费来替换掉。这破坏了零确认交易的根基,加深了大众认为零确认交易不安全的印象。因此零确认在现在的BCE网络已经很难行得通。

为什么比特币现金会致力于零确认

从上面可以看出,零确认交易并不是什么新技术,是否接受它、让零确认交易能得以足够广泛的应用,取决于商家,以及大众的认知。我们都知道比特币现金主打低手续费、快速交易的。而零确认交易则能很大程度上提高付款和交易的速度,从而为BCH网络带来显著的竞争优势,能够推动它被广泛的使用。

最重要的是,比特币现金具有使双花更不可能发生的特征:更大的区块不仅意味着比特币现金可以每秒处理大量交易,也意味着内存池中的很多交易都会在下一个区块中被打包,并在接下来的10分钟内得到确认。而且很多人担心的双花问题也并非是不可解的。BCH社区已经针对双花问题推出了很多解决方案,例如Openbazaar的开发者Chris Pacia给出了一个名为“Double Spend Alters”的方案,提出在BCH全网中一旦发现双花交易,立刻在全网发布报警信息。Bitcoin Unlimited团队提出了名为“Double Spend Proof Creation and Forwarding.”的方案。而且还有些企业已经推出了“双花保险”。

目前比特币现金社区采用零确认的进展

虽然零确认一直都在被比特币社区和比特币现金社区讨论,但是在比特币社区迟迟没有什么动静。而比特币现金社区已经有很多商家将0确认交易加入到他们的服务中。包括Cryptonize.it,Bitasia Exchange,Keys4coins,Bitpay,Satoshi Dice,Mini-POS,Lieferando等等。

这些商家之所以愿意接受“零确认交易”,是因为他们认为双花发生的概率很低。正如2010年中本聪谈到的:在比特币网络中受到双花攻击的风险远远低于信用卡被盗用的风险。同时,双花攻击的本身难度很高,可进行双花的时间短。大部分交易进行双花的成本远大于它的收益,对小额交易而言,进行双花更是无利可图。但说到底,无论是接受“零确认交易”还是等待“更安全”的区块链确认,都取决于商家。BCH社区能做的是尽可能保证它的安全,给大家提供多种选择。

查看原文 >>
相关文章