原文标题:《从 zkSync 看以太坊 Layer2 网络的问题和挑战》 这两天我们忙着在 Ownbit 钱包上原生接入 zkSync,各个技术环节已经打通。从我们的经验来看,zkSync 有其非常优秀的一面,也有其不足的一面。而其中的很多不足是 Layer2 网络所共有的问题和挑战。 zkSync 主要优点1. 手续费确实便宜,实测当前 zkSync 网络上进行一次 token 转账大致手续费为 1.5 元 人民币左右,而当前 ETH 主网进行一次 token 转账大致手续费为 75 元 人民币左右; 2. 支持 token 支付手续费,例如你在 zkSync 网络上转账 USDC token 时可以选择 USDC 进行手续费支付(无需 ETH),这对用户来说是友好的; 3. 提币到 ETH 主网所需时间短。当前实测一次提币,花费手续费约 150 元 人民币,大约到账时间为 3 个小时。因为当前总交易量比较少,根据设计,越多的交易量会让提币所需时间变得越少。预计以后提币到 ETH 主网时间一般在几十分钟之内。 zkSync 主要的问题或挑战1. zkSync 网络本身的安全性。为了实现本网络更快的确认速度,Layer2 网络一般采用 PBFT、DPoS 等共识协议。这些协议可以支持更快的出块速度,但是它们通常更加中心化。 在 zkSync 官方宣传语中:和 ETH 主网一样安全。那是有前提的。前提是你需要等待转账交易进入 verified 状态,才和 ETH 主网一样安全。这通常需要等待十几分钟以上。因此,相对而言,Layer2 网络本身普遍具有更中心化、相对不安全的问题。
2. 合约账户的 Layer2 映射问题,这是一个通用的问题。如果你在 zkSync 二层网络中,把 token 发送到了只是在 ETH 主网存在的地址上,那会发生什么? 币会丢失吗?为了解决这个问题 zkSync 专门设计了 changePubKey 的交易类型,让你去认领某个地址。如果该地址是一个外部地址(EOA),你可以通过私钥进行签名,在 zkSync 网络中发送一个 changePubKey 的交易,便可以认领该地址。 但是如果该地址是个合约地址,那么就会有问题。因为合约地址不存在对应的私钥。这时就面临着资产永久丢失的风险。zkSync 设计的方案是在该合约上执行一个「onChain」类型的 changePubKey 交易。这就要求该合约地址拥有执行任意代码的能力,否则 Layer2 的资产依然面临丢失。 提示:如果合约提供如下代码调用接口,则表示可以执行任意代码(其中 data 是任意 bytes): destination.call.value(value)(data) (责任编辑:admin) |