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