一个比喻
在中国古代很早就使用印章,也被称作印信,印信是机关、单位行使职权,进行各种公务活动,对外联系的标记和凭证,是行文机关表示对公文负责并标志公文生效的凭证,除用于公文外,还用于开具各种凭证。人们要出国留学、联系事务等都要有单位介绍信,印信就起证明身份、经历或者有关事件的真实情况的作用。印信一经刻制启用,就作为一种标志代表一个单位或个人。有了印信这个标志,各种文件、介绍信、合同、报表等文书才能被人们所承认和执行。印信是机关权威的象征。在一定场合下,机关权威的实现是以印章为见证的,这是法律赋予的权力。领导者的个人印信由办公室统一使用和保管,是为显示与维护领导者的权威。由领导者签章的各类聘书、决定及其他重要文件,在显示其法律作用的同时,也表明其权威性。我国党政机关都是依法成立的,所刻制的印章经过依法审批才能合法启用,启用后的印信受法律保护,同时印信使用者对用章又承担法律责任,对加盖印章后的公文在社会政治、经济活动中产生的一切后果负有法律责任。 因此,我们可以得出结论,当我们同意与文档的内容及其实现时就需得用印章。这一步解释了在电子分类账中声明交易协议的概念,该分类账类似于使用印章。这个概念对于区块链各个交易中的安全性至关重要。
我们的目标
重要的是确保只有帐户的所有者才能将与之关联的资产转移到其他帐户。除合法拥有人外,任何人进入帐户及其相关财产的任何企图均应被认定为未经授权,并应予以拒绝。
所面临的挑战
考虑到对等系统是对所有人开放的。因此,每个人都可以创建交易事务并将它们提交给系统。交易数据是描述和明确所有权的基础。只有帐户的合法拥有者才能将与帐户有关的财产或所有权转移到另一个帐户。区块链的挑战在于保持其开放性,同时限制账户的所有权只向合法所有者开放。
思考
确保只有合法所有者可以过户的主要想法是利用数字安全措施的结果,相当于使用印信,并且具有同样目的的数字签名方法。数字签名可以确定一个帐户,说明主人的协议与特定的交易事务数据的内容,并批准执行,允许数据被添加到交易事务的历史数据。
数字签名的一小段路
数字签名相当于使用印信。它们利用加密哈希和非对称加密的私有到公共信息流。以下简短的例子说明数码签署的三个主要元素:
创建签名
使用签名验证数据
使用签名识别欺诈行为
创建一个签名
假设我想发送一个Hello World!以授权的方式向世界问候。因此,我创建了一个包含问候语和相应数字签名的消息。图1描述了数字签名数据的整个过程。流程从图13-1左上角包含问候语的白色框开始。我创建了greeting的哈希值,它是7F83B165,并用我的私钥加密它。问候语哈希值的加密文本(包含白色字母的黑盒子)是我对问候语的数字签名。它在两个方面是惟一的:首先,它可以惟一地追溯到我,因为我使用惟一的私钥创建了它。其次,问候语的文字是独特的,因为它是基于问候语的唯一性标识。问候和数字签名都放在一个文件中(灰色框),这是我向世界发送的数字签名消息。
图1创建数字签名的示意图
使用签名验证数据
信息,即我的问候和数字签名,将被发送到全世界。每个人都可以使用我的公钥来验证我是否授权了此消息。图2说明了使用数字签名验证消息的过程。这个过程从问候开始。首先,消息的接收者自己计算问询的哈希值,得到值7F83B165。然后,我的消息的接收者使用我的公钥解密所附的加密文本(数字签名)。这样做将生成值7F83B165,这是我想发送给世界的那个版本的问询的哈希值。比较两个哈希值完成验证。因为这两个哈希值相同,收件人可以正确得出以下结论:
第一,信息是由我签署,因为他可以与我的公钥解密签名。
第二,问候的文本中发现的确是我想要发送的消息,因为解密密码文本是相同的哈希值的问候消息。
图2 使用数字签名来验证消息
使用签名识别欺诈
图3演示了数字签名如何指出伪造的问候语。
图3 使用数字签名来识别欺诈
图3显示了到达我朋友邮箱的消息。注意问候文字的变化。一些黑客用问号代替了感叹号,从而改变了整个问候语的语气。这不是我想要问候世界的方式。幸运的是,数字签名将向所有人指出,这条信息已被违反我的意愿修改。
首先,消息的接收者将自己创建问候语greeting的哈希值,生成值8A0B7C66。然后,我的消息的接收者使用我的公钥解密数字签名。这样做将生成7F83B165,这是我想要发送给世界的问询版本的哈希值。比较这两个哈希值可以发现它们并不相同。这清楚地指出,信息中的问候并不是我想要传达给世界的问候。因此,每个人的结论是,我没有授权这条消息,因此,没有人会让我对其内容负责。
它是如何工作的
区块链中的数字签名符合以下要求:
它们陈述了账户所有者的协议,该账户所有者用特定的交易数据移交所有权。
对于交易数据的整个内容,它们是唯一的,以防止在未经作者同意的情况下,将其用于授权其他交易。
只有移交所有权的账户所有者才能创建这样的签名。
它们很容易被每个人验证。
在区块链中有两个数字签名的用例:
签署交易事务
验证交易事务
签署一个交易事务
为了为交易事务创建数字签名,移交所有权的帐户所有者执行以下步骤:
1. 描述包含所有必要信息的交易事务,如所涉及的帐号、正在转账的金额等,签名本身除外,因为签名还不可用。
2. 创建交易事务数据的加密哈希值。
3.使用传递所有权的帐户的私钥加密事务的哈希值。
4. 将第3点中创建的加密文本作为其数字签名添加到交易事务中。
验证一个交易事务
为了验证交易,必须执行以下步骤:
1. 创建除签名本身之外要验证的交易事务数据的哈希值。
2. 使用传递所有权的帐号解密正在考虑的交易事务的数字签名。
3.将步骤1的哈希值与步骤2中得到的值进行比较。如果两者相同,则交易事务由与传递所有权的帐户相对应的私钥的所有者授权,否则就不是。
为什么它有效
交易数据的数码签署是下列各项的组合:
交易事务数据的加密哈希值
加密文本,可以追溯到相应的帐户私钥
由于可以将加密哈希值视为唯一性标记,因此它们对于每个交易事务都是惟一的。公钥-私钥密码学的一个组成属性是,用一个密钥创建的加密文本只能用对应的密钥解密。这两个键的关联是惟一的。因此,使用特定的公钥成功解密加密文本可以证明它是使用相应的私钥创建的。这两个概念结合起来用于创建加密文本,该文本可以惟一地追溯到一个进程中的一个特定交易事务数据和一个特定的私钥。此属性使数字签名适合作为用于创建数字签名的私钥的所有者确实同意交易内容的证明。
长按二维码关注
|
|