當前位置:
首頁 > 新聞 > 重塑區塊鏈的可擴展性:狀態和時間的分離

重塑區塊鏈的可擴展性:狀態和時間的分離

前言:關於區塊鏈的可擴展性,我們有各種共識機制的優化,比如Tendermint,也有分片模式等,而新的方案將時間和狀態更新進行解藕,提出了非同步處理的交易的解決方案,它能重新定義區塊鏈的可擴展性嗎?讓我們看看未來會發生什麼吧。本文作者Ryan Gentry,由「藍狐筆記」的「SIEN」翻譯。

未來的一兩年,會有很多智能合約平檯面市(ETH2.0、波卡、Dfinity、Near、Algrorand、Kadena、Spacemesh、Solana)每個團隊都在尋求與眾不同的擴展性策略。(藍狐筆記譯註:同時已發布也不少,比如Harmony、EOS等)。

不過,這些方法中的大多數都沒有解決拜占庭環境中分散式計算系統的一個基本問題:時鐘問題。為了取得共識,網路中至少51%的機器必須以相同的時間和相同順序執行同一交易。為實現這一點,機器需要就全局一致的時鐘達成一致。

讓許多互不信任的機器在拜占庭環境下就全局時鐘達成一致,「時鐘問題」是面臨挑戰的。一旦所有人就全局時鐘達成一致,交易排序就會變得簡單很多,因為每個交易都使用相同的全局時鐘加上時間戳。

在現代加密時代之前,在其他大規模網路中,時鐘問題已經凸顯出來,尤其是在無線通信領域。手機信號塔必須同時支持數以萬計的手機。這導致沒有足夠的帶寬來讓每部手機都按自己的無線電頻率進行傳輸。因此,電信公司需要「多重接入技術」,以在同一頻率上可以撥打多個電話。

二戰時期發明了碼分多址的技術,也就是CDMA。為了解決時鐘問題,CDMA要求每部電話用唯一密鑰對其數據進行加密,並與其他電話同時在幾個頻率上傳輸數據,依靠發射塔將組合信號分為單獨的呼叫。這種模式效率的優化與加密模式的複雜性同步。對於要實現大規模採用的網路來說,它必須支持廉價低端設備,而這種優化的速度顯得緩慢而穩定。

從2G網路誕生以來,通過實施時分多址(TDMA)技術,電信公司已經實現更快的效率提升,TDMA已經成為處理時鐘問題的標準解決方案。TDMA指定這些發射塔,將每個無線電頻率劃分為時間段,並把這些時間段分配給每個電話呼叫。

以此,發射塔為網路提供全局可用的時鐘。通過讓每個頻率支持多個同時進行的數據信道,並減少同一時間在相同頻率上多個電話廣播的干擾,這在有限的帶寬上大規模提升了可擴展性。

在這篇文章中,我將探索不同區塊鏈在拜占庭環境下如何應對時鐘問題。最後,我將論證,構建出最有效時鐘的區塊鏈將能成功分離時間和狀態,並能在安全和去中心化的方式下實現擴展,以支持數百萬計用戶。

有時鐘的去中心化共識

Google的Spanner資料庫是全世界性能最好的全球分散式資料庫之一,有18個實例,其所有交易處理都同步。它支持50,000 TPS,最終性在1秒以內。Spanner利用了Paxos共識演算法,該演算法首次發佈於1989年。Spanner是一個需要許可的可信資料庫。Paxos允許Spanner在面臨停電、伺服器故障、惡意錯誤以及無數其他故障時,依然可以運行。

當如今吞吐量最高的區塊鏈僅有21個實例,還在掙扎著實現5,000 TPS時,Paxos是如何實現這樣的性能的?Google有全職的工程師維護,定期到每個數據中心同步原子時鐘,達到很高的精度。

提供全局可用的可信時鐘允許對交易加上時間戳,這樣,每個實例可以不用按順序接收交易,但卻能以正確的順序來處理它們。這就是對時間和狀態進行了分離。因為每個實例都會更新狀態,而無須檢查其對等節點以確保它們以相同的順序處理相同的操作。

可以從Spanner中學到什麼?如果在非拜占庭環境下有全局可用的時鐘,那麼達成共識是很容易的。

