golang 实现比特币内核:从公钥创建wallet地址
作为比特币用户,我们总是需要发送或接收比特币,这就需要让别人知道你的钱包地址。由于钱包地址需要人类读取,之前我们使用的编码方案产生的是二进制结果,因此我们需要一种新的方案,以人类友好的方式创建钱包地址。
钱包地址实际上是从公钥生成的,并且需要满足以下要求:
容易阅读和书写,用户可能希望记住它或将其写在纸上。
发送到互联网上时不会太长。
它应该是安全的,并且更难出错,你不希望你的资金转账给你不认识的人!
Base58编码方案可以帮助我们实现这三个目标。与常用的Base64相比,它去除了像l、I、0、O、-、_等字符,因为这些字符容易混淆。由于该编码方案使用所有数字、大写字母和小写字母,并去除了0、O、l、I,因此它将在编码过程中使用58个字符,你可以很容易地在互联网上找到它的算法,下面是代码,位于util.go中
func EncodeBase58(s []