從PoC到PoC2+再到PoC3

買賣虛擬貨幣
2009年,比特幣的誕生奠定了PoW共識成為主流共識的基調。其後,這片由PoW開拓的加密數字貨幣的世界也逐漸演變出更多共識機制,來試圖填補PoW機制所帶來的不足。基於此前提,2014年,PoC的理論正如比特幣一般在論壇中匿名誕生,更加巧妙的是,它也正契合比特幣的初心,避免了能源浪費,使得人人挖礦成為了可能。隨著開發進展的推進,PoC也經歷了由PoC到PoC2再到PoC2+的進化,PoC3則成為了大部分PoC專案的發展目標,具有重大意義。PoW與PoCPoW演算法主要依靠礦機效能、電力來進行挖礦。對於挖礦裝置有較高的要求,從原本的CPU逐漸更替到了ASIC,礦機的不同型號更新迭代越來越快,需要更新購買,造成了挖礦的高門檻、高投入。因此礦場、礦霸也就此誕生,比特幣的算力分佈變得中心化。況且機器淘汰後無二次利用的可能以及維持挖礦電力消耗極大都屬於嚴重的資源浪費問題。PoC演算法則依賴於挖礦裝置的儲存空間,提高挖礦效率的方法變成了增加挖礦裝置的儲存容量,同時對儲存裝置的讀寫速度要求不高,與裝置本身的計算效能無關。在挖礦過程中,一旦所需的資料生成完畢,則不需要多餘的計算過程,因此免去了大量計算資源及電力能源。基於以上特點,挖礦的門檻被大大降低。因此,PoC是一個人人可參與挖礦、清潔、高效的演算法。
PoC及PoC22014年,一篇名為《Efficient HDD Mining》的帖子釋出在了BitcoinTalk,其中介紹了POC容量證明的背景和理念,並且進行了開源,第一個採用PoC機制的公鏈Burstcoin誕生。2018年BurstCoin 2.2.0版本釋出,命名為Pre-Dymaxion,主鏈硬分叉,擴大區塊大小和修改交易結構,同時將原始版本的PoC演算法升級到PoC2,這便是後來BHD及眾多PoC專案所採用的挖礦演算法。2.2.0版本升級主要是調整了硬碟內Hash儲存的順序和格式,並且完全向前相容PoC1,主要用來防範MIT論文中提到的挖礦過程中存在的ASIC攻擊。經過該升級,tps提高了80倍,同時最佳化之後的能源利用效率達到了比特幣的5000倍左右。瞭解PoC演算法需要清楚兩點,一,其核心是雜湊函式Shabal,二,演算法需要生成大量的快取資料——Plot檔案。具體計算方式如下: 
1)選擇一個8位元組的隨機數Nonce,加上礦工的Account ID一起進行Shabal256計算,得到一個Hash結果。(Account ID從私鑰推倒出來的,用來標識身份。)雜湊結果被稱為Hash #8191。2)把第一步得到的Hash #8191新增到Account ID和Nonce前面,再進行一次Shabal256計算,得到Hash #8190。3)以後的計算中,每次都把得到的Hash值新增到資料的前面,當資料的長度超過4096位元組後,每次只取最近的4096位元組資料進行雜湊。eg: 計算Hash #7000的時候,其實只會取Hash #7001-7128這128個雜湊值進行計算。因為每個雜湊值的長度是32位元組,128個正好是4096位元組。4)當完成了8192次迴圈後,礦工得到8192個雜湊值,然後需要對所有這些資料再進行一次Shabal256計算,得到一個Final Hash。5)把之前的8192個雜湊值逐個和Final Hash進行異或運算,得到的8192個異或後的雜湊值儲存下來,這些資料就是未來挖礦時需要搜尋的範圍。這8192個雜湊值會兩兩一組,稱為一個Scoop,一個Scoop是挖礦使用的最小資料單位,一個Scoop是64位元組。
對每個礦工來說,Account ID是固定的,上面生成的8192個Hash值其實只和Nonce有關,Nonce是8位元組的,取值範圍在0-18446744073709551615,這是個非常大的數字。礦工只會儘可能多地快取Nonce和對應的4096個Scoop來提高自己找到解的概率。簡單而言,PoC是透過既定的演算法產生眾多數量的Hash,然後將Hash存入硬碟空間中,礦工在競爭區塊的記賬權時,只需要透過掃描硬碟中儲存的Hash即可,從概率上確保持有大容量硬碟空間的礦工出塊概率大於持有硬碟容量較小的礦工。PoC2+PoC2+為Lava於2020年提出的新標準,在原有的PoC2基礎上進行改進,解決PoC2存在的碰撞多挖問題,真正意義上首次實現算力確權。

Lava更改了P盤所需要的種子結果,其組成為“8位元組nonce number + 20位元組礦工公鑰 + 4位元組專案路徑”。種子除去了舊有的Account ID,並增添了專案路徑的位元組,不同的PoC專案可實現特有標記,從而使得Plot檔案達到最大效果的差異化。接著如上文所提到的,進行一系列Hash計算,得到相應的Scoop。

原有演算法中的Account ID本意是為了避免幾個人共用同一套快取資料來作弊,和增加搜尋空間的範圍,然而實際上,由於其本身也不過是十幾位長度的數字字串,相對於地址是一種有失真壓縮,因此存在碰撞的可能,以此引發專案多挖等混亂情況,對於各類PoC專案也是極不公平的存在。

因此Lava透過捨棄Account ID直接新增礦工公鑰將算力與礦工繫結,實現了算力、礦工、專案的三方間相互確認,極大減小了碰撞的概率。

PoC3

PoC3則是精益求精,在原有綠色清潔的基礎上更上一層樓。其主要目的是將PoC挖礦過程中儲存的無意義的Hash,轉變為有意義的資源,如文字,電影,壓縮包等等,完成硬碟空間的有意義的利用。

它仍在PoC2的基礎上構建,但能夠儲存兩用資料(plot資料和非plot資料)。這樣礦工的硬碟儲存將會成為有用資訊的載體,由於硬碟挖礦的去中心化性質,更有可能成為一個納入全球網路的儲存系統。

目前,Lava的PoC3規劃預計在2021年實現。讓我們共同拭目以待!

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;