以太坊區塊鏈的發展歷史還沒有說完,不過在那之前,我想討論一下區塊鏈面臨的問題。這些問題目前已有許多被提出的方案,也有很多高手實作了這些程式,不過目前不是尚未成熟,就是面臨許多『商業問題』,不過這我再發另一篇來說。
TPS、隱私、集中算力算是區塊鏈比較常見的問題,但是常常被無視。
TPS(Transactions Per Second,每秒交易量)在比特幣區塊鏈中就已經知到的問題,比特幣區塊鏈是 7 TPS,以太坊區塊鏈是 15 TPS。相比一般來說的中心化系統動輒上千上萬TPS,這兩者是很難相比的。也因為 TPS 的問題,前一篇提到的 DAPPS 發展因此受限,畢竟如果一個操作要等待好幾分鐘甚至小時才有結果,這種使用者體驗是非常不好的。
想要提高TPS不外乎
提高每個區塊交易量。但是就會遇到區塊資料快速成長與驗證過久,網路會無法共識等等問題。
加快出塊速度。此點與第一點有點互斥,快速出塊但是區塊資料太大會無法共識。
那就修改共識演算法。著名的分散式網路演算法,大多都有個中心化的機器,這與區塊鏈的去中心化背道而馳。而PBFT這種完全去中心化的方式,卻不像 PoW 一樣,能乘載的網路機器數量過少,當 PBFT網路中的結點越多,取得共識的時間反而會比PoW還要慢。
比特幣區塊鏈原始的只有 3-4 TPS,經過硬分叉(SegWit)後提身為 7 TPS。以太坊區塊鏈目前提出 Sharding 和 Casper (這是主要的兩個),Sharding 是透過將分散式網路分為多個一種方法,Casper 則是第二層網路協議(像是比特幣的閃電網路),這兩個主要目標都是提升 TPS 與降低節點負擔。
提升 TPS 並不是一件簡單的事,畢竟要維持可信任的分散式就是使用 PoW 完成的,其他各種演算都有些限制。為了達成一項目標,終究犧牲了一個效能,就像前幾篇有說到的,分散式的 CAP 不可能定理。
所以回頭思考,我們到底希望區塊鏈完成什麼事情?為了完成這些事情,我們能犧牲哪些效能?哪些特性?而在放棄那些之後,是否還能保有區塊鏈的初衷?我想這是該好好思考的議題。