EOS主網TPS屢創新高,但TPS並不是越高越好

據媒體報道,目前EOS主網TPS最高達到3590次/秒,已經超過BTS的3300次/秒,但據EOS高調宣稱的百萬級仍相距甚遠。在公鏈激烈競爭的這一年,TPS一直是各家宣揚的代表高性能的重要指標,TPS是否真的是越高越好呢?

TPS通俗的定義是系統吞吐量,也就是每秒系統處理業務的數量。假如TPS每秒併發太低,很容易造成網絡嚴重擁堵;提升TPS處理速度,又會犧牲部分區塊鏈的安全性或穩定性。從現實應用來看,百萬TPS的處理速度在現有環境中的應用價值並不是那麼必須,並且區塊鏈技術不能僅僅依賴提升TPS去解決所有的問題。

業界已經達成共識,目前的區塊鏈處理速度無法滿足業務應用的要求。無論是年初的Cryptokitties事件、6月受Fcoin影響的天價Gas費、或是Fomo3D爆發後的擁堵,這類問題接二連三地將以太坊推上輿論的風口浪尖。因此,Sharding(分片技術)解決方案已成為過去兩年中最熱門的技術之一。

我們應該意識到,區塊鏈的誕生並不是為了盲目的高性能,有太多人走向極端,過度宣揚TPS的重要性,動輒上萬,甚至十萬百萬。很多時候甚至有些用力過猛:就比如一個小小的山村,人們卻想要從四面八方建立起通往村莊的16條公路。即使先不考慮可行性問題,如果16條公路都被建成,也不可能有這麼多車會在這些公路上行駛,因為村莊里居住往來的就幾十戶人家。

千位級的TPS已能滿足每天處理1億筆交易的需求

以下是一些主流公鏈及知名項目的數據:

EOS主網TPS屢創新高,但TPS並不是越高越好

我們可以看到,用戶數量與TPS並不是特別相關,而是與市場需求相關。

首先,開發技術和構建基礎設施(節點等)需要一定的時間。TPS不僅是唯一要解決的問題,其他區塊鏈技術也有待突破。需要明確的是,系統的吞吐量和TPS實際上是兩碼事。區塊鏈作為一個系統,最終量化性能的其實是吞吐量,即單位時間內成功傳輸數據的數量,這與CPU消耗、外部接口、IO等密切相關。區塊鏈的網絡節點更加分散,因此性能通常不如集中式高帶寬服務器的性能好。區塊鏈的TPS可能不是處理速度問題的瓶頸。

其次,從使用量的角度來看:假設x是每天的交易數量,所需的TPS是y。我們考慮簡單的80/20規則(帕累託二八原則):80%的x交易記錄需要在20%的時間內完成,而y需要滿足峰值要求。得出:

y1 = x * 80%/(24h * 20%)* 3600)= x / 21600

如果節點完整且用戶數量穩定,我們可以進一步考慮平均用戶分佈,得出:

y2 = x /(24h * 3600)= x / 86400

EOS主網TPS屢創新高,但TPS並不是越高越好

從上表可以看出,即使公有鏈每天處理1億筆交易,千位級的TPS也足夠了。目前,區塊鏈正從發展過渡到高速井噴式階段。用以太坊做參考,目前的峰值仍保持在今年初1月4日,高達1349890筆交易,昨日交易量約為76萬筆。目前以太坊每秒30-40/筆交易的速度確實亟待提升,V神下一階段目標就是探索百位級甚至千位級的TPS解決方案。

EOS主網TPS屢創新高,但TPS並不是越高越好

對公有鏈而言,並不是TPS越高越好

當然,如果公有鏈需要支持Dapps的集中營銷,就另當別論了。想想淘寶每年的“雙十一”購物活動,全天可達14.8億筆交易,最高可達18萬/秒。除非你認為區塊鏈上的用戶將達到雙十一那樣的狂熱,否則不需要高達十萬級的處理速度。如果能夠建立真正的點對點經濟模型,那麼交易高峰集中的情況也不太可能發生。

應該注意的是,上面是對交易記錄數量的分析,交易記錄是指使用區塊鏈進行代幣轉移或部署智能合約的用戶。可以粗略的計算一下,假設一條公鏈上有很多Dapps,共有1000萬用戶,每個用戶可以使用不同的Dapps每天與鏈進行多達10次的交互(事實上,大多數人一天都不會有太多消費,也並不是Dapp上的用戶進行的每項操作都會發生代幣轉移)。假設有一個基於區塊鏈的淘寶等效Dapp,用戶可能會瀏覽商品,編輯購物車並與買家討價還價,但實際成交的訂單卻很少。

