区块链 - 公钥密码学

公钥加密或简称PKI也称为非对称加密.它使用两对密钥 - 公钥和私钥.密钥是一个长二进制数.公钥在全球范围内分发,顾名思义就是公开的.私人密钥应严格保密,永远不会丢失.

如果您使用比特币,如果您丢失了比特币钱包的私钥,您钱包的全部内容很容易被盗窃,在你知道之前,你所有的钱(钱包的内容)都会消失,系统中没有任何机制来追踪谁偷了它 - 这就是我之前提到的系统中的匿名性.

PKI通过加密/解密机制完成两项功能 - 身份验证和邮件隐私.我现在将解释这两个函数 :

身份验证

当双方交换消息时,在发送者之间建立信任非常重要.收件人.特别是,接收者必须信任消息的来源.在我们之前的方案(如图1所示)中,Bob向丽莎发送一些钱购买她的一些商品,让我们看看PKI如何在Bob和Lisa之间建立这种信任.请看下面的图像 :

身份验证

首先,如果Bob想要向Lisa发送一些钱,他必须创建自己的私钥/公钥.请注意,两个密钥总是配对在一起,您不能混合不同个人或不同实例的私钥和公钥.

现在,Bob说他正在向Lisa发送$ 10.因此,他创建了一条消息(纯文本消息),其中包含Bob(发送者)公钥,Lisa(接收者)公钥和金额($ 10).

此消息中还添加了"我想从你那里购买南瓜"这样的汇款.现在使用Bob的私钥对整个邮件进行签名.当Lisa收到此消息时,她将使用PKI的签名验证算法和Bob的公钥来确保消息确实来自Bob. PKI的工作原理超出了本教程的范围.感兴趣的读者可以参考此网站,以获得有关PKI的更详细讨论.这确定了消息发起者的真实性.现在,让我们看看邮件隐私.

邮件隐私

现在,当Lisa收到付款时,她想发送链接到她想要购买的电子书.所以Lisa会创建一条消息并将其发送给Bob,如图所示;<

Message Privacy

Lisa创建了一条消息,例如"这是您所请求的电子书的链接",使用Bob的公钥在Bob的请求消息中签名,并使用一些秘密加密消息在HTTPS握手期间在两者之间共享的密钥.

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

看过PKI隐含的功能,身份验证和消息隐私,让我们继续看看比特币如何制作使用PKI来保护我在"什么是比特币?"一章中提到的公共分类账.

为了您的知识 : 最流行的PKI算法是 RSA 和 ECDSA ,比特币使用后者.