加密货币的两个密码学基础:哈希函数和数字签名,今天介绍我对于哈希函数和哈希指针以及数据结构的理解和记录理解哈希函数过程中的疑问以待日后解决。
哈希函数的特性
碰撞阻力
任何哈希函数在理论上都是碰撞的,但是由于实践中对于一个哈希函数无法找到碰撞,就默认为其具有碰撞阻力,无法找到的原因是:①测试碰撞计算量要求太高,②无法确认识别碰撞的有效方法;
碰撞阻力的应用:信息摘要,其保证了文件的唯一性;
隐秘性
H(r ll x)= y
取至一个具备高阶最小熵的分别中的值 r 与输入值 x 进行连接构成新的输入值 r ll x,这样就是取至任意分布的 x 具有了隐秘性,也就是无法通过输出值y计算出输出值x;
隐秘性的应用是承诺,一个承诺协议如果成立需要两个安全特性:隐秘性和约束性,对于约束性和碰撞阻力我的理解是:两则是子母集关系,如图:
谜题友好
H(id ll x)∈Y
谜题友好中id与Y共同决定了解决上述数学问题的难度,因为id和Y的范围都可认为控制,这样就可控制挖矿的难度。
哈希指针
哈希指针具有两个特征:告诉使用者存储的位置和告诉位置数据的哈希值
问题集结:
?1,约束性隐含在哈希函数的碰撞阻力特性中,但是结论反之不成立,就是说我们可以找到碰撞,但是都不是满足H(nonce ll msg)= = H(nonce’ ll msg’)意义下的碰撞,例如,你可以对于同一个信息来产生满足同一个承诺的随机数,但这里的哈希函数不具备碰撞阻力特性。
?2,安全哈希算法中的SHA-256哈希函数简化图中的MD变换的解释能够看懂,但是简化图不理解什么意思
?3,在讲到区块链的结构的时候提到:区块链的结构与我们上节见到的MD变换类似,这个很不理解。
以上是学习:区块链 技术驱动金融 数字货币与智能合约技术 这个本书第一张第一小节和第二小节的总结,如果发现有任何理解错误之处欢迎交流。