本文为博主原创文章,未经博主允许不得转载。
Eth2.0的存款合约
Eth2.0的存款合约并不部署在Eth2.0的链上,而是部署在Eth1之上。Eth2.0和Eth1.0实际上是两条完全不同的链。区块链上承载价值的平台,而其之上的代币则为载体。即使进行技术升级,价值载体是需要继承,这是Eth2.0仍为以太坊的核心要点之一。
因此,需要一座桥梁,单看好像很简单。实际上,桥梁有着不同的建法与不同的成本。
- 双向桥接:Eth1.0中的ETH代币可以转到Eth2.0上,反之亦然
- 单向桥接:Eth1.0中的ETH代币可以转到Eth2.0上,而Eth2.0上的代币不可转到Eth1.0上。
为了降低Eth2.0阶段0的复杂度,采用了单向桥接的方案。我们分析一下,其实单向桥接是在Eth1.0中销毁ETH代币,Eth2.0中的信标链通过销毁事件在链上铸造新的ETH代币的过程。
这个单向桥接方案的具体实现是在Eth1.0上部署一个存款合约,而Eth2.0的信标链则同步该合约的状态,进行相应的处理。
存款合约代码
见这里
增量式默克尔树
为了节省gas,存款合约采用了增量式默克尔树根的算法,其空间复杂度为O(log(n)),具体为floor(log(n))。存款合约的上限为2^32-1个存款信息。
版权声明:本文为jason_cuijiahui原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。