区块链 公钥密码术

  • 公钥密码术

    公钥密码术或简称为PKI,也称为非对称密码术。它使用一对密钥-(公钥和私钥)。密钥是一个较长的二进制数。公钥在全球范围内分发,顾名思义,它是真正的公开的秘钥。私钥必须严格保密,并且永远不要丢失。
    如果是比特币,如果您丢失了比特币钱包的私钥,那么钱包中的所有内容将立即遭到盗窃,并且在您不知情的情况下,您所有的钱(钱包中的内容)将一无所有。系统中的机制以找出是谁偷了它-这就是前面提到的系统中的匿名性。
    PKI通过加密/解密机制实现身份验证和消息保密两个功能。我现在将解释这两个功能-
  • 认证方式

    当双方交换消息时,在发送方和接收方之间建立信任很重要。特别是,接收者必须信任消息的来源。回到我们先前的情况(如图1所示),Bob将钱寄给Lisa从她那里购买商品,让我们看看PKI如何在Bob和Lisa之间建立这种信任。看下面的图像-
    blockchain
    首先,如果Bob想要向Lisa汇款,他必须创建自己的私钥/公钥。请注意,两个密钥始终配对在一起,并且您不能混合使用不同个人或不同实例的私钥和公钥。
    现在,Bob说他要寄10美元给丽莎。因此,他创建了一条消息(纯文本消息),其中包含Bob的(发送者)公共密钥,Lisa的(接收者)公共密钥以及金额($10)。
    该汇款的目的还包括“我想向您购买南瓜”之类的信息。现在,使用Bob的私钥对整个消息进行签名。当Lisa收到此消息时,她将使用PKI的签名验证算法和Bob的公钥来确保消息确实来自Bob。PKI的工作方式超出了本教程的范围。有兴趣的读者可以参考此站点,以获取有关PKI的更详细讨论。这样可以建立消息始发者的真实性。现在,让我们看一下消息隐私。
  • 消息隐私

    现在,由于Lisa收到了付款,她希望将链接发送到Bob想要购买的电子书中。因此,Lisa将创建一条消息并将其发送给Bob,如图所示-
    blockchain
    Lisa 创建一条消息,例如“这是您所请求的我的电子书的链接”,并使用 Bob 在请求消息中收到的Bob的公钥对其进行签名,并使用两者之间共享的一些秘密密钥对该消息进行加密在HTTPS握手期间。
    现在,Lisa确保只有Bob可以使用Bob独自持有的私钥来解码消息。同样,截获该消息的人将无法恢复其内容,因为该内容由仅由Bob和Alice持有的密钥加密。这向丽莎保证,只有鲍勃才有权访问她的电子书。
    看到了PKI所隐含的身份验证和消息隐私这两个功能之后,让我们继续前进,看看比特币如何利用PKI来保护在“什么是比特币?”一章中提到的公共分类帐。
    据您所知-最受欢迎的PKI算法是RSAECDSA,比特币使用后者。