北京時間7月10日消息,控制阿波羅飛船登月的阿波羅導(dǎo)航計算機(以下簡稱“AGC”),是美國航空航天局阿波羅載人登月項目取得的眾多技術(shù)突破之一。在那個計算機大小與冰箱相當(dāng),甚至能塞滿一間房子的年代,AGC重量僅為約70磅(31.75千克)。它還是首批采用集成電路的計算機之一。
一個計算機歷史學(xué)家獲得了一臺AGC,并使之恢復(fù)運行。該團隊的成員之一肯·謝里夫(Ken Shirriff)決定看看它在比特幣挖礦方面的表現(xiàn)。
挖礦是維護比特幣區(qū)塊鏈過程的關(guān)鍵部分。只有解決一個難題,用戶才能獲得在區(qū)塊鏈中添加一個區(qū)塊的權(quán)利:找到一個SHA-256哈希值具有最少0的區(qū)塊。當(dāng)前已知完成這一任務(wù)的唯一方式是強大的算力:礦工創(chuàng)建一個帶有隨機數(shù)的區(qū)塊,計算其哈希值。如果哈希值的前導(dǎo)0個數(shù)不夠多,礦工會改變隨機數(shù),然后再次嘗試計算其哈希值。
合格的區(qū)塊要求的0的個數(shù)會自動調(diào)整,使網(wǎng)絡(luò)能平均每10分鐘生成一個新區(qū)塊。目前,一個區(qū)塊的哈希值需要至少約18個0(16進制)才能被網(wǎng)絡(luò)接受——相當(dāng)于嘗試約1022次才能發(fā)現(xiàn)一個有效的區(qū)塊。
目前,大多數(shù)比特幣挖礦活動都是由專用硬件完成的,它們每秒能計算數(shù)萬億個哈希值。相比之下,謝里夫為AGC編寫的挖礦軟件就慢多了:每計算一個哈希值需要約10秒。
謝里夫?qū)懙?,“阿波羅導(dǎo)航計算機運行太慢了,要成功挖到一枚比特幣,它需要相當(dāng)于宇宙年齡約10億倍的時間?!庇钪婺挲g被廣泛認為是138億年,這意味著AGC挖出一個比特幣的時間約為1380億億年。
這一差異反映了過去50年計算機硬件的飛速發(fā)展。在摩爾定律“推動”下,現(xiàn)代芯片集成有多得多的晶體管,時鐘頻率也要高得多。定制的挖礦ASIC(專用集成電路)能夠并行計算大量哈希值。
不過謝里夫也遇到了其他問題:AGC的特異之處也使得它不適合用來挖比特幣。例如,AGC中一個字的長度為15位,現(xiàn)代計算機中一個字的長度通常為32位或64位。SHA-256算法進行大量的32位計算,因此謝里夫必須將每個32位的整數(shù)劃分為3個部分——一個部分為4位、兩個部分為14位——對各個部分單獨計算。
AGC還不支持移位和循環(huán)指令——現(xiàn)代計算機的標配、被大量應(yīng)用在SHA-256算法中,謝里夫不得不通過子例程完成這些操作。
AGC有限的內(nèi)存也影響了其挖礦能力,“與1960年代的大多數(shù)計算機一樣,AGC也使用了磁芯存儲器,在每個微型磁化鐵氧體中存儲1位數(shù)據(jù)。由于磁芯存儲器尺寸相對較大,AGC的存儲容量僅為2K字(約為4K字節(jié))。AGC的尋址方案給編程帶來了更高的復(fù)雜性,除非使用一種不方便的存儲體切換機制,用戶通常只能使用256字的內(nèi)存容量。問題是SHA-256算法利用8個(32位)哈希值,1個64字的消息表和8個字的中間值,它們就會占去240個AGC字的內(nèi)存,只給其他指令留下16個字的內(nèi)存,其中包括中間值、子程序返回地址、循環(huán)計數(shù)器、指針等。通過重用這16個字的內(nèi)存容量,我將算法塞在一個存儲體中,但我用了很長時間調(diào)試軟件?!?/p>
這并非謝里夫第一次在“老爺”計算機上部署挖礦算法。數(shù)年前,他曾成功在一臺1960年代生產(chǎn)的IBM 1401計算機上部署挖礦算法。這臺計算機挖礦的速度比AGC還要慢,80秒才能計算一個哈希值。謝里夫還在一臺1970年代生產(chǎn)的施樂Alto計算機上部署了挖礦軟件——每秒能計算1.5個哈希值。
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。