前言:
本次訪談,是針對近期Lava技術團隊提出的“PoC2+”新P盤標準,選取了社區關注的若干問題,Lava技術開發團隊專門作出解答。問題主要包括:
·什麼是PoC2+新標準?
·PoC2+相比於以前的標準,做了哪些改變?
·新標準解決了舊標準中存在的什麼“問題”和“漏洞”?
·如何看待Lava目前出現的“碰撞PID雙挖”現象?
·新標準對整個PoC領域帶來什麼影響?
·升級新標准後,原來的幣會無效嗎?
·具體如何升級?升級後會形成新舊鏈共存的情況嗎?
·Lava發布了新的P盤軟件,是免費和開源的嗎?性能如何?
Q:Lava技術團隊最近提出了PoC2+新標準,究竟什麼是PoC2+?
A:
PoC2+,顧名思義,是PoC2的升級版。對於不太了解PoC2的朋友們,這裡簡單地掃個盲。
所有的PoC幣都涉及一個很重要的概念,俗稱“P盤”,它的實質是用程序產生大量與礦工地址掛鉤的哈希數據,並將這些數據寫入硬盤。這整個過程就叫作Plotting,具體的數據文件就叫作Plot文件,因為是P開頭,就簡單稱為“P盤”了。那麼這裡就產生了,具體的哈希數據怎麼計算、數據是如何組織成Plot文件、Plot文件又如何與礦工地址掛鉤……等等一系列問題。
Burstcoin這個項目對PoC的貢獻,很大程度就是確立了一整套標準,定義了P盤所涉及的一系列規範,下圖1就是該規範中P盤種子的結構,使用了8字節Plot ID + 8字節nonce number。
圖1. Burst的P盤格式
在這種格式上,延伸出來的規範的第一代就是PoC1,如圖2:
圖2. PoC1
後來根據鏡像互換原則,拓展了新的版本,也就是PoC2,如圖3:
圖3. PoC2
可以說,我們今天看到的所有PoC項目都沿用了這個PoC2規範,也就是說當前大家用的是完全一樣的P盤規範。
而PoC2+試圖在根源上解決P盤規范雷同的問題,圖4是Lava的P盤種子結構,種子由8字節nonce number + 20字節礦工公鑰+ 4字節項目路徑組成。
圖4. Poc2+種子構成
利用新種子構造新的Plot文件,即是PoC2+下的“P盤文件”。根據種子尾綴的項目路徑,可以特異化不同項目的種子,使得不同項目所使用的“P盤文件”產生差異,首次實現了PoC共識下的“算力確權”。
Q:既然是PoC2的改進版,為什麼不叫PoC3呢?
A:
原因很簡單,因為PoC3是一個已經存在的概念。對PoC技術比較關心的朋友可能會知道,目前有一些PoC社區的資深開發者正在探討和研究一種將有現實意義的存儲內容作為Plot數據的機制,這種機制如果可以跑通,可能會給整個PoC領域帶來比較顛覆性的變化,這個機制就是所謂的PoC3。
當然,這個機制目前還在論證和嘗試階段,Lava技術團隊也在保持跟進,我們會時刻保證自己處在PoC領域的最前沿……不過,這就不是今天的主題了,不再贅述。總而言之,Lava這次提出新標準叫作PoC2 Plus,是出於貼切和嚴謹的考慮,因為這確實是建立在PoC2基礎上的改進。
Q:那麼如何理解PoC2+相比於舊標準所做出的改變?
A:
要解答這個問題,我們先簡單理解一下原有的PoC2標準的技術原理。
PoC挖礦,是礦工先準備Plot文件並寫入硬盤,然後通過硬盤參與挖礦的競爭。 PoC2標準則是定義了礦工地址怎么生成PID,以及PID怎么生成Plot文件的過程。所以說,如果用一個簡單粗暴的方式來總結PoC2的作用,就是它把礦工和硬盤關聯了起來。
Lava提出的PoC2+標準,則是重新定義了“怎樣把礦工和硬盤關聯起來”這個過程。並且,我們讓這種關聯更加簡潔、明確和安全。但是更重要的意義是,新標準針對整個PoC領域給出了一個通用解決方案,我們試圖把行業規範確立起來,讓跟多項目加入到這個框架裡面。
Q:你提到基於舊標準做了一些“重新定義”,具體定義了什麼呢?另外,舊標準存在什麼問題,導致Lava要做這樣一個“重新定義”?
A:
從技術人員的角度來說,我們認為原有的PoC2標準確實是存在一些瑕疵和漏洞的。從短期來看,這些瑕疵和漏洞可能會引發一些小問題。而從長期來看,必定會對整個PoC行業的發展產生很大的、負面的影響。
舊標準有一個PID的概念,即Plot ID的縮寫。 PID是根據礦工地址壓縮而成的,用以組成Plot文件的Seed(隨機種子)。但是在我們看來,PID有兩個問題:冗餘性和安全性。冗餘性是指它並不是必要的東西,我們完全可以直接將礦工地址和Plot文件聯繫起來,用礦工地址(Key ID形式)作為身份標識,因此PoC2+新標准直接取消了這個設計。安全性問題,是考慮到PID本身只是十幾位長度的數字字符串,它相對於地址是有損壓縮,有碰撞的可能,這會引發共識過程的混淆和混亂。
Q:之前社區裡有出現通過尋找PID碰撞來雙挖Lava和其他PoC幣種的行為,也屬於你說的舊標準帶來的問題嗎?
A:
可以這麼理解。本質上,這種雙挖是需要找到兩個不同地址,恰好對應同一個PID,那麼同一個PID下出的新區塊自然就同時指向兩個地址,兩個地址都可以得到挖礦獎勵。在我們看來,這屬於一種設計上的漏洞。這種“碰撞雙挖”不同於一般意義的雙挖,一般意義的雙挖是明確開放給你挖,是公平的;而這種雙挖是需要找到特定的“雙挖PID”,是有門檻的,會影響到公平性。這次我們力推的PoC2+升級就可以填補這個漏洞,此類雙挖行為會得到根本的抑制。
Q:新標準對整個PoC領域帶來什麼影響?
A:
這又是一個很大的話題,Lava技術團隊可能得另起一篇專門作出解讀,這裡就概括性地說一說。
從整個PoC領域的視角來看,新標準到底做了什麼呢?我給大家總結一下,不要看前面說了一大堆那麼複雜,其實新標準的內核就是一句話:算力確權。什麼叫確權,確權就是明確歸屬,我們要明確PoC算力的歸屬,明確算力到底屬於哪個地址(礦工)、明確算力到底屬於哪個幣。舊標準下一個Plot文件放在硬盤裡,這個Plot文件也就是算力啊,但是它到底是屬於誰的、屬於哪個幣的,完全是不清不楚,畢竟連Plot ID都可以碰撞出來。
對於任何一個採用PoC2+新標準的項目來說,它既可以支持雙挖,也可以不支持雙挖,新標準只是提供了一個框架,不做價值取向判斷,是項目方要去做這個判斷,就是我的幣到底要不要和別的幣雙挖?無論你的答案是什麼,新標準都可以幫你在技術上做好“確權”,不再會說不清楚了。
Q:升級新標准後,原來的幣會無效嗎?會形成新鏈舊鏈共存的情況嗎?
A:
先回答第一個問題。這次升級僅僅是一個協議上的升級,並不是另造一個新幣,所以不存在所謂“新幣”、“老幣”的區別。
對於第二個問題,這取決與我們最終採用什麼方式進行升級。原則上,此次升級必須採取硬分叉方式完成,因此對於不升級軟件版本的節點,是無法兼容升級後的鏈的。此外,我們希望把升級做成算力主導,即讓算力來投票。近期我們會討論發起升級的整體技術流程,希望社區保持關注。
Q:連同新標準,Lava還發布了新的P盤軟件,這是免費和開源的嗎?
A:
對,這次新標準的升級,Lava提出了一個概念叫做“PoC2+全家桶”,其實就是把適配新標準的P盤軟件(Plotter)和挖礦軟件(Miner,包含掃盤軟件)都一併提出並發布了。全家桶的意義很明確,就是給PoC行業提供了一整套解決方案,拿來即用,而且有一定的定制化能力。對於任何想要進入PoC行業的項目來說,新標准給出了一個新的選擇,而且配套設施都是齊全的。我們覺得這對整個行業是有積極意義的。
Lava是一個堅持走開源、平等和擴大共識路線的項目,我們的軟件在原則上也會做開源並免費向用戶提供。為了安全性和穩定性考慮,短時間內應該還不會完全開源出來,但是一定是秉持著免費、開放的原則,服務廣大礦工用戶。
Q:新的P盤軟件性能如何?能做個簡單的介紹嗎。
A:
沒問題。首先我要強調一下,我們絕對不會因為P盤軟件免費,就給大家非常垃圾的性能,而且我們會不斷進行開發和升級,最終做到行業裡最優秀的水平,這一點請用戶放心。
從用戶接受性的角度,我們在設計上兼容最常用的TurboPlotter,這樣熟悉TurboPlotter的老礦工用戶都可以快速上手,不會付出太多的學習接受成本。之前社區裡比較關心的GUI界面(圖形界面),因為時間和開發量問題,暫時還沒有給出圖形版本,不過我們提供了更為靈活的腳本,讓用戶可以在經過極為簡單的配置後就快速開始P盤;而對性能有更高要求的用戶,也可以通過詳細的參數配置來提高性能、縮短P盤時間。
在性能方面,我們的整體思路是單GPU計算Hash同時為多個硬盤寫入數據,即所謂“多P”;並且,我們對磁盤寫入和任務調度進行了特別的優化,進一步壓縮寫入時間。根據我們的測試,普通8T規格SATA硬盤的寫入速度平均可達到100MB/s(24000 nonces/min),作為參照TurboPlotter的寫入速度平均在60MB/s;N卡RTX 2060 下的Hash計算速度可以輕鬆超過240000 nonces/min。可以說,相比於參照產品TurboPlotter,Lava的版本帶來超過40%的性能提升。因為篇幅有限,性能方面的介紹沒法很詳細和嚴謹,我們還是鼓勵礦工用戶參與實操測試,親自體驗和驗證軟件的性能,提出寶貴的意見和建議!