双哈希

比特币的双哈希中本聪在比特币软件上多处使用两次/轮哈希,双哈希不见得会降低哈希效率。一种说法是中本聪可能是为了防范长度扩展攻击(length-extension attack)。但防范长度扩展攻击的办法是使用HMAC算法:MAC=hash(key+hash(key+message)),而不是简单的对密钥连接message之后的值进行哈希摘要。

比特币地址的双哈希:RIPEMD160(SHA256(x))

梅克尔树上的区块双哈希:SHA256(SHA256(x)),也称SHA256d双哈希SHA256(SHA256(x))由Ferguson和Schneier在他们合著的Practical Cryptography(后为Ferguson、Schneier和Kohno更名未新版的Cryptography Engineerin)中提出,为使SHA256能够抵御length-extension attack,称两轮哈希为SHA-256d。Schneier建议尽量多轮加密,任何加密方法都不是绝对安全的,这或多或少会增强安全性。