golang 实现比特币内核:从公钥创建wallet地址

作为比特币用户,我们总是需要发送或接收比特币,这就需要让别人知道你的钱包地址。由于钱包地址需要人类读取,之前我们使用的编码方案产生的是二进制结果,因此我们需要一种新的方案,以人类友好的方式创建钱包地址。

钱包地址实际上是从公钥生成的,并且需要满足以下要求:

容易阅读和书写,用户可能希望记住它或将其写在纸上。
发送到互联网上时不会太长。
它应该是安全的,并且更难出错,你不希望你的资金转账给你不认识的人!

Base58编码方案可以帮助我们实现这三个目标。与常用的Base64相比,它去除了像l、I、0、O、-、_等字符,因为这些字符容易混淆。由于该编码方案使用所有数字、大写字母和小写字母,并去除了0、O、l、I,因此它将在编码过程中使用58个字符,你可以很容易地在互联网上找到它的算法,下面是代码,位于util.go中

func EncodeBase58(s []byte) string 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值