查看原文
其他

​主网升级后,CKB 地址有了哪些新变化?

Nervos Blog 字节元 CKB 2023-01-06
原文链接:https://www.nervos.org/blog/the-nervos-address-format-upgrade

字节君注:5 月 10 日,CKB 主网升级顺利完成!此前有小伙伴看到更新了 Neuron 钱包之后地址都变成了长地址,担心是不是与之对应的短地址就不能用了。其实地址的升级是向下兼容的,对于同一个钱包而言,无论是长地址还是短地址,都指向的是你这个钱包私钥背后的账户,所以钱包用户,依然和以前一样该怎么用就怎么用。交易所那边,他们集成了新的 SDK 之后,可能会有明显的体验优化,等待他们更新完成以便支持新的地址格式,当你需要往交易充值的时候,去使用最新的地址就可以了。

总之,这次主网升级是非常底层的升级,普通用户不需要做额外的操作,以前怎么用,现在还怎么用。

主网升级后,Nervos Layer 1 使用的默认地址格式已更新,新地址将支持更多的功能。Layer 1 地址是以“ckb”开头的地址,主要用于 Nervos 生态中的 dApp 和钱包。


在 Nervos 上,地址不仅仅代表账户的公钥,它还对有关如何访问资产的信息进行了编码,包括所有者是谁、管理它的智能合约代码(lock script)以及必须满足哪些特定条件才能授予访问权限,功能十分强大。


升级后,以前的旧地址格式不再是默认的地址格式,取而代之的是新的“Full Payload Format”地址,也被称为“CKB2021 地址”。新地址拥有主网升级后的某些功能,而且设计得更好,更加面向未来,在未来无需频繁地更新。



取消短地址


你会注意到的第一件事,是 CKB2021 地址比以前的短地址要长,你可能在 Neuron、imToken 和某些交易所充值页面看到了 CKB2021 地址。


下面是以前的短地址示例:

  • ckt1qyqqvkyxvkpndrt2xd6tk84clrz4elrnws5ewqm9



使用 CKB2021 地址格式后,上面这个地址将转换为:

  • ckt1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsqgxtzrxtqekek344rxa9mr6u0332ul3ehgvcawxp


这两个地址指向的都是使用了 SECP256K1+Blake160 lock script 的同一个账户,该 lock script 通常被认为是默认的。只不过短地址省略了所使用的 lock script 信息,选择使用一个字节的预定义 ID 代码来表示它使用了默认的 lock script,因为默认的  lock script 是众所周知的。默认的 lock 包含在创世区块中,它是 Nervos 生态系统中支持最多、最常用的 lock script,所以每个 dApp 都应该知道它。


然而,短地址的这个方法也有问题,因为所有的人都必须就“哪一个才是众所周知的 lock script”达成共识。Portal Wallet 的用户很快就注意到他们的 CKB 地址比 Neuron 和 imToken 提供的 CKB 地址长很多。这是因为 Portal Wallet 使用了 PW-Lock,而 PW-Lock 是由 Lay2 团队创建的,在发布时并不那么知名。这就产生了一个治理问题,必须要有人来决定哪个才是“众所周知”的,所以这也可以被看作是一种集中化或者说偏袒。


除了治理问题之外,还需要在每个 dApp 和钱包的配置中包含一个常见的 lock script 列表。如果列表有更新,每个 dApp 和钱包都必须升级它们的配置,否则转账时可能会出现问题。这就带来了另外一个问题:让每个人都及时进行更新,是一件非常困难的事情。所以,部分用户遇到了转账问题,比如某些交易所无法将 CKB 提现到某些钱包提供的地址上。这是交易所没有及时更新造成的,即使他们已被告知问题和解决问题的步骤。



针对 CKB-VM V1


主网升级后,CKB-VM v1 也随之而来,这是新版本的虚拟机,可以在 Nervos Layer 1 上执行智能合约。CKB-VM v1 中有许多更新,对智能合约的开发非常有利,但以前的地址格式没有提供一种方法来指定 lock script 应该使用哪个版本的 CKB-VM。


CKB2021 地址格式,允许通过 hash type 值来指定 CKB-VM 的版本。该值被明确定义为 hash type 数据字段中的一个字节,这意味着如果将来有更多的虚拟机版本加入,CKB2021 地址也不必专门改变其地址格式来使用新的虚拟机。



结语


如果你是基于 Nervos Layer 1 地址做开发的人员,你可能需要进行更新,以添加对 CKB2021 地址的支持。在某些情况下,这就像更新库和节点软件一样简单。我们建议所有的开发人员通读《CKB2021 Hardfork Migration Guide》,以确保你的 dApp 已正确更新并准备就绪。


如果你在使用 dApp 或交易所充值、提现的过程中,遇到了问题,我们建议你将遇到的问题直接报告给相关的开发人员。只有开发人员才能解决他们产品的问题,听取客户的报告是让他们知道他们需要优先解决哪些问题的最佳方式。


CKB 默认地址格式的更改,可能会在更新完成时造成一段时间的不兼容,但我们相信,从长远来看,随着我们在未来继续添加更多功能并扩展我们的生态系统,现在进行更改将带来更大的好处。感谢你在这个过渡期间的耐心等待。


相关链接:

  • Full Payload Format:https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0021-ckb-address-format/0021-ckb-address-format.md#full-payload-format
  • CKB2021 Hardfork Migration Guide:https://github.com/jordanmack/nervos-ckb2021-hard-fork-migration-guide



   



END



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

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

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

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

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

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

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