不幸地是,當今的智能合約平台還有兩個額外的限制是Spanner所沒有的:

1.為保證平台有抗審查能力,成為驗證者是無須許可的

2.即使多達1/3的節點是惡意的,區塊鏈也必須保證用戶的資金安全

如果任何人都可以在全球的任何地方啟動驗證者實例,那麼,共識演算法的設計必須能夠包容不同的硬體和網路配置,以及必須管理惡意節點。此外,為了真正具有抗審查能力,不能信任帶外信息(也就是Oracle問題)。

在Paxos發明20年之後,有人想出了在無須許可的計算網路中如何就規範的交易順序達成共識。這個人就是中本聰,而解決的方案就是PoW共識。

PoW 時間鏈=時鐘

值得注意的是,中本聰的預發布比特幣代碼實際上將大家熟悉的區塊鏈數據結構稱為「時間鏈」。這一時間鏈設計為平均每10分鐘滴答一次(通過巧妙地將PoW、難度調整和最長鏈規則結合在一起),其中每次滴答都以更新全局狀態的交易區塊的形式出現。

在節點執行一個交易區塊之後,它會鎖定,不做任何狀態更新,直到它產生自己的有效新區塊,或接收到來自網路的有效新區塊。在PoW中,時間和狀態耦合在一起,總是一致行進。沒有狀態更新,時間就無法推進。

關於什麼讓區塊「有效」是一個爭論激烈的話題。交易格式和區塊大小在需要考慮的多個方面中只是其中的二個而已。然而,一個方面沒有爭議,有效區塊必須包含前一個區塊的哈希,便於網路知道將它放在時間鏈中的前一個區塊之後。

(區塊鏈中的每個區塊都包含前一個區塊的哈希,作為在它之後的證據)

時間鏈的目的是解決上面提到的要求:成為驗證者是無須許可的。驗證比特幣網路當前狀態是否有效的唯一方法是從創世區塊的狀態開始,執行從創世區塊到當前狀態的每個交易。時間鏈為新驗證者提供審計軌跡,它是通過證明區塊高度12中的交易發生並必須在區塊高度11的區塊交易之後執行來提供的。

因為區塊12必須包含區塊11的哈希,區塊12隻能在區塊11之後才能被創建。哈希的時間鏈產生邏輯的、單調的、雖然不規則且不是非常精細的時鐘,網路中的任何驗證者都可以獨立地驗證而無須任何帶外信息。

在開放、無須許可的環境中,生產這種全局可用且可信的時鐘,是中本聰最偉大的創新。因為全局狀態被鎖定,直到全局時鐘滴答一下,產生新塊。因此,可擴展性的數學很簡單:

吞吐量?[TPS] =?區塊大小[每區塊的txs ] /?區塊時間?[每區塊秒]

為了提高吞吐量,協議要麼增加區塊大小,要麼減少區塊時間。增加區塊大小不利於區塊生產者的去中心化,減少區塊時間會增加鏈分叉概率。

這是因為時間和狀態是耦合的,所以沒有辦法解決這個問題。

回到無線通信的例子,可以將這個問題跟CDMA進行比較。CDMA中,無線電塔有可以監聽的固定頻率帶寬,這類似於區塊生產者具有能處理的固定的區塊大小。

增加CDMA的可擴展性意味著創建更多複雜的編碼方案,以在有限的帶寬內容納更多的電話呼叫。這類似於Segwit隔離驗證,閃電網路,Schnorr簽名,它們是更複雜的編碼方案,可以提高性能。

比特幣有1MB的區塊,區塊時間為600秒,最小的交易大小為250B,理論上最大的吞吐量為7TPS。(藍狐筆記註:1024*1024/250/600=6.99,約等於7)

與Spanner相比,這意味著,比特幣的吞吐量降低了7000多倍,比TTF慢了3600多倍(因為它需要花費6個區塊的時間來達成概率上不可逆轉的最終性)。

顯然,比特幣還有改進空間。

PoS 時間鏈=更快的時鐘

比特幣的增長帶來了共識演算法研究的復興。CAP定理告訴我們,在網路分區的情況下,分散式資料庫系統必須在一致性(網路停止)或可用性(網路分叉)之間做選擇。中本聰的演算法是第一個無須許可、BFT共識演算法,所有這些演算法選擇可用性優先於一致性。在中本聰家族中有很多共識演算法。

