主页 > imtoken手机下载app > 什么是比特币密钥? 比特币密钥是如何生成的?

什么是比特币密钥? 比特币密钥是如何生成的?

imtoken手机下载app 2023-11-15 05:07:04

什么是比特币密钥? 随着比特币的火爆,相信很多听说过比特币的人都知道,比特币是一种虚拟的数字货币,比特币的特点是去中心化和匿名性。 这也凸显了比特币密钥的重要性。 那么,很多币圈新手会问,比特币密钥是什么? 比特币密钥生成的原理是什么? 下面小编就为大家分析一下。

什么是比特币密钥?

比特币包含一系列密钥对,每个密钥对包含一个公钥和一个私钥。 私钥是一个随机数,私钥通过椭圆曲线算法生成公钥,公钥通过单向加密哈希函数生成比特币地址。 比特币采用非对称加密,使得签名只能由私钥生成,每个人都可以在不泄露私钥的情况下验证签名p。 私钥和公钥可以无一例外地编码成各种格式曾经比特币私钥大全,以方便身份识别和钱包操作。

什么是比特币私钥?

私钥可以理解为一个随机数。 比特币地址中资金的控制取决于对应私钥的控制。 在比特币交易中,私钥用于生成支付比特币所必需的签名,以证明资金的所有权。

选择一个随机源(熵源),生成比特币私钥本质上与“选择一个介于 1 和 22562256 之间的数字”是一样的。 建议使用加密安全伪随机数生成器 (CSPRNG),并且需要来自具有足够熵的源的种子。

什么是比特币公钥?

私钥可以通过椭圆曲线算法生成公钥,这是一个不可逆的过程:K(公钥)= k(私钥)* G(常数点)。 它的反向操作,即所谓的“求离散对数”——在给定公钥 K 的情况下求私钥 k——是极其困难的。

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

椭圆曲线密码学是一种基于离散对数问题的非对称(或公钥)加密方法,可以通过在椭圆曲线上加点或乘点来表示。

1、通过操作系统的随机数生成器生成一个随机数,进行SHA256哈希运算(结果必须是1到n-1之间的任意数,n=1.158 * 1077),这个数就是最原始的私钥因此,有必要从加密安全的随机源中选择一串随机字节来防止暴力破解。 SHA256 哈希运算用于方便生成一个固定长度为 256 位的数字。 十六进制表示如下:6954ac6d0402d7239f1cc150da224d0ef08fd1226f245f06fe4d6d68accfce8a

2、如果使用压缩公钥,在私钥结果后加上0x01; 如果您使用非压缩公钥,请不要添加 0x01。 私钥的后缀01用于告诉钱包私钥对应的公钥和地址是压缩格式还是非压缩格式。 原因是同一个私钥的压缩公钥和非压缩公钥是不同的,生成的地址也是完全不同的,也就是说一个私钥对应两个公钥和两个地址钥匙。 如果没有标识,则钱包私钥与公钥和地址之间没有一一对应关系。本次使用压缩格式的例子

6954ac6d0402d7239f1cc150da224d0ef08fd1226f245f06fe4d6d68accfce8a01

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

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

806954ac6d0402d7239f1cc150da224d0ef08fd1226f245f06fe4d6d68accfce8a01

对以上结果进行双SHA256运算,取前四个字节作为校验码拼接在末尾,再进行base58编码得到私钥的最终形式(非WIF压缩的结果前缀format为5.WIF压缩格式结果前缀为K或L) KzkTe43L5cbSX64txJMcsFvJC6vov7nYaGdYicz5N8Mds4ThN2XM

4、使用secp256k1椭圆曲线算法将私钥转换为公钥(Gx,Gy)。 椭圆曲线算法是一种基于离散对数问题的非对称加密方法。 Its mathematical operation is one-way, so the private key can be converted成公钥,但公钥不能转换回私钥,将上面的结果转换后得到如下结果(十六进制):(0ba1ba3b8d8f7bd4a70828ec0e749dd26ee4cdd18d058c880afa121fad60e5b6.f2ee1b72d9b9a57706e5de72acc1378f92269086c4964c073593bf92d28c647d)

将公钥合并成十六进制数

压缩公钥可以大大节省公钥占用的空间(减少256bits),这是目前比特币客户端的默认格式,也兼容未压缩的公钥,uncompressed (prefix 04.Concatenate Gx, Gy)

040ba1ba3b8d8f7bd4a70828ec0e749dd26ee4cdd18d058c880afa121fad60e5b6f2ee1b72d9b9a57706e5de72acc1378f92269086c4964c073593bf92d28c647d

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

030ba1ba3b8d8f7bd4a70828ec0e749dd26ee4cdd18d058c880afa121fad60e5b6

将公钥转换为比特币地址

1. RIPEMD160(SHA256(公钥))得到一个20字节/160位的公钥散列。 使用两个Hash函数进行转换最大的好处是,如果其中一个函数被破解了,安全性还是可以得到保证的。

2.对公钥哈希进行Base58check编码(版本前缀+公钥哈希+SHA256(SHA256(版本前缀+公钥哈希))Base58编码的前4字节),这里是P2PKH地址,前缀为0x00 .得到最终的比特币地址如下:17FjrmErg5a39P7UsyYCchpyzSnq9gmMuJ

什么是比特币密钥? 比特币密钥生成的原理是什么? 通过上面的介绍曾经比特币私钥大全,你了解比特币密钥了吗? 生成自己的比特币密钥后,一定要记得妥善保管。 毕竟,这关乎您的数字资产!