主页 > imtoken官方最新版 > 什么是比特币密钥?比特币密钥生成的原理是什么?

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

imtoken官方最新版 2024-01-26 05:12:49

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

什么是比特币密钥?

比特币由一系列密钥对组成,每个密钥对都包含一个公钥和私钥。私钥是一个随机数,私钥通过椭圆曲线算法生成公钥,公钥通过单向加密哈希函数生成比特币地址。比特币采用非对称加密,使得签名只能由私钥生成,并且签名p可以被所有人验证,而无需泄露私钥。私钥和公钥可以无一例外地编码成各种格式,方便识别和钱包操作。

什么是比特币私钥?

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

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

什么是比特币公钥?

公钥可以通过椭圆曲线算法从私钥生成,这是一个不可逆的过程:K(公钥)=k(私钥)*G(常数点)。反向操作,被称为“找到离散对数”——知道公钥 K 来找到私钥 k——是极其困难的。

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

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

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

二、如果使用压缩公钥,则在私钥结果中加0x01;如果使用的是未压缩的公钥,不要加 0x01.私钥的后缀 01,用来告诉钱包对应的私钥的公钥,密钥和地址是压缩格式还是未压缩格式。原因是同一个私钥的压缩公钥和非压缩公钥不同,生成的地址也完全不同。也就是说,一个私钥对应两个公钥和两个地址。如果没有标识,钱包将不存在私钥与公钥和地址之间的一一对应关系。本次使用的压缩格式示例

6954ac6d0402d7239f1cc150da224d0ef08fd1226f245f06fe4d6d68accfce8a01

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

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

806954ac6d0402d7239f1cc150da224d0ef08fd1226f245f06fe4d6d68accfce8a01

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

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

将公钥合并为十六进制数

压缩公钥可以大大节省公钥占用的空间(减少256bits),是目前比特币客户端默认的格式,也兼容未压缩的公钥,未压缩的(前缀04.拼接Gx比特币私匙怎样生成的,戈)

040ba1ba3b8d8f7bd4a70828ec0e749dd26ee4cdd18d058c880afa121fad60e5b6f2ee1b72d9b9a57706e5de72acc1378f92269086c4964c073593bf92d28c647d

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

030ba1ba3b8d8f7bd4a70828ec0e749dd26ee4cdd18d058c880afa121fad60e5b6

六、将公钥转换为比特币地址

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

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

什么是比特币密钥?比特币密钥生成的原理是什么?通过上面的介绍,你对比特币密钥有什么了解吗?生成自己的比特币密钥后,一定要记得小心保管。毕竟,这一切都与您的数字资产有关!