如何将BNB智能链地址转换为BNB信标链地址?
BNB智能链地址转对应信标链地址的方法
背景说明
- BNB智能链(BSC)地址示例:
0x77b177aD227d2D6F395C7b6A8e19dDF34b2dd208 - BNB信标链地址示例:
bnb1fpdn8pnwl3ft39vj7vgyez44y0u4l0d7yearnd - 二者由同一私钥生成,TokenHub合约(地址
0x0000000000000000000000000000000000001004)的transferOut函数支持直接从BSC转BNB到信标链,无需手动输入信标链地址,说明存在标准化转换逻辑。
具体转换步骤
- 导出公钥:BSC地址是公钥Keccak-256哈希的后20字节,若持有对应私钥,可直接导出65字节的公钥(格式为
0x04开头,后续64字节为椭圆曲线的x、y坐标);若仅持有BSC地址,可通过签名验证工具(如钱包签名任意消息后恢复公钥)获取公钥。 - 生成RIPEMD-160哈希:先对公钥做Keccak-256哈希,再对该哈希结果执行RIPEMD-160哈希,得到20字节的哈希值。
- Bech32编码:将上述20字节哈希值用Bech32编码,指定前缀为
bnb,最终输出的字符串就是对应的BNB信标链地址。
内部逻辑验证
TokenHub的transferOut函数正是基于上述流程实现跨链转账:通过调用者的地址恢复其公钥,按标准转换规则生成信标链地址,自动完成转账操作。
内容的提问来源于stack exchange,提问作者Vadim
相关产品推荐
相关产品推荐

