用百萬筆每秒,表示區塊鏈性能?錯!

區塊鏈大本營2018-05-20 18:15:45

當被問及區塊鏈的性能時,相信大部分人都會用一萬筆每秒或者十萬筆每秒,這樣具體的數字來表示區塊鏈的性能。井通科技的CTO楊建新說到,其實這是沒有意義的,因為區塊鏈的性能具有整體的結構,不能僅僅通過數字來表示。


此外,楊建新介紹了區塊鏈的性能現狀,深刻剖析了目前區塊鏈性能遇到的困境,以及如何通過四大優化方案來破除困境。讀完此文,相信你對區塊鏈性能會有一個全面的認識。


井通科技CTO 楊建新

作者 | 楊建新

整理 | 科科

 

以下為楊建新在CSDN區塊鏈大本營、柏鏈道捷(PDJ Education)以及極客幫創投聯合舉辦的第六期區塊鏈技術開發者沙龍上的發言內容,區塊鏈大本營在不改變原意的情況下作了精心的整理。

 

大家好,今天下午非常開心,可以跟大家一起交流有關區塊鏈性能結構方面的東西。我會從以下三個部分來介紹:

 

第一部分,主要從區塊鏈的性能定義、區塊鏈的性能現狀是什麼樣、現在遇到哪些性能瓶頸這幾個方面來介紹。

 

第二部分,介紹有哪些性能優化的方案。

 

第三部分,介紹我們自己的區塊鏈項目在性能優化方面的一些解決方案。


區塊鏈的兩個性能指標

 

第一個部分,關於區塊鏈的性能,有兩個指標來衡量。

 

一個指標是響應時間

 

因為區塊鏈是集交易和清算於一體的系統,所以響應時間其實包含兩部分,一部分是交易所需時間,另一部分是清算所需時間。

 

另外一個指標是吞吐量。吞吐量是指單位時間內完成的交易數量。

 

在區塊鏈之間進行的是點對點的交易,而每個具體交易之間是各不相同的。對於每一個區塊鏈,當被問到性能時,大部分人都會說一萬筆每秒或者十萬筆每秒,用具體數字來表示區塊鏈的性能。其實這是沒有意義的,因為區塊鏈的性能具有結構,包括:

  • 鏈上性能、鏈下性能;

  • 去中心化性能、中心化性能;

  • 全局性能、局部性能。

 

因此我們不能僅僅看具體的數字,要從整體的結構來了解區塊鏈的性能。

  

區塊鏈兩大殺手級應用

 

說完了如何瞭解區塊鏈的性能之後,我們來看看區塊鏈現在有什麼比較好的應用。


Gartner(信息技術研究和分析公司)認為區塊鏈現在是比較早期的,區塊鏈並不能滿足我們現在的業務要求。比如,雙十一每秒要進行幾十萬筆的交易,而現在的區塊鏈每秒也就進行幾筆或者二十筆左右交易,遠遠不能滿足現在的要求。但是,我們換一個角度來看呢?其實你會看到,區塊鏈能做的事情還是比較多的。

 

比如,我們用區塊鏈來做支付,計算是很快,反而用傳統方式來做,花費的時間會比較長。所以區塊鏈在這方面就能解決問題,這是從兩個角度來分析事情。

 

如果我們以傳統方式來思考區塊鏈,是滿足不了我們的業務要求。所以現在很多人認為,區塊鏈沒有作用,區塊鏈沒有殺手級的應用。因為在傳統業務裡面,根本產生不了殺手級的應用。想產生殺手級的應用,我們應該從區塊鏈的角度來思考。

 

其實區塊鏈現在有一些殺手級應用,一個是代幣眾籌也包括以太貓、分叉幣。另外一個是發幣,對於發幣是很容易的,但是發幣之後應該怎麼辦?

 

對於發幣之後,有兩種處理方式,一種方式是建立一個金融系統。但是,自己建立一個系統,信任度沒有那麼高。那怎麼提高信任度?比如有一份文件,如果是央行發出的,大家都信任。但是有沒有一種方式,即使不是央行發出的,也能讓大家信任。其實有另外一種方式,就是通過區塊鏈來解決這個問題,所以發幣是區塊鏈一個比較好的應用。

  

區塊鏈性能條件

 

其實,區塊鏈上面的應用還是比較少,或者說在區塊鏈上面的應用效果還是不太好,在區塊鏈性能方面還需要提高。由於區塊鏈是一個分佈式異步管理,所以在提高區塊鏈性能方面,可以從以下幾方面來思考:

 

