哈希:加密貨幣中的基本元素

哈希過程涉及從可變輸入生成恆定大小的輸出。這是通過一種稱爲哈希函數的數學公式實現的,該公式被實現爲一種算法。

雖然並非所有的哈希函數都與密碼學相關,但密碼學哈希函數在加密貨幣的世界中至關重要。得益於它們,區塊鏈和其他分布式系統能夠達到高水平的數據完整性和安全性。

傳統哈希函數和加密哈希函數都有一個關鍵特徵:它們是確定性的。這意味着,只要輸入不變,哈希算法就會始終產生相同的輸出 (,也稱爲摘要或哈希)。

特別是,加密貨幣中使用的哈希算法被設計爲單向函數,這意味着幾乎不可能在沒有大量時間和計算資源的情況下將其逆轉。換句話說,從輸入中獲得結果很簡單,但反過來做極其復雜。通常,推導輸入的難度越大,哈希算法就越安全。

哈希函數的工作原理

不同的哈希函數產生不同大小的結果,但每個哈希算法的輸出大小始終是恆定的。例如,SHA-256算法始終生成256位的輸出,而SHA-1則始終產生160位的摘要。

爲了說明這一點,讓我們將比特幣中使用的SHA-256哈希算法(應用於單詞"Gate"和"Gate"。

SHA-256

輸入

輸出 )256 位(

9e14f90f0831e9d9c9f4f90df9e9f90c9f4f90df9e9f90c9f4f90df9e9f90c9

1e9d9c9f4f90df9e9f90c9f4f90df9e90c9f4f90df9e90c9f4f90df9e9f

觀察如何小的變化)如從大寫到小寫的轉換(會導致完全不同的哈希值。然而,使用SHA-256時,輸出始終具有固定的256位大小)或64個字符(,無論輸入的大小如何。此外,無論我們用算法處理這兩個詞多少次,兩個輸出都將保持不變。

另一方面,如果我們對相同的輸入應用SHA-1哈希算法,將得到以下結果:

SHA-1的

輸入

輸出 )160 位(

c9f4f90df9e9f90c9f4f90df9e9f90c9f4f90df

f90df9e9f90c9f4f90df9e9f90c9f4f90df9e9

SHA的縮寫代表安全哈希算法,指的是一組加密哈希函數,包括SHA-0和SHA-1算法,以及SHA-2和SHA-3組。SHA-256屬於SHA-2組,連同SHA-512和其他變體。目前,只有SHA-2和SHA-3組被認爲是安全的。

哈希函數的相關性

常規哈希函數有廣泛的應用,包括數據庫搜索、大數據分析和信息管理。而密碼學哈希函數則廣泛用於信息安全應用,如消息認證和生成數字指紋。在比特幣的背景下,密碼學哈希函數在挖礦過程中是至關重要的,並有助於生成新的地址和密鑰。

哈希的真正潛力在於處理大量信息時的表現。例如,可以通過哈希函數處理一個大型文件或數據集,並使用輸出快速驗證數據的準確性和完整性。這是可行的,因爲哈希函數的確定性特性:輸入始終產生一個簡單明了的輸出 )hash(。這種技術消除了存儲和“記住”大量信息的需要。

特別是,哈希在區塊鏈技術中極爲有用。比特幣的區塊鏈涉及多個使用哈希的過程,主要是在挖礦過程中。事實上,幾乎所有的加密貨幣協議都基於哈希將交易分組到區塊中,並在單個區塊之間生成加密連結,從而有效地創建了一條區塊鏈。

加密哈希函數

一個實現了密碼技術的哈希函數被定義爲密碼哈希函數。一般來說,破解一個密碼哈希函數需要相當大的暴力破解努力。如果有人試圖 "反轉 "一個密碼哈希函數,他們必須通過試錯來猜測輸入,直到獲得正確的輸出。然而,不同的輸入也可能產生完全相同的輸出,這稱爲 "碰撞"。

從技術上講,密碼學哈希函數必須滿足三個屬性才能被認爲是安全和有效的。我們可以將其描述爲抗碰撞性、抗原像性和抗第二原像性。

我們將這個邏輯總結爲三句話:

  • 抗碰撞性:很難找到兩個不同的輸入產生相同的哈希作爲輸出。

  • 抗原像性:很難 "反轉" 一個哈希),從可用的輸出推導輸入(。

  • 二次預映像抗性:很難找到與特定輸入碰撞的第二輸入。

) 碰撞抵抗力

