BTC/ETH Layer2 本质解析
Layer 2 解决了 Layer 1 的扩容问题,提高了智能合约的 TPS(每秒交易数)。要充分利用 Rollup 类型的 Layer 2需要用户执行哪些新增的步骤才能真正使用到layer2所带来的好处呢?本篇文章以主流的Rollup方式来解释,如果要利用到Layer2的来提升自己应用的TPS需要增加哪些步骤。
如果要清楚的知道增加了哪些步骤,我们必须先知道在layer1上面进行交易需要哪些,然后两者对比就能知道增加了哪些步骤。
在 Layer 1 上进行交易通常包括以下步骤:
- 部署合约: 用户需要发起一笔交易来部署智能合约。这包括发布合约的代码、设置合约的初始状态,并在区块链上记录合约的地址。
- 调用合约方法: 一旦合约部署完成,用户可以通过发送交易来调用合约的方法。这可能涉及更改合约的状态或执行某些计算。
在 Layer 2 上,使用 Rollup 类型的解决方案
首先我们把以太坊上面的交易做个分类。
- ETH资产的流转交易。
- ERC20代币类资产的流转交易
- 其他交易(uniswap,curv,dai,nft,others)
我们常用的扩容其实就1,2两种资产的TPS提升。
- 合约部署: 在 Layer 1 上,项目方部署了一个资产托管合约(锁定合约),用于接收用户在 Layer 1 上发送的 ETH 或 ERC20 资产。同时,在 Layer 2 上,为每个 Layer 1 资产部署了对应的合约,例如 ETH 合约、UNI 合约、DAI 合约。
- 资产托管: 用户将其 ETH 或 ERC20 代币发送到资产托管合约地址。尽管智能合约地址没有私钥,但通过合约间调用的方式,资产托管合约可以对 ERC20 资产进行控制。
- Relayer 监控事件: 多个 relayer 在链下监控 Layer 1 上事先定义好的事件。一旦用户在 Layer 1 上发送资产到资产托管合约,相应的事件会被触发。
- 多重签名 Mint 交易: 多个 relayer 通过多重签名的方式合作,向 Layer 2 上的对应资产合约发送一个 mint 交易。这个交易的目的是在 Layer 2 上铸造对应 Layer 1 资产的代币,如将 ETH 转换为 Layer 2 上的 ETH。
- Layer 2 上的 Mint 操作: 在 Layer 2 上,对应的资产合约执行 mint 操作,将资产从 Layer 1 映射到 Layer 2,例如将 ETH 映射为 layer2-eth、UNI 映射为 layer2-uni。
- Layer 2 交易: 之后的所有交易都在 Layer 2 上进行,利用 Layer 2 的高性能和低成本进行快速的交易和智能合约操作。
- Layer 2 数据存储: Layer 2 将每次交易打包和 Layer 2 的状态根一起发送到 Layer 2 存储,确保交易的有效性和一致性。
这种解决方案使得用户能够在 Layer 2 上体验高性能的交易和智能合约操作,同时通过资产托管合约在 Layer 1 和 Layer 2 之间进行资产的安全迁移。
验证失败采取的措施
在 ZK-Rollup 中,安全性的保障源自每次 Layer 2 向 Layer 1 打包的交易和状态都伴随着一个证明(proof)一起提交给 Layer 1。这个证明确保 Layer 2 按照智能合约的代码老老实实运行,没有违反规则。当 Layer 1 收到这个证明时,会进行验证。如果验证失败,即证明与合约代码的执行不一致,系统将采取相应的安全措施。
具体而言,如果验证失败,系统可能会采取以下一些行动:
- 撤销交易: 不通过的交易可能会被撤销,以确保区块链上的状态是正确的。
- 罚没作弊者: 如果验证失败是由 Layer 2 上的作弊行为引起的,系统可能会对作弊者进行处罚,例如罚没一部分资产或取消其参与验证的资格。
- 系统回滚: 在极端情况下,如果验证失败涉及到系统的整体安全性,可能会考虑回滚到之前的状态,以确保网络的一致性和安全性。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...