网易首页 > 网易号 > 正文 申请入驻

go语言实战之实现比特币地址校验教程

0
分享至

这篇文章主要介绍了go语言实战之实现比特币地址校验步骤,利用生产的随机数采用椭圆加密算法生成公钥,具体步骤实例代码请参考下本文

由公钥生成比特币地址步骤

  • 随机取一个32位随机数作为私钥
  • 利用生产的随机数采用椭圆加密算法生成公钥
  • 计算公钥的sha256哈希值
  • 计算RIPEMD-160哈希值
  • 第4步结果加上版本号(比特币为0x00)
  • 对第5步结果取两次sha256哈希值
  • 取上一步结果的前四个字节
  • 将第7步结果加到第步的结果后面作为校验
  • 利用base58对第8步结果进行变化得到地址

生成地址代码如下

func (w Wallet) GetAddress() 【】byte {
pubKeyHash := HashPubKey(w·PublicKey)
versionedPayload := append([]byte{version}, pubKeyHash···)
checksum := checksum(versionedPayload)
fullPayload := append(versionedPayload, checksum···)
address := Base58Encode(fullPayload)
return address
}
func HashPubKey(pubKey []byte) []byte {
publicSHA256 := sha256.Sum256(pubKey)
RIPEMD160Hasher := ripemd160.New()
_, err := RIPEMD160Hasher.Write(publicSHA256[:])
publicRIPEMD160 := RIPEMD160Hasher.Sum(nil)
return publicRIPEMD160
}
func checksum(payload []byte) []byte {
firstSHA := sha256.Sum256(payload)
secondSHA := sha256.Sum256(firstSHA[:])
return secondSHA[:addressChecksumLen]
}

校验比特币

地址是否正确代码

addressChecksumLen:=4
func ValidateAddress(address string) bool {
pubKeyHash := Base58Decode([]byte(address))
actualChecksum := pubKeyHash[len(pubKeyHash)-addressChecksumLen:]
version := pubKeyHash[0]
pubKeyHash = pubKeyHash[1 : len(pubKeyHash)-addressChecksumLen]
targetChecksum := checksum(append([]byte{version}, pubKeyHash···))
return bytes.Compare(actualChecksum, targetChecksum) == 0
}

Base58Decode是对比特币地址进行解码,然后取后四位校验位actualChecksum,利用去掉校验位的pubKeyHash再次算出校验位与地址的校验位做出对比,即可验证地址的正确性。 其中用到的函数有:

func checksum(payload []byte) [] //利用两次shah256求校验位
byte {
firstSHA := sha256.Sum256(payload)
secondSHA := sha256.Sum256(firstSHA[:])
return secondSHA[:addressChecksumLen]
}

这是解码的函数,已经有不少现有的代码支持,故不作讲解

func Base58Decode(input []byte) []byte {
result := big.NewInt(0)
zeroBytes := 0
for b := range input {
if b == 0x00 {
zeroBytes++
}
}
payload := input[zeroBytes:]
for _, b := range payload {
charIndex := bytes.IndexByte(b58Alphabet, b)
result.Mul(result, big.NewInt(58))
result.Add(result, big.NewInt(int64(charIndex)))
}
decoded := result.Bytes()
decoded = append(bytes.Repeat([]byte{byte(0x00)}, zeroBytes), decoded...)
return decoded
}

以上就是go语言实战之实现比特币地址校验步骤的详细内容

本文地址:https://www.linuxprobe.com/go-implementation-bitcoin.html

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
特朗普称已暂停对伊朗能源基础设施军事打击,黄金跌幅收窄,比特币涨至7.1万美元上方

特朗普称已暂停对伊朗能源基础设施军事打击,黄金跌幅收窄,比特币涨至7.1万美元上方

财闻
2026-03-23 19:20:36
福建流落在柬埔寨的吴某桢工作细节流出:大部分工作时间在室内…

福建流落在柬埔寨的吴某桢工作细节流出:大部分工作时间在室内…

小嵩
2026-01-10 19:34:08
蔚来李斌、长城魏建军为什么没来新一代小米SU7发布会?雷军回应

蔚来李斌、长城魏建军为什么没来新一代小米SU7发布会?雷军回应

IT之家
2026-03-23 11:48:45
北京25年川菜地标倒闭!预制菜毁了锅气,房租压垮回忆

北京25年川菜地标倒闭!预制菜毁了锅气,房租压垮回忆

阿莱美食汇
2026-03-23 19:20:28
32GB+2TB!华为新机官宣:3月22日,全新开售!

32GB+2TB!华为新机官宣:3月22日,全新开售!

科技堡垒
2026-03-22 11:13:28
日本可能与中国开战?日专家:与中国发生冲突,最长只能坚持一周