Leslie Lamport的Paxos演算法是經典共識演算法家族的第一個,它更青睞一致性而不是可用性。

在Paxos和來自經典共識演算法家族的很多其他演算法中,參與共識的每個節點必須與網路中的每個其他驗證節點就每個狀態更新同步溝通。這使得通信複雜度為O(n^2)(其中n是驗證者數),這意味著每個狀態更新之間所需的時間會隨著驗證者的增加而呈指數級增長。

Jae Kwon和Ethan Buchman是最早從事20年經典共識研究的人,並將它跟加密經濟激勵結構結合,稱之為Bonded Proof of Stake,以安全地限制驗證者數。他們的工作成果是經典共識家族中第一個高性能、無須許可的BFT共識演算法:Tendermint。

Tendermint跟中本聰共識一樣,它捆綁了時間和狀態更新,因此,要麼增加區塊大小,要麼減少區塊時間,吞吐量才會增加。比特幣在2009年誕生時,大約10分鐘的區塊時間是合理的。不過,從那時到現在,帶寬已經實現指數級增長,這讓Tendermint可以實現將區塊時間縮短到幾秒鐘。

由於Tendermint更青睞一致性,分叉是不可能的。區塊時間可以減少,直到某個給定驗證者數的網路吞吐量達到系統性能瓶頸的極限。如今,Tendermint允許網路安全地將其驗證者數限制為100,這樣就可以過濾掉那些帶寬差的節點,並允許有更大的區塊。

Tendermint正在運行中。Cosmos Hub是第一個上線的Tendermint實例,它的區塊時間為6秒,區塊大小為150kb,允許最大的吞吐量為100TPS(假定單個交易250位元組)。然而,它才幾個月的歷史,它會迅速走向成熟。

一個Tendermint網路,如果5秒的出塊時間,5MB的區塊大小,它理論上可以達到4,000TPS(藍狐筆記註:(5*1024*1024)/250/5=4194.4,大約在4,000TPS),同時跟比特幣比較,在抗審查和無須許可方面犧牲最小,尤其是考慮到它有570倍的吞吐量增長,和720倍TTF的減少。

不幸的是,由於經典共識演算法的同步屬性,匹配的Spanner會對系統的抗審查屬性和無須許可屬性產生不利的影響。更大的區塊將不可避免地花費更長的時間在網路內進行傳播,並且驗證者也需要更長時間來進行驗證,這樣一來,出塊時間就設定了一個下限。

為提高時鐘速度,驗證者數量需要大幅減少,並且它們都需要直接連接到同一光纖網路。這將增加驗證者共謀的可能性,也增加了新驗證者的進入門檻,並使得光纖網路的運營商成為一個中心點。

區塊鏈共識的下一代演化為時間和狀態的解藕邁出了重要的一步,在吞吐量上獲得了巨大的提升,但同時也付出了巨大的成本。

分片 時間鏈=獨立時鐘

有了BPoS,Tendermint將抗審查性和驗證者數進行了解綁,這允許網路時鐘滴答一次的時間從600秒變為5秒,從而大大提升了性能。不過,在時鐘滴答之間,整個全局狀仍然是鎖定的,以維持全局一致的狀態。

緩解此問題的一種方法是將全局狀態分為一堆較小的片段,每個片段有自己的獨立時鐘,可以相互獨立推進交易。(藍狐筆記註:也就是分片)只要這些分片不需要彼此之間進行交互,每個分片的性能維持不變,並且所有分片的累計吞吐量會隨著分片數量的增加而線性增加。

Cosmos設想並行存在很多獨立的區塊鏈網路,它們之間能相互傳遞價值,但大多數交易在自己系統內進行。如果每個網路可以處理4,000TPS,有13個獨立的網路,系統整體就可以超越Spanner的性能,達到52,000TPS。然而,這種方式存在兩個問題:

1.PoS區塊鏈的安全性是通過獲得33%的質押代幣和批准無效交易的成本來衡量的。如果不是單個代幣供應,有13個單獨的網路,那麼獲取給定網路的33%質押代幣的成本將大大降低。這不僅遠算不上安全,而且還嚴重損害了區塊鏈的價值主張,其中安全性是網路價值的屬性。

