ITBear旗下自媒體矩陣:

以Starcoin為例,解析區(qū)塊鏈項目如何利用PoW做組合創(chuàng)新?

   時間:2021-08-06 15:25:10 來源:互聯(lián)網(wǎng)編輯:星輝 發(fā)表評論無障礙通道

縱觀區(qū)塊鏈項目的進(jìn)化史,改良和創(chuàng)新已經(jīng)成為必然。

前有以太坊提出智能合約帶來區(qū)塊鏈2.0與“世界計算機(jī)”,后有Polkadot以中繼鏈共享安全建立異構(gòu)分片架構(gòu)。

區(qū)塊鏈從業(yè)者正以分層、算法改進(jìn)等創(chuàng)新不斷組合出了一個個面向業(yè)務(wù)的解決方案。為去中心化世界帶來去中心化商業(yè)的基礎(chǔ)設(shè)施,帶來傳統(tǒng)業(yè)務(wù)在去中心化世界標(biāo)準(zhǔn)化復(fù)制的機(jī)會。

不過無論項目設(shè)計如何變化,項目實現(xiàn)的目標(biāo)是一致的,都是要在保證去中心化的信仰之下塑造出應(yīng)用生態(tài)的輝煌。

如今,在大部分區(qū)塊鏈項目選擇使用PoS共識后,仍舊有一些項目在改進(jìn)PoW以利用PoW共識的去中心化特征打造生態(tài)繁榮。

本文中,我們就將以公鏈Starcoin為例,解析其白皮書中的設(shè)計思路,展現(xiàn)一個成熟的以PoW共識為基礎(chǔ)的成熟方案,為行業(yè)提供一個組合創(chuàng)新的范例。

哪些設(shè)計理念已成為常規(guī)設(shè)計?

以太坊是公鏈的典型代表,其提出了世界計算機(jī)的概念實現(xiàn),想要將互聯(lián)網(wǎng)業(yè)務(wù)都運行于區(qū)塊鏈網(wǎng)絡(luò)之上。目前所有的公鏈,無論是為金融服務(wù),還是拓展到為數(shù)據(jù)、用戶服務(wù),也都在向這個目標(biāo)努力。

但一條鏈的網(wǎng)絡(luò)并不足以實現(xiàn)這些需求,例如比特幣雖在金融系統(tǒng)上可以稱之為創(chuàng)新,但比特幣網(wǎng)絡(luò)是一個不能運行智能合約的非圖靈完備加密貨幣網(wǎng)絡(luò),只有利用加密方式控制的賬戶地址、資產(chǎn)的功能。

隨后以太坊應(yīng)聲而起,以智能合約定義了區(qū)塊鏈的優(yōu)勢和特點。同樣的,以太坊1.0鏈也遇到了PoW網(wǎng)絡(luò)的性能問題。所以以太坊正轉(zhuǎn)向PoS、塑造分片、并且開辟layer2。

從這個路徑上看,以太坊已經(jīng)在塑造分層結(jié)構(gòu),在以太坊2.0的計劃中,信標(biāo)鏈通過PoS共識運行完成總賬本的驗證,而狀態(tài)執(zhí)行都將在信標(biāo)鏈下的分片中進(jìn)行,更多獨特的擴(kuò)展功能也可能將設(shè)計在layer2層中。

這似乎已經(jīng)是行業(yè)內(nèi)技術(shù)上的共識,波卡、Cosmos等公鏈都不約而同的向相似結(jié)構(gòu)發(fā)展。表現(xiàn)了對“部分信息上鏈驗證”、“分層處理”方案的默許。

Starcoin的分層框架和每層功能定義

為什么呢?因為分層后,可以針對每層出現(xiàn)的問題各個擊破。正如Starcoin,通過區(qū)塊鏈分層技術(shù),可以在區(qū)塊鏈layer1可以達(dá)到去中心化和安全,通過layer2又可以達(dá)到足夠的可擴(kuò)展性,供商業(yè)使用。為此,Starcoin對每層都進(jìn)行了明確的定義和單獨滿足需求的技術(shù)改良。

Layer1的共識改進(jìn)和邏輯突破

當(dāng)我們拆分區(qū)塊鏈項目的時候可以發(fā)現(xiàn),layer0是資源層,是由計算設(shè)備組成的點對點通信網(wǎng)絡(luò)層,Layer0可以看到路由、節(jié)點(礦機(jī)或服務(wù)器),在這層資源之上,公鏈建立了核心的layer1:共識層。

