Nervos 首次主网升级,都有哪些重大更新?

来源:https://mp.weixin.qq.com/s/A4G7ImP2QgvXvZQ1fVUiNw


主网升级倒计时:https://mirana.live

Nervos Network 于 2019 年 11 月 19 日主网 Lina 上线以来,在密码学原语、Layer2 层等方面不断深入研究,经过两年的经验积累,终于计划在 epoch #5414(预计时间为 2022 年 5 月 10 日 01:00 UTC)进行完整的网络升级,这是 Nervos 网络首次硬分叉升级,升级后主网将正式更名为「Mirana」。

1、升级内容

Nervos 本次升级后将拥有更多新功能,包括对加密友好的指令集、虚拟机版本控制、可扩展的区块头和新的密码学标准,可进一步提高 Nervos 网络的效率、性能以及智能合约的可组合型等。

本次升级其实已经从 2021 年 7 月 16 日发布的 CKB v0.100.0(v0.100.0-rc2)时已经着手准备,为确保安全性,Nervos CKB 主网升级经过多轮测试和审计,目前已迭代 15 个发布版本,新的 Nervos CKB 主网可以有效的实现更多的加密算法,对 dApp 开发者将更加友好。

另外,未来的硬分叉将对 CKB 的改进体现在很多方面,如

  1. 官方的 RISC-VB 扩展将被引入到 CKB VM 中,因此可以支持更加高效的加密算法实现,随着 B扩展的启用,CKB VM 的复杂 lock script 开发成本将被降低。

  2. 同时 CKB VM 中将引入一个新的概念:macro-op fusion,它将有效降低智能合约收取的cycle,从而提高智能合约的效率,这使得 Nervos 上的交易手续费更低。

  3. Nervos 上很多地址之前是 PW-Lock 构建的地址,本次更新中将采用新的 Omni Lock 地址,地址格式变了,但是私钥不变。建议所有使用 PW-Lock 地址的用户,将资产迁移到 Omni Lock 的地址上。Omni Lock 地址格式更加灵活,并在一定程度上减少了开发人员的维护(如长地址和短地址问题)。

  4. 另外,此次升级还包括一些修复工作,如以更干净的方式修复CKB-VM中的若干bug,清理冗余代码等。

  5. 区块/交易版本的共识规则也将得到更新,让未来的软分叉更加容易,这为以后升级Nervos网络提供更多的选择。

2、升级说明

本次 Nervos 主网硬分叉升级会在 Nervos 网络产生两条链,两条链的规则不同,但最终是否会产生两种可以使用的代币,这取决于社区和矿工。

从原理上说如果两条分叉链各自有 50% 的算力在挖,那两条链都会活下来,但旧链是否有矿工支持、是否有生态支持(如钱包、交易所、用户等)这都会成为它存活下来的挑战,本次硬分叉升级内容没有太大的争议内容,因此几乎不可能出现两种不同的资产诞生,因此只要生态做好资产迁移工作,普通用户无需过度担心资产安全问题。

3、升级工作

本次升级工作需要特别注意的对象:

  1. 如果您正在运行 CKB 节点或 CKB Indexer 节点,则必须将它们更新到符合硬分叉共识规则的最新版本,如果不更新,您将无法获取分叉节点的同步内容。

CKB最低版本:v0.103.0
CKB Indexer最低版本:v0.3.2

  1. 如果您在使用 PW-SDK、Lumos 和CKB-SDK-JS 等,请务必将它们更新到支持硬分叉的版本。在通常情况下您仅需更新库即可,但在特殊情况下,您可能需要更新一些代码才能使用新库。

PW-SDK最低版本:@jm9k/[email protected]

Lumos最低版本:v0.18.0-rc6
CKB-SDK-JS最低版本: v0.102.3
CKB-SDK-JAVA最低版本:v1.0.0
CKB-SDK-GO最低版本: v1.0.0
CKB-SDK-RUBY最低版本: v0.101.0
CKIT最低版本:v0.2.0
CKB-JS-Toolkit最低版本: 0.100.0-rc1

  1. 如果您的 dApp 中存在地址管理,强烈建议您尽快启用新的 CKB 2021 地址方案。新地址采用了 Omni Lock,包含 PW-Lock 的所有功能,并拥有远远超出 PW-Lock 范围的强大功能。本次硬分叉升级后,虽然依然支持 PW-Lock 的地址,但还是建议所有的用户将 PW-Lock 地址中的资产迁移到 Omni Lock 的地址中。

  2. 将 PW-Lock 地址中的资产迁移到 Omni Lock 的地址后,用户的私钥并没有变。建议开发人员向其用户提供说明和迁移工具。PW-UP Asset Migration 是一款迁移工具,其源代码可在 GitHub 上找到。

  3. 特别注意,本次主网升级,普通CKB持有者一般不需要采取任何行动(主网升级期间,各交易所、钱包可能会暂停CKB的充提和链上转账,请以他们的公告为准)

如果您依赖第三方托管节点,请务必验证主机是否已知道并进行更新。

4、不升级的影响

如果您选择不升级,您的 dApp 可能会受到以下方面的影响:

  1. 您的 CKB 节点可能与网络的其他部分不同步。发生这种情况后,将无法正确反映余额并无法发送交易。

  2. 您的 dApp 将无法利用 CKB2021 硬分叉升级启动后激活的一些新功能。

  3. 您的 dApp 可能无法识别新的 CKB 2021 地址。这意味着用户将无法在支持新 dApp 的新地址格式之间进行资金转移。

  4. 您的 dApp 不会使用 Omni Lock。您的用户将继续依赖 PW-Lock,无法使用 Omni Lock 中的新功能。

5、升级示例和工具

用例

PW-SDK 示例:pw-core/examples at dev · lay2dev/pw-core · GitHub

Lumos 示例:lumos/examples at develop · ckb-js/lumos · GitHub

Lumos 示例 MetaMask + Omni Lock:lumos-metamask-omni-example (forked) - CodeSandbox

PW-UP 资产迁移工具示例:GitHub - homura/pw-up: upgrading your PWlock to Omnilock

工具

Lumos 地址工具:https://nervosnetwork.github.io/lumos/tools/address-conversion

CKB.tools 地址工具:CKB.tools

PW-UP 资产迁移工具:https://pw-up.vercel.app/

延伸阅读

Omni Lock 资产迁移指南:force-bridge/docs/asset-migration-guide.md at main · nervosnetwork/force-bridge · GitHub

CKB 地址格式:rfcs/rfcs/0021-ckb-address-format/0021-ckb-address-format.md at master · nervosnetwork/rfcs · GitHub

关于 Cryptape Jungle 的 Omni 文档:Omnilock, a Universal Lock that Powers Interoperability

全向锁规格:docs-bank/omni_lock.md at master · XuJiandong/docs-bank · GitHub

6、主网升级 AMA 预告

更多关于 Nervos 硬分叉的内容,欢迎参与 4 月 21 日晚 20 点的 AMA。我们邀请了 Nervos 核心团队成员&首席架构师 Jan Xie,做客 @字节元宇宙 Twitter Space 举办,还有 Mirana 限量 T 恤赠送,不要错过。预约链接:https://mobile.twitter.com/i/spaces/1gqxvlYdPyAGB