哈希:加密貨幣中的關鍵元素

哈希過程是指從可變輸入生成固定大小輸出的過程。這是通過稱爲哈希函數的數學公式實現的,作爲算法實現。

在加密貨幣領域,哈希加密函數是基礎。正是由於它們,區塊鏈和其他去中心化系統達到了高水平的數據完整性和安全性。

傳統哈希函數和加密哈希函數都是確定性的。這意味着,如果 input 沒有改變,算法將始終產生相同的輸出(también稱爲 digest 或 hash)。

一般來說,加密貨幣中的哈希算法被設計爲單向函數,這意味着它們無法在沒有大量時間和計算資源的情況下輕易逆轉。也就是說,從輸入獲得輸出是簡單的,但做相反的事情則非常復雜。找到輸入的難度越大,算法被認爲就越安全。

哈希函數的工作原理

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

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

SHA-256

入口

出發)256 bits(

大門

8a83f205f3c314f629e3a0128f5f404cfd44b9a95da6d9f1a7b9f50d1f1b3b34

Gate

7f7e4cf2eb50a0ea9d71edc37d6a1e74cf5e9348f7f9a0321b95e0a8e4097b3e

觀察到最小的變化 ) 首字母大寫( 會導致一個完全不同的哈希。然而,使用 SHA-256 時,輸出始終將是 256 位 )64 個字符(,無論輸入的大小。此外,無論我們處理這些詞多少次,結果將保持不變。

相反,如果我們對相同的輸入應用 SHA-1 算法,我們將得到:

SHA-1的

輸入

出發)160 bits(

3e2a7fe40ac63dbe0a46a6931c74c1d4e6b7447d

Gate

c1b7368da4b8ef83dbf7ca3d3c3d17e65d799708

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

哈希的重要性

傳統的哈希函數有多種用途,例如數據庫搜索、大型文件分析和信息管理。另一方面,密碼學哈希函數廣泛應用於信息安全、消息認證和生成數字指紋。在比特幣中,它們對挖礦過程以及新地址和密鑰的生成至關重要。

哈希的真正潛力在於處理大量數據。例如,可以通過哈希函數處理一個大型文件或數據集,並利用其輸出快速驗證信息的準確性和完整性。這得益於哈希函數的確定性特性:相同的輸入總是會產生相同的壓縮輸出。這種技術消除了存儲和“記住”大量信息的需求。

哈希在區塊鏈技術中特別有用。比特幣區塊鏈涉及大量的哈希操作,主要是在挖礦過程中。實際上,幾乎所有的加密貨幣協議都基於哈希來連結和壓縮交易組到區塊中,以及在區塊之間創建加密連結,從而有效地形成一條鏈。

加密哈希函數

一種實現加密技術的哈希函數稱爲加密哈希函數。一般來說,攻破這些函數需要無數次的暴力嘗試。要“逆轉”一個加密哈希函數,必須通過試錯來猜測輸入,直到獲得相應的輸出。然而,不同的輸入有可能產生完全相同的結果,這被稱爲“碰撞”。

技術上,密碼學哈希函數必須滿足三個屬性才能被認爲是有效安全的:抗碰撞性、抗預映像性和抗第二預映像性。

我們將這些屬性總結爲三句話:

  • 抵抗碰撞:找不到兩個不同的輸入生成相同哈希作爲輸出是不可行的。

  • 預映像抗性:無法 "反轉" 哈希函數 ) 找到特定輸出的輸入 (.

  • 對第二預像的抗性:無法找到與特定輸入發生衝突的第二輸入。

) 抗碰撞性

當不同的輸入產生完全相同的哈希時,就會發生碰撞。哈希函數被認爲是抗碰撞的,直到有人找到一個爲止。重要的是要注意,對於任何哈希函數,總會存在碰撞,因爲可能的輸入是無限的,而輸出是有限的。

在實踐中,當找到哈希衝突的概率低到需要數百萬年的計算時,哈希函數被認爲是抗碰撞的。因此,盡管不存在完全沒有碰撞的哈希函數,但有些函數足夠強大,可以被認爲是抗碰撞的,例如,SHA-256。

在SHA算法中,SHA-0和SHA-1組由於發現了碰撞而不再被認爲是安全的。目前,SHA-2和SHA-3組被認爲是抗碰撞的。

預映像抵抗

抗預映像的屬性與單向函數的概念有關。當一個哈希函數被認爲是抗預映像時,意味着幾乎沒有可能性有人找到生成特定輸出的輸入。

該屬性與前者不同,因爲這裏的攻擊者會嘗試通過觀察特定輸出來猜測輸入。相反,碰撞發生在找到兩個不同的輸入生成相同的輸出時,無論使用了什麼輸入。

抗預映像性對於保護數據是非常有價值的,因爲消息的簡單哈希可以在不透露原始信息的情況下證明其真實性。實際上,許多服務提供商和網路應用程序存儲並使用基於密碼生成的哈希,而不是明文密碼。

( 二次預映抵抗

簡單來說,我們可以說第二前像的抗性處於另外兩種屬性之間的中間點。第二前像攻擊發生在某人能夠找到一個特定的輸入,該輸入生成與另一個已知輸入相同的輸出。

換句話說,第二預映像攻擊涉及找到一個碰撞,但不是尋找兩個隨機輸入生成相同的哈希,而是尋找一個輸入,該輸入可以產生由另一個特定輸入生成的相同哈希。

因此,任何抵抗碰撞的哈希函數也將抵御第二個預像攻擊,因爲後者總是涉及到一次碰撞。然而,仍然可以對抵抗碰撞的函數進行預像攻擊,因爲這涉及到從一個唯一的輸出找到一個唯一的輸入。

礦業

比特幣的挖礦過程涉及多個步驟,這些步驟使用哈希函數,例如驗證餘額、連結交易的輸入和輸出,以及將交易匯總到一個區塊中以形成默克爾樹。然而,比特幣區塊鏈安全的主要原因之一是礦工們必須進行大量的哈希操作才能找到下一個區塊的有效解決方案。

具體來說,礦工在爲其候選區塊創建哈希值時必須嘗試不同的輸入。只有當他們生成一個以特定數量的零開頭的輸出哈希時,才能驗證他們的區塊。零的數量決定了挖礦的難度,並根據分配給網路的哈希率而變化。

在這個背景下,哈希率代表在比特幣挖礦中投入了多少計算能力。如果網路的哈希率增加,比特幣協議將自動調整挖礦難度,以保持挖掘一個區塊所需的平均時間接近10分鍾。相反,如果幾個礦工停止挖礦,導致哈希率大幅下降,挖礦難度將會調整,從而使挖礦)變得更容易,直到區塊的平均時間再次回到10分鍾###。

值得強調的是,礦工不需要找到碰撞,因爲可以生成多個哈希作爲有效輸出###,以一定數量的零(開頭。因此,對於特定的區塊,可能有多個解決方案,礦工只需要找到其中之一,具體取決於挖礦難度設定的閾值。

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

最終思考

毫無疑問,哈希函數是計算機科學中的基本工具,特別是在處理大量數據時。與密碼學結合時,哈希算法變得多功能,並以各種方式提供安全性和身分驗證。因此,密碼學哈希函數對幾乎所有加密貨幣網路都是至關重要的,理解其屬性和工作機制無疑對任何對區塊鏈技術感興趣的人都是有幫助的。

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