如何获得比特币| 如何检验比特币地址是否压缩?如何判断比特币地址是否有效

【如何获得比特币| 如何检验比特币地址是否压缩?如何判断比特币地址是否有效】如何检验比特币地址是否压缩?如何判断比特币地址是否有效首先通过私钥就可以检验 。私钥是可以直接看出来比特币地址是否压缩的,但是比特币地址不能直接看出来是否压缩 。
限时活动

  • 活动一、从欧易OKX注册:http://www.okx.com,可直接领取300元虚拟货币
  • 活动二、全球顶尖加密货币交易所,注册即领最高 ¥3000数字盲盒,永久交易手续费返佣10% 。
很多人都想问如何检验一个比特币地址是否压缩?那么下面就让我们来详细的为大家介绍一下.希望本篇文章可以解答大家一直以来的疑惑让大家了解到它的产生它的作用,以及它对电脑系统和算法有什么比较好的优点和优化下面让我们来一起为大家解答一下 。
如何获得比特币| 如何检验比特币地址是否压缩?如何判断比特币地址是否有效
文章图片

这个策略比我一次性解释整个比特币协议要慢 。但是,尽管你可以通过这种一次性的解释来理解比特币的机制,但很难理解为什么比特币的设计方式是这样的 。较慢的迭代解释的优点是,它让我们对比特币的每个元素都有了更清晰的理解 。
最后,我要提一下,我是比特币协议学习者里的新手(译注:对于世界上的绝大多数人来说,已经是老手了) 。自2011年以来,我一直在跟进它(包括自上世纪90年代末以来的加密货币),但直到2013年早些时候才开始认真研究比特币协议的细节 。我会感谢任何人对我的误解的纠正 。在这篇文章中,我还提到了一些“作者的问题”——在写作中我自己曾经思考的问题 。你可能会发现这些有趣的东西,但你也可以完全跳过它们,可别舍本逐末哦 。
如何判断一个比特币地址是否有效
func IsValidForAdress(adress []byte) bool {
version_public_checksumBytes := Base58Decode(adress)
checkSumBytes := version_public_checksumBytes[len(version_public_checksumBytes) - addressChecksumLen:]
version_ripemd160 := version_public_checksumBytes[:len(version_public_checksumBytes) - addressChecksumLen]
checkBytes := CheckSum(version_ripemd160)
if bytes.Compare(checkSumBytes,checkBytes) == 0 {
return true
}
return false
}
说明:1.将地址进行Base反编码,得到一个version+public+checksum的字节数组
2.取version+public+checksum的字节数组的后4个字节为checksum值
3.取version+public+checksum的字节数组的前21个字节进行两次256哈希运算,取结果值的前4个字节,与第二步中的checksum值进行比较,如果一致则地址有效 。
由于比特币的数据存储结构,不可能直接利用比特币的原始API来查询指定地址的历史交易数据 。因此最朴素(Naive)的第一种解决方案,就是将比特币区块链上的每一笔交易数据存到自己的数据库里,然后针对交易地址信息(例如Scriptpubkey、pubkey或者地址本身)建立索引,这样就可以在数据库上自由、高效地查询了 。