如何产生大量的比特币地址,比特币地址的生成算法是怎样的?
如何产生大量的比特币地址,比特币地址的生成算法是怎样的? 让我们先简单的说说比特币地址是怎么算出来的。比特币是建立在数学加密学基础上的,中本聪大神用了椭圆加密算法(ECDSA)来产生比特币的私钥和公钥。由私钥是可以计算出公钥的,公钥的值经过一系列数字签名运算会得到比特币地址。
需要说明的是:因为由公钥可以算出比特币地址,所以我们经常把公钥和比特币地址的说法相混淆,但是他们都是指的一个概念。比特币地址只是另一种格式的公钥。
从比特币私钥得到我们所用的比特币地址需要九个步骤。中间要用到SHA256加密、RIPEMD160加密和BASE58编码。我们最终用到的比特币私钥和比特币地址一般都是经过BASE58编码的结果。整个流程如下图所示。
第一步,随机选取一个32字节的数、大小介于1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之间,作为私钥。
18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725
第二步,使用椭圆曲线加密算法(ECDSA-secp256k1)计算私钥所对应的非压缩公钥。 (共65字节, 1字节 0x04, 32字节为x坐标,32字节为y坐标)关于公钥压缩、非压缩的问题另文说明。
0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B
23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6
第三步,计算公钥的 SHA-256 哈希值
600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408
第四步,取上一步结果,计算 RIPEMD-160 哈希值
010966776006953D5567439E5E39F86A0D273BEE
第五步,取上一步结果,前面加入地址版本号(比特币主网版本号“0x00”)
00010966776006953D5567439E5E39F86A0D273BEE
第六步,取上一步结果,计算 SHA-256 哈希值
445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094
第七步,取上一步结果,再计算一下 SHA-256 哈希值(哈哈)
D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30
第八步,取上一步结果的前4个字节(8位十六进制)
D61967F6
第九步,把这4个字节加在第五步的结果后面,作为校验(这就是比特币地址的16进制形态)。
00010966776006953D5567439E5E39F86A0D273BEED61967F6
第十步,用base58表示法变换一下地址(这就是最常见的比特币地址形态)。
16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
想要产生大量的比特币地址,应该使用一个命令,然后再通过一个管理工具吧,他的地址的结果提取出来同时这也需要非常好的硬件的配合。很多人都想问如何产生大量的比特币地址?那么下面就让我们来详细的为大家介绍一下.希望本篇文章可以解答大家一直以来的疑惑让大家了解到它的产生它的作用,以及它对电脑系统和算法有什么比较好的优点和优化下面让我们来一起为大家解答一下。
大虾版:如果想在wallet.dat里生成大量地址,使用以下命令:-keypool= Set key pool size to (default: 100)再使用比特币钱包管理工具Pywallet把结果提取出来。
菜鸟版: 给大家介绍个网站bitaddress.org,是一个单一的 HTML文件,可以把它保存下来,到离线的电脑上生成大量的地址,使用Bulk Wallet/批量钱包标签,来批量生成地址。Javascript的表现可能会影响生成速度,以目前的硬件水平,可以每分钟生成大约100 你为什么要几十万地址呢?有什么用? 几千地址还是较简单,生成几万估计较卡。
比特币是建立在密码学基础之上的,因此其地址也是匿名的,不包含所有者的任何信息。中本聪利用了椭圆曲线算法先产生比特币的私钥和公钥,然后将公钥的值再经过一系列数字签名运算就得出了我们所使用的比特币地址。在这里,私钥用来声明用户对比特币的所有权,由私钥可以推导出公钥,反之则不行。