關於PoW共識機制更動與重複使用金鑰

PoW共識機制的更動

最近常常可以看到關於抵抗ASIC礦機和如何面對潛在的ASIC礦機威脅等話題,這篇文將會(稍微)認真地指出: 我們對於如何藉由在硬分叉時調整PoW共識機制以維持抗ASIC礦機特性的立場。

特殊應用積體電路(Application Specific Integrated Circuit)簡稱ASIC在這邊指得是被特殊設計出來的挖礦硬體,舉例來說,BTC的ASIC礦機被設計用來挖SHA256演算法的加密貨幣。由於這種硬體是被特別設計用來挖礦的,也因此會比CPU、GPU、甚至是FPGA等日常使用的硬體來得有大量的效能優勢。因此,任何被設計出來的ASIC將會顯著地主宰全網算力並導致中心化的問題。

Monero的程式碼是從CryptoNote參考實作分出(fork),在CryptoNote的白皮書(https://cryptonote.org/whitepaper.pdf)中提到,比特幣的一個最大的缺點即是其PoW共識機制導致了中心化的問題。為了打造更平等的挖礦網路和更去中心化的特性,原先的CryptoNote開發者創造了Cryptonight PoW共識機制,以此拉近CPU(大眾)與GPU/FPGA/ASIC(少數人)的挖礦能力差距。CryptoNote的作者亦提到了”有些礦工比其他礦工更有優勢是合理的”,因為”他們的投資應能線性的提升其算力優勢”,這代表ASIC礦機的出現或許是必然的。我們雖然也認同這樣的可能性,但為了去中心化的原則下,我們認為任何ASIC礦機算力優勢的出現必須要越平等越好。在發文此刻,我們認為任何新發展的ASIC礦機都不會是平等的算力,更不會使Monero網路趨向去中心化。

比特幣使用的PoW共識機制(SHA256)具有一個重大的缺點,就是太容易就能從CPU轉移至GPU、接著至FPGA、最後就發展到了ASIC,這其中每一個轉移都帶來了巨大的效率提升。因此CPU挖礦與ASIC挖礦之間就存在著巨大的效益差距,導致最後ASIC成為了唯一挖礦的可行方案,這在本質上造成了中心化,因為只有少數的製造商才有辦法生產ASIC礦機。Cryptonight (Monero的PoW機制)為了拉近CPU、GPU、FPGA、ASIC的差距,在PoW共識機制中綁定了一定數量的記憶體需求,這樣的方式造成了ASIC的製造成本顯著提升。這個PoW機制帶來了更平等的挖礦,這樣的好處有: 第一,如果挖礦算力是去中心化的,這將會防止礦工刻意去挑選或忽略特定交易的確認,避免Monero的區塊鏈審查行為。第二,這將會降低挖礦趨於中心化至大型挖礦廠房。第三,這將會讓政府難以管制可以用來挖礦的硬體。

進一步地說,特製的硬體幾乎只能由少數的公司設計,如同比特幣目前的情況,最大宗的ASIC礦機都是由Bitmain設計與生產。如Peter Todd所說: “世界上僅有非常少數的公司有能力創造出有競爭力的ASIC礦機,基本上就是Intel、ASMC、GlobalFoundries等等”。

這造成了一個單點失效(single point of failure)的弱點,例如,政府可能向ASIC製造商要求增加一個”自殺開關”,這樣使得其能從遠端關閉或是控制礦機,而這將是有潛力破壞整個交易網路的威脅。或是政府也可以要求礦工必須擁有執照才能使用ASIC挖礦,如此就限制了ASIC礦機只能被特定的團體所持有。這樣的證照系統最終可能導致某些交易的黑名單行為,譬如,政府可以要求礦工不得打包特定的交易否則就撤銷證照。相反的,用日常用途的硬體挖礦就可以讓這些手段無法被實際執行。

挖礦這件事,通常來說也具有著讓富者恆富的效應,最終導致中心化的問題。譬如具有經濟規模的礦工可能會更有足夠資本來提升其在全網算力裡的占比。而Cryptonight演算法,拜其平等的特性所賜,或多或少迴避了這個問題,因為礦工必須面對數種來源的競爭: (i) 幾乎沒有成本的殭屍網路(botnet)、(ii) 愛好者礦工,並非由利益驅動的使用他們的CPU與GPU支持網路、(iii)網頁礦工,這種有可能是非法(未經同意透過廣告挖礦)也有可能是合法(用來代替CAPTCHAs或減少/替代廣告)的方式。相對之下,ASIC礦機加速了富者恆富,因為他們沒有上述提及的競爭對手。

總結來說,我們強烈的相信保持抵抗ASIC的特性將會帶來好處,因此若有需要時,我們可能會發起臨時性的硬分叉以約束任何潛在的ASIC礦機威脅。此外,為了維持去中心化的目標並抑制檯面下的ASIC開發,Monero核心開發團隊將會在每次的例行分叉更新時微調PoW共識機制,也就是一年兩次的周期,這些更動將會是細微的調整,且不會影響效能太多,第一次微調已在測試中,將在本次三月的硬分叉中實施。我們的最終目標則是研發出新的一套PoW共識機制演算法以取代Cryptonight來確保更好的ASIC抵抗能力。

微調將會相容於下列軟體: zone117x’s pool, Snipa’s pool, Lucas Jones’ CPU miner, wolf0’s CPU miner, ccminer-cryptonight, sgminer-gm, xmr-stak, xmrig-nvidia, wolf-xmr-miner。

金鑰的重複使用

身為使用者的你必須意識到Monero網路與你所擁有的Monero安全性是取決於你握有的Monero私鑰,你的Monero金鑰就是Monero金鑰。請不要把他們拿來使用在其他用途,包括在Monero的其他分叉幣上取得錢幣。若你使用同一份金鑰(key)在不同鏈上重複花費同一筆交易輸出(output),這將會傷害你的隱私,同時也對其他人的隱私造成傷害,因為這會產生相同的金鑰映像(key image)在不同的環簽名(ring)之中(這不影響隱匿性地址或保密交易協定,僅影響環狀簽名)。此外,當你在其他鏈上使用相同的金鑰之後,你的私鑰安全性將依賴那些第三方的信用。

  • 分叉者們: 如果你們要分叉Monero區塊鏈,請不要要求使用者重複使用他們的私鑰,而是讓使用者在你們的新鏈上產生新的私鑰。
  • 使用者們: 如果分叉者要求你在他們的新鏈上輸入你的Monero金鑰(在這篇文章發表之後),他們很有可能正在試著操縱你參與大規模的Monero攻擊事件。

請注意安全,並不要在Monero以外的用途重複使用你的Monero金鑰。  

本文譯自getmonero.org https://getmonero.org/2018/02/11/PoW-change-and-key-reuse.html