詳解!除了閃電網絡,還有什麼方式能夠實現區塊鏈擴容?

從目前來看,無論何種技術的解決方式都是在從“更高的效率”和“去中心化”二者之間尋找一個平衡,想要效率就要中心化,想要安全就要去中心化。目前出現在大家視野裡的O(1)共識算法有off-chain(鏈下通道),sharding(分片),DAG(有向無環圖),multi-chain(多鏈)等等,每種算法都有其特點和長處,本文將解讀這類橫向擴展的解決方案。

【鏈下通道】

off-chain這個概念來自比特幣社區,2013 年 12 月提出,後來形成了我們熟悉的鏈下鏈的一套體系,也即側鏈。比特幣區塊在一直不斷運行,萬一出錯了涉及的資金量太大了。這個是不被允許的。這種情況下,誕生了側鏈。本質上來說,側鏈機制——一種使貨幣在兩條區塊鏈間移動的機制,它允許資產在比特幣區塊鏈和其它鏈之間互轉。降低核心的區塊鏈上發生交易的次數。

針對比特幣的側鏈項包括是最近大熱的閃電網絡,它的運行機制非常簡單:假設A打算給B轉100BTC,那麼A必須要開通跟B之間的支付通道(State channel),並先抵押最少100BTC。A抵押後,就可以開始給B轉賬了。A可以隨心所欲的今天給B發1BTC,明天再給B發2BTC,都不打緊的,反正是Off-Chain交易,完全不收取任何 交易費。閃電網絡在於給A和B之間提供這種支付通道,即Off-Chain(鏈外)交易通道。

那麼,如果A或B想把BTC餘額提出來,並停止和對方的轉賬交易,怎麼辦?此時就需要關閉A和B之間的支付通道,並利用閃電網絡的一系列協議進行清算了。

簡單總結一下閃電網絡的工作方式:

a. 建立支付通道;

b. 需要抵押。

所以閃電網絡的適用情況

a. 資金頻繁往來;

b. 雙方之間的交易金額小於抵押金額。

例如大交易所之間使用閃電網絡就特別合適,資金你來我往的,速度快先不說,光交易費就可以省出一大筆。如果是沒什麼聯繫的兩個人,要交易的話,就必然會橫跨數個不穩定state channel或者要經過一個大的中繼者,這個中繼者可以是具有公信力的,也可能突然跑路,所以既然這樣為什麼大家不繼續愉快地使用支付寶呢? state channel還有一個問題,剛才說到的保證金,如果持續從一方發送資金到另一方,保證金就會越來越少,最後被迫關閉,這也是一種不穩定因素。

最後,總結一下目前off-chain存在的問題:

a. 中繼過於中心化問題;

b. 在線狀態不穩定問題;

c. 抵押資產問題。

【分片】

分片又稱Sharding,它首先出現在數據庫領域。起初,所有的數據都放在一臺服務器上。雖然不同的用戶訪問的是不同的數據,但是隻有一臺服務器提供服務。那麼人們想到最容易的改進辦法就是:將不同數據放在不同的服務器上,此時,訪問不同的數據就會由不同的服務器提供服務,從而突破單節點數據服務器I/O能力限制。簡而言之,分而治之就是分片的核心思想。

以太坊的分片,簡單來說就是將區塊鏈網絡劃分成若干能夠處理交易的較小組件式網絡,以實現每秒處理數千筆交易的支付系統。

設置一個區塊鏈,在這個區塊鏈系統中有一百個各自不同的宇宙,每一個宇宙都是一個獨立的賬戶空間。使用者可以在某個宇宙中擁有一個賬戶,該用戶發起的交易也只會對交易相關的宇宙產生影響。是不是似曾相識?聽上去是不是和側鏈很像?是的,如果說側鏈是通過“外部嫁接”到主鏈,那分片就是將主鏈進行“內部分割”,顯然後者的實現難度要比前者複雜的多!也因此很多人都認為V神把事情複雜了……即使是分片,也會為效率犧牲一定程度的“去中心化”。順帶一提,EOS也有分片,叫Region。

