CIP-37更新对Conflux普通用户的影响

本次更新为兼容版本更新,公链的共识层没有发生改变。

新旧地址格式只是做了一次编码转换,原有的私钥和助记词可以正常登陆Conflux钱包账户,不会对个人资产有任何影响。
本次升级临近中国假期,贸然升级可能无法得到足够的技术支持,建议大家谨慎升级。建议所有Conflux生态产品在2月22日之后升级新节点。

为什么要做这次修改

目前的 Conflux 和以太坊地址非常相似,很多情况下它们是可以互相兼容的,例如,一些以太坊上的地址(0x1开头地址)在 Conflux 上也是有效的;反之,Conflux地址在以太坊上也有1/16的概率可行(有资产丢失的可能)。保持兼容的好处是降低迁移的成本和门槛。但相似的地址也带来了不少问题,比如通过 shuttleflow 进行跨链操作的时候,经常因为地址相似而混用并导致资产丢失。资产丢失是一个非常严重的问题,为了优化跨链体验,减少地址用错的问题,Conflux 在CIP37 中尝试引入一种新的地址格式: base32Check

CIP37 地址修改的具体内容

为了解决地址混淆用错的问题,在 CIP37 引入了全新的 base32 带校验和的地址,该地址除校验和外还可以包含网络,类型等信息。

旧版格式的地址(格式为0x开头)为hex40 地址;新版格式的地址为base32地址(以网络标识开头,如cfx:)。
新旧地址对比:

hex40 地址: 0x1386b4185a223ef49592233b69291bbe5a80c527
base32地址:cfx:aak2rra2njvd77ezwjvx04kkds9fzagfe6ku8scz91

新地址规范采用自定义字符的 base32 编码地址,目前使用的字符如下: abcdefghjkmnprstuvwxyz0123456789(移除了 o、 i、 l、 q )

在新格式地中,同时包含了网络类型信息,目前包括三种:cfx,cfxtest,net[n] (中文对应主网,测试网,自定义网络)

cfx:aak2rra2njvd77ezwjvx04kkds9fzagfe6ku8scz91
cfxtest:aak2rra2njvd77ezwjvx04kkds9fzagfe6d5r8e957
net1921:aak2rra2njvd77ezwjvx04kkds9fzagfe65k87kwdf
除此之外地址中还可以包含可选类型信息,目前有四种类型(带类型的地址一般以大写表示):

用户地址: CFX:TYPE.USER:AAK2RRA2NJVD77EZWJVX04KKDS9FZAGFE6KU8SCZ91
合约地址: CFX:TYPE.CONTRACT:ACB2RRA2NJVD77EZWJVX04KKDS9FZAGFE640XW9UAE
内置合约地址: CFX:TYPE.BUILTIN:AAEJUAAAAAAAAAAAAAAAAAAAAAAAAAAAAJRWUC9JNB
零地址: CFX:TYPE.NULL:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0SFBNJM2
旧版 hex40 地址(0x开头)和 base32 地址是可以互相转换,转换为 byte 数组是一样的,但旧版 hex40 地址(0x开头)转换为base32check地址的时候,需要额外的network id信息。

CIP37 详细内容参见:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-37.md
中文翻译参见:CIP-37: 引入一种新的地址格式帮助用户区分 Conflux 和以太坊的地址

我是普通用户,对我有什么影响?

Conflux基金会建议未来Conflux生态逐渐淘汰旧版 hex40 地址(0x开头),统一更新为 base32 格式的地址(以网络标识开头,如cfx:),ConfluxScan会有新旧地址转换。

新旧地址格式只是做了一次编码转换,原有的私钥和助记词可以正常登陆Conflux钱包账户,不会对个人资产有任何影响。

同一个Conflux钱包在不同网络下的地址是不同的如
Tethy网络:cfx:accxxxxxxubtnmezvhu9dhcxxxxxx0403y2dgpyfjp
测试网络:cfxtest:accxxxxxxubtnmezvhu9dhcxxxxxx0403ywjz6wtpg
测试网络:CFXTEST:TYPE.CONTRACT:ACCXXXXXXUBTNMEZVHU9DHCXXXXXX0403YWJZ6WTPG

但是在使用Conflux官方和生态产品时会有一定的影响:

