如何进行数字签名?
签名是对我们进行交易的认可,数字签名也是一样,只不过你把签的文字变成了一串字符而已。
一个数字签名相当于是一个数字身份,交易时由转账的转出方生成,就好比银行的流水,数字签名就是用来验证这笔交易确实是由转出方发起的。
我把这个证明过程浓缩成一个栗子。
张三要发起一笔转账,张三先将这个交易进行数字摘要,缩成字符串,然后用自己的私钥对字符串加密,形成数字签名。完成后,张三要将这个交易向全网进行广播。别的节点用张三的公钥进行验证,如果验证成功,那这笔交易就是可信的。
就像你去银行转账,只要输入密码,钱就转出去了,是一样的道理。只不过区块链中,动用了公钥和私钥,程序上复杂一点,但有电脑代劳,也不打紧。
如何实现加密与解密?
区块链中有两把钥匙,一把公钥,一把私钥。这两个钥匙是通过一种数学算法得出来的,有关联的一对钥匙。简单来说,就是私钥可以生成公钥,而公钥是无法推导出私钥的。
在区块链中,公钥是公开的钥匙,是要公开发行配送的,只要有要求谁都能取得。私钥就是私人才拥有的了,就像你的保险柜钥匙,你不可能拿给别人保管吧。
公钥和私钥是配对的,在区块链中,如果利用公钥给信息加密,就必须要用私钥才能打开,如果用私钥给信息加了密,则必须用公钥来打开,否则是不能解密的。这个系统的优势是两个用户能够安全地沟通,而不用互相交换秘密钥匙。例如一个人要将一条信息传给另一个人,而这信息的内容是保密级别的,为了防止别人打开,送信者用公钥加密,而要解密就必须要收信者动用自己的公钥才行。