哈希是什麼?

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

雖然並非所有哈希函數都涉及加密,但所謂的加密哈希函數在加密世界中是至關重要的。正是由於它們,區塊鏈和其他分布式系統實現了顯著的數據完整性和安全性,這一點我個人認爲非常迷人。

常規哈希和加密哈希函數是確定性的。這意味着,只要輸入不變,算法將始終生成相同的輸出 (,也稱爲摘要或哈希 )。我覺得令人難以置信的是,像這樣復雜的東西居然可以如此可預測。

加密貨幣中的哈希算法被設計爲單向函數,這意味着在沒有巨大的計算資源的情況下,無法輕易地反轉它。 從輸入生成輸出相對簡單,但幾乎不可能做到相反。 通常,找到輸入的難度越大,算法被認爲就越安全。 相信我,這些算法中的一些幾乎是無法攻破的。

哈希函數是如何工作的?

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

爲了說明這一點,讓我們通過比特幣中使用的SHA-256算法執行單詞"Binance"和"binance" (。

SHA-256 輸入:幣安 輸出:f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191

入口:幣安 輸出:59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2

您看到一個小變化)首字母大寫(如何導致完全不同的哈希嗎?我對這種敏感性感到着迷。但是使用SHA-256,輸出總是會有固定的256位大小)64個字符(,無論輸入大小如何。

另一方面,如果我們通過 SHA-1 執行相同的輸入,我們得到:

SHA-1的 輸入:幣安 輸出:7f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1

入口:幣安 輸出:e58605c14a76ff98679322cca0eae7b3c4e08936

SHA代表安全哈希算法,指的是一組加密哈希函數,包括SHA-0、SHA-1、SHA-2和SHA-3。SHA-256屬於SHA-2組。目前,只有SHA-2和SHA-3被認爲是安全的,這讓我質疑爲什麼某些系統仍在使用較舊的算法。

他們爲什麼重要?

傳統的哈希函數有多種用途:數據庫搜索、大文件分析和數據管理。加密哈希函數廣泛用於計算機安全、消息認證和數字身份識別。在比特幣中,它們對於挖礦以及地址和密鑰的生成至關重要。

哈希的真正力量在於處理大量信息。你可以通過哈希函數處理一個巨大的文件,並使用其輸出快速驗證數據的準確性和完整性。這消除了存儲和“記住”大量信息的需要,這在其簡單性上令人稱奇。

哈希在區塊鏈中尤其有用。比特幣鏈有許多涉及哈希的操作,主要是在礦業中。幾乎所有的加密協議都依賴哈希將交易連結到區塊,並在它們之間創建加密連結,有效地形成一條區塊鏈。

加密哈希函數

一個實現加密技術的哈希函數可以定義爲加密哈希函數。破解這些函數需要無限的暴力測試。要“逆轉”一個加密哈希函數,某人需要通過反復試驗來猜測輸入,直到產生相應的輸出。然而,不同的輸入有可能產生完全相同的輸出,從而導致“碰撞”。

從技術上講,密碼學哈希函數必須遵循三個屬性才能被認爲是安全的:

  • 抗碰撞性:無法找到兩個不同的輸入產生相同的哈希
  • 對預影像的抵抗:無法 "反轉" 哈希函數
  • 對第二前像的抵抗:無法找到另一輸入與特定輸入發生碰撞

) 抗碰撞性

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

當哈希函數的碰撞概率低到需要數百萬年的計算才能找到碰撞時,它被認爲是抗碰撞的。SHA-0和SHA-1已經不再安全,因爲已經找到了碰撞。目前,SHA-2和SHA-3被認爲是抗碰撞的。

抵抗預圖

該屬性與單向函數的概念相關。哈希函數在預映像方面是抗性強的,當有人找到生成特定輸出的輸入的概率非常低時。

這項屬性對數據保護非常重要,因爲一個簡單的哈希可以證明消息的真實性,而無需透露信息。許多網路服務提供商存儲密碼的哈希,而不是明文密碼,我認爲每個人都應該這樣做。

第二預影抵抗

第二預映像攻擊發生在某人找到一個特定輸入時,該輸入會生成與另一個已知輸入相同的輸出。它涉及找到一個衝突,但通過尋找一個生成與另一個特定輸入相同哈希的輸入。

任何抗碰撞的哈希函數也對第二個預映像攻擊具有抗性。然而,仍然可以對抗碰撞的函數進行預映像攻擊。

挖礦

比特幣的挖礦涉及許多哈希操作:驗證餘額、關聯交易的輸入和輸出,以及在區塊內對交易進行哈希以形成梅克爾樹。但真正確保比特幣區塊鏈安全的是,礦工們必須進行無數次哈希操作以找到下一個區塊的有效解。

礦工在爲其候選區塊創建哈希值時,必須嘗試多個不同的輸入。只有在生成以某個數量的零開頭的哈希時,才能驗證其區塊。這個數量決定了挖礦的難度,並根據專用於網路的哈希率而變化。

哈希率代表投入在挖礦中的計算能力。如果增加,比特幣協議將自動調整難度,以保持平均挖礦時間在大約10分鍾。如果多個礦工停止挖礦,難度將降低。

礦工不需要找到碰撞,因爲有多個有效的哈希###以一定數量的零(開頭。對於特定的區塊,存在多個可能的解決方案,礦工只需要找到一個。

由於挖礦成本高昂,礦工沒有理由欺騙系統,因爲這會導致重大財務損失。區塊鏈上的礦工越多,網路就變得越強大。

毫無疑問,哈希函數是計算機科學中不可或缺的工具,尤其是在處理大量數據時。與密碼學結合使用,它們以多種方式提供安全性和身分驗證。它們對於幾乎所有的加密網路都是至關重要的,因此理解它們的屬性和機制對任何對區塊鏈感興趣的人來說都是有益的。

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