数字签名是如何确认交易的?
我们都知道,在区块链系统中的交易就是数据上的传输,在数据传输的过程中必须要保证数据安全,否则整个区块链系统就会紊乱。
数据安全最起码要做到的就是数据传输时不会泄露,数据传输过程中的完整性以及交易双方身份的真实可靠。
那如何能保证区块链系统中交易过程的安全,密码学在其中的功劳就不可磨灭。
密码学的核心就是加解密算法,主要分为两大类型:对称加密算法和非对称加密算法。
非对称加密算法与对称加密算法主要的区别在于加解密过程中用到的密钥是不相同的,一个称之为公钥(Public Key),一个称之为私钥(Private Key)。私钥都是需要自己妥善保存的,公钥是可以公开分享给别人的。
关于这两个算法详细的区别,大家可以点击往期文章查看:【非对称加密】我的人,怎能容别人偷窥?
而数字签名就是非对称加密算法的一种应用形式。
那到底什么是数字签名呢?
我们在生活中经常会看到签名,以前的作业本签名,后来的各类合同等签名,其实数字签名跟这些签名差不多,都是对各自身份的认可。
我们在进行数字资产交易时,资产的转出方在进行转账时,就会生成一段防伪的字符串,这串字符串就是数字签名。主要用来验证交易的发出方以及交易过程中信息不被篡改,简单理解就是我们银行转账的交易流水。
数字签名它的具体过程如下:
数字签名通过数字摘要技术(Hash加密)把交易信息缩短成固定长度的字符串(哈希值),然后通过私钥对信息加密,通过公钥进行解密验证。
注意:数字签名加密的私钥和解密的公钥不一致,采用非对称加密技术。
咱们举例说明:
铁柱要转给翠花一笔比特币,铁柱首先要做的就是,将该笔交易的信息进行数字摘要,也就是Hash加密,缩短为一段字符串,也就是哈希值,然后通过铁柱自己的私钥对摘要内容进行加密,形成数字签名。
完成以上步骤后,铁柱就需要叫交易信息以及数字签名一起广播给记录账本的人(就是矿工)。
矿工收到信息后,就会用铁柱的公钥进行验证,这笔交易是不是铁柱发出的,交易信息正确吗,有没有被改,如果一切OK,矿工就会打包发出。
翠花收到交易后,用公钥进行验证这笔交易是不是铁柱转给他,然后也可以将信息内容进行Hash运算得到一个哈希值,再与铁柱传输过来的摘要进行对比查看交易信息是否吻合,确保没被篡改。
综上我们可以看出整个交易过程并不是对整个交易信息加密,而是对交易信息的摘要用非对称加密算法进行运算从而生成了“数字签名”。
以上内容说起来很复杂的样子,但其实我们实际操作时,只需要输入转账密码,以上所有步骤都会瞬间完成,帮你验证好。
这就像我们去银行转账或者支付宝转账一样,只需要输入银行卡密码,钱就会转出去,如果信息不对,会给你退回来一样的。
如果实在记不住,差不多了解以下7条步骤就行:
1、一段需发送的数据经过Hash计算生成一份摘要;
2、摘要通过发送者私钥进行加密;
3、发送者将使用私钥加密后的摘要和整个信息,生成一段待发送的数据包,数字签名则为经过私钥加密后的加密摘要;
4、接收者使用之前一样的Hash算法对整个信息计算得出摘要;
5、接收者再通过发送者公钥对两个摘要进行加密计算;
6、接收者通过发送者公钥对数字签名进行解密;
7、两者进行比较即可验证。