从我们的经验来看,zkSync 有其非常优秀的一面,也有其不足的一面。而其中的很多不足是 Layer2 网络所共有的问题和挑战。
这两天我们忙着在 Ownbit 钱包上原生接入 zkSync,各个技术环节已经打通。从我们的经验来看,zkSync 有其非常优秀的一面,也有其不足的一面。而其中的很多不足是 Layer2 网络所共有的问题和挑战。
1. 手续费确实便宜,实测当前 zkSync 网络上进行一次 token 转账大致手续费为 1.5元 人民币左右,而当前 ETH 主网进行一次 token 转账大致手续费为 75元 人民币左右;
2. 支持 token 支付手续费,例如你在 zkSync 网络上转账 USDC token 时可以选择 USDC 进行手续费支付(无需 ETH),这对用户来说是友好的;
3. 提币到 ETH 主网所需时间短。当前实测一次提币,花费手续费约 150元 人民币,大约到账时间为 3个小时。因为当前总交易量比较少,根据设计,越多的交易量会让提币所需时间变得越少。预计以后提币到 ETH 主网时间一般在几十分钟之内。
1. zkSync 网络本身的安全性。为了实现本网络更快的确认速度,Layer2 网络一般采用 PBFT、DPoS 等共识协议。这些协议可以支持更快的出块速度,但是它们通常更加中心化。
在 zkSync 官方宣传语中:和 ETH 主网一样安全。那是有前提的。前提是你需要等待转账交易进入 verified 状态,才和 ETH 主网一样安全。这通常需要等待十几分钟以上。因此,相对而言,Layer2 网络本身普遍具有更中心化、相对不安全的问题。
调用 ETH 主网合约进行 block verify 后进入 Verified 状态
2. 合约账户的 Layer2 映射问题,这是一个通用的问题。如果你在 zkSync 二层网络中,把 token 发送到了只是在 ETH 主网存在的地址上,那会发生什么?
币会丢失吗?为了解决这个问题 zkSync 专门设计了 changePubKey 的交易类型,让你去认领某个地址。如果该地址是一个外部地址(EOA),你可以通过私钥进行签名,在 zkSync 网络中发送一个 changePubKey 的交易,便可以认领该地址。
但是如果该地址是个合约地址,那么就会有问题。因为合约地址不存在对应的私钥。这时就面临着资产永久丢失的风险。zkSync 设计的方案是在该合约上执行一个 "onChain" 类型的 changePubKey 交易。这就要求该合约地址拥有执行任意代码的能力,否则 Layer2 的资产依然面临丢失。
提示:如果合约提供如下代码调用接口,则表示可以执行任意代码(其中 data 是任意 bytes):
destination.call.value(value)(data)
3. Token 映射的问题。zkSync 网络上的 token 和 ETH 主网上发行的 token 保持一种固定的映射关系,而这种映射关系是人为管理的。目前不支持去中心化的任意 token 的映射,如果你想将一个不知名的主网 token 映射到 zkSync 网络,则需要人工向 zkSync 团队提交 token 信息。这也是一个比较大的限制。
5. 支持通用 EVM 的问题。目前支持通用 EVM,让 ETH 主网上的 Dapp 可以无缝移植依然是 zkSync 的重大挑战。目前通用 EVM 在开发过程中,但是可以想象其复杂度还是较大的。通用 EVM 的运行效率、生成 Proof 的技术复杂性所引入的问题,也是我们值得关注的。
尽管有很多问题和挑战,但 zkSync 相对其它网络(TRX、BSC)仍然具有巨大的优势。Layer2 可以实现转账手续费低廉的用户需求,同时也能让用户以去中心化的方式进出 ETH 主网。这是其它平行网络所不具备的优势,因此,zkSync 未来的发展依然值得期待!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!