網(wǎng)站制作NEWS
Web3系列教程之入門篇---2:什么是Gas
理解以太坊網(wǎng)絡(luò)的核心要素之一就是“Gas”。Gas就像是汽車所需的汽油,為以太坊提供運(yùn)行所需的能量。在交易時(shí),用戶需要支付一筆交易費(fèi)用,也就是所謂的Gas費(fèi)用。
當(dāng)以太坊網(wǎng)絡(luò)進(jìn)行升級(jí),如2021年8月的倫敦升級(jí)時(shí),交易費(fèi)用的計(jì)算方式和Gas的運(yùn)作方式也有所變化。因此,本教程將分為兩個(gè)部分,前部分易于理解,后部分提供升級(jí)的動(dòng)力。
在倫敦升級(jí)前,交易費(fèi)用的計(jì)算是基于簡(jiǎn)單的公式:Gas費(fèi)用 = Gas使用的數(shù)量 × Gas價(jià)格。Gas價(jià)格以gwei為單位,1Gwei等于0.000000001ETH。
例如,如果Alice想向Bob支付1ETH,交易的Gas成本為21,000Gas,假設(shè)Gas價(jià)格為200Gwei,那么Gas費(fèi)用為4,200,000Gwei,即0.0042ETH。這筆費(fèi)用會(huì)被礦工從包含Alice交易的區(qū)塊中獲得。
用戶可以使用錢包如Metamask,根據(jù)當(dāng)前網(wǎng)絡(luò)條件為要執(zhí)行的交易提供合理的Gas價(jià)格估算。
在執(zhí)行交易時(shí),每個(gè)智能合約被編譯成字節(jié)碼,然后在以太坊虛擬機(jī)上運(yùn)行。這個(gè)過(guò)程涉及到一系列操作,稱為OPCODES。每個(gè)OPCODE都有固定的Gas成本。這些成本相加,構(gòu)成了智能合約執(zhí)行所需的總Gas費(fèi)用。
為了確保每個(gè)區(qū)塊的計(jì)算成本不超過(guò)允許范圍,以太坊網(wǎng)絡(luò)對(duì)單個(gè)區(qū)塊中的最大Gas量施加了限制。這確保了節(jié)點(diǎn)不會(huì)由于計(jì)算復(fù)雜性的增加而與網(wǎng)絡(luò)的其他部分脫節(jié)。
在倫敦升級(jí)后,每個(gè)區(qū)塊都會(huì)設(shè)置基本Gas費(fèi)用,這是包含交易的每單位Gas的最低價(jià)格。這個(gè)價(jià)格由網(wǎng)絡(luò)根據(jù)對(duì)塊空間的需求本地計(jì)算,這些基本費(fèi)用將被銷毀,以減少ETH的供應(yīng)量并達(dá)到平衡。此外,引入了小費(fèi)的概念,用于補(bǔ)償?shù)V工執(zhí)行和傳播用戶交易。錢包會(huì)自動(dòng)設(shè)置小費(fèi),但用戶可以選擇手動(dòng)設(shè)置。
升級(jí)后的Gas費(fèi)用計(jì)算公式為:Gas費(fèi)用 = Gas使用的數(shù)量 × (基本費(fèi)用 + 小費(fèi))。
在倫敦升級(jí)之前,所有區(qū)塊的區(qū)塊Gas限制是恒定的,為15MGas。然而,倫敦升級(jí)引入了可變塊大小,每個(gè)區(qū)塊有一個(gè)15MGas的目標(biāo)Gas限制,但大小可以根據(jù)網(wǎng)絡(luò)需求增加或減少,最高可達(dá)30MGas。平均而言,網(wǎng)絡(luò)通過(guò)修改區(qū)塊大小和基本費(fèi)用達(dá)到了1500萬(wàn)左右的平衡。
以太坊的目標(biāo)是成為一個(gè)高度安全和去中心化的區(qū)塊鏈網(wǎng)絡(luò),執(zhí)行智能合約。然而,高昂的Gas費(fèi)用是一個(gè)熱門話題。因此,正在進(jìn)行多項(xiàng)工作來(lái)降低Gas費(fèi)用和改善用戶體驗(yàn),包括以太坊2.0升級(jí)和第2層擴(kuò)展。
最后,推薦使用以下資源獲取更多關(guān)于Gas的詳細(xì)信息:[1] GitHub上的EVM操作碼列表[2] 有關(guān)Gas的YouTube視頻[3] 倫敦升級(jí)的官方文檔[4] 智能合約中的Gas優(yōu)化[5] 更多關(guān)于第2層擴(kuò)展的信息。
多重隨機(jī)標(biāo)簽