音樂和程式設計的協奏曲:新的工作量證明演算法的誕生
創意演算法
創意演算法,這是一個monero核心開發人員霍華德·朱(Howard Chu)的說法,他專注於保護來自專業採礦硬體的加密,稱為ASIC,這是由數十億美元的採礦業所建造。最近,Chu找到了一種永久性地將ASIC與網路隔離的解決方案,他稱之為RandomJS的一種工作量證明演算法,該演算法利用了硬體不能同時“做多件事”這一特徵。
不過,他的演算法最有趣的地方可能是,他可能只是偶然發現了創新,因為他喜歡演奏傳統的愛爾蘭小提琴。
Chu說他的家鄉多尼戈爾(Donegal),是愛爾蘭最富有田園音樂風格的角落之一,Chu還講到,這個演算法的創作與他在音樂實踐中所用的想象力是相通的。
在他看來,音樂和程式碼在神經學層面是緊密相連的,需要大腦的邏輯和創造性這兩方面同時發揮作用。因此,Chu說程式設計和音樂人才之間存在著頻繁的重疊——他在演算法中利用了這一點。
“音樂是非常數學化的,音樂的基礎是數學,但與此同時,它也賦有創造力,”他講到。
然後,Chu建立了一個利用隨機生成的程式碼的演算法。
由於ASIC只能被設計用於一種演算法,因此在演算法中使用隨機生成的程式碼會使ASIC雖然快速卻無法相容,因此也就無利可圖。通過這種方式,許多開發人員認為ASIC製造商將會避免為頻繁切換演算法的加密貨幣專案開發硬體。
推動人們對ASIC阻塞程式碼產生興趣的是礦業巨頭Bitmain公司在過去一年中進入了比特幣之外的加密貨幣社群。更具體地說,Bitmain在3月釋出了Antminer X3 ASIC,它被程式設計為執行monero的底層驗證演算法cryptonight。
在monero的開發人員引發了眾所周知的“礦工之戰”之後不久,今年4月,他們通過進行緊急軟體升級,從而來改變加密貨幣的演算法,以便Antminer X3在協議中毫無用處。
此後,Monero的開發人員一直致力於定期進行軟體更改,以刪除任何重新出現的硬體。
但是,由於monero所承諾的小型軟體變更可能不足以長期勸阻硬體製造商,所以Chu將RandomJS作為加密貨幣的一種更可持續解決方案。
在談到演算法時,Chu說:“RandomJS正朝著別人沒有解決的方向來解決問題。”
隨機數學
Chu是一位廣受尊重的程式員,他是OpenLDAP/">LDAP專案的高階架構師,該專案建立了一個開源資料庫層,並且奠定了電信行業的基礎。
自從2015年以來,他就一直致力於為monero效勞(全面的區塊鏈平臺數據庫)。
根據Chu的說法,他認為RandomJS則是憑藉其新穎的方法與他的音樂實踐聯絡在一起。
當ASIC硬體製造商分析軟體並構建優化的硬體以執行特定的演算法時,RandomJS則採取了相反的方法,分析CPU硬體的功能,這是大多數消費者膝上型電腦的硬體型別——並從那裡開始向外構建。
Chu將這項挑戰描述為在工作證明協議的兩個功能之間取得平衡——計算演算法所需的時間和驗證演算法的速度。
例如,雖然SHA 256(作為比特幣基礎的工作量證明演算法)很容易驗證,但根據Chu的說法,從根本上來講,它 “太容易”計算,這意味著圍繞它構建硬體是微不足道的。
“雜湊加密演算法真的非常適合證明某些東西是真實的,但它作為一個工作單元是很可怕的,因為它太容易了,”Chu說道, “將SHA 256嵌入晶片並克隆數千個這樣的計算單元是非常簡單的一件事。”
因此,RandomJS使計算過程變得更加複雜,通過使用區塊鏈資料作為輸入來生成隨機程式碼,尋求以更全面的方式來使用CPU功能。
“我們接受一個輸入,即前一個雜湊塊,我們將其用作為偽隨機數生成器的種子。”Chu解釋道。
然後,該資料生成用javascript編寫的隨機演算法,當由參與計算機執行時,然後對其進行雜湊並新增到區塊鏈中。
儘管如此,monero核心團隊仍在對演算法本身進行評估。據Chu說,有很多事情可能會推遲它的採用。首先,它目前無法在通用硬體(GPU)上執行,而GPU是monero礦業基礎設施的主要組成部分。所以其仍然還有很多工作要做。
音樂思維
話雖如此,Chu的演算法可能是阻止ASIC的最獨特的技術之一,如果不是藝術上的話。
有些人甚至可能會說,隨著程式碼的不斷變化,這是一種高能量的方式,這也正是Chu(來自洛杉磯)最初來到多尼戈爾(Donegal)西北的原因。
由於對愛爾蘭傳統音樂的熱愛,他被帶到了崎嶇的海岸線。
但在多尼戈爾(Donegal),他發現這一景觀被反映在了當地的音樂中。
“多尼戈爾(Donegal)的小提琴風格有相當強大的魅力,聲音尖銳且斷斷續續,當我第一次站在馬林頭上看著海岸,看見海浪與岩石撞擊,我就想啊,這就是大自然的力量量,”Chu說著。
因此,Chu計劃在多尼戈爾建立一所程式設計學校,在那裡音樂教學也將作為課程的一部分。“這將提升對事情的靈活性和教養以及不同的思考方式,”他說。
根據開發人員的說法,電腦科學教育經常訓練學生的邏輯思維,這並沒有讓他們為現實世界做好準備,而現實世界需要開發人員創造性地解決新問題。
在談到他對融合音樂和程式設計的興趣時,Chu總結道:
“如果沒有創造力,你無法做到這一點,如果你沒有接受過訓練,如果你沒有接受過使用你大腦中創造性部分的訓練,那麼你就很難做到這一點。”
·END·
(作者:鏈條CH,內容來自鏈得得內容開放平臺“得得號”;本文僅代表作者觀點,不代表鏈得得官方立場)