以太坊区块链上的不对称密码学

条款:公钥私钥钱包地址签名交易 ; 所有人都在允许用户在区块链上执行交易方面发挥作用,但许多人都很难理解他们的意思以及他们的工作方式。我的目的是让您直观地了解这些术语在以太坊区块链中的相互作用。

在本文中,我将提供:

  1. 带有非区块链相关用例的公钥和私钥签名简介 – 从100英尺,50英尺和10英尺的角度给出相同的解释三次。
  2. 在以太坊区块链的上下文中介绍公钥和私钥 –将第1部分与以太坊区块链相关联。

第1节:使用非区块链相关用例的公钥和私钥签名简介

100英尺 – 最高级别说明:假设Alice是Bob’s Bank的成员。爱丽丝想向鲍勃发送一条消息:“向吉米发送1美元”。爱丽丝希望确保在此过程中没有人改变她的信息。所以爱丽丝将如何使用她的公钥和私钥完成此任务:

0D9xhn_yqv68Q9v6Y

  • Alice用她的私钥“锁定”她的消息,然后将消息发送给Bob。
  • 在Bob收到消息后,他现在可以用Alice的公钥“解锁”消息,并知道Alice是消息的真正发送者。
  • Bob现在可以阅读消息“向Jimmy发送1美元”并更新他的分类帐以反映此交易( – Alice的帐户为1美元,Jimmy的帐户为+ 1美元)

50英尺 – 中等水平的解释:(同样的情况,100英尺,但有更多的细节)所以,再次,让我们说爱丽丝想要给她发送“向吉米发送1美元”的消息,她想确保没有人改变她沿途的消息。以下是Alice如何使用她的公钥和私钥完成此任务,但这次更详细一点:

0SWsrNGkuVW7MTSuY

  • Alice生成她的“Send $1 to Jimmy”消息​​的哈希值。在此上下文中,散列是一个接受输入并返回固定长度输出的函数。例如,“h(x)= x mod 10”将是这种函数的简单版本。爱丽丝然后用她的私钥签署哈希。私钥签名是函数“f(hash,private_key)”的输出,除非您具有完全相同的“hash”和“private_key”作为函数的输入,否则几乎不可能重新创建。
  • Alice向Bob发送原始消息“向Jimmy发送$1”以及消息的签名散列。
  • Bob收到原始消息“向Jimmy发送$1”以及消息的签名散列。然后,Bob重新创建原始消息的散列版本,并使用Alice的公钥来验证签名的散列是否由Alice的私钥创建。
  • Bob现在可以更新他的分类账以反映这笔交易( – Alice的账户为1美元,Jimmy的账户为+ 1美元)

10英尺:(相同的场景,100英尺,但有代码)所以第三次,爱丽丝想要给她发送“向吉米发送1美元”的消息,她想确保没有人改变她的信息。以下是Alice如何使用她的公钥和私钥完成此操作,但这次使用的是实际代码:

0YoPCsIpn0qVe9tvw

  • 在上面的代码中,Alice将她的消息插入Wallet.sign函数。wallet.sign函数散列输入,然后使用nodejs“椭圆”库生成签名。
  • Bob收到消息后,可以使用同一nodejs“elliptic”库中的keyFromPublic.verify函数来验证Alice发送的消息是否与她提供的签名匹配。
  • Bob现在可以阅读消息“向Jimmy发送$1”并更新他的分类帐以反映此交易( – Alice的帐户为1美元,Jimmy的帐户为+ 1美元)。

第2节:以太坊区块链上下文中的公钥和私钥

但是,第1部分对公钥和私钥的解释如何与以太坊区块链相关?

回到第1部分,Alice向Bob发送了一条消息,Bob确认Alice是该消息的真正发送者。在第2节中,它是相同的想法,但不是Bob验证Alice是消息的真正发送者,而以太坊区块链将验证Alice是消息的真正发送者。

在第2部分中,Alice希望在以太坊区块链上使用她的公钥和私钥对将她的ERC20令牌发送给她的朋友Jimmy。

同样在第2部分,Alice没有发送消息“向Jimmy发送$1”,而是Alice的消息将在以太坊区块链上发送命令“向Jimmy发送1个令牌”。

03suNOPXT17XyioW3

所以在我们的例子中,EVM(以太坊虚拟机就是你所谓的以太坊“计算机”,而它正在为你执行任务,这就是执行“发送1令牌到吉米”命令)。EVM以与Bob在第1部分中验证消息相同的方式验证命令。如果EVM确定该命令来自Alice,它将执行并且令牌智能合约将更新以反映该事务(来自Alice的帐户的-1令牌, +1令牌给Jimmy的帐户)。

结论

区块链被认为是新的和革命性的(它们是),但与任何新技术一样,它站在其前辈的肩上。以太坊区块链在很大程度上依赖公钥和私钥,这些公钥和私钥在区块链上使用之前就存在了很久。创建数字签名只是非对称密钥的一个用例,但还有其他用例; 例如,GitHub也使用公钥和私钥来加密货币和解密远程主机和客户端之间的数据。希望在阅读本文之后,您已经了解了如何使用以太坊区块链以一种全新且有趣的方式使用公钥和私钥。

原文 Medium
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