事實上,不同應用的用戶數、PV(page view)與TPS都存在一定的函數關係,這需要根據市場需求來具體建模。但系統TPS達到千位級別也是足夠承載的了。

還應該注意的是,獨立測試的TPS不是最終的TPS。有的項目方為了刷高TPS,購買數百萬的設備在一個實驗室內進行測試只是起到PR效果或者自娛自樂,沒有大規模被使用的公鏈,討論TPS是沒有意義的。

因此,就公有鏈而言,並不是“TPS越高越好”,它需要基於一定的市場需求。根據目前的市場情況,TPS過千已經能夠滿足大多數商業需求,過高的TPS反而會降低安全性並可能導致性能過剩。因此,TPS的速度不是公有鏈的最終目標。

TPS提速受哪些因素的制約?

對於區塊鏈系統,TPS是每秒生成新事務的記錄。礦工將“區塊”提交給網絡,每個區塊鏈上都包含了一定數量的交易記錄。想探尋提升TPS的方法,就要先了解區塊是如何生成的?步驟1:運行共識的節點:節點持續監視系統並啟動協商一致的算法。例如,PoW工作量證明機制運用了哈希現金算法

步驟2:廣播和驗證時間:當節點完成計算時,它將其提交給網絡中的對等體,然後在驗證後將其連接到區塊鏈,並繼續廣播直到網絡中的所有節點達成共識。類似老師帶頭並寫了答案,答案傳遞給第一排的同學,第一排的同學驗證並傳遞給第二排的同學……直到最後一排的學生完成驗證,達成共識

步驟3: 為了防止區塊鏈受到攻擊,通常會在幾次甚至幾十次安全確認後才進行代幣轉移。例如,某些交易所需要12次確認。這裡,“X次確認”是包含目標事務的區塊數,並且有X個區塊連續地接到區塊鏈上。X越大,表示區塊鏈越長,攻擊者就越難以攻破

這三步是有前後次序的,不能併發。事實上,區塊產生的時間僅為第一步與第二步,第三步是前兩步的循環往復,用於確認系統的安全。所以,TPS的計算公式為:

TPS = 一個區塊內包含的交易數量 / 區塊產生時間 = 一個區塊內包含的交易數量 / (共識算法運行的時間 + 廣播並驗證的時間 )

區塊鏈面臨的“不可能三角定律”

通過研究上述增強TPS的方法,我們發現增加TPS可以通過減少驗證時間的方式,這樣就會犧牲安全性或分散性。如果TPS盲目增加,區塊鏈將完全犧牲“去中心化”。與此同時,對礦工的機器配置要求也會更嚴苛,如果它不能及時上傳交易,那麼將會產生更多未完成的交易,隱藏的危險也就越大。雖然EOS使用21個超級節點來實現高效率,但它也犧牲了部分“去中心化”和安全性,引入了DDoS等潛在風險。這就是著名的“蒙代爾不可能三角定律”:效率、安全性和“去中心化”無法同時實現。請記住,升級任何一個指標將不可避免地犧牲其他兩個指標。

EOS主網TPS屢創新高,但TPS並不是越高越好

如果選擇去中心化、高效率和低能耗,就必須犧牲安全性。在金融領域,這種解決方案几乎都被一票否決。如果選擇去中心化和安全性,放棄高效率和低能耗將不可避免地導致應用和場景的減少,這意味著從所有主要業務的應用程序中撤退。最後,如果選擇高效率、低能耗和安全性,它將破壞去中心化的願景。

“區塊鏈”等於許多人心中的分權,“去中心化”是其最具價值的一個特點,它支撐起了無信用交易。作為第一個區塊鏈應用程序,比特幣旨在分散,無需信任任何節點,通過共識機制的複雜設計將信任放入整個系統,從而防止攻擊。

“去中心化”的目的是使系統可信和安全,隨之而來的可能是交易緩慢、擁堵,但就像開篇所說的,那些吹噓千、萬量級的TPS其實對目前區塊鏈的用戶量來說是一種“產能過剩”,現階段的首要任務還是擴大區塊鏈Dapp的落地和普及。同時我們也有理由相信隨著軟硬件的不斷提升,不可能三角限制將逐漸弱化,行業將迎來總體性能的提升。

參考文章:

《The Seven Major Challenges of Public Chains — Maintaining High TPS with High Security》by Larry Liu

EOS主網TPS屢創新高,但TPS並不是越高越好


分享到:


相關文章: