09.12 別被EOS的百萬TPS給騙了,這才是真實的TPS

別被EOS的百萬TPS給騙了,這才是真實的TPS


接觸區塊鏈的朋友經常會聽到這樣幾句話,比特幣的TPS只有7,以太坊可能稍微好一點,TPS大約在10-20,EOS可以將TPS做到100萬等等,這其中的TPS經常用來對比公鏈的好壞。

基本概念

別被EOS的百萬TPS給騙了,這才是真實的TPS


那什麼是TPS呢,專業一點的解釋,就是“系統每秒鐘能夠處理的業務數量”,通俗的定義,就是“系統的吞吐量”。

具體計算方法是:

TPS = 併發數/平均響應時間

對於比特幣而言,併發數就是一個區塊鏈裡包含的數據大小,目前一個區塊的大小是2118。

平均響應時間就是打包一個區塊的時間,也就是10分鐘,600秒。

那麼比特幣的TPS=2118÷600=3.53

對於以太坊來說,一個區塊的數量取決於“幣齡”的多少,平均響應時間也不固定,同樣取決於獎勵多少,粗略估計,TPS大概就是每秒十幾筆。

舉例說明


別被EOS的百萬TPS給騙了,這才是真實的TPS


最貼近生活中的例子就是支付寶了,我們日常生活中一般都會用到它。尤其是當雙11或者其他購物節的時候,大家都會在零點買很多東西。

雙11那一天支付寶如臨大敵,因為在零點那一刻開始,會有無數消費者會在同一時間進行交易,如果TPS每秒併發太低,很容易造成網絡擁堵嚴重,你的支付可能都不會被確認。

根據有關數據統計,雙十一搶購,支付寶全天完成14.8億筆交易,峰值18萬/秒,要遠遠高於目前EOS的幾千。

別被EOS的百萬TPS給騙了,這才是真實的TPS


還有一個例子就是網遊了,玩過網遊的都知道,早期騰訊代理的遊戲就一個感受:卡,非常卡,延遲高的可怕。有時候還會出現排隊的情況,這其中一部分原因也是TPS過低導致。所以騰訊的每一款遊戲都會分很多很多區來分流。

TPS越高越好嗎


別被EOS的百萬TPS給騙了,這才是真實的TPS


自從EOS宣稱可以將TPS達到百萬級別後,整個區塊鏈世界彷彿都在向更高的TPS發起衝擊。

大眾也普遍認為高TPS=優秀的公鏈,然而事實卻並沒有這麼簡單。

問題就出在TPS的概念誤解上。這個TPS是一個人造概念,並不是原生數據。

這裡先科普下什麼是原生數據,幫助大家更好的理解。

原生數據就是直接得出的數據,比如我們的電腦磁盤轉速、網速、CPU赫茲數等。

而人造數據是通過兩個數據計算得來的,也就是經常說的人造數據。

前面我們在概念裡也說了,TPS是通過併發數和響應時間計算得到的,即平均每秒的處理交易數。

這裡需要注意的是這個平均,並不是說在響應時間裡我一直保持這個TPS,有可能前面小一些,後面大一些。

那麼問題來了,這個響應時間是我們人為選擇的,那為什麼偏偏選擇10分鐘呢?

別被EOS的百萬TPS給騙了,這才是真實的TPS


有人可能會說,因為比特幣的出塊時間就是10分鐘啊。

那麼有沒有可能存在一種極端可能。

就是比特幣前面9分59秒都處於休息狀態,最後一秒將區塊生成。

那麼這個響應時間就變成了1秒,TPS就變為2118了,與之前計算的3.53形成天然之別。

由此可見,人為製造的指標存在很多可以背後操作的空間,單純的以TPS來看性能顯然是不合適的。

如何正確認識TPS

別被EOS的百萬TPS給騙了,這才是真實的TPS

首先就是不要被高TPS給忽悠了,畢竟行業普遍水平都是幾百,你突然來個差好幾個量級的,就算你使用了先進的算法改進,但是硬件設備性能、安全等等需求不可能統統滿足。

鑑於此,需要對TPS正確看待,分情況討論。

比如說公鏈,設計大量用戶和節點,肯定需要高併發的TPS來滿足底層技術要求。

但是反過來,應用最多的私鏈和聯盟鏈,並不需要高TPS,你需要的僅是滿足行業需求即可。

比如目前京東的溯源防偽領域,理論上7000左右就足夠了,平常需求可能就3000左右。

所以將來可以將TPS做出一個行業標準來,方便大家在此基礎上進行搭建應用。

目前支付寶在雙11的時候TPS大約在12萬左右,那些號稱幾十萬級別TPS的,不知道野心是有多大,區塊鏈作為一個剛剛起步的領域,目前也確實用不到那麼高。

總之,未來需要關注的不僅僅是TPS要多高,需要在併發量、區塊鏈結構、安全性能等綜合優化方面一起進步,更重要的是滿足市場需求。


分享到:


相關文章: