比特币地址生成指南-技术指南
可以使用算法哈希函数从开源库生成比特币地址。用户通常需要多个比特币地址才能在区块链中发送硬币。比特币地址是使用称为公钥密码术的概念创建的。但是,只有所有者/用户才知道私钥。
本文介绍了可用于生成比特币地址的脱机算法概念,例如公钥私钥,EDDCA,SHA-256函数,RIPEMD-160哈希和二进制比特币地址。
比特币地址是基于Base58编码的字母数字字符-它们不能包含0(零),O(大写O),I(大写I),l(小写L)字符,并且不能包含+等非字母数字字符(加号)和/(斜线)。有关Base58编码的更多信息,请参见:https://en.wikipedia.org/wiki/Base58
因此,比特币地址只能包含Base58编码指定的字母字符:123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
如今,比特币有3种不同的地址格式:
1. P2PKH(Pay-to-PubkeyHash)-1EmtPRcdK168WSN5czx15VuUxBBLhR8MZC-这些地址以“ 1”开头
2. P2SH(付款至脚本哈希)-34S3z3phL2Fdm7QCas3Q8AN9ZwPs7qpPQn-这些地址可以以“ 3”开头
3. Bech32(SegWit)-bc1qh3qfn8fjj05f7v9x4k9yv487xdp6enpl5nslll-这些地址以’bc1’开头
因此,第一步是使用开源比特币目录创建私钥。之后,通过称为椭圆曲线数字签名算法的算法创建比特币公钥。
图形比特币地址生成器:
http://royalforkblog.github.io/2014/08/11/graphical-address-generator/
您可以在此处了解更多信息:
https://en.bitcoin.it/wiki/Elliptic_Curve_Digital_Signature_Algorithm
https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm
以下是一些提供相同功能的开源库:
https://en.wikipedia.org/wiki/Bouncy_Castle_(cryptography)
https://en.wikipedia.org/wiki/Cryptlib
https://en.wikipedia.org/wiki/Crypto%2B%2B
私钥
- 这些是随机生成的数字,只有用户知道。这可以通过库或密码哈希函数创建。
- 不得与任何人共享,因为有权访问私钥的任何人都可以访问区块链加密货币
- 发送和接收时用于签署交易
- 这是一个32字节的无符号整数(256位)
公钥
- 公钥可以与私钥结合使用
- 公钥可以由私钥生成,但是不能从公钥创建私钥(因此,公钥生成是一种单向功能)
比特币地址
- 比特币地址是匿名的,这意味着没有人知道哪个地址属于谁
- 无需互联网连接,即可在计算机上离线创建比特币地址。
- 创建比特币地址是免费的,您无需为此付费
- 比特币地址只能使用一次。多次使用一个地址会导致严重的安全问题。
- 比特币地址最多可以包含35个字符。
- 比特币地址也可以以QR码的形式生成,因此您的手机可以轻松扫描和发送BTC。
创建比特币地址的技术步骤
- 使用开源目录创建私钥
- 通常,最好同时处理私钥和公钥,因此您不必担心实现细节
步骤0:私钥:a4f228d49910e8ecb53ba6f23f33fbfd2bad442e902ea20b8cf89c473237bf9f
私钥基础58:C6t2iJ7AXA2X1KQVnqw3r7NKtKaERdLnaGmbDZNqxXjk
- 因此,根据从开源目录生成的私钥创建关联的公钥
- 所以图书馆也提供公钥
第1步:公钥:0356421318d739994e4d9785bf40eac4edbfa21f0546040ce7e6859778dfce5d4
- 将SHA-256哈希函数应用于步骤1中生成的公钥(您需要在SHA-256之前解码十六进制)。
- 您可以在此处阅读有关SHA-256的更多信息:https://en.wikipedia.org/wiki/SHA-2
步骤2:SHA-256公钥:82c77b119e47024d00b38a256a3a83cbc716ebb4d684a0d30b8ea1af12d42d9
- 将RIPEMD-160哈希函数应用于步骤2中生成的结果(公共密钥SHA-256)。
- 您可以在此处阅读有关RIPEMD-160哈希的更多信息:https://en.wikipedia.org/wiki/RIPEMD
步骤3:针对SHA-256公钥结果的RIPEMD-160哈希值:0c2c910a661178ef63e276dd0e239883b862f58c
- 将版本前缀添加到步骤3的结果中,该步骤定义了不同的地址格式-00是版本字节(主网络为0x00)。
步骤4:RIPEMD-160哈希与版本字节:000c2c910a661178ef63e276dd0e239883b862f58c
- 将SHA-256哈希函数两次应用于步骤4(SHA-256(SHA-256(ripemd-160WithVersionByte)))。
5-6。步骤:2 *用于带有版本字节的RIPEMD-160哈希的SHA-256哈希:c3c0439f33dc4cf4d66d3dd37900fc12597938a64817306b542a75b9223213e0
- 从第6步中生成的结果中断开前5个字节,这是第二个SHA-256函数的输出结果中的结果
步骤7:CheckSum:c3c0439f
- 将校验和添加到步骤4中生成的RIPEMD-160哈希版本字节
步骤8:25个字节的比特币地址:000c2c910a661178ef63e276dd0e239883b862f58cc3c0439f
- 使用Base58应用并将比特币二进制地址转换为比特币地址格式
- 您可以在此处阅读有关Base58的更多信息:https://en.wikipedia.org/wiki/Base58
步骤9:比特币地址:127NVqnjf8gB9BFAW2dnQeM6wqmy1gbGtv
您还可以在区块链上找到地址:
127NVqnjf8gB9BFAW2dnQeM6wqmy1gbGtv