自比特幣誕生之初,社區就一直在爭論是否應對抗日益強大的挖礦硬件。
在比特幣的早期階段,挖礦是通過CPU(大多數計算機中的標準處理單元)完成的,這使得普通人可擁有參與比特幣挖礦的機會,因為這不需要使用專門的計算機硬件。
隨著時間的推移,一些礦工開始使用更強大的硬件,以便在競爭中取得優勢。
在第二階段,礦工們開始使用GPU(一種功能更強大的“圖形處理單元”,通常被用于游戲和3D渲染)進行挖礦。一般而言,GPU要比CPU貴一些,但普通人還是可以負擔得起的。
所謂ASIC代表“特定應用集成電路”,它們是針對特定哈希算法而進行優化的專用挖礦硬件。ASIC礦機被用于加密貨幣挖礦,且絕大多數只能用于這種應用。就效率而言,ASIC礦機明顯要比GPU要更加強大。
隨著ASIC礦業經濟形成,制造新ASIC設備的公司要比其它挖礦公司更具優勢,而且他們還控制著ASIC礦機供應。而制造一種新ASIC硬件線所需的大量前期投資,也減少了能夠參與這項業務的參與者。對于大型礦業公司來說,這存在著巨大的規模經濟,使得普通礦業公司更難參與競爭。
正因為如此,很多加密貨幣項目都試圖防范ASIC。值得注意的是,在比特大陸和其他礦業公司在2018年初宣布開發門羅幣(Monero)專用ASIC設備后,門羅幣開發者通過硬分叉改算法,以繼續保持門羅幣的“ASIC抗性”(目的是盡可能地分散挖礦)。從那時起,門羅幣有過幾次硬分叉嘗試,試圖抵抗ASIC設備的侵入,并抑制這類設備的發展。
同樣,第二大公鏈以太坊,其大部分歷史中也都是“抗ASIC”的(從1.0版本開始,以太坊的哈希算法Ethash就被設計為抗ASIC),然而,隨著時間的推移,ASIC設備制造商還是追上了腳步。
因此,以太坊社區中的很多人現在又開始為ProgPow算法的實現而爭論(ProgPow對Ethash進行了一些修訂,目的是讓以太坊再次具有抵抗ASIC的能力)。
盡管這些項目都在努力保持對ASIC的抵制,但很難始終保持領先。
由于在抗ASIC的區塊鏈上使用ASIC挖礦專用硬件,可產生比其他礦工更大的優勢,大型礦機商就被鼓勵開發ASIC設備。這就意味著,ASIC礦工與區塊鏈開發者之間,會存在著一場類似貓捉老鼠的游戲。
通過Nonce分布研究ASIC
有趣的是,通過研究nonce分布,我們可觀察到ASIC挖礦在某些鏈上的興起,以及隨后開發者試圖阻止它們的嘗試。
工作量證明(PoW)挖礦過程中,會反復哈希運算一個區塊的header,直到其哈希值小于協議定義的目標值。這是通過將區塊頭作為輸入,然后通過加密哈希算法來實現的,對于比特幣而言,該算法就是安全哈希SHA-256算法(且連續應用了兩次)。
為了在無需完全重建新區塊頭的情況下,為每次嘗試獲取不同的哈希,在區塊頭中,需納入一個向礦工提供的特殊字段:nonce字段。這是礦工可更改的任意數字,以便修改區塊頭并生成小于目標哈希值的哈希。該nonce,是一個從0到每個協議所設置上限的數字。
假設在理論上,任何一個nonce都可能導致一個獲勝的哈希,那么期望nonce隨機選擇并因此均勻分布就不無道理了。然而,對很多區塊鏈進行分析后,我們發現,只有很少的區塊鏈遵循這一預期。對此的解釋是多種多樣的,但nonce挑選策略的變化,往往與新挖礦硬件的引入有關,這表明不同的挖礦硬件具有不同的nonce挑選策略。
2019年1月初,Twitter用戶@100trillionusd首次注意到了比特幣的這種模式。而進一步的分析,在其他鏈上已顯示出了一些奇怪的模式,比如門羅幣、以太坊以及萊特幣。
比特幣
最著名的nonce分布自然是比特幣的,在其歷史早期,比特幣呈現出一個共同模式:很多nonce接近于0。這可以用一個簡單的策略來解釋,該策略包括為每個哈希遞增nonce。由于比特幣早期的算力是非常低的,挖礦只使用CPU進行,在檢查所有可能的nonce值之前,通常會找到一個獲勝的哈希。而Sergio Lerner利用這一事實,對屬于中本聰的比特幣進行了最認真的鑒定。
在 GPU挖礦被引入之后,nonce空間看起來是隨機的。但在區塊高度達到400000左右時,出現了一種目前尚無法解釋的新模式,個別礦工會選擇一些細條紋nonce值。
BitMEX研究院對此模式進行了大量研究,但始終沒有找到明確的解釋。
查看(整個歷史過程中)比特幣區塊nonce的直方圖,可以清楚地看到這種模式,以及低nonce的顯著性。
對于更細粒度的分析,有興趣的朋友可以查看bit(位)的分布。比特幣中的nonce字段由4字節或32位組成。對nonce 32位中每一位的平均值進行分析,顯示出了一些有趣的模式:
在比特幣的歷史之初,較高的bit(位)通常被設置為0,因為礦工們的nonce選擇策略只是簡單地增加bit(位)。低字節(圖表底部的最后8 bit)似乎總是與某種模式一起使用,但直到最近才在低bit(位)中觀察到模式的變化。
門羅幣
應用nonce分析方法,最有趣的研究對象就要屬門羅幣(Monero)了。
門羅幣每6個月通過硬分叉進行一次升級,而在過去的幾次升級中,其開發者還對工作量證明算法進行了一些調整,以避開專用的ASIC挖礦硬件。這些硬分叉中的第一個是有爭議的,因為它導致了幾個分叉項目及資產。
因此,我們可以研究這些變化對nonce分布的影響。
乍一看,我們可以注意到幾個有趣的模式,但當我們將網絡難度和預定的硬分叉(調整PoW算法)疊加到這個圖表上時,事情就變得更有趣了。
我們可以看到,這3次PoW升級都導致了網絡難度的下降,其中有2次停止了之前存在的nonce模式。有趣的是,這些相同的nonce模式的引入,也與網絡難度的急劇上升有關。
通過觀察這些nonce分布模式,我們可以看到第一次分叉在阻止第一代專用硬件方面的有效性。此外,我們還可以看到一些礦工在第二次分叉之后,迅速運用上了第二代硬件,而后又被第三次硬分叉挫敗。
以太坊
乍一看,以太坊的nonce空間幾乎沒有顯示任何nonce分布模式或不規則。
而仔細看,在區塊高度達到7,000,000后,我們可以看到,空間底部有一些較暗的水平線。
如果放大,你可以看到從數字2000000到4000000之間的底部斜線。這些可能是一個簡單的nonce挑選策略的特征:從0開始,每次嘗試時遞增nonce。
區塊的nonce直方圖顯示,隨著時間的推移,值較低的nonce會略微占據優勢:
但是,如果我們觀察nonce的每一bit隨時間的平均值,就會發現一個非常有趣的模式(請注意,以太坊的nonce由64位組成,而不是比特幣中的32位):
從大約第1,380,000個區塊開始,nonce的中間位開始被設置為0,這比其他位要頻繁得多。隨著時間的推移,其他位也開始有非隨機使用。有趣的是,粗略地看一下整個nonce分布或直方圖,并不能揭示這種模式,因為調整中間位并不會明顯影響nonce的直方圖。
有趣的是,以太坊經典(ETC)的nonce位分布顯示了完全相同的模式:
頂部的白色垂直條紋表明一些礦工正在從0開始增加nonce。
比特大陸于2018年4月宣布了首款公開已知的Ethash ASIC礦機,并表示將于同年7月中旬首次交付。在前一個圖表中同時標注兩個日期顯示了一些非常有趣的事:
乍一看,在Antminer E3發布時,以太坊和ETC區塊的(bit 41) 位41平均值下降了。加入時間點后,模式更加引人注目:
在2018年3月中旬之前,位41的平均值徘徊在0.5左右(這是假設灰色水平虛線表示的均勻分布的預期值)。然而,從那時起,在兩條鏈上,它開始以同樣的速度逐漸被設置為0。而只有以太坊在第一次交付計劃發生時(2018年7月16日),其平均值急劇下降。
查看當時排名前5的礦池,我們可以看到,位41的平均值在所有礦池中都開始下降,但從7月16日開始,即 E3礦機首次交付日起,它的值在兩大中國礦池(Sparkpool和F2Pool)中進一步下降。
戰斗還在繼續
隨著progpow的逼近以及門羅幣開發者繼續努力抵抗ASIC,針對專用硬件的戰斗可能不會很快結束。隨著戰爭的進行,我們將密切關注,并繼續尋找nonce中的信號。
主流幣網絡一周數據匯總
近期的大波動,也使得比特幣持有者的持倉分布發生了較大的變化。
目前的快照顯示,成本在13000美元以上的比特幣已屬于少數,大量的幣成本在2000美元至13000美元之間,近400萬比特幣(占總供應量的22%)的成本基礎低于500美元。
這里我們展示了10月24日(大幅波動前)和10月26日(大幅波動后)的比特幣分布變化。成本基礎在13000美元以上或7000美元以下的比特幣,幾乎沒有任何活動,這表明價格上漲還不足以激勵這些持有人出售。相反,成本在7000美元至8500美元之間的比特幣,最有可能被賣出(盡管由于交易所正常的熱錢包活動,這些數字可能被稍微夸大了)。另外,在9000美元至12000美元的范圍內,有少量比特幣確實出現了一些鏈上運動。
責任編輯;zl
評論
查看更多