第一,分佈式異步環境。由於我們所處的環境不同,時間不一樣,比如,北京時間和美國時間。所以,區塊鏈沒有通過依賴時間達成一個共識。

 

第二,共識機制。由於各個節點誠實度不一樣,有一些節點可能是誠實的,有一些可能是不誠實的,如何在這些節點中通過一個共識機制構建出一個大家共同認同的結果。

 

第三,交易功能複雜度。大家在以太坊做轉賬交易的時候,認為手續費是比較高的,可能需要二十一萬GAS。但是,做合約交易,你會發現手續費更高,可能就需要三十幾萬或者六十幾萬GAS等。為什麼呢?因為合約的執行步數多,每一步都要收費的。而根據交易功能的複雜度,每一筆交易的合約步數又是不一樣的。所以如何降低交易功能的複雜度、減少交易費用,都是可以考慮的。

 

第四,鏈式複雜度。鏈的複雜程度不一樣,大家都在同一個鏈,鏈就是一個帳本,大家在一個帳本里面進行記錄交易。在賬本之間有些交易只需要簡單的記錄,而一些交易的記錄需要執行腳本,附加一些計算,增加了交易記錄的複雜度。

 

第五,硬件節點條件也不一樣。如果硬件好一點,速度就會快一點,性能就會高一點。但是區塊鏈還是得看當時的條件以及要求,看能不能滿足你的要求。

  

區塊鏈性能現狀

 

那區塊鏈性能的現狀到底是怎樣的呢?現在區塊鏈速度確實不是太高。

 

比特幣區塊鏈現在能達到7筆每秒,它的響應時間是10分鐘,這是一個平均的時間。

 

此外,以太坊現在能達到20筆每秒。

 

還有,PBFT可能能達到幾千筆每秒。當然,上面的數字都包括轉帳支付和合約交易所需要的時間。

 

如果區塊鏈現在基本能達到幾萬筆每秒、幾百萬筆每秒,大家現在也不會坐在這裡討論了。那麼,現在區塊鏈在性能方面遇到了哪些困難?

  

區塊鏈性能困境

 

區塊鏈本身確實有一些性能難點,有幾個部分。

 

第一,中心化和去中心化的困境。大家認為節點數量越多越好,自然用戶就會越多。但是節點多了以後就很難達成共識,比如屋子裡面只有我一個主持人,大家要決定一件事情,我決定就行了,比較簡單。但是如果一件事情,讓大家都來做決定,這個事就費勁了。

 

第二,可信化和非可信化的困境。區塊鏈環境裡面,可信和非可信的條件各不相同。傳統互聯網是有可信的共識機制,這些可信共識的基礎是網絡可信。但是,在區塊鏈裡面,網絡的環境不一定可信,即需要防止所謂的拜占庭攻擊。

 

第三,鏈上性能和鏈下性能的困境。現在所有區塊鏈的優化算法,都是在將交易和清算分開的基礎上做的。先在一個分區裡面核心做交易,交易完成之後,再深入到整體區塊鏈裡面達成共識,完成整體的結算。

 

所以現在在鏈下交易已經做了,再搬到鏈上,交易的速度自然就高了。其實鏈上的功能是被削減了,削減了原來的交易功能,現在只做清算,不做交易。

 

第四,全局性能與局部性能的困境。全局的性能是依賴全局清算的性能,局部的性能是指專業的性能。比如我倆今天要做生意,咱倆之間清算就行了,別人也不需要知道,到時候咱們選擇一天,比如某天夜裡的時候,到鏈上再做清算。這是一個局部優化的方案。

 

第五,結構化方案與優化方案的困境。區塊鏈是一個列表,所以優化的時候可以優化一個列表、兩個列表,或者一個圖、一個網絡,甚至整體結構性的優化。而選擇哪種優化方案?取決於你是想做一個簡單的優化,還是做一個整體結構性的優化。

 

所以,對於區塊鏈性能,建議大家從結構這一方面考慮,而不是一個純粹的數字,也不是一個純粹的解決方案。

  

性能優化方向

 

說了區塊鏈性能現在的一些困境,那下面簡單介紹一下,現有的幾個優化方案。

 

第一,多鏈的優化方案。即多條鏈各自運行自己的交易,之後再確定一個時間,做一個清算。

 

第二,中心化的優化方案。區塊鏈現在有兩個方向,一個是社區化,另外一個是中心化的優化方案。但是社區化這種模式不涉及商業應用,商業應用的速度快,節點也沒有那麼不可信,我對節點信任更多,這樣就可以做中心的優化方案,從而提高性能,這也是符合業務需求的。

 

