关于侧链你需要知道这些知识
虹桥大宝剑
发表于 2022-12-30 22:37:48
334
0
0
侧链这个概念,原生于比特币社区。我们知道如果想要在比特币网络上增加新功能,则需要社区达成高度共识,所以一直以来进度比较缓慢。为了迅速迭代加密货币的功能,人们的第一直觉是去创造一种新的加密货币,这样造成的结果就是:大家反复复制比特币代码,再叠加一点新功能,新项目就热腾腾出炉了。这不仅会导致加密货币种类泛滥,还会造成社区力量的涣散。
所以当时社区的小伙伴就在想有没有办法将所有的力量都汇聚在比特币上,将其他比特币实现不了的功能,通过侧链的形式附加到比特币网络上去。2012年前后,比特币社区中出现了一种“有去无回”式的one-way peg单向锚定技术,可以实现比特币的销毁和侧链代币的1:1释放。
! S. @* U8 |* G( x! B( L# K
有One-Way Peg,自然就会有two-way peg,也就是说要实现代币从主链转移到侧链,同时再从侧链回到主链。
2014 年10月22日,Adam Back[ Adam Back,哈希现金(Hash Cash)创始人,详情可见《喵懂区块链第七期|比特币诞生前,加密货币“死”了多少回?》]和他的小伙伴们Matt Corallo,Luke Dashjr,Mark Friedenbach,Gregory Maxwell[ Matt Corallo,Luke Dashjr,Mark Friedenbach,Gregory Maxwell均为比特币核心开发者。]等,发布了侧链技术白皮书 《Enabling Blockchain Innovations with Pegged Sidechains》,提倡大家通过创建侧链的形式来进行创新,初步展开了Two-Way Peg双向锚定形式的探索。
那么到底什么是侧链呢?
& ^6 o/ t* `: U% E9 P
首先,侧链并不是指具体的哪条链,而是一个协议,能让代币从主链“转移”到其他区块链,并且也能安全的从其他链返回到主链的协议就叫侧链协议。其次,我们所谓的“代币转移”并不是真的把币从一条链流通到另一条链,而是在一条链上锁定主链币,在另一条链上释放侧链币的过程。要实现这种双向转移(Two-Way Peg)的形式有多种,常见的包括Single Custodian(单一托管模式),Federated peg(多签联盟模式),SPV Proof(SPV证明模式),Drivechain(驱动链模式),Hybrid Models(混合模式),本文主要分析前三种类型。
% U" S# r- C+ y! ]0 X
1.Single Custodian(单一托管模式)* K! M% G7 V# K9 {% q" z8 P9 _. N
, P, _1 ]6 j* n# C% `, J
最简单得实现主链与侧链双向转移的方法就是将主链上的数字资产发送到一个托管方,类似于交易所的形式,当托管方收到相关信息后,就往侧链转移等价值的侧链币,反之亦然。这种形式相当简单粗暴,缺点也相当明显---中心化问题严重。
4 O8 o1 y) q `# m
2.Federated peg(多签联盟模式), M" ]) f8 E1 j/ f! B
. ]9 `7 u9 G o7 j( Q
多签联盟模式和单一托管模式的区别就是,中间的托管方不是一个,而是多个,每一笔交易需要M-of-N 多重签名确认(M-of-N解释:比如这个联盟是30个成员,一笔跨链的成功执行需要25个以上的确认,那就是25-of-30,这根据场景不同,规则不同)。这就避免单个公证人有一票否决权,削弱了权力的中心化(相对于第一种方案而言),反之亦然。
! a+ n' o3 c. J: w
3.SPV Proof(SPV证明模式)7 `' G4 u, C: [- {, Y$ ?0 i3 p
% R) r' J, A5 s* m3 x$ l3 q
这种模式是Adam Back侧链白皮书中着重探讨的方式(也是大家理想中的样子),我们举个例子讲一讲~
比如小A想要用1个比特币和小B兑换1个侧链代币,因为他要跨到遥远的另一条链上去,所以他的交易输出必须跟正常交易不一样,我们称之为“特殊的SPV输出”(SPV Lock Output),等这笔交易通过了Confirmation Period(确认阶段),被确认之后,矿工就会检测到这笔交易不一样,并把这笔交易的SPV Proof(SPV证明)[ SPV Proof,即Simple Payment Verification,简称SPV。SPV的目标是为了验证某个交易支付是否存在,以及得到比特币网络多少个确认(多少个区块)。]广播到侧链当中去,SPV Proof就是代表着:“hey,我们已经乖乖完成了主链上的扣款操作了,你抓紧在侧链上把相应的代币释放出来哦”( X5 W0 w6 C" o( ~# M, `
侧链矿工接受到该信息之后,就会在侧链上释放相应的代币,并将交易写入区块当中,经过reorganization period(重构阶段)之后,从主链到侧链的交易就正式完成了。) p2 Z6 z- s* \
2 }2 I6 t1 m" b; m8 h
关于Confirmation Period以及Reorganization Period,我们这里还可以扩展解释一下:比特币在交易经过一次确认之后,也就是当部分节点收到了打包了这个交易的区块之后,还不能保证交易的最终安全,因为在此之后,其他的分支可能会成为最长链,于是造成区块链的重新组织,造成打包了之前交易的那个区块成为孤块,之前确认的交易可能失效。为了防止以上可能性,于是我们要度过Confirmation Period以及Reorganization Period之后,才能保证交易的安全。
反过来,从侧链到主链的过程,也是一样的。
* C i8 S6 G( C6 }( g; }
虽然第三种方案看起来是最完美的trustless方案,但是Adam Back在侧链白皮书中也谈到:“One of the challenges in deploying pegged sidechains is that Bitcoin script is currently not
# O2 q7 ]$ h& P. t- q- ?
expressive enough to encode the verification rules for an SPV proof.” 简而言之就是部署检验SPV proof的规则是一个巨大挑战,这需要比特币实施软分叉,需要改动比特币的代码(比如增加一个OP_SPVProofverify操作码,但目前比特币代码中还未出现部署相关操作https://github.com/bitcoin/bips/ ... y-pegged-sidechains,这里需要提一句的是我们前文提到的“特殊的SPV输出”,就是特殊在这里,由于目前还没有具体案例,所以没法直接点出具体特殊的情况如何),而改动比特币代码而不是随随便便的事情,需要整个社区的高度共识,所以目前虽然我们在侧链上已经有了非常多的尝试,比如比特币的智能合约侧链RSK,Blockstream发布的比特币商用侧链Liquid等等都还是采用Federated peg(多签联盟模式)。4 L5 T- S4 G3 O( m- ~
例子详情:6 Z7 e, n2 e/ n/ _
, i0 m; V* P: L9 {. i! J, ~
1.RootStock RSK 的更新版的白皮书上上也可以看到,目前 RSK 也是使用了联合楔入的形式。(https://www.rsk.co/wp-content/up ... e-Paper-Updated.pdf)% ?5 F0 g/ W( Y) x
' |$ z$ Q0 J/ ]; k$ _
2.Liquid也是采用Feratedpeg形式,其联盟包括Bitbank、Bitfinex、BitMEX、OKCoin等在内的23家数字货币行业知名公司组成的。(https://blockstream.com/strong-federations.pdf)
成为第一个吐槽的人