一.侧链的兴起
每个技术的诞生,必定是以解决行业上的痛点为出发点。
最近,币圈牵动人心,相信很多人都知道比特币的存在,中本聪大神的存在,继而很多人去研究区块链和比特币,其他竞争链(或称竞争币)也乱象丛生。各种竞争链的加入,也引来相当多的问题,对整个区块链生态体系带来了很多不稳定因素。那侧链能帮我们解决哪些问题呢?比如:
1.各种竞争链基础架构碎片化
2.竞争链引起恶性竞争和市场博弈,给区块链生态带来阻碍或以至于消亡的可能
比特币是一个支持单一原生数字资产传输的区块链,不能与其他任何资产相兑换,目前结合比特币的一些特性,在区块链上的各种创新如下:
1.扩展和研究更多的加密算法,降低数据加密的风险
2.让技术更好的服务于日常生活,使得非货币资产也能纳入链上交易(例如:合同、欠条等)
3.新技术的引入及扩展的算法、功能,更好的助力升级区块链生态中的安全和性能
4.选择合适的业务场景或优化,具备更强化(或者极端)的按需取舍
5.在去中心化和扩展性间的择衡
三.设计原理
无需信任是侧链设计的基础
“无需信任”指的不依赖外部的可信方也可完成正确的操作的特性,一般是能够让所有参与方自己验证信息是否正确。
定义:
币(coin),或资产,是一种可以用密码学方法辨识控制者的数字财产。
区块,是一个描述资产控制发生变化的交易的集合。
区块链,是一个有序次的区块的集合,所有用户必须(或最终)对该集合达成共识。这确定了资产控制的历史,提供了一个计算上无法伪造的交易时序。
重组,或称reorg,发生在客户端本地,当先前已接受的链被一个有更多工作量证明的竞争链取代时,分叉上失败一方的区块要从共识历史中移除。
侧链,是验证来自其他区块链数据的区块链。
双向楔入,指的是让币以一个固定或确定性的汇率在侧链间转出和转入的机制。
楔入式侧链,是一条资产可以从其他链导入并返还的侧链;即,一条支持双向楔入资产的侧链。
简单支付验证证明(或称SPV证明),是一种动态成员多方签名(DMMS),发生于一条类比特币系统工作量证明(proof-of-work)区块链上。(后面章节详细介绍)
四.侧链遵守的规则
侧链要解决上面提及的问题,以及要带来上面的创新,其必定具备相关的属性和遵循相关规则:
1.在侧链间移动的资产应当能够被当前持有者移回,但除此之外的任何人则不行(包括前持有者)。
2.资产的移动应当无交易对手风险;也就是说,不诚实的一方无法阻止转移的发生。
3.资产转移应当是元操作(原子操作),即,要么完全完成,要么根本不发生。不应存在会导致资产损失或允许欺诈产生的失败模式。
4.侧链应当设有防火墙:一个会使某条链发生资产铸造(或偷盗)的缺陷(bug),不应导致任何其他链出现资产的铸造或偷盗。
5.区块链重组时应当处理干净,即使在资产转移的期间也要如此;任何破坏应当只发生在它所处的侧链上。总的来说,理想情况下,侧链应当完全独立,自其他链上的全部所需数据由用户提供来。侧链的验证者应当只有在侧链本身的显式共识规则有要求时,才需要跟踪其他链。
6.不应要求用户去跟踪他们未主动使用的侧链。
五.双向锲入对称侧链
如下图,对称性侧链通过spv认证,获取到其他区块链的输出,在侧链本身流转和消费后,最后在返还至父链时,也通过spv认证的过程将等价的币返还父链,其中的关键点发生在币输出时确认期和竞赛期,其中,确认期的目的是生成足够多的工作量,竞赛期的目的是防止重组双花的出现。
什么是spv认证?
SPV是“Simplified Payment Verification”(简单支付验证)的缩写。
中本聪论文简要地提及了这一概念,指出:不运行完全节点也可验证支付,用户只需要保存所有的block header就可以了。用户虽然不能自己验证交易,但如果能够从区块链的某处找到相符的交易,他就可以知道网络已经认可了这笔交易,而且得到了网络的多少个确认。
按照中本聪的原文,这里有个细节需要注意,SPV指的是“支付验证“,而不是“交易验证”。这两种验证有很大区别。
“交易验证”非常复杂,涉及到验证是否有足够余额可供支出、是否存在双花、脚本能否通过等等,通常由运行完全节点的矿工来完成。
“支付验证”则比较简单,只判断用于“支付”的那笔交易是否已经被验证过,并得到了多少的算力保护(多少确认数)。
关于简单支付验证这里就不做太多说明了,想了解更多请关注以下链接 https://blog.csdn.net/jeason29/article/details/51611752
六.非对称式双向楔入
我认为非对称式双向楔入侧链没有研究的价值,其迫使侧链的验证者去跟踪父链,而且将意味着发生在父链上的重组也可能导致侧链上的重组
七.侧链的缺陷
疑问1:欺骗性转账不是很理解
疑问2:为什么侧链会带来挖矿中心化的风险?