第三,局部優化方案。目前交易是在整個場景進行,其實沒有必要,只要在局部進行就行了,可以大幅提高性能,這是一個局部的優化方案。下面詳細介紹這幾種方案。

 

多鏈優化方案

 

多鏈優化方案一種方式是通過側鏈機制來解決性能問題。側鏈機制是區塊鏈主鏈的資產到另一條側鏈裡面。資產其實代表一個業務,怎麼理解呢?其實多鏈之間是有結構的,有一些鏈負責做帳戶,有一些鏈負責做交易。鏈與鏈之間的職責,是按角色進行分配的,從而提高區塊鏈的性能。

 

此外,還可以以一種樹鏈方式來解決性能問題。樹鏈是不同鏈之間互聯,它有一個主鏈,並在主鏈上面有很多子鏈,類似於人類的家譜。

 

閃電網絡,閃電網絡也是有一個主鏈,同時有線下鏈條。閃電網絡更多像一個通道,咱們之間的交易,不需要到主鏈去清算。

 

中心化優化方案

 

對於中心化的優化方案,一種方式是可以做一個大的計算中心,這是一種方式。

 

單個節點交易緩存方案。兩個節點之間做交易,其中一個節點可以跟其他很多節點建立專門通道。

 

大家要理解,去中心化不是簡單的去中心化,去中心化也有一個度。

 

局部優化方案

 

局部優化方案的一種方式是可信驗證節點,是指交易不一定所有節點都要執行,可能就是一部分節點執行,其他節點同步,這時不需要對所有消息進行驗證。

 

此外,還可以通過網絡分區、分片的方式。這種方式的問題是不能把一個交易確定性放到幾個節點上,否則這幾個節點就有中心化的風險。同時,分區、分片需要足夠隨機化。還有一個問題,是分片裡面要解決分片之後共識的問題。

 

結構性優化方案

 

結構性優化方案,是相對於整體的優化方案。

 

一種是層級共識機制,比如前面說到的做樹鏈的公司,只要孫子節點之間達成共識就行了,如果設計的需要,再直接往上一層,那是子節點之間共識。

 

還有一種無共識機制。我只要驗證前面一層,保證自己的交易可信就行,沒有一個共識機制,不需要跟所有人進行確認。

   

我們的優化方案

 

說完上面的優化方案,我想介紹我們公司的三個優化方案,同時簡單介紹一下我們的公司。我們公司註冊在無錫,當時做了兩個方向,一個方向是做P2P網貸的數據透明性,第二個方向是做區塊鏈支付。現在我們在做的是區塊鏈性能的優化方案。

 

下面是我們現在的三個優化方案,簡單介紹一下。

 

第一,銀關優化方案。井通公鏈是一個商業公鏈,商業公鏈需要支持商業應用的開發。但是,商業是可信的,或者部分可信的,需要用區塊鏈來解決清算的問題,不是解決信任的問題。

 

第二,共識機制優化。優化的方向是無支持人的共識機制,週期性共識機制,或者多要求的共識機制。

 

第三,層級共識機制。層級共識是我們MOAC(墨客鏈)裡面的層級共識,MOAC整體是一個基於POW的共識機制,而子鏈的共識機制各不相同。

 

我們現在主要在做幾個方面,一個是井通公鏈,一個是MOAC社區化公鏈,以及我自己在推動的一個Callchain泛娛樂行業公鏈。無論是技術還是運營,我們都歡迎大家參與進來。今天的性能分享主要是這些,謝謝大家。



作者介紹

楊建新,井通區塊鏈底層平臺國內負責人,清華大學計算機碩士,國內最早的區塊鏈開發專家之一,區塊鏈底層架構師,區塊鏈行業與密碼數字貨幣領域豐富的實戰經驗與行業技術發展領軍人物。主導了國內第一條商業公有鏈的開發,編制API、SDK等相關標準接口;開發了區塊鏈企業級錢包、供應鏈金融等項目建設;國內智能合約最早落地的先驅者。



最新熱文:


  • 當DPOS投票機制在鉅額利益面前失效時,區塊鏈該怎麼走下去?

  • 10分鐘,前端工程師也能玩轉區塊鏈Web3.js開發

  • 獨家對話V神:詳談以太坊設計與區塊鏈迷思

  • 想開發一款區塊鏈殺手級遊戲?這篇文章值得好好消化一下





掃碼加入區塊鏈大本營讀者群,群滿加微信 17600222208 入群





瞭解更多區塊鏈技術及應用內容

敬請關注:

閱讀原文

TAGS:區塊鏈楊建新優化方案節點