查看原文
其他

在用户体验方面,新版 Godwoken 带来了哪些变化?

字节君 字节元 CKB 2022-07-27


大家好,我是字节君!


上周,Nervos 上的 Layer 2 解决方案 Godwoken 正式在主网上线新版 Godwoken 实现了 100% 兼容 EVM,同时还承了 Nervos L1 的安全性,支持快速交易,且 gas 费用极低,为 CKB 提供了扩展能力以及基于账户的编程模型,使得以太坊生态的 dApp 均可以移植到 Nervos L2 中来。


下面,字节君将为大家简单梳理下,新版 Godwoken(即 v1 版本)对比去年 6 月 30 日上线的 v0 版本,在用户体验方面有哪些变化?



更快的交易体验


根据 Godwoken 的技术文档,我们可以得知 v0 在设计上平均每 48 秒产生一个区块;Godwoken v1 是一个独立的二层网络,其出块时间是动态调整的,目前的时间间隔在 24 秒到 48 秒之间。


更短的出块时间,意味着更高的 TPS,对于用户而言,则是更快的交易体验。换句话说,在网络不拥堵的情况下,无论是发起一笔交易还是和某个智能合约进行交互,被打包确认的速度会更快,等待的时间更短。当然,如果遇上特别火爆的事件,比如抢头矿,Godwoken v1 还是有可能会拥堵。


如果不幸遇上了网络拥堵,而你又想让交易快点被打包确认,怎么办?可以通过提高手续费进行“插队”。



熟悉的 gas 费模型


为了防止被 DoS 攻击,Godwoken v1 引入了 gas 费模型,目前系统规定的最低 gas price 为 9000 shannon(即 0.00009 CKB)。Shannon 是 Nervos CKB 的最小单位,和 BTC 的最小单位 Satoshi(SAT,聪)、ETH 的最小单位 Wei 类似。


Godwoken v1 网络的 gas 费计算公式,同之前的以太坊一样(EIP1559 执行之前),为:

Gas Fee = Gas Price x Gas Used

Gas Used 指的是这笔操作使用了多少数量的 gas。以普通的转账为例,在 Godwoken v1 网络中,转一笔 YOK 代币消耗的 gas 数量为 27037,按照系统规定的最低 gas price 计算,这笔转账需要花费的 gas 费为 2.43333 CKB。

Gas Fee = 0.00009 CKB x 27037 = 2.43333 CKB

如果按照当前的 CKB 价格计算,这笔转账的手续费(矿工费)不到 $0.01,依然非常便宜。


Gas Used 和操作的“复杂度”息息相关。同一个应用的同一项操作,消耗的 gas 数量是固定的。一般来说,普通的转账消耗的 gas 数量会比较少,和复杂的智能合约进行交互所需的 gas 量会比较大。所以,字节君也希望 Nervos 上的 Layer 2 应用都能好好优化代码,尽可能地减少 gas 的用量。


Gas Price 取决于网络的拥堵情况。正常情况下,使用钱包默认的 gas price 即可,如果你想“插队”让自己的交易尽快被打包确认,尤其是在网络拥堵的情况下,就需要上调 gas price 了。这一点相信大家都很熟悉,毕竟以太坊经常拥堵,字节君就不多做介绍了。


天下没有免费的午餐,引入 gas 费模型,除了增加 DoS 攻击的成本之外,也让 Godwoken 的出块节点有了收入,确保节点能一直持续地、稳定地运行下去,而不是一直用爱发电。



失败的交易也会被打包


在 Godwoken v0 的网络中,失败的交易会被节点拒绝,不会被打包,这点和 BTC、CKB 等 UTXO 区块链的做法相同。


但在 Godwoken v1 的网络中,失败的交易记录也会被节点打包到 Layer 2 区块中,用户支付的 gas 费不会被退回,这和以太坊的做法相同。这项设计提高了 Godwoken 与以太坊区块链的兼容性,降低了被 DoS 攻击的风险。


在此,字节君友情提醒大家尽量避免失败的交易。造成交易失败最常见的原因是 gas 不足(out of gas)。在支付 gas 费时,钱包会使用默认的 gas limit(即使用 gas 的数量上限),这个默认值正常情况下是够用的,但遇到复杂的或是执行步骤较多的智能合约,这个默认的 gas 数量上限就不够用了,就会导致交易失败。这种情况下,可以通过手动上调 gas limit 的数值来解决。


另外,指令错误(bad instruction)和回退(reverted)也会导致交易失败,只不过这两种情况出现的比较少,而且主要是智能合约本身的问题,对此字节君就不再进一步解释了。



L2 CKB 的小数点位数变多了


在 Nervos L1(即 CKB 区块链)上,CKB 的最小单位是 shannon,小数点后面 8 位,即 1 shannon = 0.00000001 CKB。


在 Nervos L2(即 Godwoken v1)上,为了和以太坊保持一致,CKB 的小数点位数为小数点后面 18 位。


因此,如果你将 Godwoken 上的 CKB 提现到 L1 区块链,提现的数额必须是 8 位小数,不能提现金额小于 1 shannon 的 CKB。



从 L2 提现到 L1 的时间变长了


Godwoken 是一套包含了 Optimistic Rollup 的 Layer 2 解决方案。Optimistic Rollup 简单来说,就是“干完再查”:

先把数据处理了传到主链,再等人来挑战,一段时间内(挑战期)没人证明是错的,那就是对的。
推荐阅读《一文看懂主流的 Layer 2 方案及其派系之争

在 Godwoken v0 的网络中,这个挑战期约为 3 天时间(3600 个区块确认),但在 Godwoken v1 中,这个挑战期约为 7 天时间。


延长挑战期,好处是进一步增强了 Godwoken 的安全性,缺点是用户从 Godwoken 提现到 L1 的时间变长了。当然,如果有中间商愿意做这门生意,这就不是一个特别大的问题。


关于 Godwoken 的更多技术细节,欢迎查阅官方文档:

  • https://docs.godwoken.io


Godwoken 浏览器:

  • https://v1.gwscan.com


推荐阅读:



   



END



Nervos 网址:https://www.nervos.org/ 

中文电报群:https://t.me/NervosNetworkcn

中文推特:https://twitter.com/CKBMeta 

中文Discord:https://discord.gg/f2qa52tJnz 

《Nervos 入门手册》:ckborg.bit.host

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存