簡介:
如今,區塊鏈革命正與誕生於20世紀90年代的網際網路展開較量。Harmony公司的工程師們投入了數千個小時在區塊鏈研究和開發上,終極目標就是以更安全和去中心化的方式取代現有經濟體系。
然而,儘管區塊鏈技術擁有著堪稱巨大的潛力,但比特幣、以太坊和其他大多數傳統的分散式區塊鏈網路仍受到擴容這一根本問題的困擾。
區塊鏈擴容問題決定這一嶄新的技術世界能否真正變成現實,但可擴容本身又的確存在著難以突破的技術瓶頸,這一瓶頸包括技術自身的侷限性,區塊大小,響應時間以及費用等等。
比特幣的擴容問題與它本身技術的侷限性有關。當處理一個新交易時,每個節點都會在賬本記下相應資訊。如此一來,隨著支付歷史資訊的增多,區塊鏈體積也隨之增加,導致小節點無法正常執行。
另一擴容問題則是區塊的體積。最初,比特幣區塊鏈中每個區塊的容量為1Mb,每個區塊大約能儲存2020筆交易資訊。隨著比特幣熱度的增加,近年來比特幣的交易數也成倍增加,導致比特幣網路需要10分鐘才能確認一個區塊,為了驗證一筆未確認交易,通常需要等待很久。
另外,由於挖礦所需算力的日益增長,交易費用自然也水漲船高。
目前,許多新的區塊鏈專案正試圖提高交易處理速度(吞吐量),但像EOS和TRON中的dPoS,Quarkchain中的Rootchain等新解決方案都必須犧牲部分關鍵要素,譬如去中心化和安全性,才能顯著提升效能。
這樣的系統儘管執行過程十分迅速,但只能算是半中心化的系統,喪失了區塊鏈的核心理念——去中心化。
分片作為區塊鏈擴容的解決方案,可顯著提升網路效能且不損失安全性和去中心化。
Harmony透過在區塊鏈中引入狀態分片來解決區塊鏈擴容問題——由於每個節點只需執行和儲存一部分割槽塊鏈資料就可以完成交易,交易處理工作量被分攤,由此大大提高了區塊本身的可擴充套件性。
甚麼是狀態分片? 假設有三個節點A、B、C和一個有待驗證的資料T,相比A、B、C每個節點都需要儲存和驗證整份資料T,狀態分片則將資料T分為三個部分:T1,T2和T3。 之後,A,B和C將分別儲存和驗證一個部分。不難想像,這樣的網路執行效率會成倍增長。
一個更簡單的解釋是——如果將美國劃分為不同的州, 雖然每個州(也就是分片)是美國(Harmony網路)的一部分,但它們都有自己的特定法律,邊界和人口子集,只是通用一種語言和文化,是整個國家的一部分。
舉以太坊為例,以太坊網路中的所有節點儲存著區塊鏈的所有狀態,包括賬戶餘額,資料和智慧合約程式碼。然而隨著網路規模不斷增加,gas費用越來越高,交易確認時間也越來越長,導致以太坊的實用價值大打折扣。
以太坊的效能上限是一臺計算機的處理速度
以太坊的效能無法隨著節點數量的增加而增加,相反,甚至還略有降低。分片則提供了突破這一技術瓶頸的捷徑:將子節點組成分片,每個分片分別處理不同交易,這樣系統就能同時處理許多交易,吞吐量自然顯著提高。
Zilliqa採用了網路分片的方案,這一方案允許將網路劃分為更小的節點群,每個節點群都可稱之為分片。簡單來說,假設一個有1000個節點的網路,將網路劃分為10個分片,每個分片由100個節點組成,如果每個分片每秒能處理10筆交易,那麼所有分片加在一起可以每秒處理100筆交易。
但在Zilliqa中,每個節點必須儲存整個區塊鏈的狀態才能成功處理交易,當區塊鏈體積逐漸增大,要儲存完整的賬本會變得越來越困難,對節點裝置的要求會快速提高,交易成本也隨之增加。
因此,Harmony使用的狀態分片無疑提供了一個更好的選擇——每個分片儲存一部分割槽塊狀態。
Harmony如何避免1%攻擊:
雖然分片技術顯著地減少了交易完成時間,提高了交易處理量,但現階段,分片技術落地的最大障礙仍然是其潛在的安全問題,即“1%攻擊”。
在採用PoW的區塊鏈中,例如比特幣,當攻擊者擁有網路的大部分雜湊算力時,“51%攻擊”就有可能發生。一旦發生,攻擊者就可以“雙花”、索取所有獎勵,阻止交易等。
只是,想要擁有整個網路的51%或者更多的雜湊算力就需要大量的電力和裝置。目前,在比特幣網路上實施51%攻擊的成本是80億美元,每天電費則是1280萬美元。
假設一個區塊鏈網路被分成一百份,也就是一百個分片,每個分片擁有1%的雜湊算力。那麼,本質上攻擊者只需要將他的雜湊算力集中在某一單個分片上,就可以實現對該分片的控制,這無疑會影響到整體網路的安全性。而同樣的問題也適用於PoS系統。
防止此類攻擊發生的一種有效方式是阻止攻擊者將他們的雜湊算力或代幣權益集中在某一片分片上。
透過對PoS代幣權益進行切分和隨機抽樣分片,Harmony就能有效地消解攻擊者對某一分片所集中的權益,從而消除1%攻擊的可能性。
Harmony採用了全新的權益證明(PoS)方式去選擇驗證者
目前基於分片的區塊鏈專案比如Zilliqa或Quarkchain,使用了PoW來防止Sybil攻擊,但它們依然容易受到1%攻擊。 相比之下,Harmony則在選擇一組共識驗證者組成一個分片時,透過可驗證隨機函式(VRF)和可驗證延遲函式(VDF)的雙重安全演算法隨機選中驗證者(即節點),並均勻分配到每個分片中。這樣某個攻擊者就很難集中資源攻擊單一分片,即實施1%攻擊。
在Harmony的PoS設計中,區塊驗證者需要抵押一定數量的代幣,抵押的代幣數量將決定它會得到投票權數量。
驗證者投票權會被隨機分配到某一個或多個分片中,在預設好的一個週期(假設為一天)內,驗證者可參與這一個或多個分片的共識,每個週期結束後,投票權將重新計算並分配。這個重新洗牌的過程能夠極大增大安全性,防止惡意攻擊者逐漸瓦解和賄賂單一分片內的節點。
Harmony的PoS機制能夠確保:
– 攻擊者無法選擇自己想要加入的分片
– 攻擊者無法提前知道他們會被分配到哪片分片
如果每隔一段時間就重新洗牌,一個節點把分片的狀態下載下來需要多長時間?
當一個驗證者加入一個新的分片時,他們需要快速同步分片的資料才能驗證新的交易。
傳統下載區塊歷史記錄的過程,需要許多天去完全同步所有的歷史資訊,而在Harmony的快速同步演算法中,節點只需要下載此分片的區塊頭和上一週期的區塊資料即可開始驗證新交易,因此,節點會在驗證者重新分配的過程中迅速做好準備。
Harmony的跨片通訊:
當交易被分配在不同的分片中時,分片之間的高效溝通變得至關重要。如果分片間的溝通困難,如同一座座孤島,那整個分片系統就將失去意義。
舉個例子,假設要在一個分片協議網路中預定一張火車車票和一家酒店,火車票交易在一個分片裡,酒店交易則在另一個分片裡,對於使用者來說,想要的結果是車票和酒店同時預訂成功,而不是一個成功,另一個失敗。
Harmony支援跨分片交易,分片之間不僅可以相互通訊,還能同步執行垮分片操作。
當每個新區塊被建立時,透過一個Kademlia路由協議將區塊鏈頭髮送到信標鏈。在這種方式中,Harmony網路中的每個節點都儲存了一張包含所有節點距離的路由表。
當一個來自分片A的訊息要傳送到分片B時,分片A中的節點將查閱路由表,並將訊息傳送往距離最近的節點, 這種方法可以確保資訊只經過最短路徑傳遞,並以最快的方式抵達目標分片。
與Zilliqa和Hashgraph等專案所使用的普通“Gossip廣播”相比,Kademlia路由協議從底層機制上減少了整體網路負載。 例如在Kademila設定中,擁有10,000,000個節點的網路內,任何子節點之間的通訊,最多隻需要大約20個傳播跌點(hops)。
Harmony與其他分片專案對比
注:Harmony使用的是拜占庭系列的共識演算法,這種演算法假定誠實節點的數量要達到2/3,才能保證系統的正確性。在PBFT(實用拜占庭容錯)的基礎上,Harmony調整了訊息廣播方式,使其比PBFT更快更有效,並將這種演算法命名為快速拜占庭容錯(FBFT)。
作為早期分片專案,Zilliqa的分片方案僅限於網路和交易的分片。每個節點需要儲存所有區塊鏈資料的需求也讓Zilliqa對小節點並不友好。此外,基於PoW的簡單分片方案也讓Zilliqa更容易受到1%攻擊。
相比之下,Hamony協議裡則採用了在研究和實踐中都被驗證過的技術突破,基於PoS的安全節點分配和狀態分片技術,讓整個區塊鏈系統更安全的同時,也實現了真正的去中心化。