Security

為什麼不能將任何散列用於塊?

  • March 16, 2016

免責聲明:我對此完全陌生,基本的電腦技能僅限於 GUI 滑鼠點擊

  1. 我看了一下如何解釋難度,通過要求 SHA-256 生成具有更多前導 0 位的塊來“增加”難度,因此雜湊開頭的 0 字元串越來越少見。除非這沒有以我正確理解的方式解釋,否則我認為這意味著你可以欺騙比特幣難度並隨時製作區塊?您只需要一個自定義的 SHA-256 散列生成程序,該程序非隨機生成指定數量的 0,後跟隨機 SHA-256 散列,其縮短的位數等於前面 0 的數量,或者只是生成一個 SHA- 256 雜湊,然後用 0 位替換前導位以滿足難度目標,從而偽造塊雜湊。因此,據我所知,這是 A) 容易作弊;或 B) 解釋得不夠好。
  2. 難度越高,區塊雜湊的安全性難道不是越來越低嗎?因為它的隨機性越來越低?就像如果理論上難度上升到足夠高,是否不需要整個散列只有 0 位,而不僅僅是第一部分?這不是越難越破壞比特幣的安全性嗎?雜湊似乎更容易破解,難度越高,越容易隨機猜測,也更容易偽造。難道我或其他人不能只是發送 0 的垃圾字元串並獲得區塊獎勵,就像他們發送足夠多的 0 以完成雜湊一樣快嗎?

我意識到這兩個問題的答案可能是“不,不是那樣”,但這就是在 wiki 和 wikipedia 以及其他各種地方的解釋方式。

我認為這更像是礦工實際處理交易,而不僅僅是(或者甚至可能不是因為這些可能來自交易雙方)隨機生成雜湊。此外,可能還涉及一些尚未正確解釋的加密,當難度增加時,會在更多的多層中添加,對已經加密的數據進行加密和重新加密。

關於 0 字元串的解釋也不允許超過 1 的無限可變難度,因此它似乎也沒有意義。

我希望在如何解釋實際技術過程方面更加透明,即使它太長以至於我不想閱讀它。找到完整公開發布的 SHA 標準和文件的連結也很棒。

安全性越透明,如果可能的話,有人就越有可能找到破解或破壞它的方法,雖然這種情況發生是不可取的,但如果它可以發生在它發生的時候,最好盡快發生而不是遲到。全部。因此,可以實施更強大的標準來阻止這種違規行為。

雜湊是單向函式。sha256(“DataGoesHere”) –> HashResult 但只給定一個 HashResult,您就無法確定經過雜湊處理的數據的值是多少。

如果您更改該 HashResult 的一點點(例如,在其前面加上零),那麼它對應的數據將完全不同。所以很容易得到HashResult。基本上不可能去另一個方向並確定數據的價值。

如您所料,兩者的答案是否定的:-)

對於散列的生成:礦工試圖找到一個輸入,該輸入輸入到指定的函式中,給出滿足某些屬性的輸出。在比特幣中,屬性是要求輸出具有給定數量的零。由於您的同行將根據您提供給他們的輸入(塊)重新計算雜湊,他們會注意到雜湊與屬性不匹配並丟棄它。事實上,雜湊甚至沒有直接中繼,而只是可以計算雜湊的塊。

對於無法到達的目標,這個問題之前已經被問過很多次了。它的要點是H(block) < target。難度的增加會減少可能的解決方案的數量,但不會減少您必須在其中尋找它們的集合,從而使找到一個變得更加困難。

引用自:https://bitcoin.stackexchange.com/questions/10149