麻豆成人国产亚洲精品a区,亚洲精品一区国产欧美,中文字幕乱码2,伊人久久大香线蕉av网站,中文字幕丰满乱子无码视频

Gas 機(jī)制是如何工作的?

GAS 2023-12-18 92

以太坊是目前第二大公鏈,它和比特幣不一樣,以太坊上的可以實(shí)現(xiàn)的功能更多,如果比特幣是一個(gè)可以進(jìn)行加減乘除的計(jì)算器,那么以太坊就是一臺(tái)功能完備的計(jì)算機(jī)。以太坊系統(tǒng)的復(fù)雜度超過比特幣好幾個(gè)數(shù)量級(jí)。

在以太坊中,用戶可以自己寫一個(gè)智能合約,然后把智能合約放到以太坊中執(zhí)行。智能合約的執(zhí)行需要消耗資源,而以太坊上的資源是有限的。

在計(jì)算機(jī)系統(tǒng)中,停機(jī)問題(https://zh.wikipedia.org/wiki/停機(jī)問題)目前還沒有辦法完全證明。這個(gè)問題簡單來說就是沒辦法判斷一個(gè)程序是否能夠在有限的時(shí)間內(nèi)結(jié)束運(yùn)行。

如果一個(gè)用戶提交了一個(gè)死循環(huán)程序到以太坊中,那么就會(huì)無限的執(zhí)行下去,從而將以太坊網(wǎng)絡(luò)擊垮。而使用 gas 機(jī)制則可以解決這個(gè)問題,智能合約中,每段代碼的執(zhí)行都會(huì)消耗一定量的 gas,在用戶提交交易的時(shí)候需要指定好。如果 gas 消耗完了,那么智能合約就必須停止,交易也會(huì)被撤銷,如果智能合約執(zhí)行完成, gas 還有剩余,就會(huì)退還給用戶。

需要特別說明的是,即使交易失敗,用戶也需要支付 gas 費(fèi)用,因?yàn)橐蕴粸檫@些錯(cuò)誤的交易也付出了計(jì)算資源。

除了這點(diǎn)之外,gas 還可以用來激勵(lì)礦工,用戶提交交易所消耗的 gas 費(fèi)用最后都會(huì)給到礦工,礦工會(huì)優(yōu)先去打包那些提供了更高 gas 價(jià)格的交易,在以太坊中,如果希望自己的交易早點(diǎn)被打包,可以設(shè)置更高的 gas 價(jià)格。

g as 機(jī)制是以太坊系統(tǒng)的命脈。

gas 本質(zhì)就是維護(hù)以太坊網(wǎng)絡(luò)安全,這是從兩個(gè)方面來做到的,一方面通過 gas 來衡量計(jì)算量,一方面使用 gas 來吸引更多的礦工,礦工的數(shù)量越多,以太坊網(wǎng)絡(luò)就越安全。

gas 只能用于交易中,用戶不會(huì)接觸到 gas,gas 會(huì)在交易的提交的時(shí)候直接通過以太幣來兌換。

智能合約中,每個(gè)操作都會(huì)消耗一定的 gas 。每個(gè)操作都對(duì)應(yīng)一個(gè) Opcode,下面是一些常見的 gas 消耗,完整的 gas 消耗說明看這里:https://github.com/crytic/evm-opcodes

以太坊中的交易最后會(huì)被確認(rèn),打包成區(qū)塊,這樣交易才算是完成,但是在一個(gè)區(qū)塊中,可以打包的交易是有限的,以太坊通過 gas 來限制可以打包的交易數(shù)。這樣就讓被打包的機(jī)會(huì)成為了一個(gè)稀缺的資源。

用戶提交一個(gè)交易后,gas 量可以看做是一個(gè)固定的值,礦工為了做到最大收益,就會(huì)選擇那些 gas 價(jià)格更高的交易。

很多以太坊的用戶經(jīng)常吐槽 gas 費(fèi)過高,其實(shí)這里的過高不是指 gas 本身過高,而是指 gas 對(duì)應(yīng)的以太坊價(jià)格過高。

因?yàn)?Gas 的價(jià)格不是固定的,而是波動(dòng)的,簡單來說就是根據(jù)供需關(guān)系來決定的,如果同時(shí)需要用以太坊的用戶多,那么Gas 的價(jià)格就貴,如果用戶的人少,那么 Gas 的費(fèi)用就會(huì)少。

以太幣的最基本單位是 wei,1 ETH = 10 ^18 wei,而衡量 gas 價(jià)格的單位則是 gwei,1 ETH = 10 ^ 9 gwei。

在提交交易的時(shí)候,需要設(shè)定兩個(gè)參數(shù),一個(gè)是 gas 的最大消耗量(gas limited)和 gas 的價(jià)格,gas 的消耗量通常情況下會(huì)比較固定,不會(huì)有太大的變化,主要是 gas 的價(jià)格會(huì)波動(dòng)很大。

在上面我們說到礦工會(huì)挑選那些 gas 費(fèi)用比較高的交易進(jìn)行打包。所以 gas 的價(jià)格設(shè)置得越高,那么總的 gas 費(fèi)用就會(huì)越高。如果想讓當(dāng)前的交易盡快被確認(rèn),那么就需要設(shè)置一個(gè)當(dāng)前相對(duì)來說比較高的 gas 價(jià)格。

其實(shí)對(duì)當(dāng)前 gas 價(jià)格最清楚的就是那些礦工,所以礦工們也提供了一些服務(wù),讓用戶可以實(shí)時(shí)地了解到當(dāng)前 gas 價(jià)格的分布。比如 GasNow 就是一個(gè)比較常用的服務(wù),現(xiàn)在很多錢包中都在使用這個(gè)來為錢包的用戶提供 gas 價(jià)格建議。

如果你提交的交易不緊急,那么使用當(dāng)前的平均 gas 價(jià)格就可以,如果需要提交緊急的交易,那么就需要設(shè)置更高的 gas 價(jià)格。

文 / Rayjun

相關(guān)推薦