区块链 - 公钥密码学
公钥密码术或简称 PKI 也称为非对称密码术。它使用两对密钥——公钥和私钥。密钥是一个长二进制数。公钥在全球范围内分发,顾名思义是真正公开的。私钥应严格保密,切勿丢失。
就比特币而言,如果您丢失了比特币钱包的私钥,那么您钱包中的全部内容将立即容易被盗,并且在您意识到之前,您所有的钱(钱包中的内容)都会消失得无影无踪。系统中的机制来追踪谁偷了它——这就是我前面提到的系统中的匿名性。
PKI通过加解密机制实现认证和消息保密两大功能。我现在将解释这两个功能 -
验证
当两方交换消息时,在发送者和接收者之间建立信任非常重要。特别是,接收者必须信任消息的来源。回到我们之前的场景(如图 1 所示),Bob 向 Lisa 汇款以从她那里购买一些商品,让我们看看 PKI 如何在 Bob 和 Lisa 之间建立这种信任。看下图 -
首先,如果鲍勃想给丽莎寄一些钱,他必须创建自己的私钥/公钥。请注意,两个密钥始终配对在一起,并且您不能混合不同个人或不同实例的私钥和公钥。
现在,鲍勃说他要向丽莎汇 10 美元。因此,他创建了一条消息(纯文本消息),其中包含 Bob(发送者)的公钥、Lisa(接收者)的公钥以及金额(10 美元)。
消息中还添加了这笔汇款的目的,例如“我想向您购买南瓜”。现在,整个消息已使用 Bob 的私钥进行签名。当Lisa收到这条消息时,她将使用PKI和Bob的公钥的签名验证算法来确保该消息确实源自Bob。PKI 的工作原理超出了本教程的范围。有兴趣的读者可以访问此站点以获取有关 PKI 的更详细讨论。这确定了消息发起者的真实性。现在,让我们看看消息隐私。
消息隐私
现在,丽莎已收到付款,她想发送鲍勃想要购买的电子书的链接。因此,丽莎会创建一条消息并将其发送给鲍勃,如图所示 -
Lisa 创建一条消息,例如“这是您请求的我的电子书的链接”,使用她在 Bob 的请求消息中收到的 Bob 的公钥对其进行签名,并使用在两者之间共享的某个秘密密钥对该消息进行加密HTTPS 握手期间。
现在,Lisa 确信只有 Bob 可以使用 Bob 单独持有的私钥来解码该消息。此外,拦截该消息的人将无法恢复其内容,因为该内容是由仅由鲍勃和爱丽丝持有的密钥加密的。这向丽莎保证,只有鲍勃才能访问她的电子书。
了解了 PKI 所暗示的身份验证和消息隐私这两个功能后,让我们继续看看比特币如何利用 PKI 来保护我在“什么是比特币?”一章中提到的公共分类账。