法制晚报讯 有一天,长人在网上闲逛的时候发现了一家网店,里面的商品新潮有趣,而最重要的是,它支持比特币支付。作为比特币的坚定信仰者,他与店主聊得非常投机,决定以 10个比特币的价格购买一件商品。出于对店主的信任,长人与店主约定,由前者将 10个比特币打到后者的地址上,而后者在收到比特币后再将商品发出。
店主打开自己的比特币钱包,创建了一个新的比特币地址,并告知长人。店主创建新地址的本质是生成了一个密钥对,这个密钥对由一个公钥和一个私钥组成,其中私钥只有店主自己知道,而公钥则是公开的,可以用来验证支付的真伪。 长人收到店主的地址信息后,打开了自己的比特币钱包客户端,并指示客户端将 10个比特币发送到店主的收款地址。钱包客户端里储存着长人所有地址的私钥,为了简化问题,我们假设长人在其中一个地址里放了 11个比特币,而本次支付只从该地址进行扣款。在发送比特币时,钱包客户端以该地址的私钥对本次交易进行签名,并向全网公布这次交易信息。 这个时候,网上所有的节点或者说每一个矿工都会验证这个交易是否有效。验证方法也很简单,拿出这个地址的公钥对照即可。在这个环节,名叫宋欢平和睡空空的两位矿工也接到了这个交易信息。在经过验证确认交易有效后,他们把这个交易放进内存里,等待进入数据块。过了一段时间,宋欢平的电脑算出了一个符合条件的随机值,系统宣布一个新的合格数据块诞生,并向整个网络公布了这一消息,其他节点(包括睡空空)收到后就开始在这个数据块之后开始新的挖矿工作。而长人和店主的交易信息就被打包放进了宋欢平挖出的数据块里,并且得到了初步确认。当下一个区块链接到这个区块时,交易就会得到进一步的确认。 在连续得到 6个区块的确认之后,长人和店主的这笔交易基本上就不可逆转地得到了确认。店主发现 10个比特币已经到达他的地址,经过一段时间的等待确认后,他把商品发给了长人,本次交易宣告完成。 在这个故事里,最引人注目的问题在于比特币的确认时间。宋欢平和其他矿工不断地测试以得到符合条件的随机值,而求得随机值所需的时间已被系统预先限定,平均耗时 10分钟。 也就是说,无论矿工们多么努力,挖出一个数据块所需要的时间总是在 10分钟左右。如果要保证交易的不可逆转,则要等待 6个数据块完全确认,这至少需要 1个小时的确认时间。 为什么比特币交易需要确认呢?这涉及双重支付的问题。简单来说,一笔比特币交易的等待时间越久,得到的确认越多,它就越安全。 如果这种交易发生在网络上,且销售对象不是时效性非常强的商品,那么等待 1个小时的确认时间也无所谓。但如果是在日常生活中,比如在商店里,那确认时间就成问题了。我们很难想象,上班前在 711里用比特币付款买了糯米鸡当早餐的白领,要在店里等上 60分钟才能离开—在迟到 5分钟就要扣奖金的今天,这有点儿不切实际。 楼下商店的老板,他每天都能看到你上下班,见面了还会打招呼,你也经常去他店里买东西。在这种情况下,他不会太在意确认时间,因为你已经是熟客了,不太可能为了贪小便宜而把自己的信誉丢掉。 在陌生人进行初次交易时,彼此的信任难以马上建立。在这种情况下,确认时间是必要的,但不一定是不可接受的。想象你去 4S(以“四位一体”为核心的汽车特许经营模式)店买汽车,当你用比特币支付完毕后,店员同时为你的新车办理各种手续。这种大宗商品交易所需的手续时间通常比比特币的确认时间长得多。那么,交易双方通常都不会太介意交易的时间确认问题。 2013年,在美国圣何塞召开的比特币大会上,与会者提出了很多解决理念。其中最重要的一个叫作链外交易,即不在区块链内进行交易确认。假如有一家公司能以其一贯良好的信誉赢得用户的信任,从而推出自己的在线钱包软件,那么只要星巴克及其顾客都注册了该公司的账户,顾客们便可以把自己的部分比特币存入该公司账户,并通过在线钱包购买星巴克等企业的商品,将比特币从自己的账户汇入星巴克的账户。由于这种交易实际上只是在该公司的系统内部进行账内金额转移,不涉及区块链的确认,所以交易几乎是在瞬间完成的。这种方法能够解决陌生人之间小额交易的确认问题。 用了比特币钱包客户端。大部分用户都会选择 Bitcoin-QT等客户端作为自己的比特币钱包,储存私钥。钱包在比特币使用过程中的作用至关重要。但事实上,比特币的使用风险大多集中在钱包上。 栏目所摘图书均为本报独家首发,如需转载请标明出处。更多内容见法制晚报官网。 原文来自:http://news.163.com/14/0102/14/9HJFUTVM00014Q4P.html |