之前探讨过给现有比特币所有者配置新的另类币的两种方法:或者要求用户把比特币销毁从而得到另类币,或者简单地把另类币发给现有比特币所有者,这些所有者必须拥有还没有用掉的比特币。正如我们看到的,任何一种方式都不需要另类币的价格盯住比特币。没有这种汇率锁定机制,在发展初期,另类币的价格会变化很大。侧链(sidechains)的目的就是避免另类币价格变化太大,因为价格的波动太大会导致很多问题,也会使另类币分心乏术,无法真正专注于技术上的竞争。
下面介绍使另类币的价格以固定汇率的形式盯住比特币的相关技术。首先,所有者必须把所拥有的一定数量的比特币放入托管账户,这样才能创造出一个单位的另类币(或者固定单位的另类币),这样所有者才可以在另类币区块链上正常使用另类币。最后,所有者必须能够销毁自己拥有的另类币,从而取回之前存在托管账户上的比特币。这种构建像零币,通过托管基础币而创造零币。区别在于,需要在两个不同的区块链里进行上述操作。
遗憾的是,据了解,由于比特币的交易无法被其他区块链的事件所影响,目前还未找到可以不改动比特币而达到这种效果的方法。截至目前,比特币的脚本还没有强大到可以确认整个单独的区块链。好消息是,可以通过相对实用一点的软分叉来修改比特币,这也是侧链的原理。侧链的愿景是,将比特币作为储备货币,打造多种蓬勃发展、快速创新和实验的另类币。截至2015年,侧链还只是一个提案。但是比特币社区正在积极参与这个提案,目前已取得一些实质性的进展。侧链的提案还处于变化之中,所以为了便于学习和理解,适当简化了一些细节。
扩展比特币的功能,使之能够使侧链兑换成比特币,最显而易见但不太实用的办法是:把所有侧链的规则,包括验证所有侧链的交易和检查侧链的工作量证明,都包含在比特币体系里。这个方法不实用是因为这样会使比特币扩展出来的程序过于复杂,验证比特币的节点会非常困难。而且,链接上的侧链越多,复杂度和困难度就越大。
SPV技巧
可以使用SPV证明技巧来避免这种复杂局面。之前曾提到简单付款验证(Simple Payment Verification,简称SPV)。SPV可用于小的客户端,比如手机上的比特币应用程序(APP)。SPV节点不需要对其不感兴趣的交易做验证,它们只校验区块的标题。SPV客户只看他们感兴趣的交易,并确信是在最长的区块链内,并不担心该链是否是最长的有效链。因为他们假定矿工在创建该区块链并花精力去挖矿之前,已经验证过里面的交易了。
也许,可以扩展比特币的脚本让它能验证侧链里某些特殊的交易(比如销毁一个侧链币的交易)。在比特币里使用这种延展命令的节点,仍然会全面验证比特币的区块链,但是在侧链里,可能只会验证相对轻量级的SPV。
对一个交易提出异议
这种方法要好一些,但仍不完美。即使做最简化的验证,比特币的节点仍然要链接到侧链的点对点网络(每个链接上比特币的侧链都需要如此),并且追踪所有侧链区块的标题用于决定侧链最长的分支。最终我们想要的是:当一个交易要把侧链的货币转化成为比特币时,它本身就包含比特币节点需要的用于验证其合法性的所有信息,也就是说,验证特定的侧链是真实发生的。这就是SPV证明的定义。
网友评论