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