ripemd160比特币 比特币 rbf
一、比特币公钥转地址工具
比特币公钥转地址的工具其实挺多的,网上随便一搜就有。最常用的就是bitaddress.org这种在线工具,直接把公钥输进去就能生成对应的比特币地址。不过要注意安全性,最好用离线版的工具。
具体转换过程是这样的:首先对公钥进行SHA256哈希,然后再进行RIPEMD160哈希,得到一个20字节的公钥哈希。接着加上版本前缀(比特币主网是0x00),再计算两次SHA256取前4字节作为校验码,最后用Base58编码就得到常见的1开头的比特币地址了。
如果不想用在线工具,可以用比特币核心钱包自带的命令行工具,或者一些开源的Python库比如pybitcointools也能实现这个功能。不过现在很多钱包都自动处理这些转换了,普通用户其实很少需要手动操作。
二、比特币地址
比特币地址
比特币地址是用于在比特币网络中接收比特币的唯一标识符。它由公钥经过一系列复杂的运算和编码过程生成,确保了地址的唯一性和安全性。以下是比特币地址生成的详细过程:
一、公钥生成地址的必要性
在比特币系统中,虽然公钥本身是公开的,但直接使用公钥作为地址存在多个问题。首先,公钥有未压缩和压缩两种形式,长度不同,这会导致用户混淆。其次,公钥的长度较长,会增加链上存储和搜索的压力。再者,虽然从公钥推算出私钥几乎不可能,但增加一层地址可以进一步提高比特币系统的防护性。最后,通过对地址进行设计,可以支持更加复杂的脚本锁定,增加系统的拓展性。
二、压缩公钥生成地址的流程
对公钥进行双哈希(HASH160)运算
首先,选择压缩公钥作为起点。然后,使用SHA-256算法对公钥进行哈希运算,得到的结果再经过RIPEMD-160算法进行第二次哈希运算,最终得到公钥哈希值。这个哈希值为二进制160位,十六进制40个字符,大小为20字节。
对“公钥哈希值”加上版本前缀
为了区分比特币主网和测试网的地址,需要在公钥哈希值前加上版本前缀。比特币主网的版本前缀为“0x00”,而测试网的版本前缀为“0x6F”。添加版本前缀后,得到的结果为21字节。
计算校验码(即两次SHA-256)
对加上版本前缀后的结果进行两次SHA-256哈希运算,取前4个字节作为校验码。校验码的作用是确保地址在传输过程中没有被篡改。
进行Base58Check编码
将版本前缀、公钥哈希值和校验码连接起来,得到的结果为25字节。然后,使用Base58Check编码对这个结果进行编码,得到最终的比特币地址。Base58Check编码是一种基于Base58的编码方式,它去除了容易混淆的字符(如0、O、I、l等),并增加了校验功能,提高了地址的可读性和安全性。
三、比特币地址的特点
唯一性:每个比特币地址都是唯一的,由公钥经过一系列复杂的运算和编码过程生成。安全性:比特币地址的设计考虑了多种安全措施,如哈希运算、版本前缀和校验码等,确保了地址的不可篡改性和抗攻击性。可读性:比特币地址使用Base58Check编码,去除了容易混淆的字符,提高了地址的可读性。匿名性:比特币地址与用户的真实身份没有直接关联,保护了用户的隐私。
综上所述,比特币地址是比特币网络中用于接收比特币的唯一标识符,它由公钥经过一系列复杂的运算和编码过程生成,具有唯一性、安全性、可读性和匿名性等特点。
三、【2019-07-12】比特币的钱包地址验证
第一步,随机选取一个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坐标)。
0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6
第三步,计算公钥的SHA-256哈希值
600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408
第四步,计算上一步哈希值的RIPEMD-160哈希值
010966776006953D5567439E5E39F86A0D273BEE
第五步,在上一步结果之间加入地址版本号(如比特币主网版本号"0x00")
00010966776006953D5567439E5E39F86A0D273BEE
第六步,计算上一步结果的SHA-256哈希值
445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094
第七步,再次计算上一步结果的SHA-256哈希值
D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30
第八步,取上一步结果的前4个字节(8位十六进制数)D61967F6,把这4个字节加在第五步结果的后面,作为校验(这就是比特币地址的16进制形态)
00010966776006953D5567439E5E39F86A0D273BEED61967F6
第九步,用base58表示法变换一下地址(这就是最常见的比特币地址形态)
16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
如果给你个地址你只要:
base58->二进制->这时是第8步,
如果我们把后面4个字节拿掉,
就是第5步的结果,你只要重复以上步骤到第8步
取前4个和地址后4位比较就可以得到答案了
四、【区块链】什么是比特币地址
比特币地址是一串由字母和数字组成的26位到34位字符串,看起来有些像乱码。但它就是你个人的比特币账户,相当于你的银行卡卡号,任何人都可以通过你的比特币地址给你转账比特币。
它与比特币私钥不同,不会因为信息泄露而造成比特币丢失,因此你可以将比特币地址放心的告诉任何人。
通过区块链浏览器可以查看每个比特币地址所有的转账交易记录。
常用的比特币区块链浏览器有:
我们常用的比特币地址格式一般有如下四种。
1、BASE58格式
BASE58格式是人们常见的比特币地址格式,一般由1开头的。
例如:1M8DPUBQXsVUNnNiXw5oFdRciguXctWpUD
2、HASH160格式
HASH160格式为RIPEMD160算法对130位公钥的SHA256签名进行计算得出的结果。
例如:fbfb58defc272942fc31d00c007b59aa4cb5087a
3、WIF压缩格式
WIF压缩格式即钱包输入格式,是将BASE58格式进行压缩后的结果130位公钥格式这是最原始的由ECDSA算法计算出来的比特币公钥。
例如:
0469B0E479C9A358908DB9CF4628BDD643C3F81C4F0096AAD442DA6CA8BCC4FD86A8D47D7A865E178B6D062CC9B702908973952062A1D767DA9B2BD2095D5CCF6E
4、60位公钥格式
60位公钥格式即130位公钥进行压缩后得出的结果。
例如:
0269B0E479C9A358908DB9CF4628BDD643C3F81C4F0096AAD442DA6CA8BCC4FD86
比特币是建立在数学加密学基础上的,中本聪大神用了椭圆加密算法(ECDSA)来产生比特币的私钥和公钥。
由私钥是可以计算出公钥的,公钥的值经过一系列数字签名运算会得到比特币地址。
比特币地址是由算法随机生成,那么就会有人问,既然都是随机生成的,那么比特币的地址会不会重复呢?关于这个问题,想必就更不用担心。
因为比特币的私钥长度是256位的二进制串,那么随机生成的两个私钥正好重复的的概率是2 ^ 256≈ 10 ^ 77之一,这个数字大到你根本无法想象,比中彩票的概率还要小好多;所以不用担心的啦,每个人的比特币地址都是独一无二的。
-
芝麻开门交易所官网地址 芝麻交易所排名 11-09