分片技術是區塊鏈的一個令人興奮的技術,它讓我們看到了希望,它可以在程度非常小的影響去中心化和透明度的情況下解決擴容問題。然而,毫無疑問的是,分片技術,尤其是狀態分片,在設計層面和實現層面都是非常困難的。這也是以太坊一直想走卻沒有完全走通這條路的原因。

【多鏈】

多鏈,即拋棄了“一鏈治所有”的傳統方案,採用“多鏈分而治之”的新方案重新設計了一個保障每個合約都能正常運行的公鏈。這一創新極大程度上簡化了架構,降低了數據處理壓力,確保一條鏈上流量激增不會影響到另一條鏈的效率,在鏈上進行的任何業務都不會收到其他業務干擾,有效實現了資源隔離。

多鏈的代表項目有COSMOS、EKT、Polkadot等項目。

以EKT多鏈技術為代表,EKT的中心思想是設計一個社區的機制,讓開發者可以輕易的開發一個DAPP,其他的交給EKT來處理。EKT 提供了一套底層的區塊鏈機制,其他的區塊鏈項目可以很容易的基於 EKT 的主鏈代碼部署一套自己的主鏈。在EKT上編寫的區塊鏈項目將無需過於擔心安全性問題,因為每一個接口都是非常簡單並且在許多條並行主鏈上部署和運行的。部署主鏈時可以靈活的發行自己主鏈的代幣以及選擇共識算法。新部署的主鏈也可以加入到 EKT 通用積分的整個生態,共享 EKT 生態的用戶資源,代幣也可以和EKT 主幣以及其他主鏈的代幣進行交換和流通。

在EKT中,使用公私鑰加密和路由策略的機制實現拜占庭容錯,EKT主鏈上每個節點的公鑰都是公開的。這是一種兼顧效率、安全和去中心化的解決方案。Token現在一般被定義成一個智能合約,但如果把它變成一個預先定義好事件的“對象”,這個“對象”可以有自己的參數(比如總量、共識機制等等),則會帶來更好的安全體驗。接受token的地址可以有兩種:普通的用戶地址和合約地址,合約地址收到token之後可以執行非圖靈完備的合約語言,進行簡單的狀態計算和token轉移。EKT把Token鏈和DApp鏈分開,將來在很大程度上能規避之前說到的分片,和offchain遇到的困境。

【有向無環圖】

DAG 是有向無環圖(Directed Acyclic Graph)的縮寫,這是一種有頂點和邊的圖結構。它可以保證從一個頂點沿著若干邊前進(有向),但永遠不能回到原點(無環)。在IOTA這個項目中,提到的Tangle(纏結)就屬於DAG的一種數據結構,真正意義上講,IOTA已不屬於“區塊鏈”,你可以理解為如果比特幣、以太坊使用的是底層數據結構是BlockChain,而IOTA的底層數據結構則是DAG,但它依然屬於“去中心化”的範疇。

有向無環圖(Direct Acyclic Graph或DAG)是近些年來區塊鏈項目的技術熱點之一。許多業內人士認為,這項技術有可能在根本上解決區塊鏈的擴容問題,因此相關的項目都有較高的熱度。然而,由於其更高的技術門檻和開發難度,採用這項技術的區塊鏈項目仍為少數,在國內更是鳳毛麟角。

傳統的線性架構的區塊鏈,在維持良好的多中心化與安全性的前提下,在底層上的吞吐容量有根本的瓶頸問題。因此這些區塊鏈項目的擴容方案,一種是以犧牲多中心化的記賬方式來換取整個鏈的吞吐容量,一種是依賴側鏈、分片等第二層(Layer 2)技術來處理小額交易。要根本性地獲得更好的底層鏈效率,需要採取與完全不同的架構。DAG就是較被看好的潛在挑戰者。DAG相對於傳統線性區塊鏈的優勢是非常明顯的,主要在於可延展性和交易吞吐量上。


分享到:


相關文章: