最近,区块链技术引起了广泛关注。虽然区块链技术目前正在快速发展,但是传统区块链技术要落地到商业应用,特别是金融应用,仍然存在很多问题需要解决,如交易性能、隐私保护等。解决这些问题的一种做法是重新开发新的区块链,但是这种做法会造成大量重复性工作,并且需要不断的发行新的数字资产。那么是否存在在不影响原有区块链工作的基础上,依托于原有区块链进行技术升级的解决方案,侧链就是在这种需求背景下被提出的。本文首先介绍了侧链的基本概念,接着分析了侧链的产生背景与工作原理,最后对目前主要存在的侧链进行了介绍。
基础概念
侧链协议本质上是一种跨区块链解决方案。通过这种解决方案,可以实现数字资产从第一个区块链到第二个区块链的转移,又可以在稍后的时间点从第二个区块链安全返回到第一个区块链。其中第一个区块链通常被称为主区块链或者主链,每二个区块链则被称为侧链。最初,主链通常指的是比特币区块链,而现在主链可以是任何区块链。侧链协议被设想为一种允许数字资产在主链与侧链之间进行转移的方式,这种技术为开发区块链技术的新型应用和实验打开了一扇大门。
技术上的细节比较难理解。我的理解是目前的交易所、在线钱包等等实际上也属于所谓的侧链应用,只不过它们是中心化的、封闭的独立网络。想象一下,你把自己本地钱包里的比特币转账到交易所地址上,那么交易所这个封闭网络得到了这些币,于是交易所以自身信用为担保在平台上1:1等价地给你交易所账户上添加这些数目。然后你可以在交易平台上用交易所发行的“比特币”实时地与人进行交易、抵押借贷等等。交易所是比特币生态的重要应用,但它们存在这样那样的问题(跑路、被黑、亏空等等),它们是中心化的、封闭的独立网络。你的币充值到交易所以后实际上你就不能掌控这些币了,虽然它们名义上还是属于你的。而现在的侧链概念则实质上是一个类似于比特币的独立的、开放的分布式网络,与交易所这样的中心化的、封闭网络相反。
产生背景
2012年,在比特币聊天室中,首次出现了关于侧链概念的相关讨论。当时比特币的核心开发团队正在考虑如何可以安全的升级比特币协议,以增加新的功能,但是直接在比特币区块链上进行功能添加比较危险,因为如果新功能在实践中发生软件故障,则会对现有的比特币网络造成严重影响。另外,由于比特币的网络结构特性,如果进行较大规模的改动,还需要获得多数比特币矿工的支持。
这时,比特币核心开发者便提出了侧链方案。
这种技术允许开发人员将新功能附加在其他的区块链,但是这些区块链仍然附着在现有比特币区块链上。这些区块链中新功能可以充分利用现有比特币的网络特性,而不会对现有的比特币网络造成危害。
2014年,这时已经出现了许多具有新功能的区块链,并产生了各种竞争币,如莱特币、狗狗币等。这时,比特币的核心开发团队担心这些竞争币的产生会稀释比特币的价值。他们认为,应该把比特币作为一种储备货币,并将新功能添加到侧链上。这样如果用户想使用其他的新的区块链功能,就不需要购买其他代币。
“侧链最大的优势是可以让用户访问大量的新型服务。例如,你可以将比特币移动到另一个区块链上,从而利用相应区块链的隐私特性、更快的交易速度和智能合约。”
为了将侧链由概念转化成现实,Adam Back、Matt Corallo等比特币核心开发者共同发起成立了Blockstream公司,并在同年十月,发布了白皮书《Enabling Blockchain Innovations with Pegged Sidechains》,首次明确提出了侧链的概念及其协议实现方案。
通过侧链,可以在主链的基础上,进行交易隐私保护技术、智能合约等新功能的添加,这样可以让用户访问大量的新型服务,并且对现有主链的工作并不造成影响。另外,侧链也提供了一种更安全的协议升级方式,当侧链发生灾难性的问题时,主链依然安然无恙。
侧链机制,简单的说,就是一种使货币在两条区块链间移动的机制。
小明:我有一个比特币地址和一个莱特币地址,我可以把比特币发到莱特币地址么?小亮:莫开玩笑,比特币,莱特币是两条独立的区块链,这怎么可能?老师:小亮同学说的对,比特币,莱特币是两条独立的区块链,现在比特币不能发到莱特币地址,小明同学的想法很有创意,如果莱特币块链成为比特币的一个侧链后,比特币就可以发到莱特币地址。同理如果比特币成为莱特币的侧链,莱特币也可发送到比特币地址。(作者:黄洪清)
实现方案
侧链实现的技术基础是双向锚定(Two-way Peg),通过双向锚定技术,可以实现暂时的将数字资产在主链中锁定,同时将等价的数字资产在侧链中释放,同样当等价的数字资产在侧链中被锁定的时候,主链的数字资产也可以被释放。双向锚定实现的最大难点是协议改造需兼容现有主链,也就是不能对现有主链的工作造成影响,其具体实现方式可以分为以下几类:
(一)单一托管模式
最简单的实现主链与侧链双向锚定的方法就是通过将数字资产发送到一个主链单一托管方(类似于交易所),当单一托管方收到相关信息后,就在侧链上激活相应数字资产。这个解决方案的最大问题是过于中心化。图1给出了以比特币为主链的单一托管模式的工作原理示意图:
(二)联盟模式
联盟模式是使用公证人联盟来取代单一的保管方,利用公证人联盟的多重签名对侧链的数字资产流动进行确认。在这种模式中,如果要想盗窃主链上冻结的数字资产就需要突破更多的机构,但是侧链安全仍然取决于公证人联盟的诚实度。图2给出了以比特币为主链的联盟模式的工作示意图:
单一托管模式与联盟模式的最大优点是它们不需要对现有的比特币协议进行任何的改变。
(三)SPV模式
SPV(Simplified Payment Verification)模式是最初的侧链白皮书《Enabling Blockchain Innovations with Pegged Sidechains》中的去中心化双向锚定技术最初设想。SPV是一种用于证明交易存在的方法,通过少量数据就可以验证某个特定区块中交易是否存在。
在SPV模式中,用户在主链上将数字资产发送到主链的一个特殊的地址,这样做会锁定主链的数字资产,该输出仍然会被锁定在可能的竞争期间内,以确认相应的交易已经完成,随后会创建一个SPV证明并发送到侧链上。此刻,一个对应的带有SPV证明的交易会出现在侧链上,同时验证主链上的数字资产已经被锁住,然后就可以在侧链上打开具有相同价值的另一种数字资产。
这种数字资产的使用和改变在稍后会被送回主链。当这种数字资产返回到主链上时,该过程会进行重复。它们被发送到侧链上锁定的输出中,在一定的等待时间后,就可以创建一个SPV证明,来将其发送回主区块链上,以解锁主链上的数字资产。SPV模式存在的问题是需要对主链进行软分叉。图3给出了以比特币主链的SPV模式的工作流程示意图:
(四)驱动链模式
驱动链概念是由Bitcoin Hivemind创始人Paul Sztorc提出的。在驱动链中,矿工作为‘算法代理监护人’,对侧链当前的状态进行检测。换句话说,矿工本质上就是资金托管方,驱动链将被锁定数字资产的监管权发放到数字资产矿工手上,并且允许矿工们投票何时解锁数字资产和将解锁的数字资产发送到何处。矿工观察侧链的状态,当他们收到来自侧链的要求时,他们会执行协调协议以确保他们对要求的真实性达成一致。诚实矿工在驱动链中的参与程度越高,整体系统安全性也就越大。如同SPV侧链一样,驱动链也需要对主链进行软分叉。图4给出了以比特币为主链的驱动链模式的工作流程示意图:
(五)混合模式
上述所有的模式都是对称的,而混合模式则是将上述获得双向锚定的方法进行有效的结合的模式。由于主链与侧链在实现机制存在本质的不同,所以对称的双向锚定模型可能是不够完善的。混合模式是在主链和侧链使用不同的解锁方法,例如在侧链上使用SPV模式,而在主链网络上则使用驱动链模式。同样,混合模式也需要对主链进行软分叉。
典型范例
目前,比较著名的侧链包括基于比特币网络的侧链BTC Relay、Rootstock的Liquid,以及非比特币的侧链如Lisk和国内的Asch等。
BTC Relay是由ConsenSys的推出的基于以太坊区块链的智能合约的侧链解决方案。BTC Relay把以太坊网络与比特币网络以一种安全去中心化的方式连接起来。BTC Relay通过使用以太坊的智能合约功能允许用户在以太坊区块链上验证比特币交易。以太坊DApp开发者可以从智能合约向BTC Relay进行API调用来验证比特币网络活动。
Liquid是Blockstream的开源侧链项目,使用了比特币双向锚定技术,Liquid目的是实现使得比特币可以在主链和侧链中互转,旨在提高隐私性、降低成本、加速交易所和经纪商之间的价值转移及结算流程。
Lisk是一个致力于为JavaScript开发者提供创建分布式应用程序的区块链平台,由德国的Max Kordek和Oliver Beddows于2016年初成立。它把每一个分布式应用程序都会在其自己且独一无二的区块链,也就是侧链上运行,这种封装使得主要的Lisk的主网高效,迅速和精简Asch是国内推出的一个基于侧链技术的去中心化应用平台,由单青峰于2016年初成立。Asch平台提供的服务包括一个主链和一套应用软件开发工具包。Asch的主链主要负责构建基础设施、应用间的数据共享以及资产路由,应用软件开发工具包内置了侧链协议,主要负责构建具体的应用,通过侧链协议可以与主链进行资产互通。
总结
侧链是以融合的方式实现加密货币金融生态的目标,而不是像其它数字资产一样排斥现有的系统。侧链技术进一步扩展了区块链技术的应用范围和创新空间,使传统区块链可以支持多种资产类型,以及小微支付、智能合约、安全处理机制、财产注册等,并可以增强区块链的隐私保护。利用侧链,我们可以轻松的建立各种智能化的应用如金融合约,股票、期货、衍生品等。
补充阅读
几点说明
1、比特币在侧链里流通时还是比特币,侧链的比特币与主链的比特币通常是1比1的汇率,也可能有预定的汇率。2、侧链的挖矿不能产出比特币,侧链可能有自己的币,也可能没有自己的币,仅是为了比特币的流通。3、侧链可能是对等的和非对等的。对等的侧链独立存在,其也可成为主链。主侧是相互的,如果有足够的需求,比特币也可成为莱特币的侧链。非对等侧链依赖主链而存在。4、去中心化没改变,每个人或公司都可创建自己的比特币侧链,用户和矿工认同的会成为主流。5、当然侧链要有足够的算力保证侧链的可靠和安全。6、侧链白皮书提出了清晰的侧链框架,具体侧链怎么实现容许设计者自由发挥。
侧链可能实现的一些创意想法
1、滞留费即长期不移动的币随着时间的推移将减值,减去的金额回馈矿工。比如超过1年不动的币,每年减值10%。现在的比特币网络,时常有大户丢失密钥,相应的币也就丢了。这将降低比特币经济体货币的充足性和流动性,被认为是比特币潜在的一个风险。通过滞留费,鼓励货币流动,激励矿工,也可回收一些因丢失密钥丢掉的币。2、新的挖矿所得约定矿工的算力如果威胁到网络安全,将扣发挖矿所得。比如,算力超过50%的矿工没有奖励,这样可约束矿工节制算力,防止51%攻击。3、挖矿所得延期支付约定。现在,矿工挖到矿后立即得到奖励和交易费。这个约定把挖矿所得延期支付。 比如:在挖到矿的100个区块后支付挖矿所得。这有助于激励矿工维护网络的正常运作。4、定期可动用地址。新增一种与时间有关的地址。只有到了特定的时间才可动用该地址的币。比如人们可以把10个币发到这类型地址,设定10年后用。时间没到时,任何人,包括拥有者,也不能动里面的币。
这只是部分的创意想法,你可能也有自己的创意,比特币社区的创意点子是层出不穷的。每种创意都有这样那样的优点缺点,侧链,为我们提供了一个无碍测试和升级的机制。
作者:王晓韡来源:待字闺中