前提需要掌握编程的基本技能:数组、链表、二叉树、哈希函数
参考资料: BitCoin and Cryptocurrency Technologies A Comprehensive Introduction、以太坊白皮书、黄皮书、源代码、Solidty文档
密码学中用到的hash函数称为 Cryptographic hash function,有两个重要的性质一个叫做Collision resistance
例如 xy ,H(x)=H(y) 就叫做哈希碰撞(不同的输入,输出的结果是相同的)
1.密码学用的hash函数无法人为制造hash碰撞
2.密码学用的hash函数是单向的,不可逆的
举一个例子
当一个人预测明天股市的涨停,不能提前公开。因为如果这个人可能会引导股市涨跌的方向(大家一听他说明天哪哪个股票涨,大家就买那个股票),最好的办法是他将预测写在一张纸上,把这张纸交给公信机构。
对应数字世界,就是将这个x,进行hash(x)。等到明天开盘后,再用这个x判断。因为hash(x)是不可逆的,他不能篡改结果