區塊鏈的去中心化與高性能TPS是否真的可以兼具?
作者 | 陳浩
文章出自 | 極客時間「深入淺出區塊鏈」專欄
比特幣和以太坊的 TPS 一直被技術領域的人所詬病,或許這與工程師「高性能高並發」的情節有關。
那麼說,去中心化與高性能 TPS 是否真的可以做到魚和熊掌的兼具呢?區塊鏈業界又採取了哪些方案進行改善呢?圍繞這兩個主題,我們開始聊聊今天的話題。
再談去中心化
說到區塊鏈的最大標籤,莫過於「去中心化」,在任何討論區塊鏈的場合,這個詞幾乎都會被提起。
今年 3 月份,全球頂級數字資產交易平台 OKEX 的負責人徐明星曾經發文,他表示業界應該避免使用「去中心化」這樣的辭彙,而改用「點對點」,「點對點」一詞後來甚至被直接冠到了比特幣白皮書的標題上。
去中心化與點對點有區別嗎?我認為是有的,去中心化是包含了一定政治主觀色彩的辭彙,點對點只是一個中性辭彙,更適合用來描述系統的性質。
去中心化這種說法樹立了一個無形的靶子,這個靶子可大可小,大到政府機關,小到小商小販。
正如我們說的是 P2P 網路,而不是去中心化網路。所以在技術領域使用點對點,而不是去中心化,可以避免這種概念被過度消費,
說到了「過度消費」,我認為「去中心化」已經演變成了區塊鏈行業對外宣傳的消費概念,這是一種情懷消費,它消費了人們對強權者的不滿,例如店大欺客的商家、死皮賴臉的中間商、缺乏誠信的供應商。
這些內容,你或多或少都在生活中經歷過,當「去中心化」的口號響起的時候,人們終於找到了一個發泄口,強烈的共鳴放大了區塊鏈的光環,造成了區塊鏈能掀起一場大革新的錯覺。
革新肯定是有的,但去中心化只是表象,如果我們加深層次去理解,就可以發現數字貨幣和數字資產帶來更多的是交易效率的成倍提升。
人類的現代文明是建立在交易的基礎上的,沒有交易就意味著直接回到了農耕社會。所以交易效率的提升才是區塊鏈的根本所在,那麼說,區塊鏈本來是這樣看似低效的 TPS,為什麼說它提高了交易效率呢?
我們先回到傳統的交易模式來看一看。
交易首先是基於中心化平台的,當我們進入某個中心化平台,在這個平台內部,交易效率是提升了,但是我們回顧整個交易的生命周期,就會發現這個平台可能只是交易的一環,平台和平台之間的協作似乎並不是那麼順暢。
跨境支付便是典型的例子,市值長居 Top3 的區塊鏈項目 Ripple 就是為了解決跨境支付的難題而產生的。
我們再來看區塊鏈點對點的交易模式,它的 TPS 看似低效,但是它提供了全局無縫銜接的資產流轉過程,這減少了整個交易生命周期的步驟,這也是區塊鏈提升交易效率的關鍵所在。
所以說,雖然中心化系統能提供優秀的高性能服務,但是慢在人工審核、平台之間銜接、內部審計,平台之間的協作業務推進,想必你一定也深有體會。
技術上的去中心化
我在「深入淺出區塊鏈」專欄提到聊 DPOS 共識機制的時候,提到過一個 TPS 的計算公式,
TPS = (block_size*
network_bandwidth*
witness_performance) /(block_time * witness_count)其中 witness_count 記賬節點的數目與准入門檻在業界的爭議比較大,如果完全去中心化的話,首先就意味著記賬節點沒有準入門檻,記賬的節點可以無限多,當然這只是一個理想環境,工程實施的可行性幾乎為零。
比特幣全球的全節點 1.2 萬個,大大小小的挖礦節點只有幾十個,常出塊的只有 5 大礦池,但是比特幣依然沒有限制記賬節點的准入門檻,以太坊也是如此。而在 EOS 中,既規定了記賬節點的數目,又規定了門檻。
可以這麼說,
控制了記賬節點的數量和准入門檻,就等於決定了區塊鏈 TPS 的大小。
為了幫助你深層次地理解去中心化與 TPS 的關係,這時候我們再次回到之前一直提到的 CAP 定理中。
CAP 定理中,C為最終一致性,決定了出塊時間的長短。A 是可用性,這個是必選的,必須要保證區塊鏈 7*
24*
365 全部可用。P 是網路分區容忍性,P 的含義在區塊鏈上有兩層,第一層是必須保證分區可容忍,也就是一旦出現因為網路分區而導致區塊鏈分叉,必須有一種機制可以合併區塊鏈;第二層含義是如果我們盡量避免出現網路分區,那麼就可以避免 P 的出現,從而提升 C 的性能。
C 和 P 是可以相互調整的,有兩種情況。
情況 1,如果我們選則調整 C,也就是拉長了最終一致性的確認時間,那麼對 P 的要求就會減弱,也就是網路產生分區不要緊,反正區塊鏈有足夠的時間恢復最終一致性。
情況 2,如果我們選則調整 P,也就是限制較少的記賬節點的數量,並且對記賬節點之間的帶寬提出要求,降低出現網路分區的可能性,那麼對 C 的要求就會減弱,就可以降低出塊時間。
情況 1 就是比特幣和以太坊的典型思路,情況 2 就是 EOS 的典型思路。
區塊鏈屬於分散式系統,通過簡單分析我們可以知道,
區塊鏈交易 TPS 與去中心化的具有不可調和性,任何一個號稱 TPS 過萬的區塊鏈項目肯定是極其中心化的(至少技術上是的)。
所以,那些試圖兼具高性能與去中心化的工作大多都是徒勞的。各個區塊鏈的 TPS 指標
我們接下來看看一些區塊鏈項目的 TPS 指標。
圖中 TPS 都在千筆以上的區塊鏈項目,通過控制了記賬節點的數量,犧牲了去中心化特性提升了 TPS,比如石墨烯系列的 DPOS,Ripple 的共識。
如果我們
把 CAP 做一個可視化處理,就構建出來一個三角形分布
,我們可以得到下圖:從圖中我們可以看出,
PoW、PoS 型公鏈偏好 AP 特性,於是 TPS 有限。聯盟鏈以及 DPoS 型共識偏好比較均勻,可以達到可觀的 TPS;傳統數據中心往往不考慮 P 在第二層語義上的問題,更不考慮拜占庭容錯問題,所以他們擁有更好的 TPS,但是在網路分區和出現拜占庭錯誤的時候,表現得不盡如人意。
這些共識機制在不同場景中可以有不同的選擇,不存在適用所有場景的的共識機制。業界的可選方案之一:Sharding 分片
好了,我們在上文討論了 CAP 定理對區塊鏈的影響,那麼業界也還是使出了渾身解數來儘可能地提升 TPS。
目前一共有兩種正在討論的方案,分別是 Sharding 分片技術和閃電網路。閃電網路旨在解決比特幣微小額支付的實時性問題,其中的演算法是比特幣 TPS 擴展的一種方案,這部分的詳細內容我們留到比特幣專題再進行講解。
這兩種方案不涉及修改共識機制。如果我們修改為 DPoS 共識機制、DAG 共識演算法,也可以提升 TPS,不過不在本篇的討論範圍。DAG 共識機制我們在後續文章進行深入討論。
分片技術是一種安裝傳統資料庫分片的擴展,主要思路是將資料庫分成多個分區(碎片)並將分區放置在不同的伺服器上。
在區塊鏈場景下,全網的節點相當于于分散式資料庫中的不同伺服器,這時候我們可以將交易分成不同的部分,然後每個記賬節點只需要驗證交易的一部分即可,而不必驗證完整的交易性。
這帶來的好處是就是並行化處理,記賬節點之間相當於是協作關係,而不再是單純的獨立關係。
隨著網路的增長,這種協作關係也可以隨之擴展,這種擴展也叫做水平擴容。
分片技術有以下優勢:首先是 TPS 可以從十幾筆提升至少兩個數量級,也就是千筆每秒,這不但對應用友好,也提升了用戶體驗;其次 TPS 的提升可以帶來更多應用,這些應用在共識的激勵下可以水平擴展區塊鏈的性能,形成一種良性循環。
下面我介紹一下分片的兩種方案:狀態分片、網路分片。
第一種方案是網路分片,網路分片是我們按照網路進行分區,區域內的交易歸集在一起並在區域內進行驗證,這樣區域內的用戶可以享受低延遲高吞吐的 TPS,但是會帶來跨區域分片的複雜性。我們也可以將網路分片比喻成資料庫集群分區。
其次是狀態分片,狀態分片是在以太坊上提出的方案,狀態分片目前沒有確切的技術方案,尚在研究討論階段。我們可以簡單類比資料庫的分表。我們將同一張表的數據塞到不同的節點,這些節點分布在全世界各地並且沒有可信的網路環境。所以狀態分片是非常複雜的技術,實踐的最終結果我們需要看以太坊後續的動作。
作者推薦
現在很多開發人員,面對區塊鏈技術的感受都是:「代碼都能看懂,一連起來就完全不懂。」
其實這是因為區塊鏈雖然在技術上複雜度不算太高,但是與其他學科之間有極大的交叉,面對網上那些已經過時,甚至很容易帶來誤解的教程,便會一頭霧水。
我作為中國首批開始接觸區塊鏈技術的人,希望接觸極客時間的這個平台,提供一個可以讓更多人系統性了解和學習區塊鏈知識的專欄。
現在訂閱「深入淺出區塊鏈」更有
三重福利:
福利一:
參加拼團僅需¥58
,原價¥68;(僅限今日)福利二:每邀請一位好友訂閱,你可獲得¥12,好友可獲得¥6 返現獎勵,上不封頂,隨時提現;
福利三:今日訂閱,免費領取
525 份區塊鏈白皮書
。訂閱後添加小助手:StuQ2017R 領取。
掃描下方二維碼,即可訂閱
點擊
閱讀原文
,查看專欄詳情

※用Vue和React構建相同應用程序,區別在哪?
※國內區塊鏈項目技術全面解析,你看好哪一個?
TAG:InfoQ |