说明,内容主要来自“侧链白皮书[全文]:用楔入式侧链实现区块链的创新”文中摘要及整理
一、侧链的背景
比特币系统自2009年诞生以来,一直为一个相对简单的目标存在:是支持单一原生数字资产转移的区块链,不能与其他任何资产相兑换。另一方面,因为比特币系统采取的基于工作量证明的共识机制、聚合区块的方法跟踪支付等历史初期就已经确定的现对简单的规则导致新增交易类型及变更部署都很难实施,而这一切正面临着诸多挑战:
1. 可扩展性和去中心化之间的取舍
2. 在区块链的功能上存在更多的取舍
3. 非货币资产在区块链上的交易
4. 比特币系统密码学组件一元化育成的风险
5. 新技术带来的新的功能
6. 比特币系统安全升级途径的缺失
因此,在早期对这些问题的一个解决方案是引入竞争链,即新的可替代的区块链开发,出针对上述的关注点修改外,同时共用了比特币系统的代码库。但本质上类似于比特币系统的竞争链同时引入了新的问题:
1. 基础架构碎片化
因为各竞争链本质上的类似,独立的技术堆叠导致功能上的重复或者遗失而不健全,更为突出的是比特币系统中安全特定领域中的问题并未得到解决,最终支离破碎,将会是一个无法稳定发展的系统。
2. 原生加密货币(或称竞争币)的存在
新的竞争币发行会因为市场竞争因素带来的高风险及波动性,以及阻碍技术创新及市场博弈等进一步危及到整个加密货币行业的健康发展。
在这里,一个稳定的环境极为重要:能够让相互操作的竞争链易于创建和使用,同时不会产生不必要的市场和开发碎片。而一个核心的解决思路是:“Bitcoin” 这一区块链在概念上是独立于“bitcoin”这一资产:如果我们能在技术上支持区块链间资产的移动,可以通过简单地复用现有比特币的方式,开发出用户可能会采纳的新系统。
这种可行互操作的区块链被称之为“楔入式侧链”,并具备以下属性:
(1)侧链间移动的资产能且仅能够被当前持有者移回
(2)资产的移动应当无交易对手风险
(3)资产转移应当是元操作(原子操作),即,要么完全完成,要么根本不发生。
(4)侧链应当设有防火墙
(5)区块链重组时应当处理干净,即使在资产转移的期间也要如此;任何破坏应当只发生在它所处的侧链上。
(6)不应要求用户去跟踪他们未主动使用的侧链。
二、基本概念及定义
开始进一步学习前,需要对一些概念及定义进行了解,这包括:
1. 父链和侧链
即相互操作的两个链,发起资产转移交易的第一个区块链称之为父链,接收资产转移的每二个链称为侧链。最初,主链通常指比特币区块链,而现在主链可以是任何区块链,侧链则是其他区块链中的某一个。
2. 楔入式侧链
是一条资产可以从其他链导入并返还的侧链;即一条支持双向楔入资产的侧链。
3. 简单支付验证证明(或称SPV证明)
1)简单支付验证(Simplified Payment Verification,简称SPV)是一种无须维护完整的区块链信息,只需要保存所有的区块头部信息即可进行支付验证的技术。本质上SPV证明是由一个展示工作量证明的(a)区块眉列表,和一个(b)表明某一输出发生在列表中的某一个区块的密码学证明所组成。
2)区块链支付验证与区块链交易验证的区别:SPV指的是区块链支付验证,而不是区块链交易验证。这两种验证方式存在很大的区别。区块链交易验证的过程比较复杂,包括账户余额验证、双重支付判断等,通常由保存区块链完整信息的区块链验证节点来完成。而支付验证的过程比较简单,只是判断该笔支付交易是否已经得到了区块链节点共识验证,并得到了多少的确认数即可。
4. 重组
或称reorg,发生在客户端本地,当先前已接受的链被一个有更多工作量证明的竞争链取代时,分叉上失败一方的区块要从共识历史中移除。
5. 侧链间转移的确认期,
是指数字资产在转移至侧链之前,在父链上必须被锁定的时间。
6. 竞赛期
这个期间,新转移过来的数字资产不能在侧链上花费。竞赛期的目的是防止重组时出现双花,在重组期间转走先前锁定的币。在这个延迟期内的任何时刻,如果有一个新的工作证明发布出来,对应的有着更多累计工作量的链中没有包含那个生成锁定输出的区块,那么该转换将被追溯为失效。
7. 软分叉
软分叉是对比特币协议的一个补充,通过在设计上严格缩减合法交易或区块的集合来实现向后兼容,以便部署新功能。
三、原理及技术基础
“楔入式侧链”的一个主要目标是在比特币系统模型之上最小化附加的信任。难点是币在侧链间的安全转移:接收链必须能得知发送链的币已被正确锁定。他的基本原理基于双向锚定,即可以实现暂时将数字资产在主链中锁定,同时将等价的数字资产在侧链中释放;同样等价的数字资产在侧链中被锁定的时候,主链的数字资产也可以被释放。
在技术实现上,基于SPV证明和双向验证流程:
用户在主链上将数字资产发送到主链的一个特殊的地址,这样做会锁定主链的数字资产,该输出仍然会被锁定在可能的竞争期间内,以确认相应的交易已经完成,随后会创建一个SPV证明并发送到侧链上。此刻,一个对应的带有SPV证明的交易会出现在侧链上,同时验证主链上的数字资产已经被锁住,然后就可以在侧链上打开具有相同价值的另一种数字资产。这种数字资产的使用和改变在稍后会被送回主链。当这种数字资产返回到主链上时,该过程会进行重复。它们被发送到侧链上锁定的输出中,在一定的等待时间后,就可以创建一个SPV证明,来将其发送回主区块链上,以解锁主链上的数字资产。基本流程如下图所示
这一模式同时也存在一些其他的限制:
(1)楔入式侧链可能会从很多链中搬运资产,且无法对这些链的安全性做出假定,因此,不同资产不可相互兑换是非常重要的(除非是一个显示声明的交易)。侧链必须有效地将不同父链中的资产处置为不同的资产类型。
(2)为了让比特币系统成为父链,需要有一个能识别和验证SPV证明的脚本扩展。最起码的要求是,这种证明需要做得足够小,以便能放进比特币系统一个交易之中。
四、问题及挑战
侧链方案本身会引入如下问题:
1.复杂度
1)在网络层面,许多独立的、非同步的区块链,必须支持可被后期重组证明宣布失效的交易脚本。
2)资产层面,简单的“一条链,一种资产”准则不复存在了;单条链可以支持任意多的资产,甚至包括该链首次被创建时还不存在的资产。这些资产的每一个都要标记上该资产的来源链,以确保资产的转移可以被正确地解析。
3)在竞争币的世界中,每条链都有自己的钱包,用以支持该链上币的交易。需要改写这些钱包以便支持多个链(可能带有不同的功能集)和链间资产的转移。
2.欺骗性转账
主要的风险在于:攻击者能制造一个比发送链的竞赛期时间长的重组、在发送链撤消该半侧的转帐前,将数字资产在侧链间完全转移。有多种技术或非技术方案可考虑,但有一点极为重要:不能因侧链的责任造成灾难性故障。
3.挖矿中心化的风险
存在一个顾虑:引入带有矿工费的侧链是否会给矿工资源带来压力,产生比特币系统(挖矿)中心化的风险。这一点很好理解:即由于矿工们要为更多的区块链提交工作,跟踪和验证全部这些链需要更多的资源。
4.软分叉风险
主要为安全性风险:软分叉的实现只需挖矿算力中的绝大多参与即可,不需要所有的完全节点都参与。不过,对于软分叉出来的功能,除非所有完全节点都升级,否则参与者的安全性仅是SPV级。
五、关联引申及问题
1.侧链技术作为对比特币系统的完善和新的生态分支的创建,是否会对现有完全独立于比特币系统的竞争链的存在产生削弱作用?
2.侧脸间的资产交换,尤其是各个原生货币的链间转移和兑换是否对现有交易中心的模式及演进有影响?
此处推荐两篇快速学习文章的链接:
十分钟讲清楚区块链侧链技术
链接地址https://sdk.cn/news/8146
区块链进阶:——简单支付验证(SPV)
链接地址https://weibo.com/ttarticle/p/show?id=2309404214314331470240