主页 > imtoken钱包转usdt > 比特币源码学习(一)的key和地址是什么关系

比特币源码学习(一)的key和地址是什么关系

imtoken钱包转usdt 2023-01-19 02:26:51

最近有幸参加了比特币源代码学习班。很高兴能与了解或对比特币感兴趣的朋友交流学习。

这是我在课堂上的第一篇文章,以后我会每周至少更新一篇文章。理论上,我总是要写一些鼓励的话。我不会说任何花言巧语,我只是想引用一个相当在这里的一句话。“如果你在生活中坚持做一件事,你就能创造奇迹。因为坚持生活本身就是一个奇迹。”

好了,煽动结束了。现在让我们谈谈什么是键和地址。

先来说说关键吧。在《精通比特币》一书中,提到“密钥成对出现,由私钥和公钥组成”。这里我们知道密钥实际上是公钥和私钥的组合。

那么公钥和私钥是怎么来的呢?

私钥

我们可以将私钥理解为在 1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141 范围内随机选择的一个 32 字节数。下面是一个私钥示例:

8F72F6B29E6E225A36B68DFE333C7CE5E55D83249D3D2CD6332671FA445C4DD3

公钥

既然确定了私钥是一个随机数,那么我们来看看什么是公钥。公钥可以通过椭圆曲线乘法从私钥计算出来,这是一个不可逆的过程:K = k * G。其中 k 是私钥,G 是称为生成点的常数点,K 是生成的公钥。逆向操作比特币有密钥怎么提取,称为“求离散对数”——知道公钥 K 来求私钥 k——是非常困难的,就像尝试 k 的所有可能值一样,即蛮力搜索。生成的公钥共有65个字节,其中一个为0x04,32个字节为X坐标,另外32个字节为Y坐标。以下是公钥的示例:

0406CCAE7536386DA2C5ADD428B099C7658814CA837F94FADE365D0EC6B1519385FF83EC5F2C0C8F016A32134589F7B9E97ACBFEFD2EF12A91FA622B38A1449EEB

比特币地址

比特币地址是一串数字和字母,可以与任何想给你比特币的人共享。从公钥(也由数字和字母组成的字符串)生成的比特币地址以数字“1”开头。这是一个比特币地址的例子:

1QCXRuoxWo5Bya9NxHaVBArBQYhatHJrU7

地址是通过双重哈希从公钥中获得的。以公钥K为输入,计算SHA256哈希值,从这个结果计算RIPEMD160哈希值,得到一个长度为160位(20字节)的数字:

A = RIPEMD160(SHA256(K))

式中,K为公钥,A为生成的比特币地址。

最后看到的地址也是用“Base58Check”编码的。Base58 由大小写字母和数字组成,不包括 (0, O, l, I)。文本格式易读,添加校验码进行验证;

现在总结一下比特币有密钥怎么提取,私钥、公钥和地址之间的关系如下:

区块链学习俱乐部源码学习班立丰