什麼是Sha-256?哈希算法


SHA-256 或Secure Hash Algorithm 256 是一種去中心化算法,用於將任意長度的文本轉換為固定長度的256 位(32 字節)文本。

SHA-256 最初於2001 年發布,由美國國家安全局(NSA) 開發。

該算法通常用於網站SSL 證書和電子郵件客戶端的DKIM 消息簽名標準。

SHA-256 是一種相當流行的哈希函數,用於比特幣加密貨幣。它通過加密貨幣開始於2009 年推出第一個,後來被大量區塊鏈項目採用,包括作為原始比特幣代碼分叉的其他貨幣。

在市值最高的3 種使用SHA-256 的加密貨幣中,我們發現了比特幣、比特幣現金和比特幣中本聰的願景。該算法總共獲得了超過10 億美元的資金。

在本文中,我們將探討它是如何工作的以及它為什麼在比特幣中實現。

SHA-256 如何工作?

SHA-256 算法與其他散列函數一樣,接受輸入並產生具有固定長度的輸出(我們通常將其稱為散列)。

不管輸入是單個單詞、一個完整的句子還是一本書,這些類型的算法的輸出總是相同的。

特別是,在這種情況下,它將是256 位,即32 個字節並顯示為64 個字母數字字符。此外,所有輸出都是隨機的,並且不提供有關使它們栩栩如生的輸入的任何信息。

SHA-256 的另一個重要特性是它是確定性的,這意味著它總是為相同的輸入產生相同的輸出,並且它是一個單街函數。無法通過逆向工程從輸出中獲取輸入。

最後,SHA-256 的計算效率很高,任何計算機每秒都可以執行數百或數千次操作。

對於加密貨幣,SHA-256 算法很重要,因為它是比特幣挖礦以及其他使用工作量證明機制的加密貨幣的組成部分。

因此,它對世界也很重要,因為它確保了第一種加密貨幣和當今市值最高的加密貨幣。

允許工作證明

SHA-256 是第一個用於通過稱為工作量證明的共識機制驗證區塊鏈上交易的挖礦算法。

然而,比特幣並不是第一個使用工作量證明的系統。 HashCash 是一種創建於1997 年的算法,被廣泛認為是第一個實現它的算法。

更重要的是,中本聰在他的白皮書中引用了HashCash 作為比特幣的影響:

要實現點對點時間戳服務器,我們需要使用類似於Adam Back 的Hashcash 的工作量證明系統

中本聰

從基本意義上講,SHA 256 哈希支持使用工作量證明的網絡,其中計算機競爭解決複雜的數學問題。

當計算機找到解決方案時,它會將其傳輸到端到端網絡上的其餘計算機。

這向試圖解決同一問題的其他機器證明了它的工作,因為網絡上的每台計算機都獨立驗證解決方案。

如果解決方案正確,找到它的礦工將獲得獎勵。接下來,新的問題出現了,競爭又開始了。

如果你想更多地了解這一切是如何運作的,我建議你閱讀關於比特幣挖礦的文章。

誰發明的?

SHA-256 不是SHA 系列中唯一的算法。它實際上只是美國國家標準與技術研究院(NIST) 作為美國聯邦信息處理標準(FIPS) 發布的一類安全去中心化算法的變體。

讓我們看看它們是如何隨著時間演變的

SHA-0 和SHA-1

SHA-0 是160 位哈希函數,於1993 年首次發布,名稱為“SHA”。目前,它被稱為SHA-0,因為後來開發了更多的迭代。

由於未公開的“重大錯誤”,SHA-0 在發布後不久被撤回。

作為SHA-0 的替代品而開發的SHA-1 是1995 年首次發布的160 位哈希函數。它與1992 年首次發布的MD5 哈希函數非常相似。

SHA-1 由國家安全局(NSA) 設計,作為數字簽名算法的一部分。

自2005 年以來,不再建議將SHA-1 用於加密貨幣用途,以防止擁有大量計算能力的人。

在當時,SHA-1 被廣泛用於SSL 證書,但由於安全缺陷,現在已不再如此。

比如微軟在2016年底就停止接受SHA-1證書,sha1還是sha256真的沒有爭議。後者顯然是最安全的算法。

SHA-2

SHA-2 由兩個具有不同塊大小的哈希函數組成。

SHA-256 於2001 年首次發布,產生32 字節的結果。 SHA-512 於2004 年首次發布,產生64 字節的輸出。 SHA-224、SHA-384、SHA-512/224 和SHA-512/256 是這兩個標準的截斷版本。

與SHA-1 一樣,所有SHA-2 哈希函數都是由NSA 開發的。整個SHA-2 系列已根據美國專利6829355 獲得專利。

雖然我們知道誰發明了SHA-256,但我們不知道誰發明了比特幣。 SHA-2 專利是在免版稅許可下發布的,可供中本聰這樣的人使用。

SHA-3

SHA-3 系列,以前稱為Keccak,由四個加密貨幣哈希函數組成:SHA3-224、SHA3-256、SHA3-384 和SHA3-512,以及兩個可擴展輸出函數(XOF),名為SHAKE128 和SHAKE256。

