挖礦演算法旨在確保加密貨幣網路的安全。
使用的挖礦演算法類型可以顯著影響中心化。
挖礦演算法決定哪種類型的硬體最有效。
挖礦演算法包括調整挖礦難度的機制。
挖礦演算法的選擇直接影響能耗。
挖礦演算法是加密貨幣礦工用來驗證交易、在網路上註冊新區塊以及發行貨幣的一組規則和程序。這些演算法是比特幣共識系統和其他基於工作量證明(PoW) 的網路的基石,它們依賴競爭的運算能力來處理操作並確保其安全性。同樣,挖礦演算法會自動調整比特幣等網路的挖礦難度。
挖礦演算法和雜湊函數有什麼區別?
儘管這些概念經常被混淆或統一,但挖礦演算法和哈希函數之間存在關鍵區別。我們可以說,挖礦演算法涵蓋了哈希函數,它允許比特幣中的所有資訊被加密貨幣,並將其與其他功能結合起來,例如共識、工作量證明、難度調整,甚至是礦工因其活動而獲得的獎勵。挖礦演算法是加密貨幣網路所固有的,而哈希函數是可以存在於比特幣等網路中的元素,也可以存在於與貨幣無關的其他類型的密碼系統中。
挖礦演算法的作用是什麼?
在加密貨幣網路中,挖礦演算法實現了各種功能,從定義用於挖礦共識的哈希值,到作為交易驗證的基本要素,甚至負責調整礦工找到隨機數的難度或允許創建新區塊的數字。
接下來我們來看看決定挖礦演算法的一些因素:
交易驗證:
由礦工操作的挖礦演算法負責驗證加密貨幣網路中的所有交易是否合法。
從這個意義上說,他們檢查每筆交易的數位簽名,以確認發送者擁有必要的資金,並且他們不會嘗試花費兩次相同的金額。也就是說,它正在進行雙花攻擊。
區塊創建
這些演算法負責組織區塊中的交易,確保它們的順序正確並且它們之間不存在衝突。他們根據自己的程式設計來做到這一點,避免了負責根據佣金或規模選擇最適合他們的交易的礦工或礦池的額外工作。
有一些瀏覽器,例如blockchain.com,可以讓您監控產生的最新區塊。資料來源:Blockchain.com
同樣,每個區塊都有一個由挖礦演算法產生的唯一哈希值。該標識哈希包含區塊內容訊息,例如交易和前一個區塊的哈希。這就是創建互鎖區塊鏈的原因,也稱為區塊鏈。
工作量證明(PoW)和共識:
在加密貨幣網路中,各方之間的共識是專案生存的支柱。網路成員預設遵守特定的貨幣政策、用於資訊加密的獨特雜湊函數,甚至節點/礦工處理交易必須執行的一系列規則和程序。
在每個組件中都存在挖礦演算法。例如,正是有了它,比特幣挖礦才能進行。一方面,使用者對SHA-256 演算法進行雜湊處理,以便計算一系列回應或隨機數(隨機數),從而可以註冊新區塊。
什麼是哈希?
雜湊是計算和密碼學中的一個過程,它將任意大小的資料轉換為固定長度的字串,稱為雜湊或雜湊值。此過程在各種安全和資料管理應用程式中至關重要。
反過來,相同的SHA-256 雜湊函數可以識別新的交易區塊、雜湊中使用的資訊以及新區塊的註冊。好像這還不夠,SHA-256 負責管理挖礦難度,這些資訊對於礦工在嘗試計算隨機數或中獎號碼以贏得獎勵時也很關鍵。
共識演算法和挖礦演算法有什麼差別?
共識演算法和挖礦演算法的差異主要在於它們的角色。共識演算法專注於網路協議,從節點共享的資訊到貨幣政策和使交易驗證成為可能的程序。從這個意義上說,存在共識演算法,例如比特幣的共識演算法,即工作量證明(PoW),以及以太坊等其他共識演算法,即權益證明(PoS),決定了驗證區塊的工作方式。的交易。另一方面,挖礦演算法僅存在於進行挖礦的網路中,即共識演算法是工作量證明的網路中。
難度設定:
挖礦演算法的另一個功能是挖礦難度。這是一個自動調整的參數,用於控制新區塊的生成速度,防止所有加密貨幣流通在幾個月或幾年內發行,或花費太長時間來挖礦新區塊。
這是透過一系列步驟完成的。首先,演算法測量挖礦最後2,016 個區塊所需的時間(如果每個區塊每10 分鐘挖礦一次,則大約為兩週)。然後將該時間與預期時間(2016 個區塊為20160 分鐘,每個區塊10 分鐘)進行比較。
如果區塊開採得更快,難度就會增加;如果較慢,則應減少。計算新的難度以調整挖礦時間以達到目標,然後在所有節點上更新(每兩週)以迫使礦工重新計算其操作。
這樣,如果難度增加,將需要更多的計算能力來找到啟動添加新區塊的可能性的隨機數。這意味著在這些條件下能夠競爭的硬體能力較弱的礦工較少。
然而,當難度降低時,礦工更容易解決密碼難題,如果硬體和能源方面的進入成本較低,則可以吸引更多人參與挖礦。
挖礦獎勵:
使用挖礦演算法的最佳結果是獲得獎勵。當礦工處理這個加密貨幣工具以及允許創建新區塊的資訊時,他們將得到多個隨機數字作為結果。直到他們達到適當的隨機數字(與難度相同)時,獲勝的礦工才能註冊該區塊並因此獲得獎勵。
就比特幣而言,獎勵被鎖定在名為Coinbase 的交易中的新區塊中。由於一種稱為減半的機制,獎勵每四年變化一次,這會減少礦工從每個開採區塊獲得的BTC 數量。目前獎勵為3,125 BTC。
最常見的挖礦演算法有哪些?
市面上有多少工作量證明(PoW) 網路就有多少種挖礦演算法。然而,有些加密貨幣因其使用它們的加密的受歡迎程度或其特殊性而脫穎而出。
接下來我們會提到生態系中使用最多的:
SHA-256(安全哈希演算法256 位元):由比特幣、比特幣現金、比特幣SV 和PeerCoin 使用。
SHA-256 雜湊函數有助於將可讀文字轉換為字母數字序列。資料來源:西格瑪計算。
Scrypt:Litecoin、Dogecoin、Monacoin、Syscoin 和Viacoin 使用。
Scrypt 是抗ASIC 挖礦演算法。來源:Boot.dev 博客
Ethash (Dagger-Hashimoto):以太坊在過渡到權益證明之前由以太坊經典、MOAC 和UBQ 使用。
Ethash 的雜湊函數是Keccak,更廣為人知的名稱是SHA-3。資料來源:Prohashing。
Equihash:由Zcash 和比特幣黃金使用。
它是專門針對GPU的演算法。資料來源:Prohashing。
X11:由Dash、Memetic 和Marscoin 加密貨幣使用。
X11 的特點之一是它有11 個雜湊函數。來源:Github。
RandomX:由門羅幣使用。
Random X 是一種無法使用ASIC 的演算法。資料來源:喬賽亞‧斯帕克曼。
什麼是SHA-256?
SHA-256(安全哈希演算法256位元)是比特幣使用的挖礦演算法。它是由美國國家安全局(NSA) 設計並由美國國家標準與技術研究所(NIST) 於2001 年發布的加密貨幣雜湊函數,作為SHA(安全雜湊)演算法系列的一部分。
什麼是SHA 演算法系列?
安全雜湊演算法(SHA) 演算法系列是由美國國家標準與技術研究所(NIST) 與國家安全局(NSA) 合作開發的一系列加密貨幣雜湊函數。這些函數旨在從任意大小的輸入資料產生固定長度的雜湊值。最知名的SHA 演算法是SHA-1、SHA-256 和SHA-384。
SHA-256 接受任意大小的資料輸入並產生固定的256 位元(32 位元組)雜湊值。該哈希值是一個唯一的字串,表示原始資料的數字摘要。也就是說,無論輸入比特幣的資訊是什麼(從一個單字到一首詩的短語或整篇文章),SHA-256 都會將其隨機轉換為長度始終相同的字母數字表示形式。
比特幣根據SHA-256 哈希進行加密。資料來源:托比·奇蒂。
SHA-256 的另一個獨特特徵是它是一種單向雜湊函數。這意味著從計算上來說,逆轉該過程以從生成的雜湊中獲取原始輸入是不可行的,這提供了針對惡意攻擊的良好隱私和安全性。
至於其最顯著的優點,SHA-256 具有很強的抗碰撞能力。這意味著什麼?嗯,兩個不同的輸入不太可能產生相同的雜湊值。這是比特幣安全性的關鍵屬性,因為它確保如果區塊中資料的任何部分(例如交易)被修改,生成的哈希值將完全不同,從而使任何更改顯而易見。
同樣,在比特幣中,每個區塊都包含前一個區塊的哈希值,從而創建一個哈希鏈,如果更改,將使所有後續哈希值無效,幾乎不可能在網路成員意識到的情況下修改交易歷史記錄。
什麼是Scrypt演算法?
Scrypt 是一種加密貨幣雜湊演算法,旨在更能抵抗專用設備(更廣為人知的ASIC(專用積體電路))的挖礦。萊特幣和狗狗幣等加密貨幣都使用這種方法,它們擁有穩定的礦工社區。
誰創建了Scrypt,為什麼?
關於這種挖礦演算法的一個令人好奇的事實是,它是由加拿大裔電腦科學家和電腦安全領域的科學家Colin Percival 提出的。 Scrypt 第一次被談論是在2009 年,提出它是一種能夠提高密碼儲存系統和加密貨幣挖礦安全性的演算法。
Scrypt 的設計要求計算硬體具有大量記憶體和運算能力,由於設計具有足夠記憶體的高效硬體的成本和複雜性,使其對於創建專用ASIC 的吸引力降低。
開發此功能的目的是讓用戶更容易挖礦這些加密貨幣,因為使用CPU 或GPU 等標準硬體進行挖礦會更有利可圖。
在密碼儲存的情況下,Scrypt 大大減慢了哈希生成過程,使得暴力攻擊的計算成本更高且不太可行,因為每次哈希嘗試不僅需要CPU 時間,還需要記憶體存取。
什麼是暴力攻擊?
暴力攻擊是一種網路攻擊技術,透過系統地測試所有可能的組合直到找到正確的組合來嘗試猜測密碼或加密貨幣金鑰。該方法基於計算能力和時間,測試每種可能性,直到系統被存取或受保護的資料被解密。
Ethash挖礦演算法是什麼?
Ethash 是以太坊在以太坊2.0 過渡到權益證明(PoS) 系統之前使用的挖礦演算法。如今,以太坊經典是最大的加密貨幣,仍然使用Ethash 作為挖礦演算法,繼承了以太坊曾經擁有的大部分挖礦社群。
要了解Ethash 的工作原理,您必須了解兩個概念。第一個是Dagger,這是由Stefan Dziembowski 教授開發的雜湊提案。此雜湊值依賴於對大型資料結構的隨機訪問,該資料結構被分為多個紀元,稱為DAG。
什麼是DAG?
在Ethash 的上下文中,DAG 指的是有向無環圖。這是在以太坊挖礦的哈希過程中產生和使用的大型資料結構。該圖是「非循環的」;也就是說,它是與網路起點沒有連結的資訊。這與SHA-256 有很大區別,SHA-256 旨在產生識別網路區塊的雜湊鏈。
該DAG 是根據區塊資訊創建的,用於礦工根據需要多次處理哈希,直到獲得獎勵。然而,DAG 並不孤單,Ethash 挖礦演算法還有另一個部分使其運作成為可能。我們正在談論橋本哈希。
Hashimoto 是計算機科學家Thaddeus Dryja 的一項提案,他提出了一種與資料矩陣(在本例中為Dagger DAG)配合使用的雜湊方法,以進行多輪哈希處理。這些不同的哈希迭代是Ethash 的核心,因為挖礦演算法將被處理多次,直到滿足網路設定的難度標準。
所有這些特性加在一起,再加上對大記憶體裝置的需求以及雜湊函數的持續處理,使得Ethash 成為對ASIC 挖礦具有高度抵抗力的演算法。最重要的是,由於製造和購買具有這些特性的設備的成本很高。
什麼是Equihash 演算法?
Equihash 是Zcash 等加密貨幣所使用的挖礦演算法。它的設計目的是為了有效率地使用GPU 和CPU 等計算設備的記憶體。同樣,它的設計目的是抵制ASIC 挖礦並鼓勵更加去中心化的競爭,儘管多年來事實證明ASIC 確實在這個市場上佔有一席之地。
Equihash 作為挖礦演算法的主要特點是它使用廣義圖問題解決技術。這意味著什麼?礦工必須找到滿足某些哈希標準的獲勝答案,這些標準主要關注哈希計算機的記憶體容量。
對於每次挖礦區塊的嘗試,Equihash 會根據區塊的內容和某些演算法參數產生有向無環圖(DAG) 或類似結構。該圖不像Ethash 中使用的圖那麼大,但它仍然需要大量記憶體用於臨時儲存。
在雜湊過程中,Equihash 需要隨機存取其產生的部分圖或資料結構。這意味著該演算法不僅計算量大,而且還需要以不可預測的模式讀寫內存,這對於內存豐富的硬體來說是理想的選擇,而不是ASIC。
同樣,該演算法的一個特點是它具有可由開發人員修改的參數。這些參數是N,它決定了圖的大小,從而決定了所需的內存量; K 影響達到註冊區塊並釋放獎勵的響應的複雜性。透過修改這些元素中的任何一個,像Zcash 這樣的挖礦網路會變得或多或少變得困難。
什麼是RandomX 演算法?
RandomX 是一種挖礦演算法,專門設計用於提高對ASIC 挖礦的抵抗力並提高CPU 效率。 Monero (XMR) 於2019 年11 月採用了它,作為其更新之一的一部分,他們試圖使挖礦變得更容易訪問和去中心化。
ASIC 是否中心化挖礦?
是的,ASIC 具有中心化挖礦的潛力。這些電腦專門設計用於執行任務,在這種情況下,比CPU 或GPU 更有效地挖礦特定的加密貨幣。這使他們在算力方面具有顯著優勢。然而,在使用ASIC(例如比特幣)的網路中,礦池之間存在著巨大的競爭,需要在參與者之間保持一定的平衡。
RandomX 的工作原理是為每個要開採的區塊產生隨機執行程式。這些程式本質上是在CPU 上執行的指令序列,並且由於它們是隨機的,因此ASIC 很難針對所有可能的指令序列進行最佳化。
為此,挖礦演算法使用處理它的計算設備的內存,並根據前一個區塊的哈希值填充隨機資料。透過這種方式,內存在整個雜湊過程中動態使用,為專用硬體的最佳化增加了另一層阻力。
如何為新的加密貨幣選擇演算法?
為新的加密貨幣選擇演算法是一個複雜的過程,涉及多種技術、經濟、安全和哲學考慮。
讓我們探討一下開發人員在選擇挖礦演算法之前要考慮的一些要素:
去中心化:如果目標是維持盡可能去中心化的挖礦或驗證網絡,則將尋求能夠抵抗ASIC(例如Scrypt、Ethash、Equihash 或RandomX)或有利於使用常見硬體(例如CPU)的演算法和GPU 。 安全性:演算法的安全性至關重要。具有長期使用歷史且沒有已知漏洞的演算法將是首選,例如SHA-256,它對碰撞攻擊具有很強的抵抗力,並且在暴力攻擊方面沒有問題。 速度和可擴展性:對於尋求快速支付解決方案的加密貨幣,需要一種允許短區塊時間或可擴展性機制的演算法。從這個意義上說,一些加密貨幣網路甚至透過股權證明(PoS)模型犧牲一些安全性和去中心化,以允許更長的處理時間。 創新:如果開發團隊的目標是呈現一個高度新穎的網絡,他們可以嘗試其他加密貨幣尚未使用或最近使用的挖礦甚至共識演算法。這將使他們能夠為其網路的技術工具提供額外的價值,從長遠來看,這可以轉化為投資者欣賞的更大價值。
資訊來源:0x資訊編譯自CRYPTONOTICIAS,版權歸作者所有,未經許可,不得轉載
0X簡體中文版:挖礦演算法是什麼以及SHA-256 的工作原理