原作者|?VitalikButerin
本文目的在于阐述在eth1链和eth2链之间建立
双向桥接的一些挑战(例如,支持ETH的双向转换),以及如何实现。
Eth2提案中已经包含eth1->eth2的
单向桥接,这对能够把Eth1中的ETH抵押到eth2中是必要的。这种单向桥接通过eth1数据投票机制来实现。请注意,
该机制
假设大多数的PoS验证者是诚实的,同时PoW链没有受到攻击(具体来说,就是PoW链中回滚不会超过5个小时)。如果这两个假设中的任一假设失败,那么eth1和eth2这两条链将不再彼此“一致”。其中一开始便存在一条隐式的“社会合约”,即
如果发生任何一种意外都有补救措施,很可能通过PoS链的软分叉来补救;然而也有可能如果PoW链回滚确实超过5个小时,那么社区可能会达成攻击链无效的共识。需要注意的是,不管在哪种情况下,PoS链的故障是不可能需要PoW链进行软分叉的。
Cardano联创:从未为Ripple工作,相关谣言可能把自己和Vitalik搞混了:6月24日消息,针对网上有关其曾在Ripple实习的传闻,以太坊和Cardano联合创始人Charles Hoskinson澄清称,这是谣言,自己从未以任何身份为Ripple工作过。相关谣言应该是把他和Vitalik Buterin两个人搞混了。
相关谣言疑似是基于一条早期的推文(已删除):2019年4月,Vitalik回复Coinbase联合创始人Brian Armstrong的推文时承认,早在2013年中期,当他住在加拿大时,曾试图去加州在此后更名为Ripple Labs的公司当实习生,但由于赞助美国签证的公司必须至少成立一年而未能成功。
Ripple前开发者关系总监Matt Hamilton于2023年5月1日证实,Vitalik当时确实希望能在Ripple实习。[2023/6/24 21:57:28]
而如果我们希望eth1链知道eth2的状态,有两种方法可以实现:
Vitalik:提高首次读取存储和账户访问的gas可以极大降低处理攻击的时间:以太坊创始人Vitalik发推表示:EIP-2929提案提到:提高首次读取存储和账户访问的gas。这可以将出现DoS攻击时的最坏情况处理时间减少到之前的1/3,从而更加安全地维持高gas的限制。[2020/9/2]
一种是使PoW链接受一个PoS链的轻客户端;
另一种是使PoS终态也敲定PoW链。
第一种方法要求eth1中实现eth2客户端?(见下图)
。这将需要对BLS-12-381验证的webassembly或者原生支持,不要期望这种支持能够很快实现。另外,
这种方法仅提供轻客户端级别的安全性。
波场与WAVES达成战略合作 将利用Gravity连接区块链智能合约语言:据官方消息,波场已与WAVES达成战略合作,Waves和TRON将一起利用Gravity来连接各自区块链的智能合约语言,即Ride和Solidity。Gravity是一个无基础代币的预言机,具有跨链通信网络。TRON和Waves正在通过Gravity建立一座桥梁,这将允许两个生态系统为两个用户群提供更多的服务。波场和Waves的生态系统计划将这一趋势扩展到其他区块链生态系统并以此为链间DeFi行业带来革命性改变。波场 TRON 以推动互联网去中心化为己任,致力于为去中心化互联网搭建基础设施。旗下的 TRON 协议是基于区块链的去中心化应用操作系统协议之一,为协议上的去中心化应用运行提供高吞吐,高扩展,高可靠性的底层公链支持。波场 TRON 还通过创新的可插拔智能合约平台为以太坊智能合约提供更好的兼容性。[2020/8/14]
第二种方法可以通过添加这一机制来实现,即如果一个经由?eth1_data?投票的PoS区块?
以太坊创始人Vitalik指责Instagram和Facebook允许虚假账户在平台上存在:以太坊的创始人Vitalik Buterin一直在处理大量欺诈的Twitter模仿者,这些犯试图从天真的投资者那里盗取密码,而最近V神的注意力被Instagram和Facebook转移了。这他在推特上批评Facebook和Instagram,因为他们的平台上存在明显的虚假账户。[2018/3/30]
Bs?包含一个指向PoW区块?
Bw?的引用(reference),
当区块Bs确认后,Bw区块也可视为被确认?(见下图)。不过这意味着PoW矿工(和客户端)也要运行eth2实现版,以便他们知道哪些eth2链被确认。
第二种方法更有趣,因为它为eth1提供了“原生”版回滚限制。请注意,这与第一种方法有所不同,因为虽然它确实使eth1的分叉选择知道eth2,但并没有立即使eth1知道eth2的状态。例如,理论上有可能两条竞争的eth2链确认同一个eth1区块(这意味着eth2已经出故障,但从理论上讲还是有可能出现的)。更常见的情况是eth2链确认的两个区块,其中一个区块是另一个的子区块,而这两个区块都支持相同的eth1区块,从而有些矿工可能知道这两个eth2区块的最近状态,而另一些矿工不知道。这对“eth2作为终态小工具”来说不是问题,但这确实意味着我们需要更多底层设计,使eth1清楚知道eth2的区块状态,以便允许从抵押合约(DepositContract)中提取ETH。
一种可能方案是在eth1中简单地创建一个?eth2_data?投票机制;本质来说,就是复制使eth2知道eth1状态的同一种机制。可将其与上文方案结合起来确保一致性:eth1矿工仅会为?eth2_data?区块进行投票,条件是只有当这些区块满足已确认,以及引用的?eth1_data?区块是矿工正在打包的eth1区块的祖块。
面临的挑战
这两种方法都需要对eth1方面进行改动。目前在eth1->eth2的“最终转换”之前,eth2路线图对eth1方面没有改动。而如果eth2中断,这两种方法都需要eth1采取紧急补救措施。
第二种方法将要求所有eth1矿工也要运行eth2节点。因此,
尽管这两个中方法都是绝对可行的,但并不会很快实现。但是,随着eth2持续运行并证明其稳健性,那么
肯定会到一个实现这种双向桥接很有意义的阶段。为了降低风险,可以做一些事情:
在eth1上运行eth2投票时有一周的投票时间,以便在出现问题时有时间进行人工干预;
由于同样的原因,eth1通过轻客户端知道eth2中已敲定的区块时,ETH的提取也会有一周时间的延迟;
当抵押的ETH数量足够多的时候才开启这种桥接;
将投票阈值设置为高于50%;并使系统更倾向于不包含任何eth2区块(除非这些区块获得了很强的共识)。
原文链接:
https://ethresear.ch/t/two-way-bridges-between-eth1-and-eth2/6286
参考链接:
:https://github.com/ethereum/eth2.0-specs/blob/fffdb247081b184a0f6c31b52bd35eacf3970021/specs/core/0_beacon-chain.md
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。