前序:
在讨论本文的话题之前,我们需要声明本文只代表作者个人的意见和想法。且分析时切入点为产品和技术设计并无资本运作,市场营销等其他方向的考量。所以本文并非投资建议,也非做空报告,本期所主要讨论的问题更偏基础设施,这类赛道往往具有原子性,要么符合需求极快起飞,要么方向错误无人问津。因此,文中所提的项目更不可以作为作者提供的投资参考。纯属产业研究。希望大家一起来讨论。如需讨论,可以关注我的推:@0xOar
01
Synthetix的L1和L2数据兼容所引发的信息跨链思考
本篇研报的起因是于今年7月以及12月分别发布的于synthetix社区的sip156和sip165。
目前这两篇提案依然处于Feasibility的阶段,这意味着虽然还没有实际实施但是可行性已经得到了一定程度的认可。这两篇提案的主要原因是希望解决Synthetix的layer2和Layer1的数据兼容问题。看过我在10月份所做的合成资产研报的用户应该都了解。Synthetix作为以太坊社区最复杂的DeFi项目,于今年正式部署在了Optimism这个layer2解决方案上。但是多链竞争的格局逐渐形成,虽然layer2和layer1之间可以完成一定程度上的跨链通信,但是这种通信暂时还无法扩展到其他侧链甚至是solana这种异构链上。导致Synthetix所采用的全局债务无法同步。这造成了极大的“流动性浪费”。
这种“流动性浪费”正是当下这个群雄逐鹿的公链战国时代,各类DAPP所面临的最大的问题之一。尤其是像Synthetix这样子的全局债务项目(采用类似pool 2 user的共享风险的项目都会遇到同样的问题)。在采用多链部署时就不得不将多链的流动性互相割裂。并且从零开始重新激励流动性的产生。
以经常被我们鞭尸的“DeFi For All”基金举例,Polygon通过这个计划引入了Aave,Curve,Sushi,最近又引入了Uniswap。但是这些头部项目依然需要重新在Polygon上激励流动性并且沉淀资金。
也许你会说,对于矿工来说,新的经济激励越多越好,但对于有实际需求的用户来说,会造成很大的困扰,如Aave的其他链的版本上支持的抵押品和存款品的种类要远低于ETH,Sushiswap在其他链上流动性较好的资产也依然远低于以太坊。
再从项目方的角度来说,如果我希望在某个体验较好的异构链或者Polygon这种EVM的侧链上部署我独创的抵押借贷协议。那么我会面临一个很大的问题,那就是可采用的抵押品种类不足,因为该链上拥有足够流动性可以支撑大规模清算的资产并不多。
还有,目前多个链上都会有一些主流的代币交易对AMM池,以ETH举例。截稿时,该资产在Uniswap V3上的总TVL为1.41B,在Pancake V2上的TVl大约为0.3B。而在进行同一笔ETH的交易时,在Pancake上交易所承受的滑点压力是Uniswap V3以太坊版本的近5倍。金额越大,滑点差距越大。这也是为什么目前交易聚合器的采用率越来越高,甚至跨链交易聚合器的采用率也越来越高的原因。
再举一个例子,用户使用不同链的Aave进行抵押借贷时所承担的利率是不同的,这是由于各个链上的数据无法互通,合约在计算利率时只采纳了该链原生的数据。用起来可能看着差别不大,但换个说法,这就好比,你在用本市的银行存款时的利率为4%,但是你跑到其他大城市发现存款利率居然为6%。同样的银行,同样的币种,这种情况在传统金融市场是无法不可能出现的。但是由于区块链的数据孤岛问题,导致类似的情况屡见不鲜。
因此,引发了我们的思考:
既然多链博弈,兼容并存的生态已成定局,未来的战火甚至有可能更加混乱。那么链间的信息通讯是否是下一个即将迎来爆发的赛道。
为此,我和团队的开发者集中对当前各种类型的解决方案展开了研究(主要挑选了一些有代表性的方案,其他较为同质化的方案并不在此次报告的范围内)。希望能够从各个不同的方面来分析各种解决方案的优劣。
以下内容涉及到多种技术原语,我们会尽量使用浅显的语言帮助大家理解。基础设施赛道听起来非常“技术”但实际上,区块链的解决方案本质上是组织形式和生产关系的哲学问题,了解了基本的流程和逻辑不需要看懂代码也可以明白这些基础设施的实现意义。
02
现有的一些跨链通讯基础设施
(一)轻量级的插件型通讯协议——LayerZero
LayerZero是SeerLabs今年八月份接触到的一个跨链通讯的基础设施,当时引起了我的注意,但是后续因为一些其他事情错过了对其的投资(遗憾)。后来就看到这个协议获得了包括Binance, Mulitcoin, Delphi Digital的投资,再去找就不理我了。
1、方案简述
LayerZero主打一种轻量级的基于通信层的解决方案。主要针对的是各个链上DAPP。帮助他们解决链间信息的互通问题。
LayerZero的白皮书大概这样描述这个方案(我尽量翻译)
上图说明了有效传递单个LayerZero消息所涉及的步骤,图中每个黑底的数字代表了一个步骤。
步骤1:链A(AppA)上的用户应用程序作为事务t的一部分执行一系列的动作。我们通过交易标识符t来唯一标识事务T,t的格式可能会根据链A的类型而有所变化。事务T中包含的一个步骤是通过LayerZero传输有效传递。为了说明目的,并且不丧失一般性,我们假设在这个场景中Appa使用我们的模版中继器。AppA向LayerZero通信器发送一个包含以下信息的请求:
t:代表唯一的事件识别符
dst:代表指向链上智能合约的全局识别符
payload:代表链A应用希望传送给链B应用的任何消息数据
relayer_arge:代表在链A应用希望采用图中所示的模版中继器(layerZero提供的一个可自定义的中继器)时所提交的支付信息的一些参数
步骤2:通信器(Communicator)构造一个包含dst和payload的LayerZero数据包,称为数据包(dst、payload),并将它与t和relayer_args一起发送给验证器(Validator)。
步骤3:验证器(Validator)将t和dst发送到网络。此步骤通知网络,需要将链A上当前块的块头发送到链B。
步骤4:验证器(Validator)将包(dst、有效负载)、t和relayer_args转发到中继器(Relayer),通知中继器(Relayer)需要预取T的事务证明并最终发送到链B。这与步骤3同时发生。
步骤5:网络将当前事务(cur_blk_id)的块ID发送给Oracle。这将通知Oracle获取链A上当前块的块头,并将其发送到链B。如果在同一块中发生了多个LayerZero事务,则步骤5只执行一次。
步骤6:Oracle从链A中读取块头(blk_hdr)。
步骤7:中继器(Relayer)从链A读取与交易T关联的交易证明(证明(t)),并在链外存储。步骤6和步骤7彼此异步发生。
步骤8:Oracle确认blk_hdr对应的块在链A上稳定提交,然后将blk_hdr发送到链B上的网络。确定每条链何时发生这种情况的机制是不同的,但通常需要等待一定数量的块确认。
步骤9:网络将指定为blkJhdrJhash的区块hash发送给验证器(Validator)。
步骤10:验证器(Validator)将blkJhdrJhash转发到中继器(Relayer)。
步骤11:在接收到blk_hdr_hash之后,中继器(Relayer)发送与当前块匹配的所有包(dst、payload)、t、证明(t)元组的列表。如果多个用户在同一端点之间同时发送消息,则在同一块内可能存在多个数据包和关联的事务证明。
步骤12:验证器(Validator)将接收到的事务证明与网络存储的块头一起使用来验证关联的事务T是否有效并已提交。如果块头和事务证明不匹配,则将丢弃该消息。如果它们匹配,则包(dst,payload)发送到通信器。
步骤13:通信器(Communicator)发出数据包(dst,payload)到AppB。如果你并非开发者却依然能看懂这个方案,那请你DM我的Twitter:@0xOar
2、这个方案主打的优势是:
(1)轻量级,成本较低
其方案并不需要如其他方案一样以来一个基于链A,B上层的链的节点来提供协议通讯。而是可以由项目方自由部署,可以采用LayerZero提供的模版甚至中继器也可以由用户自己设计。且,白皮书中提到一种ULN的超轻节点,比轻节点还轻,我也没找到特别详细的实现。不过从描述中来说,这也是超轻量级部署的一个体现。
(2)基于通信层的解决方案
这是项目方主打的一个卖点,LayerZero认为自身的解决方案是一种基于Layer0的新的通信协议。这一点我们并不认同,他所处的级别并非类似TCP这样的通信协议,而仅仅只是一种链间的数据传输协议,在层级设置中我更愿意将其置于应用层,介于layer2和layer3之间。
(3)不依赖第三方信用
白皮书里提到了Anyswap,THORChain等跨链协议,LayerZero认为前述的两种偏公证人机制(下一个例子会提到)的方案,实际上是在依赖一个中间共识层,用户需要信赖这个中间共识层所提供的服务。而LayerZero却是一种点对点的通信原语,不需要依赖这个中间共识层。
(4)总结
听起来,LayerZero所描绘的跨链机制相当有趣,且确实能够解决不少实际问题,并且足够轻量化。但是透过现象看本质,我们也能发现这类非常“技术”的解决方案所犯的一些诱导性的问题。
3、问题
(1)我们并不认同这个是个基于通信层的解决方案
该项目并非一个处于layer0的通信协议,他所提供的主要工具包括端点和relayer两部分,端点负责通信的验证,relayer负责传递消息。这仅仅只是一种链间的数据传输协议,在层级设置中我更愿意将其置于应用层,介于layer2和layer3之间。
(2)LayerZero同样依赖一个中间共识层
LayerZero在方案设计时采用了relayer这个中继器和Oracle预言机互相验证的方式来确保安全性。但是白皮书中也提到了所谓极端情况——中继器和预言机联合作恶的情况。LayerZero认为保持相对的独立性可以降低这种风险,但是中继器一般由项目方部署。而LayerZero认为预言机可以选用Chainlink这样的服务。且不说使用Chainlink通信的成本问题,本质上这样做还是在信赖Chainlink不会与项目方联合作恶,而Chainlink也是一个中间共识层。
4、主观的前景判断
(1)大部分用户无法获知技术细节上的差异
因此,宣传上的故事性细微诱导往往无伤大雅。还有的“技术”型项目吹的更狠,对于我们来说,见过的“作家”型创始人实在太多了。
(2)轻量级的部署有利于推广和应用
LayerZero方案相比起Anyswap,THORChain,Polkadot,Cosmos,以及另一个要讨论的项目Axelar来说技术和生态的投入以及运营成本相对要小得多。不需要自建节点,吸纳其他验证人。组织一个中间共识层所需要的成本肯定是远大于只提供工具。
在同等资源的前提下,我更看好LayerZero在跨链生态中有更好的应用。
(3)叙事和生态潜力较低
与Anyswap,Chainlink这样的辅助类产品类似,LayerZero虽然可以发挥很大的作用,但是因为其产品的特性叙事能力和生态扩展能力不够强。
举例来说,Chainlink自身的中间共识层生态实际上已经足够完善,但由于其预言机这个形象太过于根深蒂固,导致整体的故事性不如solana这类layer1.实际上以Chainlink的能力完全有资格成为所有链的layer3.
LayerZero也是如此,工具化的产品定位使其叙事性较差,从后续medium发布的两篇文章可以看出一些端倪。创始人和团队在思考LayerZero的扩展性问题时第一时间想到的是与Cosmos的IBC协作的形式。
这约等于将自己定义为与Cosmos的其中一个组件相同的叙事级别。
(二)异构跨链通信协议——Axelar
这个项目很有趣,从整体的标题和传递的理念与我们今天所讨论的问题不谋而合,他希望做到的事情就是赋能DAPP开发者和区块链生态系统,从设计之初考虑到了一些当前形势下不同异构链生态无法兼容的问题。
1、官方所宣传的愿景
(1)对于底层开发者
将您的区块链插入所有其他区块链
(2)对于DAPP开发者
在任何地方部署您的DAPP,通过Axelar实现任何链之间的资产和信息跨链。
(3)对于用户
从钱包直接与所有区块链生态的DAPP交互。
2、项目的基本原理如下
这个图来自官方的文档,看起来实在太复杂了。我们将其简化为以下的文字流程。
3、Axelar跨链协议流程
假设存在链S、链D,由Axelar提供这两条链的跨链服务
状态信息跨链
Axelar通过 Axelar network内的验证者运行不同链的节点获取并同步各个区块链系统中的状态信息,例如某区块哈希、当前区块高度等。状态信息跨链的核心流程如下:
(1)链D用户通过Axelar提供的API向跨链桥账户或直接在 Axelar 区块链发起对链S状态信息数据获取请求,记为Q。
(2) Axelar的每个验证者必须运行链S、D的节点软件。Axelar验证者查询其链S节点软件的API以获得答案A,并将A发送至Axelar链。
(3) 一旦大于一定权重的验证者在第R报告相同的答案,则会使用门限签名技术在第R+11区块发布对答案的签名S
(4)任何人都可以从区块R+11中取出有带有签名的答案S并将其发布到D网络。D网络上的用户可以通过Axelar提供的API查询该答案。
资产跨链
假设用户要求将源链S上的x数量的代币交换为目标链D上的x数量的挂钩S代币S,存放在用户在D链上地址W<sub>D</sub>上。工作流程如下:
(1)用户向跨链桥帐户发送跨链transfer请求 (x, W<sub>D</sub>),该请求由监听器捕捉并路由至Axelar网络。
(2)Axelar当前验证者集群使用门限签名技术共同为在S上创建一个新的存款地址D<sub>S</sub>。并将其广播至Axelar网络。
(3)用户通过监控Axelar区块链得到D<sub>S</sub>,然后将x数量的S代币发送到地址D<sub>S</sub>。
(4)验证者查询用户是否成功转账,如果在第R个区块中大于一定权重的验证者广播转账已成功,则验证者签署交易tx<sub>D</sub>,该交易将x数量的S代币从发送到W<sub>D</sub>,并将签名结果在第R+11区块广播。
(5)任何人都可以从区块R+11中取出带有签名的交易tx<sub>D</sub>并发布至D链,至此完成跨链资产的transfer。
这个方案相较于前述提到的LayerZero来说更加复杂,验证的流程和逻辑也更多。总体来说,区别较大的部分是LayerZero采用了外部预言机来作为验证人的一部分,由外部预言机来保障安全性并扮演类似中间共识层的角色。而Axelar采用BFT拜占庭共识构建了一个第三方链,Axelar通过CTP将其他链的信息同步到Axelar网络,再由Axelar链上的节点通过门限签名在其他链上传递信息。
这个方案本质上与Anyswap,THORChain所采用的方案没有太大的区别,也可以用公证人机制来代表。这类方案几乎是所有跨链通信的方案中最重要的一个流派。
4、这个方案的优势
(1)独立的第三方链可以发挥出更大的想象力
针对异构链的Axelar网络本质上也是一个区块链网络,虽然其支持,chainA上的某DAPP通过Axelar作为中转的方式跨链到ChainB,但是对于开发者来说最优的解决方案依然是直接将DAPP部署在Axelar上。这样的话无论后续的版本部署在什么地方,都只是向下的发散,而非向上的对接。
Axelar如果能将其自身的生态系统发展的很好,那么Axelar也许将具备成为所谓Layer3的能力。这种地位类似于Polkadot生态当中的中继链。届时,ETH,BTC甚至有机会被称作Axelar的子链。
(2)不必依赖第三方预言机,效率和综合成本可能更低
LayerZero的方案虽然端点和relayer部署成本较低,且很轻量。但是预言机的使用成本以及效率将成为影响DAPP开发者选择的重要因素。
举例说明:如果项目A希望通过LayerZero以及Chainlink传递ChainA上主合约的债务数据到ChainB。但是Chainlink的调用可能需要付费,且Chainlink推送数据并非如Axelar一样直接监听各个链的区块数据,而是定时或者定规则的推送。比如一分钟推送一下,或者债务波动不高于1%不推送。
这部分的行为需要向Chainlink支付费用,Chainlink有一个市场叫Chainlink market,这里有许多数据提供商,数据提供商针对每种数据有一个合约,你需要数据,就调用这个合约并支付link,数据提供商链下查询后再将数据喂到你的合约里来(因此查询是异步的,至少有一个区块的延迟),支付的link大概是喂数据的gasfee再多一点点利润,比如Ethereum一次大概收1 ~3 link,在bsc上一次大概0.1 link。
这种异步异构链通信的频率是很高的,相应的成本也会很高。所以,Axelar的通用方案综合成本也许会低得多。
5、主观的前景判断
(1)从整体的产品设计思路上来说,Axelar这个项目的产品形态更加接近于Anyswap这样的项目,因为大部分用户对于中间共识层的去中心化程度容忍度较高。Chainlink,anyswap所在链的服务商和生态情况,99%的使用者可能都不太清楚,用户只会关注所在链推荐的采用率最高的跨链通信方案是哪个。这就说明通用的异构跨链解决方案真正考验的是项目方的To Layer1的能力。暂时,我们还未看到Axelar有太多的动作。且技术方案上,我们不认为其拥有足以产生自传播效应的优势。
不过,相较于polkadot来说,Axelar生态的推进难度也会大大低于其他的Layer1。可以将其作为工具层也不是再创生态。
(2)从叙事能力来说,Axelar暂时显现的叙事能力上限要远低于cosmos,polkadot。虽然都是跨链,且Axelar甚至可能更加实用,但是Polkadot和Cosmos由于都提出了标准化的区块链协议。这使其整体的叙事能力要远超Axelar。
(三)Polkadot和Cosmos
1、基础信息
Polkadot和cosmos是这个市场上声量最大,生态也最丰富,市值最高的项目。总体上来说,这两个项目所阐述的价值观和产品观都远高于前述的layerZero和Axelar。
这里不讨论Polkadot和Cosmos的具体方案,各种语言的文档多如牛毛。我们从整体方案来做展示。
Polkadot和Cosmos的叙事中都提到了异构链之间的跨链方案,比如substrate和Tendermint链与ETH,BTC等链之间的跨链,基本原理与Axelar和LayerZero并无太大不同,均需要一个中间共识层通过公证人机制完成跨链。
但是Polkadot和cosmos讲了另一个看起来更加有吸引力的故事——标准化区块链和同构跨链方案。换个说法:再创生态的万链互联。
2、与LayerZeroAxelar形态比对
从上图可以看出,我将复杂的流程极简(线程上标识的并不精确,如Polkadot的异构跨链需要桥接链,而非与中间共识层的中继链直接交互)之后可以得出的结果:上述的三种类型的方案在异构跨链这个问题上并无本质不同,但是针对跨链这个大的话题上三种的思考各不相同。
Polkadot和Cosmos认为同构的跨链安全性稳定性都最好,且后发产品技术债务低,因此,虽然也支持异构跨链,但是重点确是substrate和Tendermint的系统内的同构跨链。
Axelar认为统一的标准才是解决异构跨链最高效最安全的办法,因此建立了Axelar的Network。它继承了跨链通信和中继器服务,并且提供了一个与异构链交互的中间共识层。
而LayerZero则认为针对开发者的轻量级跨链通信协议才是刚需,因此只提供了中继器和通信协议,而借用预言机来充当中间共识层的角色。
究竟哪一种方案在2022年的市场竞争中能够获取更多的关注,具备更大的前景呢?
(四)前景综合分析
1、当前的市场竞争格局
a.异构链竞争激励,多链并行已成定局
b.巨鲸沉淀于ETH,用户沉淀在多个成本更低体验更好的Layer1——BSC,AVAX,Solana。
c.组合式创新成为创新的主流
d.EVM生态占有率极高
2、参考模型对标
从生态发展的角度来说,这三种方案在叙述,生态发展策略等方向都各不相同。我们以一个表格的形式来对各个维度对照分析:
从表格中我们可以看出,各个方案所面临的最大困难的未来的前景究竟如何。以及需要去重点拓展的用户群。
PolkadotCosmos由于野望更大,雄心勃勃,所面临的考验也更大。
可以较为肯定的做出结论,除非其自身的各项工具足够完善,生态足够活跃,自成一派。不然很难完成其在白皮书里所描述的愿景。
至少在当前的多链竞争中,看起来Polkadot和Cosmos的同构链核心解决方案并不符合现在的主流。
不过,Cosmos和Polkadot在一些设计上还存在一些细微的差别。比如Cosmos提供了一套使用IBC与钉子(pegs)来完成异构链跨链的方案。
简而言之,约等于Cosmos提供的功能已经可以非常快速和高效的建立一个类Axelar的网络。且这个网络未来还具备与其他同构链之间再交互的可能性。
这样做的好处是即使核心的同构跨链还无法完成,异构跨链的高效采用也可以当作是Cosmos生态的成果。
而Polkadot的XCMP(还没做完)与中继链的共识耦合较大,很难独立拆分。开发者需要自己再去建立一套与BTC,ETH等异构链跨链的体系。虽然这使得中间共识层的开发成本降低,但是与所描述的愿景确实相去甚远。
所以,综合来看,Polkadot的设计在当下可能会困难重重,插槽拍卖完成之后,Polkadot需要大量激励与原生substrate链上的DAPP才可以从当前激烈的厮杀中突围。这种难度应该是目前所看的所有项目中最大的。
当然Parity和Web3 foundation的能力毋庸置疑,本文只是从产品和技术层面来分析难度。不作为投资意见。
03
Seer观点
(1)LayerZero的方案也许最快推上市场
因为LayerZero的方案更贴近当前市场当中DAPP开发者的实际需求,以文首Synthetix的情况举例,Synthetix可以采用LayerZero+Chainlink的方式来快速的完成Layer12的债务池整合。
(2)Axelar所面临的同质化竞争最大
相比于LayerZero这样轻量级快速部署的切入点来说,Axelar的方案更加同质化,上有Polkadotcosmos,平行的还有AnyswapTHORChain等。Layer1的采用率将是其最大的障碍,在这方面我不看好Axelar能胜过Anyswap。因为后者虽然目前主攻资产跨链,但从方案设计上向消息跨链升级的难度并不高,且已经拥有了极高的Layer1采用率。向下Axelar并不甘于仅仅成为一个轻量级通信组件,因为整体的叙事性和价值捕获能力较差。
(3)Cosmos的预计采用率将高于Polkadot
Cosmos更加灵活的架构使得其技术难度更低,更偏向应用的设计风格使得目前基于Tendermint的生态已经跑出了许多出色的产品,包括最近大火的LUNA(Terra)。
(4)Polkadot生态所面临的考验巨大
所有上述的方案中,Polkadot所面临的宣传压力最大,则复杂的技术方案导致了一次次的延误也在不断的消耗用户的信心。真正能够证明Polkadot期许的可能得是那种“充分发挥链间组合性的杀手级产品”。当然,Polkadot生态所涉及的利益方众多,也许后发优势会帮助Polkadot做得更好。