區(qū)塊鏈擴容一直是區(qū)塊鏈團隊的重點研究方向。因為比特幣對區(qū)塊大小的設(shè)定是固定的,而且中本聰將最初大小值限定為1M,但隨著交易量的增加,
區(qū)塊鏈擴容一直是區(qū)塊鏈團隊的重點研究方向。因為比特幣對區(qū)塊大小的設(shè)定是固定的,而且中本聰將最初大小值限定為1M,但隨著交易量的增加,網(wǎng)絡(luò)擁堵情況也愈漸嚴重,最終也導致了比特幣的分叉。
區(qū)別于比特幣固定區(qū)塊大小的設(shè)定,以太坊則引入了燃料(gas)的概念,并采取了區(qū)塊燃料限制(BlockGas Limit)動態(tài)調(diào)整機制,即根據(jù)交易量大小來調(diào)節(jié)BlockGas Limit。通常我們以TPS來衡量區(qū)塊鏈的交易處理能力, BlockGas Limit值越大則意味著允許區(qū)塊打包的交易量也就越多,也就是說網(wǎng)絡(luò)擁有越高的TPS。所以,以太坊的擴容方案之一就是提高Gas值限制,以此來緩解網(wǎng)絡(luò)擁堵的情況。
Gas Limit動態(tài)調(diào)整機制
以太坊主要通過礦工投票機制來決定目標燃料限制(TGL,Target Gas Limit),同時不能小于最小燃料限制(MGL,Min Gas Limit)。而其動態(tài)調(diào)整機制主要是在區(qū)塊gas使用量超過父區(qū)塊Block Gas Limit的2/3時,全網(wǎng)對當前區(qū)塊的Block Gas Limit進行適當提升,但不允許超過TGL。
然而,通過提升Block Gas Limit的擴容方案在實現(xiàn)上也有弊端。若Block Gas Limit無上限,那么區(qū)塊在進行廣播的時候必定會有時延問題。越高的TGL也就意味著Block Gas Limit值越大,被允許打包到區(qū)塊之中的交易越多,消耗的gas也就越多,其同步到整個區(qū)塊鏈網(wǎng)絡(luò)所需的時間也就越長,那么該區(qū)塊也很有可能因為時延問題而競爭失敗,最終被拋棄而成為叔塊(Uncle Block)。
根據(jù)Vitalik Buterin的腳本實驗分析,被打包的區(qū)塊每增加1,000,000 gas價值的交易,其變?yōu)槭鍓K的概率就會增加約1.86%。一方面,因為數(shù)塊只能獲得75%的區(qū)塊獎勵,所以礦工因為利益問題也不愿意選擇提升TGL。另一方面,在提升TGL的同時也需要面臨算力中心化的問題。就目前來說,尚未找到合適的數(shù)學算法來對TGL進行設(shè)定,其決定權(quán)依然歸屬于礦工,所以區(qū)塊燃料限制動態(tài)調(diào)整機制仍需完善。
Gas相關(guān)的計算
Gas主要用來支付交易的手續(xù)費,其計算也相對簡單。當我們在進行交易時,gas的最大消耗限制需要由交易者自行設(shè)置,即gas limit。那么我們可以得到交易的最大gas費用計算公式,如下所示:
其中,表示允許消耗的gas最大值,表示單位gas的價值,兩者相乘即為最大的交易手續(xù)費。舉例來說,若Gas Limit=50,000,Gas Price=20Gwei,那么所需最高手續(xù)費(以最大消耗量來算)為0.001ETH。其中
然而在整個交易執(zhí)行過程中,還可能涉及其他費用,如合約創(chuàng)建費用等。那么實際消耗的gas計算公式,如下所示:
其中,Predifined Gas Fee表示執(zhí)行交易預定費用,Storage Fee表示隨交易發(fā)送的數(shù)據(jù)的gas費用(零字節(jié)和非零字節(jié)會根據(jù)對應(yīng)的設(shè)定值消耗一定的gas量),Contract Creation表示合約創(chuàng)建交易還需額外的費用。
那么,交易完成后剩余的gas即為交易最大gas費用減去使用的Intrinsic Gas
其中,Gas Limit≧Intrinsic Gas,待交易執(zhí)行完畢,剩余的gas也會退還給交易者。
在費用估算上,對交易者而言,前期gas費用可以取最大gas費用與傳送總值的總和。
其中,Upfront Cost表示交易執(zhí)行的前期費用,Gas Limit表示gas消耗的最大量,Gas Price表示gas單價,Value表示發(fā)送方傳送給接收方的總值。
對于以太坊網(wǎng)絡(luò)來說,“網(wǎng)絡(luò)又堵了”常常被拿出來討論。從2017年的加密貓堵死網(wǎng)絡(luò)事件到近期的交易所刷單大擁堵事件,或者是面對黑客的DDOS攻擊,以太坊也嘗試通過調(diào)整Gas值限制來解決網(wǎng)絡(luò)堵塞問題,雖然可以見到暫時性的成效,但問題并沒有完全解決,仍需通過其他擴容方案來優(yōu)化網(wǎng)絡(luò)性能,從而有效解決網(wǎng)絡(luò)大擁堵問題。
關(guān)鍵詞: 以太坊 gas 網(wǎng)絡(luò)擁堵