互联星空 > 财经 > 正文

揭秘比特币交易:确认至少需要1小时

2014-1-2 15:43:16 来源:法制晚报

  有一天,长人在网上闲逛的时候发现了一家网店,里面的商品新潮有趣,而最重要的是,它支持比特币支付。作为比特币的坚定信仰者,他与店主聊得非常投机,决定以10个比特币的价格购买一件商品。出于对店主的信任,长人与店主约定,由前者将10个比特币打到后者的地址上,而后者在收到比特币后再将商品发出。

  店主打开自己的比特币钱包,创建了一个新的比特币地址,并告知长人。店主创建新地址的本质是生成了一个密钥对,这个密钥对由一个公钥和一个私钥组成,其中私钥只有店主自己知道,而公钥则是公开的,可以用来验证支付的真伪。

  长人收到店主的地址信息后,打开了自己的比特币钱包,并指示将10个比特币发送到店主的收款地址。钱包里储存着长人所有地址的私钥,为了简化问题,我们假设长人在其中一个地址里放了11个比特币,而本次支付只从该地址进行扣款。在发送比特币时,钱包以该地址的私钥对本次交易进行签名,并向全网公布这次交易信息。

  这个时候,网上所有的节点或者说每一个矿工都会验证这个交易是否有效。验证方法也很简单,拿出这个地址的公钥对照即可。在这个环节,名叫宋欢平和睡空空的两位矿工也接到了这个交易信息。在经过验证确认交易有效后,他们把这个交易放进内存里,等待进入数据块。过了一段时间,宋欢平的电脑算出了一个符合条件的随机值,系统宣布一个新的合格数据块诞生,并向整个网络公布了这一消息,其他节点(包括睡空空)收到后就开始在这个数据块之后开始新的挖矿工作。而长人和店主的交易信息就被打包放进了宋欢平挖出的数据块里,并且得到了初步确认。当下一个区块链接到这个区块时,交易就会得到进一步的确认。

  在连续得到6个区块的确认之后,长人和店主的这笔交易基本上就不可逆转地得到了确认。店主发现10个比特币已经到达他的地址,经过一段时间的等待确认后,他把商品发给了长人,本次交易宣告完成。

  在这个故事里,最引人注目的问题在于比特币的确认时间。宋欢平和其他矿工不断地测试以得到符合条件的随机值,而求得随机值所需的时间已被系统预先限定,平均耗时10分钟。

  也就是说,无论矿工们多么努力,挖出一个数据块所需要的时间总是在10分钟左右。如果要保证交易的不可逆转,则要等待6个数据块完全确认,这至少需要1个小时的确认时间。

  为什么比特币交易需要确认呢?这涉及双重支付的问题。简单来说,一笔比特币交易的等待时间越久,得到的确认越多,它就越安全。

  如果这种交易发生在网络上,且销售对象不是时效性非常强的商品,那么等待1个小时的确认时间也无所谓。但如果是在日常生活中,比如在商店里,那确认时间就成问题了。我们很难想象,上班前在7–11里用比特币付款买了糯米鸡当早餐的白领,要在店里等上60分钟才能离开——在迟到5分钟就要扣奖金的今天,这有点儿不切实际。

  楼下商店的老板,他每天都能看到你上下班,见面了还会打招呼,你也经常去他店里买东西。在这种情况下,他不会太在意确认时间,因为你已经是熟客了,不太可能为了贪小便宜而把自己的信誉丢掉。

  在陌生人进行初次交易时,彼此的信任难以马上建立。在这种情况下,确认时间是必要的,但不一定是不可接受的。想象你去4S(以“四位一体”为核心的汽车特许经营模式)店买汽车,当你用比特币支付完毕后,店员同时为你的新车办理各种手续。这种大宗商品交易所需的手续时间通常比比特币的确认时间长得多。那么,交易双方通常都不会太介意交易的时间确认问题。

  这是比特币目前遇到的最大的技术难题。在一个大城市里,很多小额交易是发生在陌生人之间的。比如你走进街边的星巴克,点一杯咖啡带走。在这种情况下,服务员不认识你,而你也不可能为了一杯咖啡等上10分钟甚至30分钟。如果比特币的确认时间一直停留在目前阶段,那么这确实是一个问题。

  2013年,在美国圣何塞召开的比特币大会上,与会者提出了很多解决理念。其中最重要的一个叫作链外交易,即不在区块链内进行交易确认。假如有一家公司能以其一贯良好的信誉赢得用户的信任,从而推出自己的在线钱包软件,那么只要星巴克及其顾客都注册了该公司的账户,顾客们便可以把自己的部分比特币存入该公司账户,并通过在线钱包购买星巴克等企业的商品,将比特币从自己的账户汇入星巴克的账户。由于这种交易实际上只是在该公司的系统内部进行账内金额转移,不涉及区块链的确认,所以交易几乎是在瞬间完成的。这种方法能够解决陌生人之间小额交易的确认问题。

  在长人和店主的交易中,两人都使用了比特币钱包。大部分用户都会选择Bitcoin-QT等作为自己的比特币钱包,储存私钥。钱包在比特币使用过程中的作用至关重要。但事实上,比特币的使用风险大多集中在钱包上。

【作者:】 (责任编辑:唐飞)

焦点新闻