1.Portal

  • Portal 将更新为0.5.11版本,更新后Portal将只展示 base32 格式的地址(以网络标识开头,如cfx:)。
  • 如果是在 Github 上下载的Portal文件,需要用户去Github上下载最新版本手动更新;如果是在谷歌浏览器上下载的Portal插件并科学上网,插件会自动更新。
  • 用户在 Portal 内添加新的账户时,新生成的地址为 base32 格式的地址(以网络标识开头,如cfx:)。
  • 转账时既可以转到 base32 格式的地址(以网络标识开头,如cfx:)也可以转到旧版 hex40 地址(0x开头),但转到旧版 hex40 地址(0x开头)时会有提示。

2.Scan

  • Scan上会放一则公告,内容包含 base32 格式的地址(以网络标识开头,如cfx:)和旧版 hex40 地址(0x开头)的转换工具。
  • Scan上会只展示 base32 格式的地址(以网络标识开头,如cfx:),但支持搜索旧版 hex40 地址(0x开头)。
  • 已经命名的智能合约将只显示合约名称,未命名的智能合约将显示合约 icon。

3.Shuttleflow

  • Shuttleflow中的Conflux地址将只展示 base32 格式的地址(以网络标识开头,如cfx:)。

4.Bounty

  • 暂时Bounty内的提现只支持旧版 hex40 地址(0x开头)。

5.Moondex

  • Moondex的网页端只展示 base32 格式的地址(以网络标识开头,如cfx:)。

6.其他社区钱包

  • Cobo、DAppbirds、Ballet、比特派、虎符、Hashkey等生态钱包会在2月22日之后逐渐支持 base32 格式的地址(以网络标识开头,如cfx:)。

7.社区中心化交易所

  • 社区交易所暂时只支持旧版 hex40 地址(0x开头)格式。中国春节假期后交易所官方将建议用户升级为 base32 格式的地址,请注意留意交易所的官方公告。

8.Conflux生态应用

  • Conflux生态中的钱包会在2月22日之后逐渐支持 base32 格式的地址,在这之前Conflux中的生态应用可以正常使用;当Conflux生态应用升级后需要使用升级后的Conflux生态钱包才能使用,请注意留意Conflux生态应用的官方公告。

【CIP-37(Conflux-rust v1.1.1 )更新对开发者的影响】:

https://forum.conflux.fun/t/topic/4836

2 Likes

刚买的芭蕾硬件钱包有没有影响

同问,早知就不买芭蕾钱包了。。毛

感觉越来越乱,,,早干嘛去了这下更折腾。当时不是说这样兼容的地址编码更好么。现在又改

改了就能避免出错?一样的,如果只是使用会用的不会出错。不会的一样出错。再说这个冒号也是坑,中英文输入下有区别么?要有不是同样有问题今后?

芭蕾钱包没有问题的,App会在2.22后同步支持base32的地址

芭蕾钱包没有问题的,App会在2.22后同步支持base32的地址

地址有":"?我也觉得这个不好,“\”(斜杠)都比这个好,除非地址默认中、英都没有区别。

那芭蕾扫码的还是出现0X1么

牛群冯巩-领导 。。冒号
https://www.bilibili.com/video/av33165993

英文的“:”和中文的“:”有区别吗?

有说中文状态下输不进去,不知具体

有的,全角和半角的区别。

英文一个标点是一个字符,中文一个标点应该是2个字符。

那如果不小心在输入地址的时候用了中文的“:”,岂不是为通缩做了贡献:joy:

应该无法输入吧,或者提示错误吧

是英文 “:” 新地址格式重要的功能就是输入错误格式的地址会提示错误,交易不会被发送

我来科普一下,
Conflux 的 CIP-37 引入的新版地址使用了新的 Checksum 规则

举个例子:(这是一个随便写的地址,仅供举例用)


地址可以理解分为三部分
第一部分为:网络标识开头,如 cfx:
第二部分为:version信息和原来地址的 base32 编码:accxxxxxxubtnmezvhu9dhcxxxxxx0403y
第三部分为:地址的 checksum:2dgpyfjp(这部分是由一二部分计算得出)

如果你输错任意字符,整个地址的格式校验就会失败,交易不会被发送。

2 Likes

芭蕾钱包App里接收的地址会cfx:地址