Layer1表現(xiàn)著區(qū)塊鏈的特點,保護(hù)著一些設(shè)計者的信仰。正如比特幣的PoW共識對很多信仰者來說,是重要的,因為工作量證明在原則上顯示了公平,而PoS共識,與既有權(quán)益過于相關(guān)。

也因PoW網(wǎng)絡(luò)是由礦機(jī)搭建而成,其成本和挖礦周期代表了礦工更長久的參與。因此很多區(qū)塊鏈項目選擇將礦機(jī)參與組成的共識層作為layer1,這是對PoW共識的信仰和對礦機(jī)挖礦經(jīng)濟(jì)模型的信任。

Starcoin即是如此,其通過礦機(jī)來搭建一個以共享經(jīng)濟(jì)為保護(hù)的layer1網(wǎng)絡(luò)。堅持PoW的公平性,也用來防止行業(yè)極端變化下的不穩(wěn)定性沖擊。

那Starcoin又如何避免PoW網(wǎng)絡(luò)帶來的既有問題呢?

Starcoin進(jìn)行了重要創(chuàng)新。以以太坊的設(shè)計對比來看,Starcoin的重要創(chuàng)新是在沒有改變PoW共識出塊和廣播流程上,讓出塊變得動態(tài)可控。

首先我們需要了解比特幣、以太坊的出塊和交易打包方式。

當(dāng)節(jié)點開始確認(rèn)出塊,開始廣播后,一段時間內(nèi),只有納入最長鏈的區(qū)塊才是被認(rèn)可的塊,最長鏈的競爭過程會讓網(wǎng)絡(luò)持續(xù)分叉,出現(xiàn)孤塊、叔塊。其原因在于礦工在打包交易前,很可能需要同步新的交易。

NC中本聰共識中的塊傳播方式

例如,當(dāng)節(jié)點 A 向節(jié)點 B 傳播一個塊并且其中沒有新的交易時,節(jié)點 B 可以立即將這些緊湊塊傳輸給它的所有相鄰節(jié)點。但是,如果區(qū)塊中有新交易,節(jié)點 B 必須首先從節(jié)點 A 同步這些交易,然后驗證這些交易的簽名,這個過程需要時間。最終只有當(dāng)整個區(qū)塊的有效性得到驗證時,節(jié)點 B 才能繼續(xù)傳播這個區(qū)塊。

此時,如果不進(jìn)行新交易打包,出塊時間較短,但如果等待打包新交易,就需要更長的出塊時間。

因此,如何確定一個有效的同步時間,并保證新交易不是無序的一直延續(xù)的在同步,是極為重要的。

與之相關(guān)的,如果孤塊增加,也會而影響網(wǎng)絡(luò)資源使用率和安全性。

Starcoin在這個部分的設(shè)計,是令人驚訝的,其操作很簡單,像以太坊一樣引入了叔塊概念,并且對叔塊進(jìn)行統(tǒng)計。

Starcoin中的叔塊打包監(jiān)測

叔塊是指孤塊中被編入最長鏈的塊,其可以代表網(wǎng)絡(luò)狀態(tài)分叉較多,孤塊會增加,在網(wǎng)絡(luò)延遲并且網(wǎng)絡(luò)擁堵時,叔塊也會隨之增加,因此,最終叔塊的數(shù)據(jù)可以用來輔助調(diào)整出塊時間和難度。

Starcoin網(wǎng)絡(luò)運行時,為了將叔塊維持在一個合適的閾值內(nèi),在每個小周期(時隙Epoch)末,都會重新調(diào)整下一個周期的出塊時間,同時調(diào)整的還有挖礦難度。

其邏輯在于,如果叔塊率較高,表示當(dāng)前的出塊時間間隔下,網(wǎng)絡(luò)中存在較多的分叉和孤塊,需要調(diào)大出塊的時間,緩解此問題。反之,則說明全網(wǎng)出塊情況良好,還可能進(jìn)一步縮短出塊時間,提高全網(wǎng)吞吐。

Starcoin引入叔塊的方式對于網(wǎng)絡(luò)本書來說,是自然的。不過還有一些公鏈可能會選擇設(shè)計特殊的切入點。

例如當(dāng)打包前出現(xiàn)新交易時,可以將區(qū)塊空間中引入一個“叔塊頭”概念,其不占據(jù)交易驗證的體積。但可以把新交易引入叔塊頭,然后重新設(shè)計一個提交區(qū)用來驗證交易。