日本可能与中国开战?日专家:与中国发生冲突,最长只能坚持一周

泠泠说史
2026-03-16 15:29:34
伊朗发动大规模打击,还要全球追杀美以官员:在国外度假也“不再安全”!伊最高领袖新年致辞:发展“抵抗经济”,增强国家韧性

伊朗发动大规模打击,还要全球追杀美以官员:在国外度假也“不再安全”!伊最高领袖新年致辞:发展“抵抗经济”,增强国家韧性

每日经济新闻
2026-03-21 00:59:04
中国女留学生,和英国警察发生性关系,事后诬告警察,被判6年

中国女留学生,和英国警察发生性关系,事后诬告警察,被判6年

大树和可乐
2026-03-23 18:30:06
特朗普:美国已将伊朗从地图上抹去;伊朗总统回应:威胁和恐吓只会增强伊朗的团结,霍尔木兹海峡对所有人开放,唯独侵犯伊朗领土者除外

特朗普:美国已将伊朗从地图上抹去;伊朗总统回应:威胁和恐吓只会增强伊朗的团结,霍尔木兹海峡对所有人开放,唯独侵犯伊朗领土者除外

扬子晚报
2026-03-22 23:16:36
潮头观澜 | “数”读“未来之城”

潮头观澜 | “数”读“未来之城”

新华社
2026-03-23 17:39:29
布兰特更衣室内穿着内裤发表讲话:我一直有可依靠的出色队友

布兰特更衣室内穿着内裤发表讲话:我一直有可依靠的出色队友

懂球帝
2026-03-23 16:57:04
这才是真正的技师!

这才是真正的技师!

果粉之家
2026-03-19 12:56:49
女儿坐飞机返岗上班,在飞机上意外拍到守在山顶送机的妈妈

女儿坐飞机返岗上班,在飞机上意外拍到守在山顶送机的妈妈

半岛晨报
2026-03-23 14:40:37
要不是王传君转移了观众的注意力,徐志胜这次怕是要被骂上热搜了

要不是王传君转移了观众的注意力,徐志胜这次怕是要被骂上热搜了

杰哥娱天下
2026-03-23 22:39:26
狂卖1.06亿假“港药”!5年暴利生意被曝光,百年老字号竟是骗局

狂卖1.06亿假“港药”!5年暴利生意被曝光,百年老字号竟是骗局

素衣读史
2026-03-10 16:56:25
广东男篮输球,杜锋对球员拼劲满意,麦考尔8中1胡明轩正负值-20

广东男篮输球,杜锋对球员拼劲满意,麦考尔8中1胡明轩正负值-20

中国篮坛快讯
2026-03-24 00:09:17
顾客曝光“中园石化”太像“中国石化”,涉事加油站称名字经过审批,当地:将调查是否“傍名牌”

顾客曝光“中园石化”太像“中国石化”,涉事加油站称名字经过审批,当地:将调查是否“傍名牌”

极目新闻
2026-03-23 19:26:12
央视9分钟重磅曝光!王政源富二代人设崩塌:豪车豪宅全是演的

央视9分钟重磅曝光!王政源富二代人设崩塌:豪车豪宅全是演的

橙星文娱
2026-03-23 09:14:37
上将被查、院士被除名,这背后释放的信号,比你想的更不简单

上将被查、院士被除名,这背后释放的信号,比你想的更不简单

李昕言温度空间
2026-03-19 22:56:18
一回国高市早苗就收到天大坏消息,日方气坏:中国凭啥如此对我们

一回国高市早苗就收到天大坏消息,日方气坏:中国凭啥如此对我们

达文西看世界
2026-03-23 15:45:59
2026-03-24 01:40:49
linux系统运维之家
linux系统运维之家
科技资讯
1392文章数 7549关注度
往期回顾 全部

科技要闻

裁掉2万多名员工后,扎克伯格对自己下手了

头条要闻

特朗普:伊朗还有最后一次机会

头条要闻

特朗普:伊朗还有最后一次机会

体育要闻

不敢放手一搏,你拿什么去争冠?

娱乐要闻

钟丽缇就女儿考拉争议道歉:女儿还小

财经要闻

市场见底了吗?谁在抛售?机构火线解读

汽车要闻

东风雪铁龙新凡尔赛C5X上市 官方一口价11.37万起

态度原创

数码
本地
游戏
艺术
公开课

数码要闻

再等等!苹果新款iPad 、Apple TV及HomePod mini仍预计今年推出

本地新闻

这里是宝鸡 嫽滴很!

Xbox合作伙伴直播公布 3月27日早上2点举行

艺术要闻

砸10亿!苏宁易购总部大楼,张近东雄心的象征

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版