Address
如果 SHA256 和/或 RIPEMD-160 被破壞,所有比特幣地址都會被洩露嗎?
如果沒有,還需要什麼來竊取所有人的所有資金並徹底破壞比特幣?
我敢打賭,有些人會說 ECSDA 為比特幣提供了額外的保護層。我反駁說 ECSDA 依賴於諸如 SHA256 之類的散列函式。所以我也會問這個問題:比特幣使用什麼樣的 ECSDA,如果 SHA256 被破壞,它是否仍然受到保護?
是的,我知道我在說明一個不太可能發生的情況,但我仍然相信我們應該知道會發生什麼。
如果您想提及與 SHA256 相關的其他雜湊函式,您可以。隨意解釋 RIPEMD-160 如何在 SHA256 漏洞利用時保護比特幣安全。
比特幣使用 SHA256,然後是 RIPEMD-160,我統稱為 HASH160。
好的雜湊有 4 個屬性:
- 很容易計算任何給定消息的雜湊值
- 生成具有給定雜湊的消息是不可行的
- 在不更改雜湊的情況下修改消息是不可行的
- 找到具有相同雜湊的兩條不同消息是不可行的
資料來源:維基百科
我們關心屬性 1、2 和 3。我們知道屬性 1 對於 HASH160 是正確的——我們可以對其進行基準測試。如果屬性 2 或 3 是錯誤的,那麼你可以竊取比特幣。不好。
腳本語言非常靈活,這是一件好事,可以讓人們切換到不同的地址類型,而不會強迫每個人升級。
這是目前的比特幣交易腳本:
OP_DUP OP_HASH160 09432ab39083b5098b6f09432ab39083b5098b6f OP_EQUALVERIFY OP_CHECKSIG
如果 HASH160 被破壞,情況可能會發生以下變化:
OP_DUP OP_HASH256 09432ab39083b5098b6f09432ab39083b5098b6f09432ab39083b5098b6f826496 OP_EQUALVERIFY OP_CHECKSIG
請注意,我們已將 HASH160 替換為 HASH256。或者,假設兩者都壞了:
<pubKey> OP_CHECKSIG
現在我們完全放棄散列函式並明確地放入 ECDSA 密鑰。然而,這將使比特幣地址大約有一百個字元長。