目录:
文章导航
查看全套文章:
- 密码学和数字签名
回顾
在我们直接讨论数字签名之前,前两篇文章为我们提供了对密码学的广泛介绍。
数字签名及其验证是区块链背后的主要关键概念之一,而诸如比特币之类的加密货币应用正是基于此。
在区块链网络中,重要的是能够通过证明签名来自私钥持有者并且交易有效来正确识别交易的参与者。
数字签名提供身份验证,数据完整性和不可否认性,所有这些对区块链网络至关重要。结果,即使没有中介,网络上的任何人都可以信任交易。
加密和数字签名
就像我们在上一篇文章中看到的那样,公共密钥密码术创建加密的消息,而私人密钥则创建数字签名。
密码学的使用
数字签名
除了数据的加密和解密之外,公钥加密还可用于创建数字签名,以在区块链网络中提供身份验证,数据完整性和不可否认性。
以下步骤说明了基于公钥密码的数字签名模型的过程,如下图所示:
- 区块链网络上的所有参与节点均具有数学生成的私钥对。
- 该消息以纯文本格式被馈入哈希算法以生成哈希消息,也称为消息摘要。在诸如比特币之类的加密货币应用程序中,消息包含发送方发出的交易。
- 然后,使用发件人的私钥对经过哈希处理的消息进行签名,并与明文格式的消息一起通过区块链网络发送。
- 区块链网络上的参与节点现在将尝试通过检查数字签名来验证消息,以通过传递验证算法来验证其是否与从其发送消息的地址的公钥相匹配。
- 由于数字签名是使用发送者的私钥创建的,因此网络可以使用相应的发送者的公钥轻松证明签名来自私钥的持有者。
- 纯文本消息通过另一种散列算法进行馈送以生成散列值。将该哈希值与上述验证算法输出的哈希值进行比较。执行验证时,发件人不必透露其私钥。
对于比特币,网络还验证发送方确实拥有足够的比特币来发送,并且发送方尚未将其发送给另一接收方。这是通过遍历在比特币分类帐上公开的交易历史记录来实现的。
数字签名模型
代替直接对纯文本消息进行数字签名,该数字签名由数据散列形成。散列消息是唯一表示,但数据摘要相对较小。这使区块链更加高效。
实现邮件安全
现在让我们来看一下为什么在区块链中使用数字签名如此重要的原因:
- 完整性:数字签名和哈希算法可确保没有任何攻击者非法访问和修改数据。这意味着未经检测就无法更改数据。
- 身份验证:数字签名在区块链网络中的发送方和接收方之间建立信任。接收方可以确保只有发送方可以发送此消息。
- 不可否认:发件人不能拒绝发送消息,因为数字签名只能由拥有相应私钥且没有其他人的发件人创建。
下一步是什么?
我们没有谈论太多有关哈希的内容,因为它将在下一篇文章中介绍。现在,我们只需要知道散列是将任意大小的数据映射到固定大小的散列的数学算法或函数。例,
哈希示例
总而言之,哈希验证了数据是否已被修改或篡改。
上一篇文章
- 解锁区块链:公钥密码学
区块链使用公钥密码学(非对称密钥算法)来保护整个网络上的交易消息。在区块链中,基于公钥加密的数字签名用于证明消息源自特定的p。
下一篇
- 解锁区块链:散列
有两个基本的密码学概念将区块链结合在一起。数字签名和散列确保区块链上的交易仅由合法人进行,并且记录不受操纵
分级为4 +©2018 Heng Kiong Yap