作者:LKVenture
如今,以太坊占据着区块链行业基础设施的半壁江山,但是其主网的统治地位正在被许多后来者挑战。行业普遍的共识之一是,未来或将是多链共存的格局,跨链甚至全链则是多链生态中最关键的一环。
然而,如今连接各区块链网络的跨链桥安全问题频发,跨链生态似乎岌岌可危。ZKBridge的出现,将有效解决当前跨链方案的多种缺陷,让万链互联成为可能。
在北欧神话中,海姆达尔是一个神秘且重要的神祇,负责守卫连接神域与人间世界的彩虹桥——比弗洛斯特。如果我们把连接不同神域和人间世界的彩虹桥比作跨链桥,那么,零知识证明技术能否肩负起守卫跨链安全的重任,成就彩虹桥上万夫莫开的「海姆达尔」神话?
本文为LKventure投研团队对ZKBridge赛道进行的全方位解析,力求展望零知识证明技术在解决跨链安全性和高性能瓶颈问题的发展空间。
TL;DR
-什么是ZKBridge?ZKBridge是使用零知识证明技术的跨链桥,具有零信任、无许可、可拓展、高效率的特性。
-为什么需要ZKBridge?当前跨链桥的中心化问题和信任假设导致安全性不足,漏洞频出造成严重损失;而重视安全性的跨链桥,则效率低下,成本较高。ZKBridge可以同时保有安全性、去中心化和高效率。
-如何实现ZKBridge?基于ZK-SNARK的轻节点方案
-相关项目介绍:SuccinctLabs,zkIBCbyElectronLabs,zkBridgebyBerkleyRDI。
什么是跨链桥?
跨链桥是一个允许在不同区块链网络之间实现价值和信息传输的技术解决方案。通过利用一系列加密和协议技术,跨链桥实现了资产和数据的安全、可验证和无需信任的转移,进而促进了区块链网络之间的互操作性。
一般来说,我们会把跨链桥分为直接的资产跨链桥和更具备通用性的消息跨链桥。
为什么跨链桥会成为众矢之的?
跨链桥作为一个中心化的巨额资金池,天然会吸引黑客——攻击成功的收益是巨大的。此外,由于不同链之间的安全假设可能存在差异,资产跨链的代码更为复杂,代码审计也无法找出所有漏洞,也就为有着巨大激励驱动的黑客以可乘之机。
具体的攻击方案可以分为以下几种:
数据:以太坊PoS升级后,更多资金流入质押合约:10月23日消息,据Messari消息,随着以太坊成功过渡到PoS,验证者的实际回报率从近0%大幅飙升至6%。stETH折价减少,更多的资金流入质押合约。Lido对这一增长的绝对贡献最高,而Rocket Pool在其小基数中增长最快。Layer 2流动性变得越来越关键,在Lido宣布激励计划后,stETH L2流动性激增。[2022/10/23 16:36:14]
1.中心化攻击:部分跨链桥依赖于中心化的中继器或验证器来传输和验证交易。这种设计可能会导致单点故障,攻击者可以通过攻击这些中心化组件来破坏整个跨链系统。
2.经济激励攻击:跨链桥通常需要设置合适的经济激励来确保验证器和中继器的诚实行为。然而,设计合适的激励机制并不容易,激励不足或激励设计失衡可能会导致恶意行为或串谋攻击。
3.双花攻击:在某些情况下,攻击者可能会尝试在源链和目标链上同时花费同一笔资产,从而导致资产的双花。跨链桥需要设计有效的防范措施来防止双花攻击。
4.重放攻击:攻击者可能会尝试在目标链上重放已经在源链上发生的交易,从而试图获取不正当利益。跨链桥需要实现一定的交易验证和防重放机制来防止此类攻击。
5.链下协调攻击:跨链桥的一些实现依赖于链下协调,如状态通道或侧链。攻击者可能会通过对链下协调环节进行干扰或攻击,来破坏跨链桥的正常运作。
6.链间共识攻击:由于跨链桥涉及多个区块链网络,每个网络可能采用不同的共识算法。攻击者可能会利用链间共识的弱点来发起攻击,例如,在一个链上实施51%攻击以影响跨链桥的正确性。
当前主流跨链桥方案一览
跨链最核心的问题就是如何验证另一条链的消息是可靠的。针对该问题产生了不同解决方案,包含不同程度的信任假设。
轻节点加中继,其实是最早出现的跨链解决方案,代表项目要数BTCRelay,目的在于用比特币进行支付去使用以太坊的服务。然而,由于要进行大量的链上计算与存储,运行链上轻客户端的代价昂贵。而且由于不同链间共识算法和签名算法等的异构,导致跨链方案不可扩展,需要为每对特定的两条链专门实现lightclient&relay。
数据:以太坊上DeFi协议总锁仓量约合141.8亿美元:据欧科云链OKLink数据显示,截至今日18时,以太坊上DeFi协议总锁仓量约合141.8亿美元。其中排名前三的分别是Uniswap V2 30.3亿美元(+3.45%),Maker 21.7亿美元(3.42%)以及WBTC 19.1亿美元(+7.98%)。以太坊上的DeFi协议总锁仓量整体依旧保持相对稳定的态势。[2020/11/6 11:52:07]
迄今为止,只有Cosmos应用链上的IBC实现了大规模的链上轻客户端,其成功之道在于Cosmos的应用链的标准化程度极高,每个应用链都需要运行Tendermint共识,并遵守IBC标准。在一个拥有不同共识机制、签名方案和虚拟机的多链世界中,链上轻客户端验证是难以实现的。
当前主流跨链项目为了避免高昂的链上轻节点成本,将验证过程移至链下,同时也带来不同程度的信任假设和潜在欺诈风险,LKVenture投研团队根据信任程度从高到低,对部分重点方案进行介绍。
跨链解决方案1:无质押多签
典型项目有Multichain、Wormhole、RoninBridge。这些都要求多重签名MPC实现,需要实体验证交易,并验证(即签名)其有效性。通过阈值后,交易就被认为是已验证的。
?在该方案中,各实体需要运行全节点来进行验证。当然,无抵押导致撒谎没有实际成本,但不诚实导致的声誉受损可能会导致更大的潜在成本,所以验证节点往往与固定的链下身份关联,以此来增加节点的作恶成本。
?Multichain的消息验证由SMPC网络保障,SMPC网络由24个节点组成,超过2/3节点签名的消息被认为通过验证,SMPC节点成员不需要质押,且相对固定,AnyCall的安全建立在对SMPC节点的信任假设基础上。
?Wormhole的信任层采用PoA机制构建,由一组受信任的Guardians负责链间消息的验证,Guardians是特定的具有资本背书和声誉背书的主体。目前,Wormhole中的Guardians有19个,其中包括FTX、Everstake和ChorusOne等知名大公司。
跨链解决方案2:预言机与中继
典型项目有LayerZero,通过将消息及消息证明传递和验证Relayer传递交易两者做分割,确保跨链过程的安全。
?LayerZero的核心设计思想在于Oracle和Relayer的分离,在LayerZero中,Relayer负责传递消息及消息证明,Oracle负责根据消息所在区块,按需从源链获取区块头,然后目标链上的终端根据Oracle获取的区块头验证Relayer传递的交易。只要二者不串通,就可以保证跨链的安全。
数据:莱特币隔离见证使用率远高于比特币:5月12日消息,Blockchair数据显示,自今年2月以来,隔离见证(SegWit)技术在比特币网络上的使用率一直在下降,而在莱特币网络上的使用率却在上升。
注:隔离见证本质上是将数字签名(占事务空间的65%)与事务数据隔离,以允许增加区块大小限制。在比特币区块链上,尽管有1 MB的区块大小限制,由于SegWit,区块大小估计可以达到近4 MB。(Crypto Globe)[2020/5/12]
?需要注意,尽管Layerzero将其技术方案称为超轻节点,但方案与LightClient有本质上的不同。LayerZero通过Oracle提供的区块头来验证Relayer提供的交易证明,验证过程在目标链的终端发生,属于原生验证,但是对区块头本身的验证却是由作为外部验证人的第三方Oracle网络来完成的,验证过程发生在链下。
跨链解决方案3:有质押多签
在MPC的基础上增加了一层权益证明,典型项目有Celer,Axelar,deBridge,Hyperlane,Thorchain。
?如果作恶,验证者的质押将被大幅削减,在经济上实际增加了验证者的成本。
?PoS桥要面对的一个问题是验证者的不均衡性,为了缓解该问题,Axelar采用了二次方投票的方案,签名权重将与验证人质押的$AXS数量的平方根成正比;Hyperlane则采用「可验证欺诈证明」方案,验证人联合作恶将立即被发现并执行Slash;pNetwork和BoolNetwork则直接要求所有节点质押相同数额的Token。
跨链解决方案4:乐观验证
运用了博弈论知识,通过用户间的博弈场景提高用户作恶风险,典型项目有Nomad,Synapse。
?乐观验证的基本逻辑是:在外部验证的基础上,设置一批挑战者和一个挑战窗口期,对不正确的验证进行挑战,验证者需要抵押,当其行为不当时,挑战者将提出挑战,并提供欺诈证明。若挑战成功,验证者的抵押金将成为挑战者的赏金。
?Nomad项目设置的挑战窗口期是30分钟。对于乐观验证方案,只需要至少有一个挑战者是诚实的,而且有经济激励去进行挑战。这相比外部验证而言,是更小的信任假设,在这样的信任假设下,攻击者无论付出多大的经济代价,都不能保证攻击一定成功。
原本跨链方案到此就结束了,但ZKP零知识证明技术的发展,为跨链桥的安全和效率两难困境带来了新的解决方案。
什么是ZKBridge?
ZKBridge是使用零知识证明技术的跨链桥,不引入信任假设,适配多种同构/异构链,链下生成零知识证明,链上只负责验证,大大降低链上计算和存储成本,具有零信任、无许可、可拓展、高效率的特性。
韩国强监管信号解读:政府尚未形成统一意见:金色财经独家采访了韩国几大主流交易所负责人,他们向金色财经透露本次强监管信号的形成原因。其中提到,由于韩国近期比特币价格高于其他国家交易所,促使更多投机者进入韩国市场搬砖,这加大了外汇场外交易风险,为防止某些换汇公司铤而走险进行违法行为,故发布了此条公告。同时,据韩国相关人士透露,政府不同机构对加密货币的立场不一,法务部对加密货币态度最严格,其他政府部门虽强调了加密货币监管的重要性,但仍对其持开放态度。因此有专家认为,韩国政府部门的意见不统一,不会立即出台强监管政策。[2017/12/28]
我们先对轻客户端的原理做一个基本概述。轻客户端,也称轻节点,在链上往往以轻智能合约的形式呈现。轻客户端跨链的基本原理是在目标链部署源链的轻节点合约,对源链来的消息进行验证。如果要实现双向跨链,就需要在两条链上互相部署对方链的轻节点合约。
相比全节点,轻节点是轻量化的节点,它不存储完整区块的序列,而仅存储区块头的序列。
尽管区块头体积很小,但它包含了对区块中完整数据的密码学概括。当轻节点需要知道某个交易是否被包含在链中时,可以通过该交易所在区块的区块头及该交易的Merkle路径,对该交易执行SPV验证。
下图中,绿色方块的合集,就是蓝色方块的默克尔路径。
为了维护目标链上部署的源链轻节点,需要由链下代理将源链的区块头不断同步到目标链。轻节点合约对负责同步区块头的链下代理并没有信任假设。因为轻节点合约会对其同步的区块头执行验证,链下代理无法轻节点。
轻节点验证区块头的逻辑,与全节点、矿工节点别无二致,分为有效性验证和最终性验证两部分。
LKVenture投研团队认为,对于PoW链来说,有效性验证主要是指验证区块的工作量证明,最终性验证则是看该区块头后面有没有更多的有效区块被追加。
对于PoS链而言,有效性验证是指验证该区块是否由被随机选中的出块人生成,最终性验证则是看该区块是否被2/3以上投票权重的验证人签名。但PoS的轻节点并不需要验证有效性,只需要验证最终性。因为PoS链中,最终的区块一定有效,PoW链则未必。
ZKBridge的实现,与轻节点加中继的方案流程相同,只是略有变化。ZKBridge中,依然需要链下的中继者监听源链,将源链的区块信息转发到目标链。但是转发的不仅是区块头,还有使用ZK-SNARK算法生成的有效性证明。而在目标链上,轻节点也不是通过直接根据区块头进行计算去验证交易的有效性,而是根据有效性证明在链上验证,减轻计算负担。
为什么ZKBridge有望终结跨链大战?
在目前以完成部署投入使用的跨链桥中,有多个项目都曾经遭受过严重的安全攻击,被盗金额非常巨大,在当时造成大规模的恐慌,时至今日大家仍对各大跨链桥的安全性抱有怀疑态度。人们愈发需要一个安全、零信任、去中心化的跨链桥,为未来的全链生态打下坚实基础。
在LKVenture投研团队看来,ZKBridge为跨链桥的安全和效率难以兼顾的困境带来了新的解决方案,即通过在链下生成对区块头的零知识证明,源链区块头的正确性由ZK-SNARK算法生成的证明去验证,因此没有增加任何外部的信任假设,唯一信任的是数学。
而且,零知识证明在链上的验证过程较原有的轻节点验证方案,将显著降低计算和存储成本。
ZKBridge部分项目介绍
SuccinctbySuccinctLabs
GnosisChainOmnibridge是Ethereum与Gnosis之间的跨链桥,使用的是MPC的主流方案。Gnosis团队成员希望能够探索不依赖中心化实体的跨链设计,SuccinctLabs和Gnosis团队就此展开合作,GnosisDAO提供grant用于R&D。
以太坊的验证过程主要包括以下内容的验证:区块头的Merkle证明;同步委员会中验证者的Merkle证明;正确轮换同步委员会的BLS签名等。这里的核心思想是使用zk-SNARK生成大小恒定的有效性证明,可以在Gnosis上进行高效的链上验证。
SuccinctLabs的跨链方案能够在任意两条Ethereum兼容的PoS链间传递任意消息。当前实现了Ethereum与Gnosis之间的跨链Demo,Ethereum上部署了bridgedeposit合约,允许用户储蓄。bridgedeposit会传递消息给arbitrarymessagebridge(AMB),AMB在合约中存储该消息。Operator负责获取同步委员会的证明,为有效的BLS签名验证生成SNARK证明,并向Gnosis链轻客户端提交更新。
在GnosisChain上,存款交易所在的以太坊区块被确认,并且轻客户端已经更新到高度大于或等于该块的区块后,Relayer会自动向GnosisAMB提交一个executeMessage交易。executeMessage交易包含针对轻客户端已更新的插槽的Merkle存储证明。在executeMessage期间,AMB使用轻客户端获取所请求插槽的以太坊状态根,并验证Merkle存储证明,以显示消息已在AMB的另一侧上send。然后,AMB使用消息中指定的calldata调用接收智能合约。
出于技术栈成熟程度和链上验证开销的考虑,团队选择使用当前最成熟的Circom语言和链上验证最便宜的Groth16证明系统来生成ZK-SNARKs,而没有使用更新更快的PLONK+KZGorFRI。
值得注意的是,该项目虽然上了测试网,但是可用性较差。经作者测试,Goerli测试网的Succinctstoken经过bridge数量减少,但是Gnosis网络未收到token,同时网站上的dashboard没有bridge记录显示。而且需要注意现在的跨链是单向的。只能从Goerli到Gnosis,而不能反过来。
zkBridgebyBerkleyRDI
zkBridge通过ZK-SNARKs证明远程区块链的区块头的正确性,因此不会引入任何外部信任假设。事实上,只要连接的区块链和基础轻客户端协议是安全的,并且区块头中继网络中存在至少一个诚实的节点,zkBridge就是安全的。当然,值得注意的是,虽然至少一个诚实节点就能保证安全性,但是不诚实节点过多会显著降低跨链桥的可用性,lightclient会频繁拒绝传来的proof,而无法获取真实信息。
具体来说,zkBridge主要由区块头中继网络BlockHeaderRelayNetwork和更新者合约UpdaterContract组成。在区块头中继网络中,中继从发送者区块链C1中检索区块头,生成区块头有效性证明,并将区块头及证明发送到设置在接收者区块链C2上的更新器合约中。对于更新器合约,一旦相关证明通过验证,C1的相应区块头将被存储。
此外,更新器合约还维护一个轻客户端状态。一旦添加新的区块头,合约就像C1上的其他轻客户端一样更新轻客户端状态,并更新C1的当前主链。更新器合约还向应用程序公开一个功能,通过该功能,C2上的应用程序可以获取C1上给定高度的区块头。在获得区块头信息后,应用程序可以进行更多的验证并构建自己的应用。
为了使底层zk-SNARK系统与链上使用兼容,需要快速证明生成和低链上证明验证成本。zkBridge的主要创新是:
?deVirgo:采用分布式的方法来生成ZK-SNARK证明,且无需信任假设。deVirgo方法通过将计算工作进行拆分,分配给更多的设备,大幅度提升了在链下生成ZK-SNARK证明的时间。
?递归证明:为了降低链上成本,zkBridge使用递归证明,通过两次递归,将ZK-SNARK证明的体积压缩到131字节左右。第一步生成deVirgo证明,第二步使用Groth16证明生成器进行压缩。Groth16验证器生成执行deVirgo电路的完整性证明。
?批处理:zkBridge实现了一个区块头的更新合约,它以区块高度为输入,返回相应区块头。但zkBridge并不会在每个新区块产生时,调用更新合约,证明者可以先收集N个区块头,生成一个单一的证明。N值可以设置,N越大,用户等待时间越长但系统运行成本越低。
目前zkBridge已经以Solidity在以太坊上实现了一个CosmosClient的实例,据测试,可以在2分钟内生成一个CosmosZone区块头的ZK-SNARK证明,然后在以太坊端,验证费用是小时230kgas的常量,对比来看,如果不用ZK-SNARK证明,这个费用将是64MillionGas。
需要注意,中继网络计算将遭受与MPC相同的通信复杂性,这将严重影响证明时间。GKR多层求和检查协议的通信复杂度为O(Nlog2(签名数量)),其中N台机器在中继网络中。即使对于32个签名的情况,中继网络中有32台机器,也可能导致网络中大量顺序通信,损害分布式计算带来的性能。
zkIBCbyElectronLabs
具体而言,zkIBC希望模拟Cosmos主权链使用的无信任通信协议——InterBlockchainCommunicationProtocol(IBC),并将使用拓展到Ethereum。zkIBC使用ZK-SNARKs进行轻客户端状态验证,快速证明Ethereum上交易,跟上Tendermint共识链的出块时间。
主要的难点在于在CosmosSDK中使用的Tendermint轻客户端运行在Ed25519曲线上,而以太坊区块链不支持该曲线,在以太坊的BN254曲线上验证Ed25519签名昂贵和低效。
项目路线图分为五个阶段:调研-ed25519签名证明的实现-测试网-递归Snark实现减少冗余-主网。2023年2月2日,Positrontestnet正式面向公众上线,支持Near和Ethereum之间的跨链。当前的测试网需要等待约20-30分钟才能实现最终性,其中包括Goerli网络最终性、ZK-Proof生成、Near链上铸造。
该项目宣称完全开源,经过测试,跨链过程使用流畅,UI/UX设计良好,且支持双向跨链。
思考
区块链技术发展到一定阶段,通常会演化成为关于取舍的哲学。在公链中,有着安全-可拓展-去中心化的三难困境;而在跨链中,可能也存在着安全-效率的两难困境:追求效率,则会引入第三方信任假设,导致安全性受损;追求安全,使用完全轻节点与中继的方案,则会招致高昂的链上严重费用。
但是实际上,从制度设计上来看,即使是信任程度最高的无质押MPC方案,其实也在绝大多数情况下保证了跨链桥的安全。之所以多个跨链桥被盗,反而是因为追求透明将代码开源,复杂代码中隐藏的漏洞让黑客有了可乘之机。
LKVenture认为,随着技术不断进步,ZK方案可用性逐渐增强,ZKRollup有望在2023年下半年将投入大规模使用,ZKBridge也方兴未艾。希望ZKBridge技术的成熟,能够打破跨链当前面临的安全-效率两难困境,让万链互联的愿景得以实现。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。