以下文章来源于IFWallet ,作者IF团队
连接你与比特币的无限可能。
比特币诞生以来,人们都是通过地址来转账的,而比特币地址看上去是一串乱码,非常地冗长,不方便记忆,人们往往通过复制黏贴或者扫描二维码的方式来填写转账的地址表单。然而,这样还是太麻烦了,要是只需记住地址的昵称,就像电话簿一样,直接选择要转账的对象就好了。其实这个问题,早已经有很多人想过了,早期人们就讨论过,给比特币一个名称服务,甚至在EOS等公链里面,直接就自带了名称服务,对方的名字就是地址。这期间,也有人在钱包或者交易所里实现地址簿的功能,可以把常用的一些地址收藏起来,要用的时候直接点选即可,但是却不能跨应用来使用。
有没有一个办法,既能够便利地输入地址,又能够不影响公链本身的运行,又能够做到跨钱包使用?答案当然是有!否则下面也不用废话了。
BCH的开发者们提出了一个方案,通过把地址打上名字标签,广播至区块链上,用区块链来解决区块链的问题,这样钱包商将数据解析出来,提供一个选择列表,用户轻松点选钱包地址即可,这个方案就叫做CashAccount。
CashAccount的构成
CashAccount长得很像一个邮箱地址,我们看一个简单的例子:
bibodeng#136.8689842343
其规范约定了CashAccount的组成部分:
名称 (蓝色部分)
区块编号(绿色部分)
防碰撞标记(灰色部分)
其中名称就是用户给这个地址取的名字,区块标记指的就是这笔声明交易所在区块距离563620的距离,防碰撞标记是基于 区块哈希和交易哈希计算出来的一个值,用来防止不同交易,注册相同名称引起的混淆。
以bibodeng#136为例, “bibodeng”是整个CashAccount地址中可以自定义的部分,你可以输入任何数字或者大小写字母以及下划线,不能超过99个字符。 “#”是分隔符,必须存在,类似于电子邮箱的“@”。“136”是你注册这个地址时的区块编号。
CashAccount的原理
生成CashAccount的过程需要发布一个声明交易,然后在交易的OP_RETURN数据里面,包含一些数据:
应用协议前缀
名称
地址数据
这个交易广播出去以后,在交易尚未确认前,只能确定名次,当交易被打包后,方能将区块编号和防碰撞标记确定下来。地址查询服务商(如 钱包)就会根据链上的数据,构建出这个CashAccount。
在使用的时候,一般情况下,只需要记住对方的名字如 bibodeng,就能够唯一确定一个地址了,然而有可能同一个高度有多个 bibodeng,那么则需要#号后面的部分来唯一确定这个地址。
CashAccount如何注册
打开CashAccount官网
https://www.cashaccount.info/,你会看到以下界面:
在第一步“Enter your name”那里,输入你想要自定义的前缀,比如“bibodeng”注意只能数字字母下划线,别带特殊符号。“Enter your payment information”那里输入你要绑定的钱包地址,注意必须是CashAddr格式,不要带“Bitcoincash:”这个前缀。
然后点击“Create Register Transaction”按钮,然后略等几秒,第二步的按钮“Broadcast Register Transaction”会变成可点击状态,然后点击,就注册完成了。
注册信息是发送到BCH网络里面的,只要这笔信息打包进入区块,就可以获得可以获得最终确定的账号,如下图,整个地址就注册完成了,它甚至还生成了一个Emoji头像,是一个可爱的波板糖。
注意事项
由于CashAccount是无许可的,任何人都可以给任何地址添加一个标签,这其实也是符合需求的,它就像我们的手机通讯录一样,能够帮你识别出地址并且快速输入就完成了它的使命。但是这样也带来了一个问题,那就是不排除有不怀好意的人,故意申请一些混淆视听的CashAccount,让你很容易点选错误,例如 有人给他自己的地址搞了一个 bibodeng的名字,这样转账给bibodeng的时候,就有可能选错,从而导致资金流失。然而只要你增加CashAccount的完整度,它就能够唯一确定一个地址了,同时也极大的增加了坏蛋的攻击成本,因为他要使得区块编号和碰撞部分和你的相似,需要申请很多很多的CashAccount,耗费很多的交易手续费才能做到。
但是这个情况并不是不可能,只是几率很低,我们在使用CashAccount的时候,遇到多个候选的时候,需要小心点选。
钱包支持
目前CashAccount得到了一些钱包不同程度的支持,包括Ledger,Electron Cash,BitPay等知名钱包商都纷纷宣布支持,有的已经在研发阶段。毋庸置疑,IFWallet率先支持了CashAccount,2018年底声明支持,2019年春节后完成上线,目前Android版本已经发布,可以支持通过CashAccount来转账了,赶紧来体验一把吧,输入头几个字母,立即帮你联想出完整的地址。
参考资料
项目官网
https://www.cashaccount.info/
开发文档
https://gitlab.com/cash-accounts/specification/blob/master/SPECIFICATION.md
网友推荐
https://mp.weixin.qq.com/s/lMuOx7uVSK1QqOCmXW2XUA
「下载方式」
iOS用户前往APP Store 进行下载,
点击以下链接可查看下载指南:
Android用户请扫描下方二维码进行下载:
长按二维码关注