區(qū)塊鏈可擴展性的那些技術(shù):側(cè)鏈、分片、子鏈等!
如果你經(jīng)常瀏覽區(qū)塊鏈相關(guān)的信息,你一定知道比特幣交易開始變得擁堵,在社區(qū)中對于是擴容還是側(cè)鏈的討論喋喋不休。你肯定也知道就連以太坊也因《CryptoKitties》這款養(yǎng)貓游戲沒能逃掉網(wǎng)絡(luò)擁堵的命運。
擺在我們面前的,是區(qū)塊鏈技術(shù)發(fā)展到現(xiàn)在終會遇到的一個關(guān)鍵瓶頸--區(qū)塊鏈(特別是公鏈)想要真正做到更深度化的應(yīng)用和普及,關(guān)鍵就是要解決交易的吞吐量和交易的速度問題,這在區(qū)塊鏈中也被稱作”可擴展性“。
幸運的是大多數(shù)團隊都很有預見性的提出了相應(yīng)的解決方案,并已開始付諸實施,只不過作為一名非區(qū)塊鏈技術(shù)領(lǐng)域的萌新小白,在面對側(cè)鏈、閃電網(wǎng)絡(luò)、RSK、DAG、分片(Sharing)時經(jīng)常會搞得一頭霧水,不知道是什么意思,更不知道它們之間是一個什么樣的關(guān)系--今天簡單做了一個梳理,希望大家至少可以從宏觀上比較清楚的了解對于區(qū)塊鏈可擴展性上的問題,各團隊是在如何解決。
如前邊提到,區(qū)塊鏈可擴展性的核心是為了解決交易的吞吐量和交易的速度兩個方面,核心指標通常用TPS(transactionper second)來表達,即每秒執(zhí)行的事務(wù)數(shù)量。比如比特幣TPS是7,以太坊TPS是30-40等。
從現(xiàn)有技術(shù)實現(xiàn)的角度來說,基本分為三種,但因一些實現(xiàn)的技術(shù)角度和細節(jié)不同,各團隊給出的命名也不一樣。我給出下面這張圖你可能就會有一個比較清晰的概念了:
區(qū)塊鏈可擴展性解決方案
一.側(cè)鏈
側(cè)鏈(SideChains)因為最早是這對比特幣提出,所以這個概念后期也更多的是在描述比特幣相關(guān)的擴容,它的定義是:可以讓比特幣安全地從比特幣主鏈轉(zhuǎn)移到其他區(qū)塊鏈,又可以從其他區(qū)塊鏈安全地返回比特幣主鏈的一種協(xié)議。
我們以閃電網(wǎng)絡(luò)(Lighting Network)為例:它指的是A和B兩人可以把比特幣放到一個多重簽名錢包中鎖定(鏈下),然后進行交易簽名更改雙方各自能取回的比特幣數(shù)量。交易參與方可以隨時關(guān)閉交易通道,最后一筆經(jīng)過簽名且包含最新余額動態(tài)的交易最終將會被廣播并寫入比特幣區(qū)塊鏈(回歸鏈上)。
另一種情況是涉及更多的第三方,比如已知C想和A交易,但雙方?jīng)]有建立支付通道,不過A和B、B和C都各自建立了支付通道,這時C就可以通過B和A達成交易,B其實在整個交易過程中充當著一個網(wǎng)關(guān)的角色。整個過程實際上不需要在主鏈確認,因為都是幾方之間倒來倒去的”數(shù)字游戲“,因此交易速度會非常迅速。只有當關(guān)閉交易通道時,才會最終確定各自的余額并寫進主鏈區(qū)塊。
二.分片
分片(Sharing)其實是一種傳統(tǒng)數(shù)據(jù)庫的技術(shù),它將大型數(shù)據(jù)庫分成更小、更快、更容易管理的部分,這些部分叫做數(shù)據(jù)碎片 (Vitalik Buterin稱它為宇宙Universes) ,不過應(yīng)用到區(qū)塊鏈當中會相當復雜。
以太坊的分片,簡單來說就是將區(qū)塊鏈網(wǎng)絡(luò)劃分成若干能夠處理交易的較小組件式網(wǎng)絡(luò),以實現(xiàn)每秒處理數(shù)千筆交易的支付系統(tǒng)。
設(shè)置一個區(qū)塊鏈,在這個區(qū)塊鏈系統(tǒng)中有一百個各自不同的宇宙,每一個宇宙都是一個獨立的賬戶空間。使用者可以在某個宇宙中擁有一個賬戶,該用戶發(fā)起的交易也只會對交易相關(guān)的宇宙產(chǎn)生影響。--Vitalik Buterin在BeyondBlock區(qū)塊鏈技術(shù)交流大會的演講
……是否似曾相識?聽上去是不是和側(cè)鏈很像?
是的,如果說側(cè)鏈是通過“外部嫁接”到主鏈,那分片就是將主鏈進行“內(nèi)部分割”,顯然后者的實現(xiàn)難度要比前者復雜的多!也因此很多人都認為V神把事情復雜了……其具體為何要如此實現(xiàn)V神自有他的道理,不在本文討論,但基本可以確定的是,即使是分片,也會為效率犧牲一定程度的“去中心化”。順帶一提,EOS也有分片,叫Region。
三.子鏈
說到子鏈,首先繞不開的一個話題就是墨客MOAC鏈,MOAC--即Mother Of All Chain的縮寫,中文翻譯成“眾鏈之母”,或是“女媧鏈”。這是一個主網(wǎng)已經(jīng)上線了的第三代公鏈,它率先突破異步合約調(diào)用、合約分片處理和全領(lǐng)域跨鏈等當前業(yè)界難題,對合約的處理速度遠遠優(yōu)于當前譬如以太坊等智能合約平臺。 子鏈的出現(xiàn),是一個革命性的變革,如果你考慮墨客MOAC的生態(tài),它就好像一個開發(fā)用的GitHub,那么子鏈,可以變成一個個功能庫,讓子鏈之間可以互相分享。而各種提供服務(wù)的子鏈,因為服務(wù)的不同,必須有角色細分。比如提供ipfs的子鏈,重點在存儲;提供zksnarks的子鏈,重點在運算速度。那么怎么可能用同樣配置的scs來做不同的子鏈支持基礎(chǔ)呢?怎么可以用同樣的共識算法,同樣的區(qū)塊速度等等,來做不同的事情呢?所以你需要專業(yè)人士做專業(yè)的事情,那么子鏈,就是可以根據(jù)你不同的需求來定義與創(chuàng)建。
當然,子鏈和側(cè)鏈的區(qū)別也很大,一方面?zhèn)孺準菫樾∥⑥D(zhuǎn)賬設(shè)計的,不可能提供墨客鏈這種功能庫,互相調(diào)用的功能,另一方面,側(cè)鏈可以直接打垮,子鏈你無法直接攻擊,必須攻擊母鏈。雙花肯定不會出現(xiàn),因為母鏈這里解決全局一致性,主要就是底層vnode的規(guī)模受到幣價的挖礦利潤限制,但是scs的規(guī)模,可以在應(yīng)用推動下,無限擴展。墨客MOAC就是解決了V神和BM的爭論中,維持了去中心化的安全性,又提升了可擴展性能力。 實事上,墨客是以太坊的補充(complement),是兼容以太坊的。在V神和BM的爭論中,V神批評EOS過于中心化是正確的,而BM批評以太坊缺乏擴展能力也是正確的。V神尋求用分片來解決問題,也是正確選擇。墨客,其實就是落實了V神幾年想做而沒有做到的事情(當然還有更多的創(chuàng)新),并且證明了可以不需要犧牲去中心化而解決擴展性問題。
以上就是關(guān)于可擴展性相關(guān)技術(shù)的一些簡單概括和介紹,實際應(yīng)用的技術(shù)細節(jié)和命名方式可能會有很多,但從目前來看,大體都脫離不了側(cè)鏈、分片、DAG、子鏈的范疇。
從目前來看,無論何種技術(shù)的解決方式都是在從“更高的效率”和“去中心化”二者之間尋找一個平衡,想要效率就要中心化,想要安全就要去中心化,也因此,現(xiàn)有解決方案也都在引發(fā)一些“不是去中心化”的質(zhì)疑聲。
其中爭論最激烈的就是比特幣Core派和BCH派之間,Core派的解決方案是側(cè)鏈,BCH就抨擊側(cè)鏈最終會淪為中心化的銀行。BCH的解決方案是大區(qū)塊,Core派就抨擊BCH本身就是以礦霸為核心的中心化代表。