2.與網路內傳輸相比,用於網路間傳輸的TTF增加至少4倍。網路必須來回通信以同步它們的時鐘,並且保證如果Alice在給Bob發送代幣,那麼,Alice的代幣在她的網路上被燒毀之前,Bob成功地在他的網路中收到價值。

雖然Cosmos構想了一個有很多獨立網路的世界,這些網路管理自身安全,但,以太坊2.0、波卡、Algorand等正在構建系統以解決上面提到的共享安全問題。(藍狐筆記註:Harmony的分片也在解決分片的安全問題,有自己獨有方案,具體可以參考:《Harmony區塊鏈的分片擴展之路》)

每個團隊的解決方案都存在細微差異,但基本架構涉及單個信標鏈,它為網路的其餘部分提供時鐘,同時,在跨分片間安全地對驗證者進行重新洗牌,由此,它們可以共享一個共同的安全池。跟Cosmos類似,增加吞吐量很容易:只需要增加更多分片。

(以太坊2.0的單鏈和分片狀態)

不幸的是,第二個問題,也就是網路間傳輸的高TTF問題,仍然存在。即使信標鏈可以提供全局時鐘,每個分片僅是周期性地將本地時鐘與信標鏈同步。為了讓Alice從分片A發送代幣給分片B的Bob,分片A的驗證者必須證明,在分片B中的驗證者挖出同等數量的代幣給到Bob之前,他們已經燒毀了Alice發給Bob的代幣。按照以太坊2.0的當前設計,該過程將花費6分鐘,是跨分片區塊時間的60倍。

雖然分片能有所幫助,但基本的擴展性限制依然是可預見的,因為每個分片的時間和狀態更新是耦合的。考慮到區塊大小和區塊時間,每個分片依然受制於Tendermint所面臨的相同的限制。

分片類似於TDMA的某些元素;狀態被劃分進入有自己獨立時鐘的單獨分片,其方式跟發射塔將其帶寬劃分為獨立無線電頻率和時間段的方式相當。這種做法好處明顯,但並沒有充分利用,比如跨分片存在延遲也能證明這一點。

但是,如果在一個無須許可的環境中將時間和狀態更新完全解藕呢?

將時間和狀態分離

迄今為止,我們討論了中本聰如何創建時間鏈數據結構,為比特幣網路提供一個去信任(trustless)的時鐘;討論了Kwon和Buchman如何將BPoS應用到Paxos共識演算法,以安全地減少驗證者數並加速Tendermint的網路時鐘;也討論了將網路劃分為多個具有獨立時鐘的分片,這可以極大提高吞吐量(只要跨分片交易最小化)。

然而,這些進展的每一個,它們的狀態更新和時間仍然是耦合的,狀態更新僅與其網路時鐘的滴答一起發生,並且這對如下方面產生了根本限制:吞吐量、用於抗審查的最終性時間、無須許可的計算網路。

將時間和狀態分離需要全局可用的時鐘,它要快速、精確以及信任最小化。有了這樣的全局時鐘,狀態更新可以持續且非同步進行,正如在Spanner做的那樣。只要每個人都同意全局時鐘,並且交易加上時間戳,交易就可以在網路間持續流動。

Solana通過將基於哈希的時間鏈與狀態更新進行分離,為其智能合約平台構建信任最小化時鐘。它不是將每個區塊的哈希鏈接在一起,而是其網路中的驗證者持續在區塊內對這些哈希本身進行哈希。這種機制,稱為PoH(Proof of History),它為網路中的所有節點產生全局可用、信任最小化的時間鏈。

(PoH如何將標準化的時間戳編織到區塊鏈中)

獨立時間鏈的存在允許領導者在收到時間戳交易時儘快地廣播給委員會。時間戳提供規範順序,而不是由區塊生產者任意確定的順序。雙花問題現在很容易解決,因為整個網路能夠就交易先後順序達成一致。

這改變了一切。

為驗證時間推移,不是強迫驗證者每6-600秒達成共識,Solana中的驗證者能夠實時向它們的對等節點持續發送狀態更新。

