2 公鏈在安全與效率上的折衷是擁堵的原因
btc的區塊體積大小約為1MB,出塊間隔平均約為10分鐘。但為什么是1MB和10分鐘呢?為什么不能增加區塊大小或減短出塊間隔時間以加快交易確認的效率呢?
(1)由于每筆交易需要網絡中每個全節點處理和驗證,區塊體積越大擴散至整個網絡所需的時間越多。
根據Decker和Wattenhofer2013年關于BTC的研究表明,區塊的平均擴散時間約等于2秒加0.08秒/KB,即1MB大小的區塊擴散需要約84秒,Rizun在2015年關于BTC的研究表明,隨著交易擴散技術的提升,擴散時間降低到約0.008秒/KB,即1MB大小的區塊擴散需要約10秒。隨著節點數的增長
區塊鏈將變得更加緩慢,因為節點間的延遲會隨著新增節點數呈對數性增長。
(2)區塊體積變大和出塊間隔過短將不可避免地導致孤塊率上升。
出塊間隔主要由驗證時間、傳播時間和共識時間構成(就BTC而言即為PoW時間),驗證和傳播時間之和遠小于10分鐘。根據公式
分叉概率的影響因素包括t90th和tB,其中t90th為新區塊傳播到90%以上節點用時,tB為出塊間隔。在其他條件不變的情況下,分叉概率隨t90th增加而上升,隨tB降低而上升。
增大區塊體積會增加傳播用時(即t90th增加),這與縮短出塊間隔(即tB降低)都意味著分叉概率上升,即一個新的區塊尚未充分全網廣播之前,就有另一個礦工在同樣的高度產出了另一個新的區塊的可能性增加,導致網絡孤塊率的上升。
(3)區塊體積變大和出塊間隔縮短帶來的運營成本上升可能導致算力中心化。
區塊體積過大帶來的另一個問題是全節點運營成本增長。區塊大小按照1MB計算,則一年大約需要50GB存儲空間,其他條件不變的情況下,區塊變大導致存儲成本和帶寬成本都將上升。成本上漲和孤塊率的增加進一步可能將導致普通計算機用戶甚至小礦池退出,進而算力呈中心化趨勢以及安全性減弱。
BTC的選擇是網絡效率和網絡安全之間的折衷。雖然1MB和10分鐘并不一定是最佳選擇,通過縮短出塊間隔和擴大區塊確實可以提升交易處理能力,而且事實上人們也已經這樣做了,但是通過這種方式所能實現的提速畢竟是有限的,非中心化運作的公開區塊鏈在效率和非中心化之間進行了折衷。
相比于BTC,ETH的出塊間隔縮短到了15秒,并且沒有限定區塊大小,ETH出現擁堵的原因是什么呢?
ETH雖然沒有區塊大小限制,但是存在“區塊GasLimit”(區塊燃料限制)。ETH中任何一筆交易都需要gas(燃料)才能進行,gas對應BTC交易中直接以BTC支付的手續費,實際上gas也需要用ETH購買。注意區塊GasLimit不同于交易中的gasLimit,交易gasLimit是指該筆交易中交易者自行設定的gas使用限制,而區塊GasLimit是指每個區塊最多可使用的gas限制。
比如交易池中有3筆交易,分別消耗10gas、20gas、30gas,而當前的區塊GasLimit是60gas,那么以上3筆交易都可以被打包,如果區塊GasLimit是40,則最多只有兩筆交易可以被打包。
也就是說,ETH在有限的時間內(15秒)只能處理有限的交易(由區塊GasLimit確定),如果交易數量超出了其承載能力,依然會造成擁堵。
另外值得一提的是ETH的GasLimit本身存在自動調整機制和礦工投票機制。
其中自動調整機制是指當父區塊的gas使用量超過父區塊GasLimit的2/3時,將按照一定速度增加當前區塊的GasLimit,但是最大不能超過TGL(TargetGasLimit,目標燃料限制)。TGL由礦工投票確定,最小不能小于MGL(MinGasLimit,最小燃料限制),MGL初始默認值5000(創世區塊的GasLimit)。但是自動調整相對而言比較緩慢,當交易量在短時間內大幅增長時很難迅速調整到位。
礦工投票機制是指礦工可以投票決定TGL的大小,如果當前區塊的GasLimit小于TGL,則增加區塊GasLimit盡快達到TGL。但是區塊打包的交易信息越多則區塊相應越大,傳播時間越長,進而導致叔塊(uncle block)率的上升,礦工利益受損。因此盡管存在投票機制,但礦工并沒有很強的意愿投票提升TGL。
注:孤塊(orphan block)在ETH中被稱為“叔塊”。在BTC中,孤塊將被拋棄且發現孤塊的礦工沒有任何獎勵。而ETH15秒的出塊間隔導致分叉和孤塊會大量產生,降低了整個網絡的安全性,因此ETH鼓勵礦工在新區塊中引用叔塊,發現叔塊也能獲得獎勵。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。