BCH新旧地址

Bitcoin Cash从0.16.2版本开始推出了CashAddr格式,老的比特币格式的地址被称为Legacy(遗产)地址,升级节点至0.16.2后,所有的RPC地址展示都用了CashAddr格式,包括listunspent,listtransactions,validateaddress等常用的RPC命令。

快速看看BCH新老地址的对比

  1. 新地址是和老地址一一对应的,它们对应了同一个私钥,只是换了种写法

  2. 新地址可以发送余额给老地址,老地址可以发送余额到新地址

  3. 新地址是大小写不敏感的,可以全部转成大写,也可以全部转成小写,优先小写格式,同一地址不能大小写混用

  4. 新地址的前缀可写可不写,老地址没有前缀,通过首字符来标识类型

  5. 新地址用base32编码,老地址用base58编码

  6. 新地址格式不是一个软分叉,也不是一个硬分叉(这个有点争议,改了大家都依赖的节点程序其实算是一个软分叉)

自从比特币分叉出BCH以来,两个分叉币就逐渐地往不同的方向走了,软分叉的BTC支持了隔离见证,也增加了隔离见证地址等功能,默认生成新地址(getnewaddress)是p2sh-segwit隔离见证地址了,如果想要生成其它格式的地址,可以使用address_type来指定地址类型,例如要生成原始格式地址,address_type要填legacy。现在,Bitcoin Cash也有了自己的地址格式,而且推荐用户优先选用新的地址格式。

BCH的新地址格式类似这样:
bitcoincash:qpg6rgmpxr838cnwjhatdyuxkdz644xku54fe5yk99
bchtest:qqfpw4e90jhanpz2uspe29czwswgk5rd9v3yczymwq
开头是一个网络名,后面是一个q开头的base32编码的字符串,包含了版本号、公钥哈希值、校检码等信息,它们根据一些规则来拼接成这样一个地址,具体原理请参考这里。

新弄一个地址格式的初衷,在于区别老地址和新地址,以免用户充错币。例如充错BTC到BCH地址,由于BCH已经做了防重放攻击,这样相当于将BTC打过去了与BCH地址相同的一个BTC地址上去了,要找回的话还挺麻烦,需要将BCH钱包的私钥,导入到BTC钱包上,才能将币打出,类似的将BCH充值到BTC地址也一样。如果私钥不由自己掌握,或者交易所、钱包等商家不提供找回服务,那么这个币就相当于丢了。有些服务商为了防止用户打错,干脆将BTC和BCH地址充值地址弄成一致的,这样用户就不会打错了,即使打错了,也是充值到自己的账号去,可以随时提走。

新格式解决了一些问题,然而也带来了一些问题,特别是在新旧格式交替的过程中,会使人懵逼,一会新地址格式,一会老地址格式,虽然背后都是同一个私钥,但是人阅读起来还是有非常大差别。全部人都用老地址格式,或者全部人用新地址格式,都不会有问题,部分人使用新地址格式,部分人使用老的,就会像语言障碍一样,需要转换一下,才能看得懂。

除了新老地址混用的问题,其次新地址看起来其实蛮丑的,使用小写使得整个地址看起来密集,冗长,虽然开发者说是为了更易于书写和阅读,其实完全没有起到这个作用,比起 18SdNMjLMA9PJLnYr2MJtH8fndwYhq26vP 这样的老地址,实在是难看了很多,老的比特币地址其实经过了精心的设计,通过base58编码,避免了一些容易看错的字母和数字;使用首字母来标识类型,能够让人一眼知道这是个啥地址,比如m或n开头的,是一个测试环境地址,而1开头是正式环境地址,如果是3开头的,那么它是一个P2SH地址。新地址格式,通过前面的版本号来看地址所属的网络,不能再轻松看出差别了,新地址格式的确没有老地址那么简洁易用。

不过,目前走到这步,也都需要支持新地址格式,这样才能尽快解决这个兼容问题,让人们不再去关注这种差别,而可以自然地使用BCH。Bitcoin Cash开发者的方向,也应该将精力用在刀刃上,去解决那些更重要的问题,而不是解决一个问题,引入另外一个问题,因为要解决类似这种地址兼容的问题,需要漫长的时间等待所有人都用上新地址,甚至直到永远,也还是有人用老地址,这样总是要做兼容,这是非常不好的实践。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值