首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >双SHA-256是比特币的最佳选择吗?

双SHA-256是比特币的最佳选择吗?
EN

Cryptography用户
提问于 2021-01-08 21:09:05
回答 2查看 4.3K关注 0票数 10

所以我只是好奇。

我真的很仰慕Blockchain技术,我也读过比特币使用双SHA-256进行散列。

(据我所知,double sha256本质上是\operatorname{SHA-256}(\operatorname{SHA256}(value)) )。

双SHA-256比SHA-512或任何其他比特币可以使用的散列算法好吗?或者,也许还有其他的替代方案可以为比特币的双SHA-256带来一些好处?

EN

回答 2

Cryptography用户

发布于 2021-01-08 21:18:10

比较双sha256和sha512就像比较苹果和橘子一样。首先,sha512的结果是512位的长度。双sha256 (或三重sha256,或四倍sha256)的结果是256位长。

多年来,对于比特币的创建者选择在协议中使用双sha256的原因,一直有很多猜测。一种理论是,这样做是为了减少长度扩展攻击。有关更多信息,请参见https://bitcoin.stackexchange.com/questions/6037/why-are-hashes-in-the-bitcoin-protocol-typically-computed-twice-double-computed

票数 8
EN

Cryptography用户

发布于 2021-01-08 22:55:33

使用双哈希的典型原因是处理扩展长度的攻击。这是因为任何Merkle mgard算法输出其整个状态(例如,SHA-1、SHA-256和SHA-512)都容易受到长度扩展攻击,其中知道哈希的用户可以附加额外的数据并生成有效的哈希。

还有其他算法,如SHA-3和BLAKE2,它们没有这个问题,因为它们使用的是不同的结构。沙-3使用一个大的状态,并且只输出一部分,而BLAKE2修改最后处理的块的输入数据来区分它。缺乏这个问题的设计现在更可取了。

然而,在创建比特币(2008)时,这些算法并不存在,SHA-256是用于安全上下文的标准哈希算法,尽管它有这个弱点。

算法在上下文中是否“更好”取决于一个人的需要。目前,如果需要防范长度扩展攻击,可以选择SHA-3或BLAKE2.如果需要性能,则使用BLAKE2或SHA-256 (如果在相关硬件上加速)。如果需要遵守,则使用SHA-2或SHA-3。有许多标准需要考虑。

在进行设计时,选择可能是负责任和合理的,而且是在这种情况下所能做到的最好选择,即使我们今天宁愿采用不同的算法(因为我们有更好的算法可供选择)。由于SHA-256目前被认为是安全和健壮的,所以现在几乎没有理由改变。如果将来这种情况发生变化,那么可能需要使用不同的算法。

票数 7
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/87434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档