为方便数字资产在不同区块链间互相转移,侧链(Sidechain)技术应运而生。简单地说,侧链就像是一条条通路,将不同的区块链互相连接在一起,以实现区块链的扩展。侧链完全独立于比特币区块链,但是这两个账本之间能够“互相操作”,实现交互。
简介在侧链技术的研究方面,Blockstream是较为领先的一个公司。2014年10月,以亚当为首的开发团队正式发布了侧链白皮书,2015年6月,Blockstream宣布将为其侧链项目发布一个开源代码库和测试环境。
侧链白皮书中提出了一种新技术——“楔入式侧链”,通过它可以实现不同区块链间资产的互相转移。由于侧链是独立的系统,因此技术与理念上的创新不会受到主链的局限,即使出现创新失败或者恶意攻击,所受的损害也只限于侧链本身。
本质上,区块链是不同数字价值的载体,而侧链技术则是连接不同区块链的通路。现在还不能断言最终成熟的侧链技术形态,甚至我们也不知道未来真正大规模应用于区块链间连接的技术是否会以“侧链技术”的名义出现,但侧链技术的理念及核心功能的发展与成熟是毋庸置疑的。1
原理“无需信任”指的不依赖外部的可信方也可完成正确的操作的特性,一般是能够让所有参与方自己验证信息是否正确。例如,密码学签名系统中,“无需信任”是一个隐式的必要条件(如果攻击者能伪造签名,那么这个签名系统将被视为被完全破解)。虽然分布式系统中一般不需如此,但比特币在系统的大部分中提供了“无信任”操作。
“楔入式侧链”的一个主要目标是在比特币系统模型之上最小化附加的信任。难点是币在侧链间的安全转移:接收链必须能得知发送链的币已被正确锁定。在比特币的领导下,我们提议用DMMS来解决这一问题。尽管有可能利用一个简单基于信任的方案,引入固定数量签名者来验证币的锁定,但有很多重要理由让我们避免这种单点故障的引入:
信任个人签名者,并不仅仅意味期待他们做事诚实,他们还必须永远不出漏洞、永远不会泄露关键的秘密、永远不会被挟持、永远不会停止参与网络。
由于数字签名是长期存在的,对任何信任的要求也必须如此。经验告诉我们,即使时间跨度只有几个月,信任需求也是一种危险的期待,更何况我们所期望的金融系统所能持续的时间长达几个世代。
在比特币系统消除了单点故障前,数字货币一直没有什么吸引力,社区强烈反对引入这种弱点。2007年以来的金融事件更加强了社区的不信任;对金融系统和其他公共机构的公共信任也同样处于历史的低点。1
优势独立性侧链架构的好处是代码和数据独立,不增加主链的负担,避免数据过度膨胀,实际上是一种天然的分片机制。 侧链有独立的区块链,有独立的受托人或者说见证人,同时也有独立的节点网络,就是说一个侧链产生的区块只会在所有安装了该侧链的节点之间进行广播。
独立性既是优点,也是缺点。开发者完成了dapp的开发工作之后,还要考虑运维,也就是说要寻找足够的节点来运行它,否则难以维持足够的安全性。 从这一点来看,与以太坊相比,是缺陷,以太坊上一旦发布一个dapp,所有的节点都可以为它工作,并为它提供安全保障。1
灵活性但是侧链架构依然有存在的必要性,因为并非所有的应用都需要那么高的安全性。Asch给用户提供了一种可以选择的灵活性。 比方说,假设asch有1000个节点,那么其中有的dapp比较重要,需要500个节点来运行它,有的dapp不那么重要,可能只需要100个节点,这完全是由用户和开发者决定的。 在以太坊上,则只能选择一种,即全部节点都来运行它。据说以太坊也打算实现一种分片的机制,实际上这在asch系统中是一个早就解决了的问题。 另外,对于比较重要的、安全性要求较高的应用,我们依然可以选择在主链上开发,但是不可能对所有开发者开放这种权力,还是为了避免主链的膨胀和不可控(DAO事件)。
侧链的灵活性还表现在,所有的区块链参数是可以定制的,简单的比如区块间隔、区块奖励、交易费的去向等,高级用户还可以修改共识算法。 不过最重要的还是业务逻辑,侧链上可以轻易的开发出与你的业务相关的交易类型或者智能合约。 这一点是与侧链的发明者blockstreams不同,blockstreams的侧链,只是一个不同的货币系统而已,开发新型交易和智能合约很不容易。1
缺陷侧链给加密货币领域中的很多问题提供了解决方案,为比特币系统的革新带来数不清的机会,但同时,侧链本身也并非没有缺陷。本节我们将审查一些潜在问题,并附以解决方案或变通方案。
复杂度侧链在以下几个层面引入了额外的复杂度。
在网络层面,我们有了许多独立的、非同步的区块链,支持相互间转移。它们必须支持可被后期重组证明宣布失效的交易脚本。我们还需要软件自动检测不正当行为,以及生成并发布相关的证明。
在资产层面,简单的“一条链,一种资产”准则不复存在了;单条链可以支持任意多的资产,甚至包括该链首次被创建时还不存在的资产。这些资产的每一个都要标记上该资产的来源链,以确保资产的转移可以被正确地解析。
仅让区块链基础架构能处理高级功能是不够的:管理钱包的用户界面也需要重新考虑。目前,在竞争币的世界中,每条链都有自己的钱包,用以支持该链上币的交易。需要改写这些钱包以便支持多个链(可能带有不同的功能集)和链间资产的转移。当然,如果令用户界面过于复杂,完全可以选择不使用某些功能。
欺骗性转帐理论上,任意深度的重组都是有可能的,这让攻击者能制造一个比发送链的竞赛期时间长的重组、在发送链撤消该半侧的转帐前,将币在侧链间完全转移。结果将使接收链上币的数目与发送链上可赎回的锁定输出的数量不对等。如果允许攻击者将币转移回初始链,他将增加他自己币的数量,让该侧链上其他用户付出损失。
在讨论如何处理这一问题前,我们注意到,通过简单地延长转移的竞赛期就可以使这种风险变得任意小。那好,可以用两条链的相对哈希算力生成一个函数来决定竞赛期的持续时间:接收链可以仅在见到一个等同于该链1天工作量的SPV证明时才解锁币,这一证明可能相当于发送链上几天的工作量证明。类似这样的安全参数是特定于侧链的属性,可以针对每个侧链的应用进行优化。1
挖矿中心化的风险一个重要的顾虑是,引入带有矿工费的侧链是否会给矿工资源带来压力,产生比特币系统(挖矿)中心化的风险。
由于矿工们收到的报酬,来自于其所工作的各链的区块补贴及交易费,出于经济利益,他们会根据难度变化和市场价值变动,切换到价值上差不多的不同区块链,为之提供多方成员动态签名(DMMSes)。
我们的答复是,一些区块链已稍稍改进了区块眉的定义,使其中包含一个比特币系统DMMS,因而,矿工能把提交给比特币系统的DMMS同样用于一个或多个其他区块链——这称为合并挖矿。因为合并挖矿允许将工作量复用到多个区块链上,矿工可以从每个他们提供了DMMSes的区块链上索取报酬。
由于矿工们要为更多的区块链提交工作,跟踪和验证全部这些链需要更多的资源。只为区块链的某一子集提交工作的矿工得到的报酬,比为所有可能的区块链都提交工作的矿工少。小规模的矿工可能无法支付为每个区块链挖矿的全部成本,因而与较大的有组织的矿工相比,会处于劣势,后者能从更大的区块链集合中索取更多的报酬。
不过,我们注意到,矿工们可以将其所工作的任何区块链子集上的验证和交易选择委派出去。选择委托机构能使矿工免除几乎所有对额外资源的需求,或者能为仍处于验证过程的区块链提交工作。然而,这种委派的代价是区块链上验证和交易选择的中心化,即便工作量生成本身仍是分布式的。不过,矿工们也可以选择不为仍处于验证过程的区块链工作,用自愿放弃一些报酬来提高验证过程的去中心化。1
软分叉风险比特币系统中,软分叉是对比特币协议的一个补充,通过在设计上严格缩减合法交易或区块的集合来实现向后兼容。软分叉的实现只需挖矿算力中的绝大多参与即可,不需要所有的完全节点都参与。不过,对于软分叉出来的功能,除非所有完全节点都升级,否则参与者的安全性仅是SPV级。软分叉已经被使用过很多次,用于部署新功能和修复比特币系统中的安全问题。
按本文所述方法实现的双向楔入仅有SPV安全性,因此,对矿工诚实性的短期依赖度高于比特币系统。不过,如果双方系统的所有完全节点都相互检查,并用一个软分叉规则要求相互的合法性,那么,双向楔入的安全性可以提升至完全等同于比特币系统的水平。
这种方式的负面影响是,失去了对任何有软分叉需要的侧链的隔离。由于隔离是使用楔入式侧链的目标之一,除非某一侧链已经几乎被普遍使用,这种结果将是不受欢迎的。不过,假设没有楔入式侧链,接下来的备选方案是直接对比特币系统硬分叉来部署单个的变更。这会更唐突,无法提供真实的机制证明新功能成熟,还需要冒比特币系统共识上的风险。1
应用竞争链实验第一个应用,前面已经提及多次,就是简单地创建一条竞争链,该链上币的稀缺性由比特币系统来提供。通过利用一条不用全新货币,而是承载比特币的侧链,避免了初始分配、市场脆弱性、以及新用户接纳障碍等棘手问题,新用户不需要再去找寻值得依赖的市场,或投资于挖矿硬件以获取竞争币资产。
技术实验
由于侧链在技术上仍是完全独立的链,它们能改变比特币系统中诸如区块结构或交易链等功能。下面例举一些这样的功能:
过修复不期望有的交易可锻性——在比特币系统中只能被部分修复[Wui14]——可以更安全地执行与链上未确认交易相关的协议。交易可锻性是比特币系统中的一个问题,会让随便一个用户以某种方式微调交易数据,尽管交易的实际内容并未发生改变,但依赖于它们的后续交易会遭到破坏。概率性支付[Cal12]就是一例可被交易可锻性破坏的协议。
提高支付者的隐私性,例如Monero(XMR)中使用的环签名方案,可以减少特定方的交易被审查的系统风险,保护加密货币的可置换性。Maxwell、poelstra[MP14, Poe14b]和Back[Bac13a]对此提出的改进能容许更高的隐私性。目前,可以用Menora币来使用环签名方案,但比特币不能使用;侧链将会避免这种排它性。
在比特币系统中提出过的脚本扩展(例如,对彩色币[jl213]的有效支持)。由于这样的扩展仅仅对小范围的用户有用,但使所有用户都要因此而应对提高了的复杂度和不易察觉的交互影响造成的风险,因而这些扩展在比特币系统中没被接受。
其他建议的扩展包括对新的密码学原语的支持。例如,兰波特(Lamport)签名,虽然大,但安全性可以对抗量子计算机。
由于这些变革影响的只是币的转移,而不是币的铸造,没必要为它们准备一种独立的货币。使用侧链,用户可以安全地、临时性地尝试这些变革。这促进了对侧链的采纳,与使用一种完全独立的竞争币相比,采用侧链时,参与者的风险更小。
经济实验
比特币系统的奖励机制是把新币分配给矿工。这实际上使货币膨胀,不过,它会按一个阶梯式时间表随时间推移而逐步下降。用这种通胀来补贴挖矿是对交易费的一个成功补充,用以保障网络安全。
在侧链上获取区块奖励的另一种机制是滞期费,这是由Freicoin(http://freico.in)首创的用于数字货币的一个想法。在滞留型(demurring)加密货币中,所有未花费的输出将随时间推移而减值,减少的价值被矿工重新采集。这在保证货币供给稳定的同时,还能给矿工奖励。与通货膨胀相比,这或许能更好地与用户利益保持一致,因为滞期费的损失是统一制定并即时发生,不会像通胀那样;它还缓解了因长期未使用的“丢失”币以当前价起死回生可能给经济带来的冲击,在比特币系统中这是一种能意识到的风险。滞期费建立了提高货币流通速度和降低利率的激励机制,这被(例如Freicoin的拥护者和其他西尔维奥・格塞尔利息论的支持者[Ges16])认为对社会有益。在楔入式侧链中,可以用已有价值的货币将滞期费支付给矿工。
其他与经济相关的变革,包括所需的矿工费、交易可逆性、当输出达到一定的币龄就简单地将其删除、或者是将通胀率/滞期费率楔入至侧链外的事件。所有这些变革都很难安全地来进行,不过,由于侧链易于创建并降低了风险,这给变革提供了必要的可行环境。1
资产发行在这一点上,大多数情况下,我们认为侧链不需要自己的原生货币:所有侧链上的币最初都被锁定,直到来自其他某条侧链的资产转入将其激活。不过,侧链也可以制造自已的代币,或是带有自己语义的资产发行。它们可以被转移给其他侧链来换取其他的资产和货币,整个过程不需要对中心方有信任,即使将来赎回时对可信方有需求。
资产发行链有很多应用,包括传统的金融工具,如股票、债券、凭证和白条等。这使得外部协议可以将所有权及转帐记录跟踪等授权给发行所有者股份的那条侧链。发行资产链还可支持更多的创新工具,如智能财产。
这些技术还可在补充性货币[Lie01]中使用。补充性货币的例子包括:社区货币,设计目的是优先推动当地企业;企业易货协会,支持教育或老年护理之类的社会方案;限定用途的代币,在组织机构内部使用,比如大型多人游戏、客户忠诚度计划、在线社区。
一个合适的脚本扩展系统和一个资产可识的交易,能从良好审计的组件中,创建出有用的交易,比如将一个出价和报价合并为一个汇兑交易,能为资产交换以及无信任期权(FT13)这样的复杂合同创建完全无信任的点对点市场。这些合同可能会有所帮助,例如减少比特币本身的波动性。1
本词条内容贡献者为:
肖志勇 - 副教授 - 江南大学