手工客

关注公众号 shougongke

关闭
手工客 > 区块链 > 正文

比特币密钥生成原理是什么

相关话题:##

比特币密钥生成原理是什么?在了解比特币密钥生成原理之前,让我们首先明确什么是比特币密钥。在比特币网络中,密钥是用于加密和解密交易以及验证所有权的关键元素。每个比特币用户都有一对密钥:私钥和公钥。比特币密钥生成的原理基于非对称加密算法,其中最常用的是椭圆曲线加密算法。这种算法利用椭圆曲线的数学性质,在安全性和效率上达到了良好的平衡。

比特币密钥生成原理是什么

一、通过操作系统随机数生成器生成一个随机数,并进行SHA256哈希运算(结果必须是1到n-1之间的任何数字,n=1.158 * 1077),该数字即为私钥最原始的内容,所以需要通过密码学安全的随机源中选出一串随机字节,以防暴力破解使用SHA256哈希运算是为了方便产生一个固定长度为256位的数字,使用十六进制表示如下:6954ac6d0402d7239f1cc150da224d0ef08fd1226f245f06fe4d6d68accfce8a

二、如果使用压缩公钥,在私钥的结果后面增加0x01;若使用非压缩公钥,则不追加0x01.私钥的后缀01用于告诉钱包私钥对应的公钥和地址是压缩格式还是非压缩格式的。原因是同一私钥的压缩公钥与非压缩公钥是不同的,生成的地址也完全不同,也就是说会出现两个公钥和两个地址对应一个私钥的情况,如果没有标识,钱包无法将私钥与公钥和地址一一对应。

三、对私钥进行base58check编码,即转换为WIF(Wallet Import Format)格式

在私钥前添加版本前缀,0x80为WIF前缀

806954ac6d0402d7239f1cc150da224d0ef08fd1226f245f06fe4d6d68accfce8a01

将上面结果进行double-SHA256运算后取前四字节作为校验码拼接在最后,然后进行base58编码得到私钥的最终形态(非WIF压缩格式的结果前缀为5.WIF压缩格式的结果前缀为K或L)KzkTe43L5cbSX64txJMcsFvJC6vov7nYaGdYicz5N8Mds4ThN2XM

四、使用secp256k1椭圆曲线算法将私钥转换为公钥(Gx,Gy),椭圆曲线算法是一种基于离散对数问题的非对称加密法,其数学运算是单向的,所以私钥可以转换成公钥,但公钥不能转换回私钥,将上面的结果转换后得到如下结果(十六进制):(0ba1ba3b8d8f7bd4a70828ec0e749dd26ee4cdd18d058c880afa121fad60e5b6.f2ee1b72d9b9a57706e5de72acc1378f92269086c4964c073593bf92d28c647d)

将公钥合并成为十六进制数

压缩公钥可以大大节省公钥所占空间(减少256bits),是比特币客户端当前的默认格式,并且也兼容非压缩公钥,未压缩(前缀04.将Gx,Gy拼接)

040ba1ba3b8d8f7bd4a70828ec0e749dd26ee4cdd18d058c880afa121fad60e5b6f2ee1b72d9b9a57706e5de72acc1378f92269086c4964c073593bf92d28c647d

压缩(y为偶数前缀02.y为奇数前缀03.仅保留Gx,Gy可通过Gx计算)

030ba1ba3b8d8f7bd4a70828ec0e749dd26ee4cdd18d058c880afa121fad60e5b6

总结:密钥生成的原理基于数学的难解问题,使得私钥无法通过公钥逆推得到,从而保证了交易的安全性和匿名性。比特币的密钥生成原理是该加密货币系统安全性的基石,确保了交易的保密性和无法伪造性。比特币密钥生成原理是基于非对称加密算法,通过随机数生成私钥,并通过椭圆曲线乘法运算生成对应的公钥。私钥用于对交易进行签名,公钥用于验证签名和作为收款地址。这种原理保证了比特币系统的交易安全性和保密性,使得交易不可篡改和无法伪造。

阅读全文