這是一種把影響區(qū)塊打包速度的“新交易”剝離正常區(qū)塊驗證步驟,轉(zhuǎn)換成其他方式驗證提交的方法。與Starcoin的方式不同,它改變了驗證方式。

因此,綜合來看,在layer1網(wǎng)絡(luò)(即比特幣PoW網(wǎng)絡(luò))上做改進(jìn),首先是先增加小周期(時隙Epoch)用來快速調(diào)整出塊難度。

其次就是解決區(qū)塊打包等待新交易的問題,Starcoin的設(shè)計和選擇是明確的,在不用重新把新交易單獨處理的情況下,只通過叔塊監(jiān)測數(shù)據(jù)而調(diào)整出塊時間和挖礦難度,這樣是將PoW網(wǎng)絡(luò)演變成了一個動態(tài)吞吐網(wǎng)絡(luò),其規(guī)則像是在高速公路中添加了指揮員,隨時指揮車輛的速度,這樣的改變雖小,卻可以改善PoW鏈在擁堵時的表現(xiàn)。并且,筆者認(rèn)為,出塊時間隨網(wǎng)絡(luò)狀態(tài)可調(diào)整已經(jīng)成為新公鏈系統(tǒng)的重要特性之一。

在Layer2大展拳腳

Starcoin已經(jīng)改進(jìn)了比特幣、以太坊的PoW模型。而在layer2上,Starcoin設(shè)計為專注于解決資產(chǎn)轉(zhuǎn)移交換等過程中的擴(kuò)展性和性能問題。只是目前,layer2解決方案正處于“百花齊放,暫時無王”的階段,同時面對多個的layer2的解決方案,需要Starcoin設(shè)計團(tuán)隊明確需求后做出選擇。

目前,在Starcoin白皮書中并未展示其部分,其官方表示會在白皮書2.0版本中公布layer2方案。我們可以通過Starcoin對分層網(wǎng)絡(luò)功能的定義去推測其layer2的設(shè)計。

layer2和layer1的普通狀態(tài)關(guān)系

從邏輯上看,layer2是layer1狀態(tài)的遷移交互,因此首先來看Starcoin Layer1職能,詳情如下:

1. 通過增強(qiáng)的中本聰共識機(jī)制來盡可能的在保證安全的基礎(chǔ)上在Layer1擴(kuò)容,最大化Layer1網(wǎng)絡(luò)的利用率。

2. 提供資產(chǎn)的定義,發(fā)行,以及流轉(zhuǎn),以及l(fā)ayer1、layer2之間的流轉(zhuǎn)能力。

3. 給layer2提供仲裁能力,layer2可以利用Layer1的安全機(jī)制來保證自己的安全。

而這時layer2職能是:

1. 將Layer1的交易分流到layer2,Layer1不再關(guān)心layer2交易的細(xì)節(jié)以狀態(tài)的變更。

2. 提供監(jiān)督機(jī)制,layer2的不同角色之間可以互相監(jiān)督。

3. 提供證據(jù)保全能力,用戶如果對layer2的交易有爭議,可以到Layer1仲裁。

由此來看,首先Layer1、layer2間的互相交互必須保證實現(xiàn),因為這相關(guān)于Layer1、layer2資產(chǎn)流轉(zhuǎn)的需求以及有相互證明狀態(tài)有效的方式。其次,Starcoin還強(qiáng)調(diào)了layer2不同角色可以互相監(jiān)督。

Layer1、layer2間的狀態(tài)鎖定和證明間的交互

這樣的需求使用單個layer2技術(shù)是無法實現(xiàn)的。例如以太坊上的rollup,其兩層鏈間的雙向交互并不完善。例如零知識證明,雖可以保證兩層鏈間交互數(shù)據(jù)的安全性,卻無法在layer2的角色設(shè)計和數(shù)據(jù)可用性上發(fā)力。

所以可以推測的是,未來Starcoin一定會在layer2使用多技術(shù)組合方案,這在其公示出的layer2思路上得到一些證實,其抽象出一種通用的layer2方案模型如下:

1. 應(yīng)用的狀態(tài)(包括資產(chǎn))在Layer1和layer2之間安全的轉(zhuǎn)移。

2. 保證layer2的數(shù)據(jù)可用性。

3. 提供證明和提供仲裁機(jī)制。

