达尔文主网渐进式上线已经来到了第三阶段:完整的「达尔文-以太坊跨链桥」。
现在,你可以自由的在达尔文和以太坊之间以去中心化的方式转移达尔文资产,当然,你需要支付一些网络手续费(以太坊和 RING)。
本文将首先回顾达尔文 - 以太坊跨链桥的一些背景知识及上一阶段的单向桥,然后重点讲解本次开启的达尔文 → 以太坊桥,带你了解其特点、重要组成部分和使用,期间还会介绍到一些达尔文采用的或者创新的技术,带你由浅入深的了解达尔文双向桥,以及为什么它是去中心化的和去信任的!
看完本文,你将会更好的理解什么是达尔文跨链桥。
背景知识
达尔文网络是基于 Substrate 开发的去中心化桥接网络,是跨链生态的金门大桥枢纽,提供最安全的通用桥接方案,可以实现波卡,以太坊,波场等异构链之间的资产跨链和通用远程链调用,作为连接异构链的桥中心,任何网络都可以实现一次接入达尔文即可打通连向其他已连接网络间的跨链桥接链路,而无需重复自己建造两两直连桥。主要应用领域包括 Defi,跨链 NFT 交易市场,游戏等。
##RING
RING 是达尔⽂⽹络的原⽣资产,RING 可以作为交易的燃料费。燃料费包括交易费⽤,合约执⾏费⽤,跨链服务费⽤等等。
##KTON
为了鼓励用户进行长期锁定和承诺投入,用户在质押 RING 的过程中,可以承诺锁定 RING 1 - 36 个月,系统会给参与质押用户相应数量的氪石通证作为承诺奖励,KTON 可以再次参与质押获得更多的票权。
以太坊 → 达尔文桥
以太坊 → 达尔文桥,之前被称为以太坊达尔文单向桥,是达尔文主网渐进式上线第二阶段开通的主要功能。
ERC20 版的 RING 和 KTON,以及 RING 存单都可以通过以太坊 → 达尔文桥跨链转移回达尔文主网。
以太坊 → 达尔文桥通过在达尔文链上实现一个超级轻客户端(Super Light Client),在降低成本的同时,实现跨链验证的目的。超级轻客户端使用了特殊的 MMR 数据结构,目前已经被 Grin、Beam 等项目采用,但是在源链块头不支持超级轻客户端的情况下,链上实现该协议还有很多链下实现没有遇到的挑战。
Darwinia 创新性的解决了链上实现 Super Light Cient 的挑战,引入了乐观验证博弈游戏并整合成一套经济可行的跨链转接桥方案,为未来异构链的跨链提供一个方向。
达尔文 → 以太坊桥(D2E桥)
达尔文 → 以太坊桥是达尔文至以太坊的去中心化跨链桥,简称 D2E 桥。D2E 桥是达尔文渐进式上线过程中第三阶段开通的一个主要功能,标识着以太坊和达尔文之间的跨链桥双向开通。
D2E 桥目前的主要功能,是以去中心的方式,将达尔文主网上的数字资产跨链转移到以太坊上。
具体来说,用户在达尔文主网一端将原生资产锁定,于合约中进行安全保管,任何人无法取出。以太坊一端的智能合约实现了观察达尔文网络的超级轻客户端,得以验证用户提交的原生资产锁定证明,并生成等量的 ERC20 资产。
得益于达尔文网络上运行的具有不可逆最终性的 GRANDPA 协议,以太坊端的超级轻客户端可以在很短的时间内确认并校验用户提交的密码学凭证。
以上过程正好与前期开放的以太坊 → 达尔文单向桥功能相反,同时,由于是将达尔文原生资产从本链跨链转移至其他链,所以 D2E 桥也常常被称之为达尔文以太坊反向桥。
D2E桥的特点
1、去信任
在区块链领域,去信任的意思,是无需信任任何中心化的系统及系统中的任何参与者,就能管理或操作自己的资产,且确保自己的资产的安全。
想要达成资产的跨链,有很多的方法,包括中心化的和去中心化的。中心化的方法最为简单,比如依靠中间人或者托管人来达成。但是中心化的方式最大的弊端是依赖信任。
达尔文桥包括 D2E 桥,被设计成以去中心化的方式来提供跨链能力。使用者只需要信任这套跨链协议,以及实现这套协议的代码、密码学、经济学即可。所有参与者被激励遵循这套跨链协议所确保执行的游戏规则,包括达尔文的开发者在内,否则将收到经济惩罚。
Substrate GRANDPA 具有不可逆的最终性,可以很快帮助敲定(Finalize)Darwinia 源链的区块;相比之下,工作量证明(PoW)共识系统只有基于概率的最终性,需要等待较多的块确认数以获得大概率的最终性。
通过 GRANDPA Justification 相关的证明,就可以在以太坊轻客户端智能合约中敲定 Darwinia 源链的区块头以及区块头中嵌入的 MMR Root,进而可以敲定 Darwinia 源链的历史区块。这实际上就在以太坊目标链上构建了一个 Darwinia 源链的超轻客户端,GRANDPA 敲定机制以及 MMR 证明是其中的核心验证逻辑。
2、低燃料消耗
众所周知,区块链的运行是有成本的,因此区块链的使用是需要费用的。
很多去中心化跨链方案都采用了在对手区块链中运行轻客户端的方式来实现,达尔文也属于这个分类。但是,经典轻客户端,需要维护完整区块链的所有块头,这是一个不小的开销,尤其是如果这条链已经很长,会在源链上占据极大的存储空间。
但是,达尔文的轻客户端是一种超轻量的客户端,它只需要有限的、按需的少量区块头,就能保证轻客户端的正常工作,也就是可以用来通过默克尔树证明来校验交易的存在性,具体方案将在下面的章节介绍。
经典轻客户端在技术上可行,但是在经济上不可持续,而达尔文的亚线性超级轻客户端解决了这个问题。
正因为 D2E 桥在以太坊中用智能合约实现了这样一个超轻客户端,所以用户可以以极低的费用完成去中心化的跨链操作。
D2E桥的组成
D2E 桥主要由以下几部分组成,其整体结构如下图:
1、以太坊上的达尔文超轻客户端
前文提到,去中心化跨链方案大都会使用轻客户端。所谓轻客户端,就是一个只包含区块链块头的数据结构,它无需存储体积巨大的完整区块链,让用户无需同步完整的区块链即可以安全、分散的方式访问区块链并与之进行交互。
但是对于用智能合约开发,在链上保存源链上所有块头的轻客户端来说,它称不上是轻的。
达尔文通过引入 Merkle Mountain Range(MMR) 实现了一种按需提交块头的超轻客户端(Super Light Client)。
超轻客户端无需保存每一个块头,只在需要的时候,由桥矿工向其提交所需的块头即可满足数据验证的要求。而桥矿工所提交的块头的正确性,则由 D2E Authorities 来保证。
相较于 PoW 协议网络,如以太坊到达尔文桥需要引入额外的乐观验证博弈进行确认,超轻客户端花费时间更短、效率更高。
未来,当以太坊预编译合约支持 Ed25519 后,块头的正确性可以由达尔文 GRANDPA Authorities 来保证。
2、桥矿工
由于链之间无法直接去访问对方,所以轻客户端的块数据及其 MMR 摘要提交需要由第三方来完成,这个第三方就是桥矿工。
任何人都可以成为桥矿工,桥矿工通过完成桥间的中继任务来获取收益。
桥矿工互相监督,提交错误数据将被惩罚,而诚实桥矿工则可获得跨链服务费收益以及可能的吹哨人奖励。
这种激励的存在可以促使桥矿工稳定存在,以此保证桥的稳定工作。
3、D2E Authorities
前文提到,目前块头的正确性无法通过 GRANDPA 来保证,这是因为以太坊上验证 Ed25519 Justification 的 Gas 费非常昂贵。如果直接使用 GRANDPA 来验证块头,整体的跨链费用也会相应变得非常昂贵。
因此,达尔文采用了一个额外的 Authorities 集合来完成此事,这个 Authorities 集合由议会投票产生,包括增加成员或者减少成员,都将由议会来投票决定。D2E Authorities 本质上是对 GRANDPA 协议的一种模拟,替换了以太坊暂不支持的 Ed25519 到 Ecdsa 加密算法。
任何人都可以申请成为 Authority,由议会投票决定是否同意其加入,一旦成为 Authority,则必须履行 Authority 职责,在有达尔文块头向以太坊提交前,对验证块头所需要的 MMR Root 进行 Ecdsa 签名。
另外,除了对 MMR Root 签名这个职责外,在 Authorities 换届变更时,同样需要由原 Authorities 对新一轮的 Authorities 集合进行签名,如此才能完成 Authorities 换届过程。
Authority 在完成自己的职责时会得到激励,如果未能在一定时间内(“签名要求事件时的块高 + 100个块”之前)完成自己的职责将会受到惩罚,申请时所质押的 RING 将被全部被系统扣除。
4、达尔文上的Ethereum Backing模块
Ethereum Backing 是为达尔文资产在以太坊上发行进行背书的模块。
简单来说,就是转移到以太坊上的资产都需要被锁定到这个模块进行安全保管。任何人无法从其中提取资产,除非用户提供在以太坊端的资产销毁证明,通过模块的超级轻客户端验证确认资产销毁确实发生后,才能取出相应数量的资产。
这个过程也就是正向桥的赎回协议,即用户在以太坊端将资产转移回达尔文网络。
所以,当用户想通过 D2E 桥跨链转账到以太坊时,首先要做的就是去锁定资产,虫洞应用将帮助你完成这一步,并协助收集相应的加密学锁定证明。
5、安全机制
达尔文 → 以太坊双向桥开通伊始,我们应用了几项安全模块:
每日跨链转账限额
目前设定了不同资产的每日累积跨链数量限制,超过该限额将暂停转接桥,并在 24 小时后重置配额重新开启桥接,以此控制可能的损害范围。
守护者
正向桥中启用了守护者,这是一个由达尔文网络上技术委员会成员构成的多签体系,他们的唯一职责是监测桥矿工提交的块头数据,并看护乐观验证博弈过程的进行。
一旦发生意外,如诚实矿工缺失、MMR 计算错误等情况发生导致错误块头未被成功指出时,守护者可以通过多签操作将该块标记为非法,以确保不会发生错误验证。
守护者只能标记错误区块头,无法动用锁定在模块中的用户资产。
随着技术迭代开发以及合约审计的推进,限额将逐渐提高,直至去除该限制,并最终移除守护者进程。
6、D2E 的改进规划
Darwinia 和以太坊之间的去中心化跨链转接桥不仅存在设计上的难度,同时还存在一些工程上的挑战。
例如,目前的 GRANDPA Justification Proof 里包含 Ed25519 的密码学签名,但是目前的以太坊智能合约尚不支持 Ed25519 的验签预编译合约,如果直接用智能合约实现签名算法,则面临 Gas 费用过高的问题。
虽然已经有相关的改进提案,例如 EIP665,但目前仍然是 Draft 状态,还没有被实现。
为了解决这些现实的工程问题,我们创新设计了一套 GRANDPA Authorities 代理机制,通过在 Darwinia Runtime 中嵌入这套代理模块,成功实现用一组 Ethereum standard secp256k1 ECDSA 加密签名来代理 Ed25519 的签名。
D2E 桥不会止步于此,为了达到更加完备和健壮的状态,还将进行一系列改进。
1. 采用 BEEFY 协议
在 EIP-665 未被以太坊采纳前,BEEFY 将会是一个更为通用的方式。
Parity 正在为 Substrate 开发一个名为 BEEFY (Bridge Efficiency Enabling Finality Yielder)的 GRANDPA 附属协议,此协议基于 GRANDPA Finality,其目的是为了让基于 Substrate 的链更高效地接入非 Substrate 区块链。目前的主要接入对象就是以太坊。
此协议在 GRANDPA Finality 之上,运行另一轮 BFT 协议,其中每个 Validator 将对同一件事进行投票。即,每个 Validator 将对 GRANDPA 最终确定的最新区块的 MMR Root 进行投票。对以太坊来说,就是采用 Ethereum standard secp256k1 ECDSA 算法进行签名。
D2E 桥计划未来在 BEEFY 成熟后,使用 BEEFY 结合 Grandpa 来实现轻客户端。
2. 在以太坊端的超轻客户端中直接使用 GRANDPA Justification 进行区块验证
如果 EIP-665 被以太坊正式采纳,那么在以太坊智能合约中使用 GRANDPA Justification 验证区块的费用将会大幅下降,届时可以用 GRANDPA Authorities 替代 Authorities 进行区块的验证。
4. 通用化及框架化
5. 支持任意通证的注册及跨链
虫洞
虫洞是一个 Web3 应用,它连接着各条链,为用户跨链操作提供更方便的操作界面。虫洞将用户需要分散操作的多个步骤集中于一个地方,并为这些操作提供了友好的交互向导和状态展示,协助用户与各链的钱包交互来完成跨链操作。
如何通过虫洞将资产跨链转移至以太坊,请见同日发布的公众号文章「如何通过虫洞将资产跨链转移至以太坊」。