Lava是一個基于容量證明(Proof-of-Capacity, PoC)構建的數(shù)字加密基礎設施、以及基于全球廣義存儲空間的“信任之根(Root of Trust)”與“頂層索引(Top-level Indexing)”。PoC 是一個高安全性、低能耗且公平開放的共識機制,有益于建立強大的鏈上信任基礎,凝結更大范圍的共識與價值。Lava 使用了經(jīng)改進的 PoC 機制(Lava-Firestone)極大程度地降低了維護去中心化網(wǎng)絡的硬件門檻,使得任何人都可以輕松、低成本地利用閑置存儲設備參與區(qū)塊鍛造活動。
Lava的生態(tài)設計考慮了對全球存儲空間的共識凝結和信任價值反哺兩大作用,兩者形成完整的閉環(huán)。共識凝結的概念來源于主鏈所采用的PoC共識機制,它需要一個龐大、分散的存儲設備網(wǎng)絡貢獻“容量算力”以制造主鏈上的“信任之根”;信任價值反哺是以 Lava 主鏈這一去中心化信任設施為基礎,通過已被驗證成熟的跨鏈擴展、虛擬染色、分布式內(nèi)容尋址網(wǎng)絡嵌合等技術方案,作為一個通用的、索引與調(diào)度全球存儲空間資源的開放協(xié)議核心被第三方應用及服務所使用。
引入一種基于容量證明(PoC)的共識機制A基于容量證明的簡要原理
PoC 是一種基于容量證明的共識機制,鍛造人通過提供更大的存儲空間容量來提高鍛造區(qū)塊的成功率。
PoC 鍛造人依賴于靜態(tài)存儲的特殊數(shù)據(jù)參與鍛造區(qū)塊的競爭。這些特殊數(shù)據(jù)是按照特定哈希算法得到的一系列有序計算結果的陣列,由鍛造人預先通過計算生成、并通過密碼學手段綁定在鍛造人地址下。由此方式處理完成的數(shù)據(jù)被稱為 Plot 文件。
鍛造過程中,共識機制通過待產(chǎn)出區(qū)塊的數(shù)據(jù),隨機性指定 Plot 文件數(shù)據(jù)陣列中的特定位置。參與鍛造的競爭者檢索自身 Plot 文件中的對應數(shù)據(jù),生成一個 Deadline;Deadline 表示節(jié)點可廣播新區(qū)塊前等待時間,因此產(chǎn)生最小 Deadline 意味著鍛造成功。
考慮到 Plot 文件可以一次生成、長期保存并重復使用,而鍛造過程所需要的工作僅限于網(wǎng)絡廣播、檢索以及簡單的驗證性計算,因此 PoC 機制對高性能計算資源以及電力能源的消耗可以被降到最低限度。在同等安全條件下,PoC 運行所需的電力消耗僅為 PoW 機制的數(shù)百分之一數(shù)量級。
B)生成 Plot 文件
Plot 文件是一個由一系列哈希運算結果排列組合而成的數(shù)據(jù)陣列。在 Plot 文件中,每一個基本數(shù)據(jù)陣列單元被稱為元胞(Nonce Cell)。每個 Cell 的數(shù)據(jù)容量是固定 256KB。鍛造人的存儲空間越大,就能存放越多的 Cell,增加成功鍛造出塊的幾率。
Cell 的生成過程涉及 256bit 的 SHABAL256 哈希函數(shù)。SHABAL256 是一種計算十分緩慢的哈希算法,因此天然適合 PoC 算法的要求。
生成 Cell 的起點是用戶地址。將地址(8Byte)與一個隨機數(shù)種子(Nonce Number,8Byte)拼接,構成一個初始種子(Initial Seed,16Byte)。
對初始種子進行一次 SHABAL256 計算,得到第一個哈希結果#8191;
將#8191 添加在初始種子前面,形成一個新的種子(#8191+IniTIal Seed),進行 SHABAL256計算后得到第二個哈希結果#8190;
將#8190 添加在上一個種子前面,形成一個新的種子(#8190+#8191+IniTIal Seed),進行SHABAL256 計算后得到第三個哈希結果#8189;
因此類推,每一次都將上一個哈希結果添加在最新的種子前,直到生成最后一個種子(#0+#1+……+#8190+#8191+IniTIal Seed),進行 SHABAL256 計算后得到最終哈希(Final Hash)。
每一個哈希結果長度都為 32Byte;在進行哈希計算時,一旦種子長度超過 4096Byte,只取最后 4096Byte 長度。
然后,將剛才計算出的 8192 個哈希結果(#0、#1……#8191)分別于 Final Hash 進行 XOR操作,保存得到的 8192 個結果(仍然編入#0、#1……#8191)。
將 8192 個哈希結果按相鄰兩個為一組排列,每一組稱為一個 Scoop,得到 4096 個 Scoop,填入 Cell 中。由此,Cell 構造完成。
在生成 Cell 的過程中,計算機必須利用緩存記錄所有的中間結果,才能獲取最終的哈希結果。由于每個 Cell 包含 8192 個 SHABAL256 哈希結果,每個哈希結果長度 32Byte,因此每個 Cell將固定占用 256KB 空間。
反復進行生成 Cell 的操作,再將所有 Cell 進行優(yōu)化排列,填滿 Plot 文件。至此,Plot 文件準備完成。
C)區(qū)塊鍛造與驗證
鍛造者準備 Plot 文件后,即可開始參與區(qū)塊鍛造工作。
鍛造時,Miner 程序接收被廣播的交易并打包,生成待產(chǎn)出的區(qū)塊。Miner 程序會從該區(qū)塊中獲取當前難度、塊高(Height)以及 GeneraTIon Signature,其中對 GenSig+塊高做 SHABAL256運算,得到 GenHash;以 GenHash 對 4096 取模,得到此次鍛造的 Scoop Number。
Miner 程序檢索并取出 Plot 文件中所有對應 Scoop Number 的 Scoop 數(shù)據(jù),分別后附 GenSig并做 SHABAL256 運算,得到 Target;將 Target 除以一個代表難度的系統(tǒng)參數(shù) BaseTarget,得到 Deadline(8Byte)。
Deadline 是一個強制性等待時間,代表自上個區(qū)塊時間戳后,新的區(qū)塊時間戳需要等待的延時。延時沒有被滿足之前,生成的區(qū)塊是不合法的,不會被網(wǎng)絡所接受。
Miner 程序如果接收到網(wǎng)絡廣播的新區(qū)塊,會對該區(qū)塊的提供的數(shù)據(jù)進行校驗。這些數(shù)據(jù)包括被選中 Cell 的初始種子與 Deadline。任何網(wǎng)絡節(jié)點的 Miner 程序都可以在短時間內(nèi)完成驗證。
Lava-Firestone 共識
A)共識的概述
1)共識的需要:
共識(Consensus)是為解決由異步通訊構建的網(wǎng)絡集群如何達成一致性狀態(tài)問題而設計的中間過程。共識過程需要假定網(wǎng)絡中存在一定比例的誠實個體,在作弊者(或攻擊者)占多數(shù)的網(wǎng)絡中,共識將難以達成。一般而言,共識過程或通過物質(zhì)性獎勵、或通過物質(zhì)性懲罰,使得網(wǎng)絡中誠實個體保持行為規(guī)范。
在點對點、去中心化的網(wǎng)絡中,達成共識的結構基礎越分散,共識的效率低,但是可靠性高;達成共識的結構基礎越集中,共識的效率高,但可靠性低,系統(tǒng)趨于中心化。可靠性也被一般性地詮釋為“去中心化的程度”,因此優(yōu)秀的共識機制應當平衡效率和可靠性,并且具備開放、公平、對硬件和環(huán)境友好的特性。
2)共識的實踐:
PBFT 是基于拜占庭容錯的共識機制。PBFT 可以在保持其安全性的條件下,實現(xiàn)(N-1)/3 的容錯性。但是,PBFT 要求的時間復雜度為 O(N^2),因此不具備擴展性。此外,PBFT 一定程度上是一個 permissioned 網(wǎng)絡,同樣損害其開放性。
工作量證明(PoW)是基于競爭、基于物質(zhì)性獎勵的共識機制。Adam Back 于 90 年代提出的HashCash 概念,即利用工作量證明篩選系統(tǒng)中的不誠實者,被廣泛應用于過濾垃圾郵件。越高難度的工作量證明可以最大限度地排除作弊者,是一種可以取得相對理想共識效果的方案。但是,工作量證明在實際應用中被證明存在兩個重要缺陷:a)維持共識效果的能耗巨大;b)算力 ASIC 化不可逆問題。
權益證明(PoS)通過給予持有代幣者權重,減少或避免了爭奪記賬權的算力競爭強度。相比于工作量證明的可靠性來自于物質(zhì)性獎勵的誘惑,權益證明則通過人的損失厭惡屬性來保持共識效果。但是,權益證明缺乏持續(xù)的開放性,權益的初始分配存在排他性。
B)PoC 解決的問題
容量證明(PoC)為去中心化系統(tǒng)提供了一種優(yōu)越的共識機制,同時具備強健、開放、清潔的特征。
1)PoC 的強健性:
PoC 共識要求鍛造人向網(wǎng)絡證明其占有的存儲介質(zhì)容量,通過區(qū)塊獎勵激勵鍛造人積極參與區(qū)塊鍛造競爭,維護去中心化網(wǎng)絡的安全與可信。PoC 共識的實現(xiàn)過程決定了:
· PoC 是一種競爭性共識;
· PoC 是一種隨機性共識;
· PoC 鍛造人需要付出工作(或代價),且其工作(或代價)可以被第三方以較低的成本驗證。
以上特性保證了 PoC 鍛造機制是一種極為強健的共識。強健性(Robustness),是用以評價控制系統(tǒng)對系統(tǒng)特征或外界參數(shù)的不敏感性,即在來自系統(tǒng)內(nèi)外部的、尤其是不可控因素的干擾下,仍能保持穩(wěn)定有效運行的能力。
PoC 鍛造人需要在鍛造過程中持續(xù)占用其所擁有或可控制的存儲介質(zhì),并提前準備 Plot 文件以備鍛造過程使用。鍛造人無法在不準備 Plot 文件的情況下,通過實時的高性能計算,制造可以在鍛造競爭中勝出的 Deadline 數(shù)據(jù)。這是由于,Deadline 數(shù)據(jù)即被當前區(qū)塊的信息所決定,同時也被Nonce 數(shù)據(jù)所決定;Nonce 數(shù)據(jù)強制要求鍛造人通過一定順序且對存儲空間敏感的算法所決定。因此,PoC 鍛造過程在微觀層面是隨機的;通俗地說,此類作弊成功的可能性低如恰好發(fā)生哈希碰撞的幾率。
此外,PoC 鍛造人需要隨待產(chǎn)出區(qū)塊提交制造 Deadline 的必要原始數(shù)據(jù),則制造 Deadline 的完整過程可被第三方驗證。任何人在任何時刻,都可以回溯驗證區(qū)塊鏈歷史狀態(tài)中鍛造活動的合法性,進一步保證了 PoC 的可信程度和不可篡改性。
最后,高度競爭的鍛造過程則導致作弊成本被極大地提高,以至于參與者沒有動力嘗試作弊。如果僅以競爭性角度評價,PoC 共識與 PoW 共識是高度類似的;PoW 共識是典型的通過工作量競爭篩除作弊者的共識機制。此類競爭性共識的優(yōu)勢在于,共識的建立依賴短期內(nèi)不可復制的資源,因此信任存在一定的不可逆成本。
2)PoC 的開放性:
PoC 是具有優(yōu)異開放性(Openness)的共識機制。開放性要求:
· 共識對參與者提出盡量低的參與門檻;
· 參與門檻的標準是穩(wěn)定的、或可穩(wěn)定預期的;
· 潛在參與者可隨時加入共識、或隨時退出共識;
· 共識具有可無限拓展鍛造算力的屬性;
PoC 則可以滿足以上任意一點。
PoC 要求參與者提供存儲介質(zhì)并接入互聯(lián)網(wǎng)即可參與鍛造活動,這種共識機制的參與者總是幾乎可以得到等比例于其存儲空間(我們也可稱之為“算力”)的回報,其數(shù)值可以通過預估全網(wǎng)鍛造算力被具體量化,不存在非線性回報問題。
其次,PoC 參與者可以任意加入或退出鍛造過程,不會受到任何約束。考慮到存在準備 Plot 文件的過程,全新加入網(wǎng)絡的大額鍛造算力無法在極短時間內(nèi)完成算力切入并導致算力突變;但是,這一機制僅僅平滑了算力變動,沒有實質(zhì)上造成算力進入或退出的阻礙。并且,PoC 無論網(wǎng)絡現(xiàn)有算力規(guī)模為何,都能夠隨時隨地、不設上限地容納新加入的算力。
PoW 雖然也具有上述特征,但是其對高性能計算硬件的要求導致了硬件 ASIC 化不可逆問題。這是因為,哈希算力對計算硬件的架構是敏感的,例如:CPU 架構效率低于 GPU 架構、GPU 架構效率低于 FPGA 定制化電路、FPGA 定制化電路效率低于大規(guī)模集成化 ASIC 設備,這一點是難以避免的。因此我們認為由于 PoW 對硬件高度敏感的特征,會導致這種共識存在參與者專業(yè)化、集中化且不可逆的趨勢。這一趨勢有損共識的開放性。
進一步地,我們必須意識到:
· 開放性是公平性的重要基礎;
· 開放性是維持去中心化程度的基礎;
因此,PoC 很好地滿足了共識協(xié)議的開放性要求,有益于去中心化系統(tǒng)的形成和長期存續(xù)。
3)PoC 的清潔性:
PoC 的清潔性,主要針對 PoW 來說。前文提到,PoC 與 PoW 同屬于競爭性共識,因此在清潔性問題上有可比性;而 PoS、DPoS、PBFT 等作為非競爭性共識,在去中心化程度與系統(tǒng)開放性等層面存在邏輯瑕疵,因此在該問題上不具有可比性。
通俗地說,如果 PoW 被定位為“熱”鍛造,那么 PoC 則是“冷”鍛造,這一過程相比之下幾乎是完全靜態(tài)的。
原理在于,PoC 鍛造過程要求鍛造人事先準備 Plot 文件,并允許長期反復使用。在鍛造過程中,鍛造人無需重復計算并生成 Plot 文件,只需進行簡單的搜尋、驗證性計算即可。因此,PoC 鍛造過程對電能的需求被維持在一個最低的限度,即維持存儲設備正常工作的量級上。
前文提到,PoW 可無限拓展鍛造算力的屬性;但從能源消耗及經(jīng)濟角度評價,這一屬性事實上是不成立的。電能是有限且有社會意義資源,產(chǎn)生電能的底層資源不一定是可再生的。這一事實將PoW 共識由一個虛擬領域問題轉換為社會問題,其擴張的持續(xù)性受到質(zhì)疑。PoC 的“靜態(tài)鍛造”特征使得我們幾乎無需關心能源消耗的問題。
C)有意義存儲的實現(xiàn)層次
1)對“無意義存儲”的擔憂:
人們普遍擔憂去中心化數(shù)字貨幣基于 PoW 的浪費大量的計算資源和電力;而 PoC 并非也全無此問題,既然 PoC 要求鍛造人提供存儲介質(zhì)作為不可或的缺鍛造資料,就會涉及將大量哈希值陣列占據(jù)這些存儲介質(zhì)的行為。
那么,這種行為是否是有意義的?我們試圖從不同層次說明,Lava 對有意義存儲、以及去中心化存儲生態(tài)的理解,以及打算如何解決此問題的論證。
2)最大化空間資源利用導向:
競爭性挖礦(PoW 以及 PoC)都利用了短期內(nèi)不可復制資源(計算單元、存儲單元的物理設備)外加時間(或空間)的累積來換取鍛造權利。這一資源的占用客觀形成了去中心化信任的基礎,而區(qū)塊鏈被期待用于實現(xiàn)協(xié)作模式變革與商業(yè)模式變革,必然高度依賴于去信任化的基礎設施。因而,PoW 投入的算力設備、PoC 投入的存儲空間,都如同制造公路所使用的大量瀝青,并非是一種完全意義上的浪費;當然,PoC 對電力資源的節(jié)省仍然將產(chǎn)生巨大的社會價值。
Lava 倡導的 PoC 共識在物質(zhì)激勵層面鼓勵了對剩余存儲空間的利用,是一種最大化資源利用的導向。存儲空間是客觀存在的資源,這種資源的空置也是具有普遍性的??罩脤е略O備利用率降低,帶來社會資源層面的浪費。中本聰在設計比特幣之初所希望實現(xiàn)的“One CPU One Vote”,正是出于“利用閑置算力維護點對點電子現(xiàn)金系統(tǒng)”的美好初衷,然而因 PoW 自身缺陷導致 ASIC化不可逆,帶來了今天 PoW 高能耗、高硬件門檻的現(xiàn)狀。因此,PoC 將比 PoW 更進一步,更充分和徹底地實現(xiàn)了中本聰最初提及的愿景。
3)Lava 作為去中心化存儲的基礎設施:
我們認為,以上提及的論點僅僅局限于對共識過程消耗必要資源的理論解釋,并不能真正表達Lava 的愿景。“有意義”存儲必須有助于產(chǎn)生實際社會價值,無論其實現(xiàn)方式是否是以去中心化形式體現(xiàn)。Lava 計劃逐步實現(xiàn):
· 通過 PoC 機制凝結全球存儲空間共識,成為去中心化存儲生態(tài)的的信任之根(Root ofTrust);
· 將積累的信任價值反哺于基于存儲空間的應用與服務,尤其是去中心化存儲應用與服務的信任基礎設施;
· 作為信任基礎設施,承擔全球存儲空間的頂層索引(Lava as Top-level Indexing 協(xié)議架構)職能;
· 將去中心化存儲應用與服務的生態(tài)嵌入(Lava Layer2 Embedment 協(xié)議架構)到 Lava 主鏈,并在通信技術、資產(chǎn)流轉與經(jīng)濟激勵三個方面實現(xiàn)跨鏈嵌入;
Lava 這一愿景建立于一系列底層技術、底層生態(tài)的發(fā)展成熟,包括但不限于:
· 基于雙向錨定(2-way peg)的跨鏈資產(chǎn)交易技術;
· 基于腳本的跨鏈原子交換技術;
· 鏈下拓展方案、支付通道以及狀態(tài)通道技術;
· 基于內(nèi)容尋址的分布式存儲網(wǎng)絡;
· 分布式存儲網(wǎng)絡 DHT 機制及其變種;
· 文件存儲與檢索的可信證明機制,包括 Proof-of-Retrieval 以及 Proof-of-Spacetime;
· Web 規(guī)模的無服務計算架構,包括 Lambda、Fargate;
例如,Lava 主鏈可通過跨鏈方案,將不限地域、不限數(shù)量的基于內(nèi)容尋址分布式存儲網(wǎng)絡進行Layer2 嵌入,通過主鏈的“空間算力”提供去信任化的基礎環(huán)境,以實現(xiàn)對分布式存儲網(wǎng)絡資源的頂層索引、資源調(diào)度以及相應交易行為的撮合和記錄。如此衍生,基于 Lava as Top-level Indexing、Lava Layer2 Embedment 協(xié)議架構,可支持諸如以下應用場景:
· 閑置存儲資源交易的記錄、調(diào)度和資產(chǎn)管理;
· 基于內(nèi)容尋址的分布式網(wǎng)絡的去中心化 DNS 系統(tǒng);
· 可信去中心化數(shù)據(jù)存證;
· 可信計算環(huán)境;
· 基于中心化服務的分布式存儲任務調(diào)度結算;
鑒于本文的撰寫僅以介紹 Lava 主鏈、基于 PoC 的 Lava-Firestone 共識機制為主旨,對上文提及技術背景以及應用場景不做更詳細的描述。如有興趣,請關注該項目開發(fā)進度以及 Lava 基金會作進一步了解。
D)Lava-Firestone 共識
1)介紹 Lava-Firestone 共識:
Lava 采用經(jīng)改進的 PoC 共識機制,即 Lava-Firestone 共識。該共識針對以下因素進行設計、重構或優(yōu)化:
· 優(yōu)化 PoC 共識的發(fā)行方式、Plot 文件生成算法,使其更加穩(wěn)定、適合于長期生態(tài)發(fā)展;
· 前期傾向于基于 PoC 的信任積累,后期傾向于鼓勵有意義存儲、基于去中心化存儲的應用或服務;
· 考慮基于跨鏈、鏈下拓展、Layer2 嵌入的技術方案以及經(jīng)濟激勵方案;
· 考慮設置系統(tǒng)內(nèi)置憑證火石(Firestone);
· 考慮基于火石的染色方案(Stone-Coloring);
2)火石 Firestone:
Firestone 機制創(chuàng)新性地引入了一種基于虛擬分層(Virtual Layering)的通證概念,即被稱為“火石(Firestone)”的憑證。
火石是:
· 基于虛擬分層(Virtual Layering)設計的系統(tǒng)內(nèi)置憑證;
· 占用或享有 Lava 系統(tǒng)資源份額的代表物;
· Lava 生態(tài)的貢獻憑證;
· Lava 生態(tài)的治理權利憑證;
· 鏈上治理投票的權利承載體;
· Lava 生態(tài)的經(jīng)濟權利憑證;
· 一種非永久性、可定制化、非同質(zhì)性的憑證。火石的分配、使用和流轉:
· 對系統(tǒng)安全、共識凝結作出貢獻的任何參與者;
· 對有意義存儲生態(tài)作出貢獻的系統(tǒng)成員;
· 通過染色(Coloring)機制由基于自身信用背書的個人、組織或機構通過定制化方式產(chǎn)生并分配;
· 一般情況下,火石主要以通過凍結或抵押 Lava 方式生成;
· 火石的使用方式以及流轉方式是可定制化、非同質(zhì)性的,因為基于 Lava 生態(tài)提供的去中心化存儲類或計算類應用與服務也是非同質(zhì)性的。Lava 生態(tài)的應用或服務提供商可以定義不同的使用規(guī)則。
3)生態(tài)發(fā)展期的火石生成和獎勵機制:
Lava 區(qū)塊鏈自上線開始、到有意義存儲生態(tài)成熟之前的時期被定義為生態(tài)發(fā)展期。為解決該期間信任基礎設施的冷啟動問題,系統(tǒng)參與者可通過發(fā)起交易凍結 Lava 的方式獲得火石。
該機制采用一種特殊的“動態(tài)凍結(Dynamic Freezing)”方式生產(chǎn)火石:
· Lava 區(qū)塊鏈按照每 2048 塊塊高分割,分割后的段落稱為 Slot。
· 用戶通過發(fā)起一筆交易凍結 Lava 獲得火石。
· 用戶在第 N-1 個 Slot 中獲得的火石,僅在第 N 個(下一個)Slot 內(nèi)全程有效;第 N 個 Slot結束后,火石自動作廢、凍結資金返還。
· 生態(tài)發(fā)展期,全額區(qū)塊獎勵由 50%的基礎獎勵、50%的生態(tài)獎勵構成。當鍛造人成功鍛造區(qū)塊時,可無條件獲取基礎獎勵部分;如果該鍛造人消耗一個已生效的火石,則還可以額外獲得生態(tài)獎勵部分。
用戶發(fā)起凍結交易時,需要按照一個動態(tài)調(diào)整的凍結比率獲取火石。凍結比率可以簡易理解為火石的“價格”,即每凍結多少 Lava 可以獲取一個火石。
凍結比率在每個 Slot 開始時動態(tài)調(diào)整。當上一個 Slot 中的火石數(shù)量超過目標值 2048 時,該Slot 的凍結比率將提高 5%;當上一個 Slot 中的火石數(shù)量不足目標值 2048 時,該 Slot 的凍結比率將降低 5%。
技術實現(xiàn)
A) Lava 區(qū)塊鏈數(shù)據(jù)結構
1)區(qū)塊結構:
2)交易結構:
B) 生成攻擊 Generation Attack
生成攻擊(Generation Attack)是一類針對存儲證明網(wǎng)絡的攻擊形式。惡意鍛造人可以通過高效率低成本的軟件,按需生成大量的存儲資源信息,從而“欺騙”過共識網(wǎng)絡層的節(jié)點驗證,這種方式使得惡意鍛造人能獲取大量的區(qū)塊收益(存儲空間越高收益越高) 。
在 PoC 的生態(tài)網(wǎng)絡中,鍛造人最為重要的資源就是存儲設備,而如何避免惡意鍛造人通過生成攻擊,即形成答案值去提交答案,從而造成 PoC 生態(tài)的不公平行為,是每一個 PoC 網(wǎng)絡需要考慮的重要攻擊場景。
在 PoC 的場景下,生成攻擊的形成有較為清楚的定義:
· 定義 1.1.(生成攻擊) 在 PoC 網(wǎng)絡中,存在驗證角色 Sv、存儲角色 Sp 和 Sp 所申明的資源R。Sp 在每一輪的 PoC出塊過程中,需要 Sv 能夠驗證答案有效性并較為準確的衡量 Sp 的存儲資源 R。
定義 3.1 清楚的指出了 2 個關鍵點,第一是 Sp 需要在每一輪的出塊時間內(nèi)提交答案(nonceid);第二是 Sv 能夠很清楚的在共識層面對存儲資源 R 進行衡量。Lava 對于這兩點進行了深度的思考:
1) 對于出塊時間的控制
Lava 通過對難度值 baseTarget 的調(diào)整,將預期的出塊時間限制在了 4 分鐘。這個值的產(chǎn)生是鍛造過程中合法形成答案(nonce id),存儲設備掃描的速度而得出的期望值。具體的推導過程為:
推導 1.1. (出塊時間) 由于 Shabal256 算法的特殊性(無法并行計算),如果惡意鍛造人發(fā)動生成攻擊,對于市面上平均性能的單核 CPU,形成一個 nonce 并自我驗證通過的正常時間為 300ms,即每一輪能夠生成 800 次提交,但有效提交一定是遠遠低于 800 次(因為 deadline 的取值范圍為0~2^64-1,而有效 deadline 為 86400)。而對于目前的 PoC 網(wǎng)絡,平均 48TB 的算力會在一輪出塊中提交*(2~5)*3*次的答案,對于一個擁有數(shù)百 PB 算力的網(wǎng)絡來說,想通過生成攻擊對抗全網(wǎng)算力,是幾乎無法做到的事情。
2) 對于存儲資源 R 的衡量
雖然不滿足第一個必要條件,惡意鍛造人基本就不存在發(fā)動生成攻擊的可能性,但 Lava 依然對存儲資源進行衡量這個必要條件進行了思考,確保整個 Lava 網(wǎng)絡更加安全和健壯。
定義 1.2.(算力估算) 在 PoC 網(wǎng)絡中,對于存儲角色 Sp,驗證角色 Sv,Sp 每一輪提交答案次數(shù) originalNConf 和提交的答案 deadline 與 Sv 對 Sp 所估算的存儲空間大小 plotSize,存在以下數(shù)學關系:
· m:為人工選取的區(qū)塊 chunk,也就是 1 天的區(qū)塊總數(shù),一般設定為 360(通過全網(wǎng)出塊時間的期望值得出);
· originalConf:是這個鍛造人在 m 個塊內(nèi),提交的 target 數(shù)據(jù)集的次數(shù)。
· nConf:這個鍛造人在 m 個塊內(nèi),提交的 target 篩選后數(shù)據(jù)集的次數(shù),該數(shù)據(jù)集經(jīng)過剔除了篩選奇異點和 fastblock 中重復的數(shù)據(jù),一般情況下認為 originalNConf 相等。
· sum(BT*Target) :前 m 塊 BaseTarget 和 Target 的乘積和,而其中
· GenesisBaseTarget:固定值,18325193796L
Lava 網(wǎng)絡的錢包節(jié)點應用了這個公式,對公式得出的算力估算值對每一個鍛造人的算力進行了科學合理的估算,并能夠在共識層面對每一個 minerAddress 進行驗證。這使得惡意鍛造人更難通過生成攻擊對算力進行造假。
C)寄生蟲鏈的攻擊(Parasite Chain Attack)
寄生蟲鏈攻擊(parasite chain attack)是一種惡意錢包節(jié)點的作惡行為,其在不被主鏈(MainChain)發(fā)現(xiàn)的前提下,秘密的互相驗證并出塊,構建一條私鏈(PrivateChain),并在恰當?shù)臅r間與主鏈的某個地址發(fā)生交易,并將交易出塊并且互相驗證通過。在恰當?shù)臅r間,其合并到主鏈,創(chuàng)建一筆雙花轉賬,造成交易的修改并浪費全網(wǎng)節(jié)點雙倍成本去做交易的驗證。
為了解決這個問題,Lava 在 Blacklist(黑名單)層引入了 CDF 算法(Cumulative Difficulty Algorithm)。
從數(shù)學建模角度,整個網(wǎng)絡節(jié)點,惡意節(jié)點如果要對 PoC 進行攻擊,則需要在突破在共識層面被主鏈合并時提出的挑戰(zhàn),即對其合并的累計難度大小進行共識層面的驗算,提高惡意節(jié)點與的數(shù)量,從而提高計生蟲鏈的作惡成本(需要更長的出塊來保證其累計難度值)。
雖然我們認為具有如此大量的串通節(jié)點攻擊對于大型全球網(wǎng)絡來說幾乎是不會發(fā)生的,但無論使用何種高效的選舉算法,拜占庭容錯的理論得出的惡意節(jié)點數(shù)量的限制,對于整個 Lava 網(wǎng)絡也是存在的。
Lava 的可信層具有額外的安全措施。探索節(jié)點可能從 Lava 網(wǎng)絡中的整個節(jié)點集中選擇適合且可用的節(jié)點組成可信子集。給定 N 作為 Lava 網(wǎng)絡中的節(jié)點總數(shù),并且 T 作為可信層可用和合適節(jié)點的數(shù)量,其中 T?N(T 是 N 的子集),這樣共謀的惡意節(jié)點將不得不接受整個 Lava 網(wǎng)絡 N 的 33%而不僅僅是子集 T.
此外,集合 N 的所有成員都經(jīng)常作為 Lava 網(wǎng)絡的一部分進行審查,一旦有作惡行為就會被網(wǎng)絡中的其他節(jié)點列入黑名單,這有效地阻止他們被選入集合 T.
D) 區(qū)塊鏈參數(shù)
· 最大產(chǎn)出上限(Max Supply):332,800,000 LV
· 目標出塊時間間隔(Target BlockTime):4 分鐘
· 發(fā)行參數(shù):
初始塊獎勵:全額產(chǎn)出情況下(需要出塊人兌換火石)為 640LV 每塊、基礎產(chǎn)出情況下(出塊人不兌換火石)為 320LV 每塊;
收斂性發(fā)行,每 260,000 塊高度(約兩年)獎勵減半;
在所有塊均全額產(chǎn)出的情況下,系統(tǒng)產(chǎn)出的極限為 332,800,000 LV,即達到 Max Supply;
· 火石的 Timeslot:每 2048 區(qū)塊高度
· 初始分配:
技術團隊 2%
社區(qū)發(fā)展啟動資金 2%
Lava 基金會長期預留基金 3%
合計 7%