第六课-区块链世界中的数字指纹|《树哥解读以太坊》笔记
2018-12-21 本文已影响23人
吉祥在成长
新生大学2018年10月份推出了区块链技术系列课程之《树哥解读以太坊》,由树哥主讲。本简书文集记录我的学习笔记。
区块链世界没有中心组织,任何电脑都可以随时加入,随时离开。那么这个网络的安全如何保障呢?这需要用到区块链世界中的数字指纹,也即哈希函数。
一、信息篡改例子
历史中有很多信息篡改的例子。如康熙传位事件,宋江救宋江等事件。
二、信息摘要法
假如你需要给朋友写信,让中间人代捎。如何防止中间人篡改信件呢?
这里有一种信息摘要法,摘要举例:31A28B16C25D45E。这段摘要表示:信件中有31个A,28个B,等。把这个摘要短信发给朋友,朋友收到信件后,数一下字母,与摘要相同,表示信件没有被篡改;否则就是被篡改了。
这个方法有四个特点:
- 得到的摘要长度远小于原文的长度;
- 原文的任何单词变化都会导致摘要的变化;
- 用原文可以很容易得到摘要,但通过摘要永远也得不到原文;
- 有可能会有不同的原文得到相同的摘要,这是这种方法的漏洞。
这种摘要可以称为“数字指纹”。
三、哈希运算
在数字世界中,也有类似的信息摘要法,就是哈希运算。
哈希运算的特点有:
- 哈希运算得到的哈希值一般远小于原文;(节省存储空间)
- 原文任何一点变化都会导致哈希值的变化;
- 用原文很容易得到哈希值,而且运算速度极快,但通过哈希值得不到原文;
- 如果能通过不同原文得到同样哈希值,说明这种算法已被破解,不再安全。
哈希运算的一个应用场景。软件防篡改。一些重要软件一般都会公布该软件的MD5等信息摘要,我们在下载软件后,可以通过哈希运算工具求得安装包的MD5值,再与官方公布的值比较,如果一样,表明软件没有被篡改过;不一样,则说明下载的,软件被篡改过,不再安全。
四、常见哈希运算
MD2、MD4、MD5、SHA1、SHA2、SHA3
比特币使用的是SHA2系列中的SHA256算法,以太坊使用的是SHA3系列中的Keccak256算法。
小结:
- 像我们的指纹一样,区块链世界的“数字指纹”可以唯一标识数据、可以防止数据篡改、根据“内容寻址”等作用。
- 哈希运算是区块链世界中使用最多的一个工具,除了得到数据的“数字指纹”外,还在挖矿、传输秘钥、区块指针等很多方面都有应用。
|
|
|
|
|
|
|
|
|
|
|
吉祥
2018.12.21 21:25:57