主页 > token.im钱包下载 > 【韭菜币读书】用Emoji科普一下公私钥的基本原理

【韭菜币读书】用Emoji科普一下公私钥的基本原理

token.im钱包下载 2023-06-19 06:55:54

在区块链中,我们经常会听到这样的词——公钥和私钥。 很多新手在学习区块链知识的时候,仍然容易被这些术语搞糊涂。 韭菜币阅读系列本文献给币圈新朋友,希望通过Emoji表情帮助大家了解比特币公私钥的基础知识。 (本文图片来源:《Making Money Trustworthy-Bitcoin Explained》,作者:Tess Rinearson)

研究密码学的人经常用“Alice”和“Bob”作为字符来解释概念。 今天,我将使用它们来帮助解释公钥密码学的基本逻辑。

首先,什么是对称加密。 例如被公开的比特币私钥,Alice 想递给 Bob 一个装有机密文件的公文包。 如果爱丽丝和鲍勃有匹配的钥匙,事情就简单了:她可以锁上公文包,用钥匙锁上,然后把它交给鲍勃。

比特币 私钥 地址 关系_被公开的比特币私钥_比特币私钥在哪

当鲍勃收到公文包时,他会用他的钥匙开锁,因为两把钥匙是一样的,所以鲍勃会拿到包里的秘密文件。 这个过程称为对称加密。

但总的来说,人们很少“有一把锁的钥匙”,因为安全地传递钥匙并不容易。 或者,如果 Alice 有一种私密且安全的方式向 Bob 发送密钥,她也可以使用它来传输文件本身。

因此,更常见的方式是Alice和Bob不需要同时拥有一把锁的钥匙,而是拥有自己的钥匙和自​​己的锁,也就是说不需要考虑传递钥匙。

具体来说,它是这样工作的:

爱丽丝用钥匙锁上了挂锁的公文包,并将其交给了鲍勃。 当 Bob 收到 Alice 的公文包时,他无法打开 Alice 的挂锁。 但是,他在上面加了自己的挂锁。

比特币私钥在哪_被公开的比特币私钥_比特币 私钥 地址 关系

比特币私钥在哪_比特币 私钥 地址 关系_被公开的比特币私钥

并将其返回给爱丽丝:

被公开的比特币私钥_比特币 私钥 地址 关系_比特币私钥在哪

然后爱丽丝用她的钥匙从公文包中取出挂锁:

比特币私钥在哪_被公开的比特币私钥_比特币 私钥 地址 关系

现在公文包上只有一把挂锁:鲍勃的。 然后爱丽丝将公文包发回给鲍勃:

比特币私钥在哪_比特币 私钥 地址 关系_被公开的比特币私钥

被公开的比特币私钥_比特币私钥在哪_比特币 私钥 地址 关系

Bob 终于可以打开自己上了锁的公文包,顺利地取出里面的文件。

现在,Alice 和 Bob 不再需要共享相同的密钥。 他们只需要有自己的挂锁和钥匙。

但是,如果对方不是您认为的那个人怎么办? 如果发生奇怪的事情怎么办,比如鲍勃被一头牛取代了?

然后接下来,会发生这样的事情:

1. 爱丽丝贴上了挂锁的公文包。 她以为这是给鲍勃的,但实际上是给一头母牛的。

比特币 私钥 地址 关系_被公开的比特币私钥_比特币私钥在哪

2. 奶牛以惊人的灵巧将它的挂锁锁在公文包上并将它送回给爱丽丝。

比特币 私钥 地址 关系_比特币私钥在哪_被公开的比特币私钥

3. Alice 很高兴看到带“Bob”(实际上是母牛的)挂锁的公文包被退回,她打开自己的挂锁并将其寄回。

4. 牛拿回公文包,打开锁。

5. 牛吃了秘密文件。

鉴于没有人希望他们的秘密被一头牛消化,我们需要采取措施保护机密数据:Bob 确保 Alice 知道他的挂锁是什么样子,这样她在取回公文包时可以验证是否是新锁属于鲍勃。

事实上,鲍勃能够复制他的挂锁的样子并将其公开。 每个人都知道 Bob 的挂锁长什么样并不重要,因为他是唯一可以用钥匙打开它的人。 同时,这让 Alice 可以识别 Bob 的锁。 在打开自己的锁之前,她可以检查第二个挂锁是否真的属于 Bob。

如果我们只需要处理物理挂锁和钥匙,就很难复制挂锁和钥匙。 但是当我们以数字方式进行时,我们使用数字密码和数字锁,这是一种价值。

在上面的例子中,挂锁所代表的数字是公开的,也可以称为公钥。 密钥代表的数字是私有的。 这个私人号码,叫做“私钥”,可以用来“开启”公锁。 在这种非对称加密算法中,公钥和私钥是配对的被公开的比特币私钥,它们相互解密,因为加密和解密使用的密钥不同,所以称为非对称加密算法。 它们的关系如下: 这是比特币采用的公钥密码学。

比特币 私钥 地址 关系_被公开的比特币私钥_比特币私钥在哪

人们保护私钥是因为私钥可以打开任何对应的公锁。 (在密码学中,这个解锁过程称为签名。)人们发布他们的公钥,以便其他人知道什么被锁定了。

在比特币系统中,公共密码学用于证明所有权。 用Emoji来表示具体操作过程如下:

在比特币世界中,Alice 需要传递给 Bob 的不是一个上了锁的公文包,而是一个有挂锁和比特币的“玻璃盒子”。

被公开的比特币私钥_比特币私钥在哪_比特币 私钥 地址 关系

为了将比特币传递给鲍勃,爱丽丝必须做两件事:

1. Alice 必须将 Bob 的挂锁(公钥)保存在她的盒子里。 这很容易,因为 Bob 的挂锁实际上是一个公共值。 这样,Bob 就可以通过解锁自己的挂锁来证明他的所有权。

2. 爱丽丝必须证明放置盒子的挂锁是她的而不是别人的。 她需要一把钥匙(私钥)来打开她自己的挂锁。

比特币私钥在哪_被公开的比特币私钥_比特币 私钥 地址 关系

比特币 私钥 地址 关系_被公开的比特币私钥_比特币私钥在哪

然后,当 Bob 决定将这些比特币转给另一个人(我们暂时称他为 Carlos)时,他做了同样的事情:将 Carlos 的公钥放入其中,并用他自己的私钥签署交易。

让我们回到区块链。 私钥本质上是一个 32 字节的数组,由 256 个随机的 0 或 1 组成。 一般我们看到的私钥是像下面这样的字符串:

5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss

公钥是一个 65 字节的数组,未压缩的公钥如下所示:

04a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd5b8dec5235a0fa8722476c7709c02559e3aa73aa03918ba2d492eea75abea235

地址由公钥生成,通过各种加密算法转化为公钥散列,公钥散列经过Base58编码生成地址。 就像爱丽丝把鲍勃的挂锁锁在盒子里一样。 事实上,一个公钥可以生成无数个地址。 因此,如果 Bob 每次都想使用不同的地址,他也可以这样做。

一般来说,私钥、公钥和地址的关系如下:

比特币私钥在哪_比特币 私钥 地址 关系_被公开的比特币私钥