可擴展輸出函數與哈希函數不同,但它們的使用方式相似。

SHA-3 設計是從64 種哈希算法的全球公開競賽中選出的,並於2015 年首次發布。

為什麼比特幣使用SHA-256?

正如我們之前看到的,比特幣使用SHA-256 算法作為加密貨幣挖礦的工作量證明算法。

SHA-256 還與另一個稱為RIPEMD-160 的加密貨幣哈希函數結合使用,作為“雙重哈希”的一部分,這是從公鑰創建比特幣地址過程中的一個步驟。

中本聰在2010 年6 月的評測中回答了這個問題:

SHA-256 非常強大。這不像從MD5 到SHA1 的逐漸過渡。如果SHA-256 徹底崩盤,我認為我們可以在問題開始之前就誠實的區塊鍊是什麼達成一致,修復它,然後使用新的哈希函數繼續前進。

中本聰

比特幣和SHA-256

比特幣自2009 年推出以來一直使用SHA-256。這導致隨著時間的推移出現了新的、更強大的挖礦設備。

這些用於該任務的專門硬件的新團隊被稱為ASIC。這在社區中引起了很大的爭論,是否應該採取措施來增加對這些的抵抗力。

一些人認為,限制使用這些將防止出現礦場壟斷和BTC 可能的中心化。

對此,開發人員已經討論過解決方案,例如,基本上包括切換到不同的哈希函數或將共識算法更改為權益證明算法。

儘管如此,沒有進行重大更改,網絡繼續使用SHA-256。

這可能是因為大多數人優先考慮網絡安全而不是對ASIC 礦工的抵抗。此外,51% 的攻擊對比特幣來說從來都不是問題。

目前這樣做的電力成本是每小時幾百萬,這個數字不包括對挖礦設備的投資以進行這種攻擊,這將進一步提高這個數字。

一些從比特幣源代碼中出現的區塊鏈試圖改進SHA-256 的設計。

一個例子是比特幣鑽石(BCD),它於2017 年11 月推出。創建者是兩個決定離開網絡的比特幣礦工。

開發人員將SHA-256 放在一邊使用X13 哈希算法,正是因為它對ASIC 挖礦具有抵抗力。

SHA-256 限制

比特幣於2009 年推出時,SHA-256 是最安全的哈希算法。但從那以後,事情發生了變化,遇到了危險和限制。

以下是一些最重要的。

1. 礦機專用集成電路

必須理解的是,SHA-256 算法從未打算抵抗具有大量計算能力的機器。因此,在比特幣問世後很久就出現了關於ASIC 抵抗的討論。

據報導,比特幣挖礦硬件的演進可以分為6代。

當它於2019 年發佈時,只需要CPU 來挖比特幣。這為網絡礦工創造了一個公平的系統。

隨著時間的流逝和新一代挖礦設備的出現,某些東西會發生動態變化。

每一代都能夠比其前輩產生越來越多的散列能力。

首先是2010 年的GPU,然後是2011 年的FPGA,最後是2012-2013 年的ASIC。隨著時間的推移,後者使CPU 和GPU 幾乎無法用於挖礦BTC。

ASIC 在當今的挖礦業中佔據主導地位,並且他們不斷提供新版本,進一步強調了所有這些。我們可以觀察到比特幣網絡的哈希率是如何呈指數增長的。

比特幣網絡的總哈希率

2. 挖礦的盈利能力

目前,要通過SHA-256 挖礦獲利,必須擁有ASIC 設備。然而,並不是每個人都能達到相同的結果。

例如,比特大陸的螞蟻礦機S19 Pro 產生了大量的算力,與螞蟻礦機T15 等其他較舊的替代品相比,為其所有者帶來了巨大的利益。

但是,還必須說,第一個的成本要高出3 倍。

這向我們表明,這個行業競爭非常激烈,隨著時間的推移,需要投入大量資金才能跟上時代的步伐。

結果是,只有財力雄厚的人或公司才能在這個領域保持盈利和競爭力,取代更世俗的礦工,給他們打電話。

3. SHA-3 和其他哈希算法的出現

SHA-2 系列並不是一長串算法中的最後一個。目前,SHA-3(以前稱為Keccak)被認為比SHA-256 更快、更安全。

該算法被一些加密貨幣使用,例如Nexus (NXS)、SmartCash (SMART) 等。

與SHA-256 一樣,SHA-3 也符合ASIC,因此很難用CPU 和GPU 挖礦SHA-3 加密貨幣。

許多區塊鏈項目都將所有安全去中心化算法(尤其是比特幣的SHA-256 實現)缺乏對ASIC 的抵抗力作為開發其他去中心化算法(如Scrypt、Equihash、CryptoNight 和Lyra2REv2)的主要原因。

資訊來源:由0x資訊編譯自CRIPTOTARIO。版權歸作者Criptotario所有,未經許可,不得轉載

Total
0
Shares
Related Posts