關鍵要點
哈希是將任何輸入轉換為固定大小輸出的過程,使用數學函數,這對於加密貨幣和區塊鏈技術至關重要。
密碼學哈希函數必須滿足三個核心屬性:碰撞抗性、前像抗性和第二前像抗性。
比特幣使用SHA-256進行挖礦、交易驗證和地址生成,而以太坊使用Keccak-256進行狀態管理和智能合約操作。
現代哈希函數如SHA-256和SHA-3對已知量子計算威脅保持安全,只需更大的輸出大小,而不是完全新的算法。
介紹
哈希指的是從變量大小的輸入生成固定大小輸出的過程。這是通過稱為哈希函數的數學公式實現的,並作為哈希算法實施。
雖然並非所有哈希函數都涉及密碼學,但密碼學哈希函數是區塊鏈技術和現代網絡安全的核心。正因為如此,區塊鏈和其他分佈式系統能夠實現高水平的數據完整性和安全性。理解哈希的工作原理對於任何對加密貨幣運作感興趣的人都是有益的。
哈希函數如何工作
不同的哈希函數產生不同大小的輸出,但每個算法始終生成固定長度的輸出,無論輸入大小如何。例如,SHA-256始終產生256位(64字符十六進制)輸出,而SHA-1生成160位的摘要。
重要的是要注意,哈希與加密不同。加密是一個雙向過程,數據可以被加密,然後使用密鑰解密回原始形式。哈希是一個單向函數:您可以從輸入生成哈希,但無法實際逆轉該過程以僅從哈希中恢復原始輸入。
為了舉例,將"Binance"和"binance"通過SHA-256運行會產生完全不同的輸出:
"Binance"產生:f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191
"binance"產生:59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2
一個小的變化(首字母的大小寫)導致完全不同的哈希值。這一特性被稱為雪崩效應,對安全性至關重要。此外,無論這些詞經過算法處理多少次,兩個輸出始終保持不變,這顯示了哈希函數的確定性特徵。
SHA算法系列(安全哈希算法)包括幾代。SHA-0和SHA-1不再被認為是安全的,因為已經發現了碰撞。目前,只有SHA-2系列(包括SHA-256和SHA-512)和SHA-3系列(基於Keccak算法)被認為是密碼學上安全的。
密碼學哈希函數
密碼學哈希函數是一種滿足額外安全要求的哈希函數,使其適合用於數位簽名、數據完整性驗證和區塊鏈共識等應用。打破這樣的函數需要大量的暴力嘗試。
為了使密碼學哈希函數被認為是安全的,它必須滿足三個關鍵屬性:碰撞抗性、前像抗性和第二前像抗性。
碰撞抗性
當兩個不同的輸入產生相同的哈希輸出時,就會發生碰撞。當找到這樣的碰撞在計算上不可行時,哈希函數被認為是碰撞抗性的,儘管從數學上講碰撞必然存在(因為可能輸入的集合是無限的,而輸出是固定長度的)。
在實踐中,碰撞抗性意味著找到兩個產生相同哈希的輸入需要數百萬年的計算。SHA-256需要約2的128次運算來找到碰撞(生日界限),遠超過當前的計算能力。
前像抗性
前像抗性意味著,給定一個哈希輸出,尋找任何產生該輸出的輸入在計算上是不可行的。這使哈希函數成為"單向的"。看到哈希的攻擊者無法確定是什麼數據產生了它。
這一特性對於像密碼存儲這樣的應用至關重要:一個服務可以存儲密碼的哈希,而不是密碼本身,即使哈希數據庫被曝光,原始密碼仍然保持保護。
第二前像抗性
第二前像抗性意味著,給定一個特定的輸入及其哈希,尋找另一個產生相同哈希的不同輸入是不可行的。雖然與碰撞抗性有關,但這一特性針對的是更具針對性的攻擊情境。
任何碰撞抗性的哈希函數也都是第二前像抗性的,因為找到第二前像就相當於找到碰撞。然而,一個函數可以是前像抗性的而不具備碰撞抗性。
區塊鏈中的哈希
哈希函數在區塊鏈系統中被廣泛使用。在比特幣中,SHA-256通過工作量證明來保護網絡,礦工必須找到一個哈希輸出低於特定目標值。這一過程需要巨大的計算努力來完成,但驗證卻是微不足道的,形成了不對稱的安全模型。
哈希也用來構建梅克爾樹:這是一種數據結構,其中交易成對哈希,直到生成一個根哈希,總結整個交易區塊。這允許輕量級客戶端在不下載所有交易數據的情況下驗證特定交易是否包含在區塊中。
比特幣還使用哈希來生成地址。公鑰通過SHA-256處理,然後是RIPEMD-160,生成更短、更易於管理的地址格式。這種方法增加了一層額外的安全性,並減少了交易所需的數據大小。
以太坊使用一種變體稱為Keccak-256(與SHA-3標準密切相關)來進行狀態管理、智能合約函數選擇、事件日誌和地址推導。每個區塊鏈平台根據其特定的安全模型和性能要求選擇哈希函數。
挖礦與哈希率
在比特幣挖礦中,核心挑戰是找到一個輸入(通過在區塊頭中變化隨機數值)產生低於目標閾值的SHA-256哈希。這個目標每2016個區塊調整一次,以保持平均區塊時間為10分鐘,不管網絡擁有多少計算能力。這就是區塊鏈安全的原因所在。
哈希率代表了致力於挖礦的總計算能力。截至2026年初,比特幣網絡的運行速度約為每秒800到900Exahashes(EH/s),這意味著礦工們每秒共同執行數百萬億的哈希計算。
礦工不需要找到碰撞。他們只需找到任何產生低於當前難度目標的哈希的輸入。由於存在許多可能的有效輸出,這項任務關乎計算吞吐量,而非利用SHA-256本身的弱點。
因為挖礦的計算成本昂貴,礦工有強烈的經濟激勵遵守規則,而不是試圖攻擊網絡。參與的礦工越多,區塊鏈就越安全。
後量子時代的哈希
一個共同的擔憂是量子計算機是否能打破區塊鏈中使用的哈希函數。簡而言之:哈希函數對量子攻擊的抵抗力遠高於公鑰密碼學。
格羅弗算法,對哈希函數最相關的量子攻擊,僅提供二次加速。這意味著256位的哈希函數對量子對手提供約128位的安全性,這仍然被認為是計算上不可行的。相比之下,用於區塊鏈的公鑰算法(ECDSA,EdDSA)在足夠強大的量子計算機上完全被肖爾算法打破。
在2024年8月,NIST發布了FIPS 205 (SLH-DSA),這是一種基於SPHINCS+的哈希數位簽名標準。該方案完全基於哈希函數的強度,代表著對SHA-2和SHA-3在後量子世界中仍然可信的強大機構支持。
截至2025年,NIST、歐盟及其他標準機構的共識明確:不需要新的"後量子哈希"算法。SHA-256和SHA-3的256位或更大輸出預計在可預見的將來仍將保持安全。迫切的後量子遷移工作集中在取代公鑰密碼學,而不是哈希函數。
密碼哈希與密鑰推導
儘管SHA-256和SHA-3是優秀的通用密碼學哈希函數,但它們並不適合用於密碼存儲。原因在於速度:這些函數設計為快速,這意味著攻擊者可以使用GPU或專用硬件每秒測試數十億個密碼猜測。
專用的密碼哈希函數通過有意地變慢和佔用內存來解決這一問題。目前推薦的標準是Argon2id,它在2015年贏得了密碼哈希競賽。其他廣泛使用的選擇包括bcrypt和scrypt。
這些函數還為每個密碼使用獨特的隨機"鹽",防止攻擊者使用預先計算的查找表(彩虹表)。計算成本、內存要求和加鹽的組合使得即使在哈希數據庫被破壞的情況下,暴力破解攻擊在經濟上也變得不切實際。
常見問題
哈希和加密之間有什麼區別?
哈希是一個單向函數,產生固定大小的輸出,無法被逆轉。加密是一個雙向過程,數據通過密鑰轉換,可以使用相應的密鑰解密回原來的形式。哈希用於完整性驗證和身份驗證,而加密則用於保密性。
兩個不同的輸入可以產生相同的哈希嗎?
是的,這在理論上是可能的,稱為碰撞。然而,對於像SHA-256這樣的安全哈希函數,找到這樣的碰撞需要約2的128次運算(生日界限),這在當前或可預見的技術下是計算上不可行的。已經實際證明存在碰撞的哈希函數,如MD5和SHA-1,被認為是破損的,應當不再用於安全目的。
為什麼比特幣特別使用SHA-256?
比特幣選擇SHA-256是因為它提供強大的碰撞抗性,已被密碼學社區充分分析,生成的輸出適合用於工作量證明的難度調整,並且在2009年比特幣推出時已廣泛部署。它仍然保持安全,沒有已知的實際攻擊。
量子計算機能打破區塊鏈哈希嗎?
量子計算機對哈希函數的風險最小。格羅弗算法可以加速暴力哈希搜索,但僅以平方根因子提速:256位的哈希仍然提供128位的量子安全性,這被認為是安全的。對區塊鏈的實際量子威脅是對公鑰簽名方案(ECDSA),而不是哈希函數。
以太坊使用什麼哈希函數?
以太坊使用Keccak-256,這與NIST SHA-3標準密切相關,但使用略有不同的填充。它用於地址推導、狀態樹鍵生成、智能合約函數選擇和事件主題哈希。與SHA-256一樣,Keccak-256沒有已知的實際攻擊,被認為是密碼學上安全的。
結語
哈希函數是現代計算機科學和網絡安全的基本組件。結合碰撞抗性和前像抗性等密碼學特性,它們實現了使區塊鏈網絡成為可能的安全保證。
從比特幣挖礦到以太坊智能合約再到後量子簽名方案,哈希仍然是一項基礎技術。理解哈希函數的工作原理、其核心安全性特徵及其現實應用,幫助任何對區塊鏈技術感興趣的人掌握為什麼這些系統被認為是安全的。
進一步閱讀
什麼是區塊鏈共識算法?
什麼是比特幣及其運作方式?
工作量證明(PoW)與權益證明(PoS)
一般安全原則
比特幣腳本介紹
免責聲明:這些內容僅以"原樣"提供,供一般資訊和教育目的使用,未作任何形式的陳述或保證。不得視為金融、法律或其他專業建議,也不旨在推薦任何特定產品或服務。您應該尋求適當專業顧問的建議。當內容由第三方貢獻者提供時,請注意這些表達的觀點屬於該第三方貢獻者,並不一定反映幣安學院的觀點。數位資產價格可能會波動。您的投資價值可能會上升或下降,您可能無法收回投資金額。您對自己的投資決策負全責,幣安學院不對您可能遭受的任何損失承擔責任。有關更多信息,請參見我們的使用條款、風險警告和幣安學院條款。
