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