本次更新为兼容版本更新,公链的共识层没有发生改变。
新旧地址格式只是做了一次编码转换,原有的私钥和助记词可以正常登陆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生态应用的官方公告。