當不同的輸入產生相同的哈希時,就會發生碰撞。因此,哈希函數被認爲是抗碰撞的,直到發生碰撞。值得注意的是,對於任何哈希函數,這些碰撞總會存在,因爲可能的輸入是無限的,而可能的輸出是有限的。

換句話說,當找到哈希碰撞的概率極低,需要數百萬年的計算時間時,就說一種哈希函數是抗碰撞的。因此,盡管不存在完全無碰撞的哈希函數,但一些哈希函數非常強大,可以被視爲強健的###例子:SHA-256(。

在各種SHA算法中,SHA-0和SHA-1組已不再被認爲是安全的,因爲已發現碰撞。目前,SHA-2和SHA-3組被認爲是抗碰撞的。

) 預影抵抗

抵抗預映像的屬性與單向函數的概念相關。當某個哈希函數的某個特定輸出所對應的輸入被找到的概率非常低時,便認爲該哈希函數是抵抗預映像的。

重要的是要注意,這一屬性與前一個不同,因爲攻擊者在這裏試圖通過觀察可用的輸出來猜測輸入。另一方面,碰撞發生在某人找到兩個不同的輸入產生相同的輸出時,無論使用哪個輸入。

抵抗原像的屬性對於保護數據非常有用,因爲消息的簡單哈希可以證明其真實性而不泄露信息。在實踐中,許多服務提供商和網路應用存儲並使用生成的密碼哈希,而不是明文密碼。

二次預映抵抗

總而言之,我們可以說第二前像抵抗性位於上述提到的兩個屬性之間。第二前像攻擊發生在某人成功找到一個特定輸入,該輸入產生與另一已知不同輸入相同的輸出時。

換句話說,第二原像攻擊是指尋找碰撞,但不是尋找兩個隨機輸入產生相同的哈希值,而是尋找產生由特定輸入生成的相同哈希值的輸入。

因此,任何抗碰撞的哈希函數也都是抗第二前映像攻擊的。然而,仍然可以對抗碰撞的函數進行前映像攻擊,因爲這意味着需要從唯一的輸出中找到唯一的輸入。

礦業

在比特幣的挖礦過程中,有許多步驟涉及哈希函數,如驗證餘額、連結輸入和輸出交易,以及在一個區塊內哈希交易以形成梅克爾樹。但比特幣區塊鏈安全的主要原因之一是礦工們必須進行大量的哈希運算,以最終找到下一個區塊的正確解決方案。

具體來說,礦工在爲其候選塊生成哈希值時必須嘗試多個不同的輸入。實際上,只有在生成一個以一定數量的零開頭的輸出哈希時,他才能驗證自己的區塊。零的數量決定了挖礦的難度,而這取決於網路的特定哈希率。

在這種情況下,哈希率代表用於比特幣挖礦的計算能力。如果網路的哈希率增加,比特幣協議將自動調整挖礦難度,以保持挖掘一個區塊所需的平均時間接近10分鍾。相反,如果一些礦工決定放棄活動,導致哈希率急劇下降,挖礦難度將會調整,使其變得更容易###,直到平均區塊時間再次回到10分鍾(。

重要的是要理解,礦工不需要找到碰撞,因爲有許多哈希可以作爲有效輸出),前面有一定數量的零(。因此,對於特定區塊存在多種可能的解決方案,礦工只需要找到一個滿足挖礦難度級別設定的閾值的解決方案。

由於比特幣挖礦是一項昂貴的任務,礦工們沒有動力去欺騙系統,這將導致重大財務損失。加入區塊鏈的礦工越多,區塊鏈就會變得越大越強。

最終反思

毫無疑問,哈希函數是計算機科學中的一項基本工具,尤其是在處理大規模數據時。當與加密技術結合時,哈希算法可以非常靈活,並以多種方式提供安全性和真實性。因此,密碼學哈希函數對於幾乎所有加密貨幣網路都是必不可少的,因此理解它們的性質和工作原理對任何對區塊鏈技術感興趣的人來說都非常有用。

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 轉發
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)