区块链 - 公钥加密

公钥加密或简称 PKI 也称为非对称加密。它使用两对密钥 - 公钥和私钥。密钥是一些很长的二进制数。公钥在全球范围内分发,顾名思义,它是真正公开的。私钥必须严格保密,绝不能丢失。

以比特币为例,如果您丢失了比特币钱包的私钥,您的钱包中的所有内容将立即面临被盗的风险,在您不知不觉中,您的所有资金(钱包中的资金)都将消失,系统中没有任何机制可以追踪谁偷了它 - 这就是我之前提到的系统中的匿名性。

PKI 实现两个功能 - 身份验证和通过加密/解密机制实现的消息隐私。我现在将解释这两个功能 −

身份验证

当双方交换消息时,在发送者和接收者之间建立信任非常重要。特别是,接收者必须信任消息的来源。回到我们之前的场景(如图 1 所示),Bob 向 Lisa 汇款,让她从她那里购买一些商品,让我们看看 PKI 如何在 Bob 和 Lisa 之间建立这种信任。查看下图 −

身份验证

首先,如果 Bob 想向 Lisa 汇款,他必须创建自己的私钥/公钥。请注意,两个密钥始终是配对的,您不能混合不同个人或不同实例的私钥和公钥。

现在,Bob 说他要向 Lisa 汇款 10 美元。因此,他创建了一条消息(纯文本消息),其中包含 Bob(发送者)的公钥、Lisa(接收者)的公钥和金额(10 美元)。

这笔汇款的目的(例如"我想从你那里买南瓜")也被添加到消息中。现在,整个消息都使用 Bob 的私钥进行签名。当 Lisa 收到此消息时,她将使用 PKI 的签名验证算法和 Bob 的公钥来确保该消息确实来自 Bob。PKI 的工作原理超出了本教程的范围。感兴趣的读者可以参阅此网站,了解有关 PKI 的更详细讨论。这确定了消息发起者的真实性。现在,让我们看看消息隐私。

消息隐私

现在,由于 Lisa 已收到付款,她想发送 Bob 想要购买的电子书链接。因此,Lisa 将创建一条消息并将其发送给 Bob,如图所示 −

消息隐私

Lisa 创建一条消息,例如"这是您请求的我的电子书的链接",使用她在 Bob 的请求消息中收到的 Bob 的公钥对其进行签名,并使用在 HTTPS 握手期间两人共享的某个密钥加密该消息。

现在,Lisa 确信只有 Bob 可以使用 Bob 独自持有的私钥解码该消息。此外,拦截该消息的人将无法恢复其内容,因为内容由仅由 Bob 和 Alice 持有的密钥加密。这向 Lisa 保证了只有 Bob 才能访问她的电子书。

了解了 PKI 隐含的身份验证和消息隐私这两个功能后,让我们继续看看比特币如何利用 PKI 来保护我在"什么是比特币?"一章中提到的公共账本。

供您参考 − 最流行的 PKI 算法是 RSAECDSA,比特币使用后者。