公钥密码或简称PKI也被称为非对称密码。它使用两对密钥—公共密钥和私有密钥。密钥是一个很长的二进制数。公钥在全球范围内分发,顾名思义,它确实是公开的。私钥必须严格保密,绝不能丢失。
在比特币的情况下,如果你丢失了比特币钱包的私钥,你钱包里的所有东西都会很容易被盗,而且在你知道之前,你所有的钱(钱包里的东西)都不见了,系统里没有任何机制可以查出是谁偷的——这就是我前面提到的系统中的匿名性。
PKI通过加解密机制实现认证和消息隐私两大功能。现在我将解释这两个函数&负;
Authentication
当双方交换消息时,在发送者和接收者之间建立信任是很重要的。特别是,接收者必须信任消息的来源。在我们前面的场景(如图1所示)中,Bob向Lisa发送了一些钱,以便向她购买一些商品,让我们看看PKI如何在Bob和Lisa之间建立这种信任。看看下面的图片−
首先,如果Bob想给Lisa寄一些钱,他必须自己创建一个私钥/公钥。请注意,这两个密钥始终配对在一起,并且不能混合不同个人或不同实例的私钥和公钥。
现在,鲍勃说他要给丽莎寄10美元。因此,他创建了一条消息(纯文本消息),其中包含Bob(发送方)公钥、Lisa(接收方)公钥和金额($10)。
这封汇款的目的,如“我想从你这里买南瓜”也加入了信息中。现在使用Bob的私钥对整个消息进行签名。当Lisa收到此消息时,她将使用PKI的签名验证算法和Bob的公钥来确保消息确实来自Bob。PKI的工作方式超出了本教程的范围。感兴趣的读者可参考本网站,了解有关PKI的详细讨论。这将确定消息发起者的真实性。现在,让我们来看看信息隐私。
Message Privacy
现在,丽莎已经收到了她的付款,她想把链接发送到她的电子书,鲍勃想买。因此,Lisa会创建一条消息并将其发送给Bob,如图所示;
Lisa创建了一条消息,例如“这里是指向我的电子书的链接,你已经请求了”,用Bob的公钥签名,她已经在Bob的请求消息中接收到了这个公钥,并且还使用在HTTPS握手过程中两人共享的某个密钥对消息进行加密。
现在,Lisa确信只有Bob可以使用Bob单独持有的私钥对消息进行解码。另外,由于内容是由只有Bob和Alice持有的密钥加密的,因此拦截消息的人将无法恢复其内容。这向Lisa保证,只有Bob才能访问她的电子书。
在了解了PKI所隐含的特性、身份验证和消息隐私之后,让我们继续看看比特币如何利用PKI来保护我在“什么是比特币”一章中提到的公共分类账?”.
就您所知,最流行的PKI算法是RSA和ECDSA,比特币使用后者。