7 月 16 日,随着 CKB v0.100.0 代码公布,意味着 Nervos CKB 第一次主网降级正式启动。
v0.100.0:https://github.com/nervosnetwork/ckb/releases
为了确保安全性,Nervos CKB 主网降级将会通过多轮测试和审计,最终降级预计在往年第四季度实现。降级实现后,新的 Nervos CKB 主网能够无效地实现更多的加密算法,对 dApp 开发者将更加敌对。
Nervos CKB 的主网降级会通过硬分叉进行,针对社区提出的问题,CKB 外围开发团队分享了对于此次主网降级的细节,同时也欢送大家在 GitHub 上查看这次主网降级包含的 RFC 并提出任何问题或者倡议。
GitHub:https://github.com/nervosnetwork/rfcs/pulls
01 Q:硬分叉的次要起因是什么,是什么导致了要硬分叉?(即此时分叉是路线图的一部分,还是由其余的一些因素导致的?)
硬分叉是路线图中提前打算好的,目标是降级 CKB,退出新的性能,以及修复一些 bug。
02 Q:主网降级对 CKB 的改良次要会体现在哪些方面?对开发者以及建设在 Nervos CKB 上的我的项目,预计会有哪些影响?
硬分叉对 CKB 的改良体现在很多方面:
- 官网的 RISC-V B 扩大[1] 将会被引入 CKB VM,因而能够提供更高效的加密算法实现。随着 B 扩大的启用,简单 lock script 的老本将被升高。(注:RISCV B 扩大指的是 RISCV 用于位运算减速的一个扩大指令集,目标是应用一条指令实现本来须要 2~3 条指令能力实现的位操作指令)
-
CKB VM 将引入一个新的概念,macro-op fusion[2]。从一个更高的视角来看 macro-op fusion,就是当人们一起应用某些 RISC-V 指令时,CPU 可能以更高效的形式一起执行它们。因而,CKB VM 将缩小造成 macro-op fusion 指令模式的 cycle。请留神,古代编译器曾经宽泛地利用 macro-op fusion,所以你可能留神到的惟一后果,是 CKB VM 对智能合约收取的 cycle 比硬分叉前更少。对于 RISC-V 中 macro-op fusion 的更具体介绍,请参考这里:
https://riscv.org/wp-content/uploads/2016/07/Tue1130celio-fusion-finalV2.pdf
- 在交易中能够进行多个 dep 匹配。 CKB Cell 应用数据哈希或类型脚本哈希来间接匹配脚本二进制。存储二进制文件的 Cell 必须通过 Cell dep 增加。目前不能够在 CKB Cell dep 中进行屡次匹配,以防止歧义。然而,如果同一个 Cell 在 Cell dep 中呈现屡次,通常通过 dep 组就能够平安地绕过这个谬误。
- 简化交易输出的 since 规定。 这一改良能够更容易地依据链上工夫编写智能合约。
CKB VM 变动背地的一个次要起因(除了 Bug 修复)是缩小开销。 CKB VM 曾经是本地 CPU 上的一个薄形象层。有了硬分叉,咱们的确想把形象层做得更薄:RISC-V B 扩大让咱们能够间接将 RISC-V 指令映射到 x86-6 4 cpu 提供的本地指令上,而 macro-op fusion 则更深刻地利用了咱们 CPU 中的古代微架构。所有的这些致力都是为了让加密算法可能更无效地在 CKB VM 上运行,从而解锁更多 Nervos CKB 的潜在用例。
03 Q:主网降级对 Nervos CKB 的成长和倒退有什么帮忙?
这次主网降级还包含了一些修复工作,比方以更洁净的形式从新修复 CKB-VM 中的几个 bug。这些 bug 是在主网启动后发现的,目前已在主网上用长期解决方案修复了。清理将会让代码库更加衰弱,未来 CKB 更易于保护。
区块 / 交易版本的共识规定也会调整,让将来的软分叉更容易。当咱们想为 CKB 增加新的性能时,这一调整将给咱们更多的抉择。
04 Q:硬分叉后,有哪些性能或改良将成为可能?
硬分叉带来的其中一个次要改良是 能够无效地实现更多的加密算法。举个例子,比如说 BLS 签名算法。因为算法的复杂性,BLS 尽管在实践上是可行的,但目前在 CKB 上会耗费太多的 cycle。在 B 扩大的帮忙下,加上 macro-op,咱们设法将 BLS 签名验证操作所耗费的 cycle 升高到 CKB 上可行的比例。这些反对 BLS 实现的技术,也能够移植并用于优化更多的算法,如 RSA、secp256r1 等。
05 Q:对于硬分叉,还有哪些相干的细节须要让社区晓得?
此前,咱们把反对轻客户端协定 Flyclient 纳入到了硬分叉。在过来的几个月里,咱们有好几个方案设计,但通过评估,咱们认为 最好推延施行轻客户端协定 Flyclient,因为它的变动比拟大,而且因为不足内部反对,现阶段的影响 / 效益不明确。咱们会有另外一篇文章来解释这个问题,咱们也会持续钻研轻客户端协定。
此次硬分叉的大多数改良曾经在 GitHub 上公布了,欢送大家提出倡议 / 评论:
https://github.com/nervosnetwork/rfcs/pulls
Nervos CKB 的主网降级须要矿工、钱包和交易所的反对,咱们会尽最大致力与社区进行充沛沟通,确保稳固而优雅的降级。
06 Q:你们将如何进行主网降级?
此次的主网降级将分为 三个阶段:
第一阶段:RC1[3] 已于 7 月 16 日公布,外面包含了所有的性能和相应的工具,但不包含具体的降级工夫(epoch),次要用于测试和调试工具。第一轮审计开始。开发者能够应用 Tippy 启动一条新的链来进行测试。
第二阶段(预计在 8 月份):RC2 将在 Aggron 测试网启动。第二轮审计开始。
第三阶段(预计在 9 月份):公布最终版本以及何时在主网上激活的 epoch 信息。
预计主网降级将在第四季度实现。
Ref:
[1] https://github.com/riscv/risc…
[2] https://en.wikichip.org/wiki/…
[3] https://github.com/nervosnetw…
举荐浏览
往年 Nervos CKB 的硬分叉,会空投糖果吗?
Nervos 2021 年技术路线图