上文說到,從邏輯上看,任何layer2方案都是Layer1的狀態(tài)遷移,詳細(xì)過程可能包含將狀態(tài)鎖定并在layer2重建等。因此,我們來看公示的模型,如果layer1和layer2都有統(tǒng)一的資源模型,那狀態(tài)遷移就不是難事,如果兩層鏈都用統(tǒng)一的框架搭建,數(shù)據(jù)可用性也不是問題,可能唯一遇到的問題會是合約遷移。而Starcoin很亮眼的是,其合約也是無狀態(tài)設(shè)計,因為合約并入了賬戶模型里,狀態(tài)已經(jīng)被確定了所有權(quán)。交互中直接訪問狀態(tài)即可執(zhí)行。

綜上,我們可以對Starcoin抱有足夠的期待,筆者認(rèn)為在layer2技術(shù)上,Starcoin的重點并不在改良技術(shù),而是對行業(yè)內(nèi)多類技術(shù)的組合與實現(xiàn),在Starcoin的基礎(chǔ)優(yōu)勢(例如賬戶、存儲模型、編程語言)上占據(jù)優(yōu)勢即可。

巧妙設(shè)計以為長遠(yuǎn)規(guī)劃

分層結(jié)構(gòu)以及對layer1、layer2的單獨設(shè)計,塑造了Starcoin的基本能力,而千變?nèi)f化的業(yè)務(wù)需要要求在一些標(biāo)準(zhǔn)化的設(shè)計上仍要具備優(yōu)勢。

這就要提及Starcoin一些有利于長遠(yuǎn)發(fā)展的巧妙設(shè)計。這些設(shè)計雖然討論不多,但卻是公鏈系統(tǒng)不可或缺的特性。

足以稱之為巧妙設(shè)計的,有3點,分別是更改賬戶模型和狀態(tài)存儲,支持多種驗證合法性的方式、雙累加模型,以及基于Move開發(fā)語言的適配。

1)更改賬戶模型和相應(yīng)的狀態(tài)存儲之后,Starcoin得以實現(xiàn)以太坊無法順利進(jìn)行的狀態(tài)計費計算。

對比以太坊來看,以太坊將賬號分為合約賬號和用戶賬號。合約賬號用于部署合約的代碼以及存儲合約的狀態(tài),用戶在某個合約中的狀態(tài)都保存到該合約賬號下,讀寫權(quán)限也由合約自己控制。這樣的設(shè)計自由度很高,但導(dǎo)致合約狀態(tài)的所有權(quán)不明確,從而容易帶來安全上的問題以及很難解決"狀態(tài)爆炸"問題。

Starcoin更改后的賬戶模型

這樣的設(shè)計帶來了以太坊擁堵情況下,Gas費的暴增以及復(fù)雜合約調(diào)用成本的居高不下。

因此,Starcoin 以太坊賬戶模型基礎(chǔ)上做了以下改進(jìn):

1. 廢棄了合約賬號,任意賬號都可以部署智能合約,部署的智能合約在當(dāng)前賬號下。

2. 通過對合約編程語言中狀態(tài)存儲機(jī)制的改變,讓智能合約的開發(fā)者很容易的把合約的狀態(tài)分散保存到該狀態(tài)所屬的用戶地址下,從而明確狀態(tài)的所有權(quán)。

通過這樣的改造,一方面增強(qiáng)了鏈對用戶狀態(tài)的安全保護(hù)能力,另外一方面也為狀態(tài)計費提供了可能。未來Starcoin會支持token支付gas,便于用戶和開發(fā)者使用。

2)從上文的討論中,我們還能看到多次提到區(qū)塊鏈驗證,足以證明驗證數(shù)據(jù)是區(qū)塊鏈運行剛需,在 Starcoin 的整體設(shè)計中,還提供了四個層面的數(shù)據(jù)校驗機(jī)制,這些機(jī)制,可以提供全場景下的數(shù)據(jù)驗證邏輯。

1. 交易可校驗:BlockHeader 包含一個全局交易累加器的根哈希,任何上鏈的交易都有對應(yīng)的全局證明。

2. 狀態(tài)可校驗:BlockHeader 包含一個全局狀態(tài)狀態(tài)樹的根哈希,保障了狀態(tài)可驗證。

3. 區(qū)塊可校驗:BlockHeader 包含一個 BlockBody 的哈希,用于校驗 BlockBody 中的數(shù)據(jù)。

