发布时间:2018-04-08 13:37:17 文章来源:互联网
微博 微信 QQ空间

在上一节中,我们谈到了最基础的加密技术--哈希算法,在区块链中,有两个地方可以运用哈希算法:

1.发送交易/转移信息等运作信息。

2.区块链中的哈希指针。

为了防止发送节点的信息被恶意伪造和篡改,我们需要引入数字签名方案。

如果您还是没有理解上面略微抽象的描述,那可以先看完后面的解释,再回头看上面这一段。

数字签名并不是一个新的概念,我们知道有些网址是http开头的,有些是https开头,https其实就是运用了数字签名,对网络传输的数据进行了加密,具体的加密过程如下:

1.运用某个算法自动生成一对公钥和私钥,公钥可以给所有人,私钥自己留着。

2.信息发送者用私钥对信息进行加密,将信息发送出去

3.信息接受者把收到的信息用公钥进行解密,得到真正的信息。

举个例子:松子和小明是经常约去喝酒,为了不让媳妇知道,所以他们先各自生成一对公钥和私钥,把公钥给对方,在约的时候,用私钥把自己的信息进行加密,对方收到后,用公钥对信息进行解密,就可以避免被媳妇发现聊天内容。

同样,数字签名也可以运用到信息的验证中。

4.信息接受者把得到的信息解密后和真正的信息进行比对,以验证加密者的身份,同时验证信息没有被篡改。

继续上面的例子:有一天,松子觉得这种方式也不完善,万一信息在发送过程中被篡改怎么办,他便和小明约定,“以后我给你发消息的时候,会先发一个“我是松子”,如果你公钥解密出来是这句,那就是我发的,否则就不是我。”,这样,小明就可以识别松子发送的信息了,同时这个信息也没有被篡改。

另一视角

换一换