原始文献 / 论坛帖 / Re: Hash() function not secure

Re: Hash() function not secure

Bitcointalk · 2010-07-16 16:13:53 UTC

AuthorSatoshi Nakamoto
TitleRe: Hash() function not secure
Date2010-07-16 16:13:53 UTC
ForumBitcointalk · 原文

SHA256 不像从 128 位到 160 位那一步。

打个比方,它更像从 32 位到 64 位地址空间那一步。16 位计算机很快就用完了地址空间,32 位计算机在 4GB 处用完了地址空间,但这不意味着 64 位地址空间很快就会用完。

在我们有生之年,SHA256 不会被摩尔定律带来的算力提升攻破。如果它会被攻破,那一定是某种突破性的破解方法。一种能把 SHA256 彻底打垮、拉进可计算范围的攻击,很大概率也能把 SHA512 打垮。

如果我们看到 SHA256 的弱点是逐渐显现的,我们可以在某个区块高度之后切换到新的哈希函数。每个人都必须在那个区块高度之前升级软件。新软件会保存所有旧区块的一个新哈希,以确保它们不会被另一个具有相同旧哈希的区块替换。

英文原文

SHA256 is not like the step from 128 bit to 160 bit.

To use an analogy, it's more like the step from 32-bit to 64-bit address space. We quickly ran out of address space with 16-bit computers, we ran out of address space with 32-bit computers at 4GB, that doesn't mean we're going to run out again with 64-bit anytime soon.

SHA256 is not going to be broken by Moore's law computational improvements in our lifetimes. If it's going to get broken, it'll be by some breakthrough cracking method. An attack that could so thoroughly vanquish SHA256 to bring it within computationally tractable range has a good chance of clobbering SHA512 too.

If we see a weakness in SHA256 coming gradually, we can transition to a new hash function after a certain block number. Everyone would have to upgrade their software by that block number. The new software would keep a new hash of all the old blocks to make sure they're not replaced with another block with the same old hash.