4. 鏈可校驗:BlockHeader 包含一個全局區(qū)塊累加器的根哈希。任何一個區(qū)塊可以提供一個和當(dāng)前區(qū)塊的關(guān)系證明,不需要遍歷區(qū)塊即可驗證某個區(qū)塊是否是當(dāng)前區(qū)塊的祖先區(qū)塊。

Starcoin區(qū)塊頭中的的全局區(qū)塊累加和根哈希示意

在四個維度的數(shù)據(jù)校驗的基礎(chǔ)上,再配合Starcoin的合約和賬戶模型,「交易累加器」和「區(qū)塊累積器」組成了Starcoin獨特的「雙累加器」模型,這將成為Starcoin系統(tǒng)數(shù)據(jù)安全的基礎(chǔ)。也可以通過數(shù)據(jù)合法性的優(yōu)勢為很多業(yè)務(wù)服務(wù),例如跨鏈數(shù)據(jù)交互驗證。

3)為了更好地擴(kuò)展區(qū)塊鏈的能力,Starcoin 還將 Move 語言作為智能合約,以保證針對數(shù)字資產(chǎn)的編程更加安全、簡單。

Move 語言是Facebook穩(wěn)定幣項目Libra(已更名為Diem)的開發(fā)語言,該語言尤其重視安全性,主要由以下幾個方面保證:

1. 自底向上的靜態(tài)類型系統(tǒng);

2. 資源不可復(fù)制或者隱式丟棄;

3. 資源按用戶存儲,重新定義鏈,合約,用戶三方的數(shù)據(jù)操作權(quán)限;

4. 引入形式化驗證技術(shù),通過數(shù)學(xué)原理來證明合約的安全性;

更重要的是,Starcoin團(tuán)隊已經(jīng)通過 Move 語言建立了Move開發(fā)社區(qū),通過開源社區(qū),可以獲得開發(fā)技術(shù)、開發(fā)資源以及人才儲備和未來的生態(tài)項目孵化能力。

寫在最后

從Starcoin白皮書中詳實的設(shè)計,再到Starcoin已經(jīng)完成的技術(shù)進(jìn)展,綜合來看。 Starcoin除了未確認(rèn)的layer2外,其網(wǎng)絡(luò)從0到1的過程已經(jīng)完成了80%,其中最關(guān)鍵的要數(shù)layer1中對PoW共識的改進(jìn)。小小的改進(jìn),讓Starcoin可以堅持使用PoW,可以建立一個挖礦生態(tài)。

如果說挖礦生態(tài)是建立layer1的支柱,當(dāng)layer1和layer2組合使用后, Starcoin也會因layer2層對應(yīng)用的擴(kuò)展為DeFi、NFT的應(yīng)用土壤。

其原因有四:

其一,Starcoin有穩(wěn)固的礦工經(jīng)濟(jì)做支撐,網(wǎng)絡(luò)生命力遠(yuǎn)勝其他PoS網(wǎng)絡(luò)。

其二,layer1層的賬戶模型和存儲的設(shè)計讓 Starcoin Gas費更低。

其三,使用Move語言與PoW配合,足夠安全,又具備比特幣金融系統(tǒng)的基因。

其四,layer2的執(zhí)行讓Starcoin雖使用PoW但性能完全可以承載DeFi等應(yīng)用。

為了讓以太坊的性能達(dá)標(biāo),以太坊團(tuán)隊用了7年時間,才做好了PoW向PoS轉(zhuǎn)換的準(zhǔn)備,但切換共識還沒有真正進(jìn)行,信標(biāo)鏈的穩(wěn)定性還沒有經(jīng)歷合并后的考驗。如今,我們信任以太坊的DeFi、NFT,是運行在PoW鏈上的,用戶對PoW信任一定高于還未得到全面證實的PoS。

如此來看,筆者認(rèn)為,Starcoin將成為一個保持比特幣金融系統(tǒng)基因,又具備圖靈完備能力的安全智能合約運行平臺。這是一個可以承擔(dān)以太坊DeFi需求的平臺,也是比特幣信仰者曾經(jīng)暢想也可以在未來使用的平臺。

舉報 0 收藏 0 打賞 0評論 0
 
 
更多>同類資訊
全站最新
熱門內(nèi)容
網(wǎng)站首頁  |  關(guān)于我們  |  聯(lián)系方式  |  版權(quán)聲明  |  網(wǎng)站留言  |  RSS訂閱  |  違規(guī)舉報  |  開放轉(zhuǎn)載  |  滾動資訊  |  English Version