作者:DaPangDun,Mirror
谈到BTC生态,不可避免的要涉及BTC的“跨链”,与EVM生态不同,因为BTC主网没有图灵完备的智能合约能力,因此暂时无法用类似于EVM生态那样的跨链方案。
本文我将把BTC常见的跨链方式进行通俗介绍,并简要分析其安全性。
多签是一个需要多个人的私钥签名才能够实现交易的技术形式。
一般的钱包,我们只需要使用自己的私钥签名就能够实现交易,这种被称为1-of-1的形式。对于多签钱包,因为需要多个人的私钥签名,因此增强了安全性;同时,因为可以采用m-of-n的形式(比如5个人,只需要其中3个人的签名即可),降低了单点故障的风险。
多签桥通俗理解就是我们将钱打入这样一个多签地址,然后在对应的链中生成一个映射的资产或份额证明。
注意:在做安全性分析时,我们均排除“黑客风险”“技术代码漏洞风险”
多签的最大风险是组成多签的这部分人/个体/机构的风险。
MS-1:一般的多签桥
安全分析:风险主要来源于多签人的构成,如果多签全部或主要由项目方相关人员把控,表面上用户看到的是多签,实际上跟“单签”没区别。
MS-2:选定有背景的个人/机构的多签桥
安全分析:这种情况下安全性会好很多,相当于有背景的多签,人为作恶可能性会降低(考虑到名声等因素),但如果可能的利润足够大,多方依然有联合作恶的可能,引入受法规监管的机构会更好点。
MS-3:去中心化的多签人+随机选取的多签桥
安全分析:很多人担心多签人的构成,那么引入足够多的多签人,争取“多签人去中心化”,然后在实际的操作过程中随机抽取多签人作为验证者,那么这种安全性又会高一些;不过我们需要观察这个“去中心化”的程度和真实性,否则又只是表面上的东西。
这是一种使用被称为多方计算 (MPC) 的技术来保护交易的方案。
简单来说,多签方案需要多个人的私钥签名,而MPC方案是将一个私钥拆分为很多部分,加密之后分配给多个个体,当需要交易的时候,一个个体提出来,然后大家都用同样的函数算法计算后结合在一起就可以批准交易。这个技术也可以和多签结合起来,即使用N中的M个就可以组建有效签名。
MPC方案相对于多签是更新的技术,当然也有不少的争议。比如“可问责性”,对于外人来看,MPC签名的各个部分是无法区分到底是谁做的,所以一旦出问题如何追责是一个很大的问题。
MPC与多签类似,但也有所不同;最大风险是组成MPC的节点的风险,还有就是计算函数参数的泄露风险。
MPC-1:一般的MPC
安全分析:组成MPC的节点都是项目方的或者是利益相关的,那么随时都有rug的可能。
MPC-2:选用有背景的个人/机构等作为节点
安全分析:安全性相对会好很多,但同样的,如果可能的利润足够大,多方依然有联合作恶的可能。
MPC-3:引入去中心化节点并充分采用TEE环境
安全分析:如果充分引入去中心化的见证者,然后随机选取,在TEE内进行签名,相对来说安全性又会高不少。
同时,可以引入随机选取函数、隐藏见证人信息等各个方式来提升其他维度的安全性。
统一风险:TEE参数泄露
如果在生成计算函数的时候TEE参数被泄露,或者作为节点的TEE环境被攻克或者恶意泄露,那么整个安全系统就失效了。
DLC是谨慎日志合约(Discreet Log Contracts)的简称。这个技术是由麻省理工学院的 Tadge Dryja 在 2018 年提出的,是一套简洁的断言机合约方案。
举例来说,A和B打赌,如果明天BTC价格到100,000那么A给B 1BTC,如果没到那么B给A 1BTC;然后他们在链下利用DLC生成这样的合约并且注资签名,但是这个交易是无效的,必须要有断言机的签名才能变成有效交易,断言机就相当于我们的oracle(类似link的作用),然后当断言机提供了信息然后签名了之后,DLC合约就会执行,比如BTC价格达到了100,000,那么注资里面的A 的1BTC就会转给B。
而且,有意思的是,DLC可以让断言机根本不知道合约内容是什么,断言机只需要提供数据就可以了,这样就能一定程度上避免断言机作恶的可能性。
DLC方案的主要风险在于断言机。
DLC-1:一般的DLC(项目方提供断言机)
安全分析:由项目方提供断言机,一般来说只在测试阶段使用,如果在正式网络这样使用的话,那么安全性完全取决于项目方的作恶意图。
DLC-2:引入第三方断言机
安全分析:这种情况下,安全性会提升,特别是当第三方比较知名的情况下,可能的问题是断言机遭受攻击报错的风险,当然,合谋的风险也还是有的。
DLC-3:引入多个第三方断言机
安全分析:这种情况下,安全性再得到提升,避免了单点故障的风险。
当然,我们还可以再其上加入其它的技术,比如op等来提升安全性。
DLC的方案还是比较有意思的,但是目前貌似还没有这种专业的断言机;并且,还有一个问题是:这种断言机需要罗列所有的可能性预先进行签名,从而才能在对应事件发生时触发合约,比较繁琐。
原则上时间锁并不属于“跨链”的范畴,它能实现的是“质押”功能,但是因为它能实现BTC上的原生质押并且质押之后可以通过其他方式生成凭证变相“跨链”,因此也放在这里一起讨论。
“时间锁” ,顾名思义,就是限定条件是与时间有关的锁。具体来说,就是必须有一个时间事件发生后才能打开的锁。BTC系统种有“绝对时间锁”和“相对时间锁”两种,前者是规定一个具体的时间点(比如一个日期或者一个区块高度)后解锁,后者是规定一个时延(比如过多少个区块的数量)后解锁。
举例来说,我们可以定义一笔钱必须在高度385421后才能花费,这是绝对时间锁;我们也可以定义一笔钱必须得到6个区块确认之后才能花费,这就是相对时间锁。
时间锁能实现的功能其实挺多的,比如:
1)强制存储。有点类似于定期存款的味道,怕自己拿不住,就放在一个具有time-lock脚本的地址里面,只有到时间才能取出来;
2)意外容灾。比如自己有BTC资产,但是担心自己出意外,可以配合多签来设定自己的私钥签名可以直接花费这个BTC,但是如果一年都没有动了,那么就可以由另外的几个私钥来花费这个BTC;
3)无信任的仲裁。比如争端事件,需要仲裁机构参与,那么可以设定一个相对时间锁的方式来提供这样无信任的仲裁介入方案。
4)……
时间锁因为技术很原生,而且对于BTC“跨链”范畴来说主要是用于质押,而在质押上是到期解质押,控制权一直在用户手里,所以等同于主网安全性。
当然,有可能一些质押项目会有slash的措施,风险点就在于误报slash造成资产损失。
BitVM技术估计很多人都听过,简单来说,就是利用现有的opcodes进行组合,形成足够为BTC主网带来图灵完备(其实不能完全这样认为,准确来说是对现有需求足够“图灵完备”)能力的一种技术方案。
这个方案很晦涩,而且实现和落地过程都比较复杂,但是基于其有巨大的前景,依然有很多人看好。
对应跨链这个方向,如果可以基于BitVM实现ZK桥或者OP桥,那么就能和EVM系相同了。
如果能实现,安全性也是毋庸置疑的,但是需要观察落地情况,目前来说比较难。
Covenants,中文译作「限制条款」,有时也翻译为「契约」,是一种能够给未来的比特币交易设置条件的机制。
你可以理解为这些都是BTC系统中的操作码,包括现有的、还在审核的、已经被弃用的等等。这些脚本操作码是形成BTC扩展能力的关键。我们很自然可以想到,如果我们可以多启用一些操作码,是不是就可以提升扩展性从而实现比如原生的跨链了呢?
这个观点是没问题的,但是引入新的操作码,或者是引入新的限制条款也可能会导致一些计划外的滥用或漏洞,因此社区对此也比较谨慎。
另外,限制条款的升级也需要涉及到共识规则的软分叉升级。鉴于 taproot 升级时的情形,限制条款相关的升级可能也需要很长时间来完成。
比如最近呼声很高的OP_CAT一旦通过确实能够提升BTC的扩展能力,但是其潜在的未知风险让通过的可能性不大。
事实上,暂时无法分析这种方案的安全性,因为暂时还是没有方案的,只是一种可能性,不过从原理上来说,如果这种方案能够落地,相对是比较原生的,安全性比较高。
从BTC的跨链方式的多样性我们可以看出,行业内人员在通过各种各样的方式来尝试解决这个问题。因为扩展能力的不足,所以很多“奇技淫巧”都在被挖掘出来。
当前主要的跨链是通过多签来实现的,虽然一般的多签方案潜藏着资产风险,也不大符合“自己掌握资产控制权”的理念,但是因为其相对简单,体验方便,是很多项目的首选方式,我们也能看到一些项目基于多签的优化方案等。
不过,可喜的是,我们也能在BTC生态发展中看到越来越多原生的跨链方案,它们很侧重“资产安全性”,毕竟“BTC是最优质的的资产”的概念是深入人心的,安全的跨链才能够让BTC持有者放心的投入进来。
这一方面的具体项目和技术解析,可以多看看极客web3的一些推文。
来源:金色财经