为什么比特币要使用双重SHA256?
比特币使用SHA256来转换数据的方式很有趣,它将算法在协议中连续执行了两次。注意,这并不是为了抵御生日攻击,显然如果hash(x) = hash(y) 那么也有hash(hash(x)) = hash(hash(y)),而是为了缓解长度扩展(length-extension)攻击。
从本质上说,这种攻击需要恶意攻击者知道哈希输入值的长度,在这个已知的长度上再加上一个秘密的字符串,就可以发动哈希函数内部的一部分,从而扰乱哈希函数。由于SHA256是SHA2算法家族的成员,它有这一类的短板,而比特币通过将哈希函数连续运行两次来缓解这个缺陷。
【版权声明】本网为公益类网站,本网站刊载的所有内容,均已署名来源和作者,仅供访问者个人学习、研究或欣赏之用,如有侵权请权利人予以告知,本站将立即做删除处理(QQ:51999076)。