不是需要等待收聽來自其他每個節點的確認(其他的區塊鏈都是如此),Solana可以使用新型的扇出(fan-out)機制來保持通信的複雜度為O(log(n))?而不是O(n^2),它被稱為Turbine,也是受BitTorrent的啟發。這使得Solana能夠在單一全局狀態下處理超過50,000TPS,同時具有快速的最終性,還也無須分片。

這意味著,驗證者池大小跟Tendermint相當,數量級為100-1000個,但是允許鏈分叉。需要積極的分叉管理政策,以確保只要鏈分叉出現系統就會快速合併到單一鏈上,這是非同步進程和持續可用性的必要權衡。

將無線通信類比為完整的循環,PoH對於區塊鏈的意義,就好比TDMA對蜂窩網路的意義。將Solana的1000個驗證者看作為無線電發射塔,利用它們的同步時鐘來將其帶寬細分為各個時間段。

他們持續不斷地收到最新的交易,每個交易都有發送者附加的簽名過的PoH哈希,並將其轉發給鄰居節點,它們可以立即使用這些PoH哈希對這些交易進行排序。

由於領導者的輪換是基於全局時鐘的,每個領導者選擇一組有序的交易來執行,並將「entry條目」八卦給網路。驗證者返回他們對每個「條目」的投票,當他們看到2/3的多數驗證者贊同時,確認交易的最終性。

網路作為一個整體,持續不斷地處理交易,且以很高的容量處理相同順序的交易。但是,每個驗證者都是獨立處理的。相比於其他區塊鏈,這是一個微妙而深刻的改變。在Solana,驗證者永遠不會停止處理交易,且不管其網路條件和共識如何。

還有其他不是很重要的相關問題,例如快速鏈增長、新的編程模型、時間鏈的不偏性、並行性等,這個新設計還有很多超出本文範圍的問題,這些在Solana文檔中都有解答。當前Solana在5個大洲的200個驗證者構成的測試網路上,處理交易超過50,000TPS,平均TTF為1.5秒。這基本上可以媲美Spanner,不過,它更有實質意義的去中心化。

在一個信任最小化、無須許可的世界計算機中達到這種水平的性能是可能的,這是因為Solana將時間和狀態分離。Solana網路的全局可用時鐘允許每個節點更新狀態時無須跟其他任何節點通信,就像Spanner一樣。

重塑可擴展性

儘管加密社區寫了不少關於可擴展性和共識模型的內容,但還沒有人專門探討分散式時鐘問題。經過多年的PoS研究,最終將Tendermint BPoS作為最佳成果,並且很多分片方案基本上圍繞信標鏈 狀態分片架構,而允許非同步狀態更新的有顆粒度的時間鏈將為非分片系統提供最好的性能,相對於一致性,這些系統更青睞可用性。

提供全局可用時鐘允許Solana團隊能夠利用40多年的分散式系統研究,否則這些研究將無法應用。像OCC(Optimistic Concurrency Control,樂觀並發控制。藍狐筆記註:又名樂觀鎖)這樣的概念,是在1981年發明的,多年來一直應用於大型計算項目,但當時間和狀態必須同時推進時它就無法被應用。

從1995年以來,用GPU的並行處理一直存在。但直到Nvidia於2007年發布CUDA開發環境之前,它基本上僅限於顯卡。然而,無法被區塊鏈系統充分利用,區塊鏈系統悲觀地鎖定所有狀態,只有正在處理交易的賬戶除外。

理解時間的流逝對於理解許可的和無須許可環境下的分散式系統的性能至關重要。時間就是一切,通過PoH(Proof of History)的形式來編碼時間流逝的新方法,無須許可的系統能夠媲美經過驗證的中心化的雲計算提供的性能。

------

風險警示:藍狐筆記所有文章都不構成投資推薦投資有風險,投資應該考慮個人風險承受能力,建議對項目進行深入考察,慎重做好自己的投資決策。

(作者:藍狐筆記,內容來自鏈得得內容開放平台「得得號」;本文僅代表作者觀點,不代表鏈得得官方立場)

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 鏈得得APP 的精彩文章:

OKEx將取消點卡抵扣幣幣、槓桿交易手續費
數字貨幣市場整體下行,MMOCoin單日漲幅為200.05%

TAG:鏈得得APP |