Author

Topic: [20141016]谈谈比特币零确认 (Read 833 times)

newbie
Activity: 42
Merit: 0
October 16, 2014, 02:10:45 AM
#2
好歹也是做钱包的,见识这么浅薄……
sr. member
Activity: 364
Merit: 250
October 16, 2014, 12:34:41 AM
#1
我们都知道,比特币交易需要等待确认,确认其实就是等待该笔交易被做到区块链账单的过程,这个时间嘛大约是十分钟。

等待总是让人不快的,因此就有了各种各样的“改进”:比如说莱特币的两分钟,比如说基于多重签名的“零确认”,再比如说大家经常挂在嘴边的链外交易(OFF-CHAIN)。

问题就在于,开发者们所热衷于的“零确认改进”,真的是用户需要的吗?

比如说,当我们在互联网上购买实体商品(如:戴尔的电脑、新蛋的商品等),消费者也好、商户也好,真的需要零确认吗?答案显然是“不”,十分钟的确认相比物流、配送所需时间几乎可以忽略不计,强求“零确认”意义不大。

那有人可能会说,网上购买虚拟商品,总该需要零确认了吧?看起来似乎很有必要,不等待确认的话,交易被双花了怎么办?其实不然,对于大部分商家所出售的大部分虚拟商品来说,双花风险并没有大家所想的那么大。一般来说,虚拟商品(如:网盘、云主机等)的出售方通常是中心化的虚拟服务提供商,在没有等到确认的情况下,即便是将服务提供给用户,也可以在发现双花的情况下,再将服务收回,损失可能仅仅是被用户未付费的情况下被盗用了十来分钟的服务,考虑到这种盗用的成本(双花毕竟还是有技术、时间、矿工手续费等成本)和收益(盗用十分钟的服务)的对比,此类事件的出现概率应该是比较低的。这就像是最初京东打动普通用户的“货到付款”,虽然存在货到了用户却不要的情况,但考虑到很低的概率,仍然不是什么大问题,货到付款也成了京东最初成功的“杀手锏”。也就是说,对于大部分虚拟商品,强求“零确认”的意义也不大。

那对于一些特定类型的虚拟商品(如:音乐、图片、文章等),不等待确认的情况下,如果交易被双花了,的确会导致真正的损失。不过,我们仍然可以通过最简单的方式来解决,比如说,要求用户付标准的矿工手续费(甚至可以高一点),再比如说,通过检查该交易已经存在于几个主要矿池的MemPool中,来加大用户的双花难度即可。归根结底,还是要考虑双花盗取的成本和收益之间的比较,对于大部分互联网上销售的虚拟商品来说,如果价格不高,均可以在考虑一些基本条件满足的情况下,无需等待比特币网络的确认。如果是很昂贵的虚拟商品,那还是耐心等待足够的确认吧(都肯花那么多钱了,等等应该也不是大问题)。

SatoshiDice则用了一种比较巧妙的方式来降低因等待确认所导致的不良用户体验,即返奖交易依赖于投注交易的output,也就是说投注交易如果没确认,返奖交易永远不会确认,这想法很赞。

地面实体店的情况也类似,仍然只需要考虑交易的情况,因为双花是需要成本的,只要成本和收益不匹配,不等待确认的问题也不大,总不成某码农费半天力气双花一笔比特币交易就为了偷您一瓶可乐吧?对于餐厅等消费场所,先付费问题也不大,毕竟即便是现阶段,先付费和后付费的餐厅都生存的很好。对于那些昂贵的商品来说,还是那句话,等足够多的确认吧,营业厅里买iPhone合约机,填表的时间都远大于十分钟吧?买车、买房等一百个确认也不过分吧?

通过上述分析,我们可以看出,对于大部分现实社会中的支付场景来说,标准的比特币交易已经足够用了,对于“零确认改进”的需求并没有想象中的那么大,即便是在特定的需要等待确认的情况下,通过一些简单的技术手段(如:要求标准的或更高的矿工手续费、检查主要矿池的MemPool、交易依赖等)就能大大改善用户体验,并不一定非要通过缩短区块生成时间(如:莱特币)、多重签名(中心化网站控制另一把“钥匙”来防止用户双花)或者是纯中心化的方案(如:OFF-CHAIN)来解决。

最后补充一句:比特币历史上最长的一次区块链重组,发生在2013年3月11日的区块分叉期间,重组了24个区块,也就是说,如果您用比特币买房、买车,等一百个块的确认足够了。

作者:比太钱包团队
捐赠地址:1BsTwoMaX3aYx9Nc8GdgHZzzAGmG669bC3 微博:http://weibo.com/bither
Jump to: