ETH-BTC-EOS私钥能否相互转换
前端时间本猿参与了一款钱包软件的开发,负责Android端,底层使用的是GoLang(够浪),keystore相关的技术使用的ETH-Go库,那么问题来了,本猿参与的钱包项目第一个要上的是EOS链,ETH库生成的私钥能否转换成EOS的私钥呢?
从理论上来讲,ETH与EOS的私钥是通用的,底层均为33位私钥,ETH暴露出来的地址样式为:0x36bc2830f08074abd27019a2c3a7197fc9422e59,EOS暴露出来的地址样式为:EOS6x3pXgPk4qUvjwzeDNY2q8vwLN6xqNxKPjrqPqbM583xShYD5r;乍一看毫无联系,其实都是私钥经过一些加密变换产生,表现形式不一样,但是内在相同。
下面本猿详细描述一下ETH私钥转EOS私钥的步骤:
一:使用hex库将ETH16进制私钥转换成byte类型
二:使用btcec库PrivateFromBytes方法传入S256与私钥byte将转换成比特币类型的私钥对象
三:使用eoscanada库NewWif方法传入比特币私钥与EOS私钥ID:0x80将比特币库的私钥转换成EOS库的私钥对象
从上面三个步骤就能看出,比特币私钥做了一个完美中转。有兴趣有动手能力的看官可以考虑自己试一试,可以尝试用同一把私钥管理ETH、BTC、EOS三个链的钱包哦。
开源地址在github上,地址为:https://github.com/zerochl/chain-address
使用方式很简单,准备一台Mac,下载本猿程序,先断开电脑网络(确保安全),打开终端,定位到程序所在当前文件夹,先执行chmod 111 convert,赋予可执行程序权限,然后输入如下三种命令:
一:./convert -cmd create
二:./convert -cmd ethtoeos -private 948be7b7ac1ac60c7956184e81ae8a0082f884e6ec7f273e18e80eae0373602f
三:./convert -cmd eostoeth -private 5Jwi16z6aoErWTL6jG7fASDLPaaib2AjT5NM9o4esVEuuCwJ9Eu
命令一表示生成一把私钥,会给出助记词,ETH私钥,ETH地址,EOS私钥,EOS地址
命令二表示ETH地址转EOS地址,会给出EOS私钥,EOS公钥
命令三表示EOS地址转ETH地址,会给出ETH私钥,ETH公钥
有能力的用户可以用本猿代码自行生成可执行程序,本猿可没有掺杂任何后门哦。
Comments
comments powered by zero