【翻譯】Ethereum以太坊的“gas”是什么?設(shè)計原理是怎么樣的?

最近看到一個把gas解釋的不錯的帖子,所以就翻譯過來了。翻譯辛苦,請勿轉(zhuǎn)載。

Gas是一種特別的單位用于Ethereum(以太坊)里,它用來衡量一個行為或者一系列行為有多少“工作量”,簡單可以理解為是手續(xù)交易手續(xù)費的一種計量單位。

例如:

計算一個Keccak256加密哈希值,Ethereum平臺上的交易或合同執(zhí)行的每個操作都需要一定數(shù)量的gas,每次計算散列時將需要30個gas,加上每256位的6個gas的成本 數(shù)據(jù)被散列。與需要較少計算資源的操作相比,越多計算資源的操作需要更多的gas成本。

Gas確保一個交易支付了適當?shù)馁M用給以太網(wǎng)絡(luò),它顯得非常重要。 執(zhí)行的每個操作(或合同執(zhí)行)交易都要求支付其相應(yīng)的費用,這樣才能確保網(wǎng)絡(luò)不會因為進行大量密集的工作而陷入僵局。

這是一個不同于比特幣交易費用的策略,比特幣交易費用僅基于交易的千字節(jié)大小。 由于Ethereum允許運行任意復(fù)雜的計算機代碼,所以很短的代碼實際上可以導(dǎo)致大量的計算工作正在完成。 因此,直接衡量工作非常重要,而不是僅僅根據(jù)交易或合同的長度選擇費用。

那么如果gas基本上是一筆交易的手續(xù)費,那么該怎么支付呢?

這里有個有個很難理解的地方,雖然gas是可以被衡量的單位,但gas沒有任何實際的標記(token)。也就是說,你不能擁有1000個gas,gas只存在于Ethereum虛擬機的內(nèi)部,作為執(zhí)行多少工作的計算數(shù)量。關(guān)于gas的實際支付場景中,交易手續(xù)費以一定數(shù)量的ether 作為支付,Ethereum網(wǎng)絡(luò)中的內(nèi)置機制(token)中,礦工挖礦生成區(qū)塊的獎勵。

初看這個會覺得有點奇怪。 為何不直接在以太網(wǎng)絡(luò)中計算出手續(xù)費?

答案是,以太網(wǎng)絡(luò),如比特幣,擁有快速變化市場價格!但計算成本不會因為以太網(wǎng)絡(luò)幣價的變化而上漲或下降。 所以將計算的價格與以太幣token的價格分開是有幫助的,每次幣價市場走動時,操作的成本都不必改變。

這里的術(shù)語有點混亂。在EVM(以太網(wǎng)絡(luò)虛擬機)的運行有g(shù)as消耗,但gas本身也擁有一個的gas的價格。 每個交易指定了gas價格(每一單位的gas價值多少ether),允許讓市場來決定ether價格與計算操作成本之間的關(guān)系(以gas計量)。這是兩者的組合,總gas數(shù)量乘以gas單位價格,這就是總交易所需要支付的費用。

理解這個區(qū)別很重要,因為它會讓最初學(xué)習者了解有關(guān)的Ethereum交易感到困惑:

“您的交易中出現(xiàn)的gas與您的交易之間存在差異,沒有足夠高的費用來支持交易(out of gas)”

如果我在交易中設(shè)置的gas價格太低,沒有人會接納我的交易作為優(yōu)先運行。礦工基本不會愿意將你的交易打包進區(qū)塊里。如果我提供了一個大家可接受的gas價格,然而我的交易產(chǎn)生如此多的計算工作,gas的成本費用超過了我附加的費用,這個gas是已“花費”了得,沒有辦法收回。礦工將停止處理交易,還原這個交易所做的任何更改,但仍將其作為“交易失敗”包含在塊中,收取費用你支付的費用。

這可能看起來很苛刻,但是當您意識到礦工的真正工作正在執(zhí)行計算時,您可以看到他們將永遠不會獲得這些資源。所以只有你支付了費用,他們做了他們應(yīng)做的任務(wù)這樣才會是公平的,盡管是你的設(shè)計不當,導(dǎo)致沒有支付足夠的gas。

提供太高的費用也不同于提供太多的ether。 如果你設(shè)定了非常高的gas價格,您所需要只是簡單幾個操作,就為其支付大量的ether,就像在比特幣中設(shè)置一個超高的交易費用一樣。 你的任務(wù)一定會在最優(yōu)先考慮隊列前,但是你的錢已經(jīng)被支付了。

但是,如果您提供正常的gas價格,并且只要附加的ether比您交易消耗的gas所需的更多,那么以太網(wǎng)絡(luò)將會把超額費用將退還給您。 礦工只收取你們實際工作的費用。您可以將gas價格視為礦工的小時工資,gas成本作為工作時間。

有很多其他的gas的細節(jié),但目前我們還是解釋最基礎(chǔ)的。gas是使Ethereum網(wǎng)絡(luò)的復(fù)雜計算“網(wǎng)絡(luò)安全”的關(guān)鍵機制,因為任何失去控制的程序只會工作持續(xù)到最后請求他們的任務(wù)執(zhí)行。 當錢停止支付時,礦工們將會停止工作。

你設(shè)計的程序中犯的錯誤,只會影響付費使用它的人。其余的網(wǎng)絡(luò)不能因為你的錯誤而遭受性能問題。 當性能問題消耗你的所有ether幣時,他們將簡單地得到一個 big payday! 沒有這個關(guān)鍵技術(shù),通用塊鏈的想法是完全不可能的。

簡單而言:
gas是計算費用的方式。
不過,這些費用仍然是以ether計算,這與gas不同。
gas成本是工作量,如勞動時數(shù),而gas價格就像您為完成工作付出的小時工資。 兩者的組合決定了您的總交易費用。
如果您的gas價格太低,沒有人會處理您的交易。
如果您的gas價格不錯,但交易的gas成本超過預(yù)算,交易失敗,但仍然被打包進區(qū)塊,勞動者工作了,您不會獲得退款。
這樣確保沒有任何東西永遠運行,而且人們會對他們運行的代碼注意一點。 它使礦工和用戶都能安全避免錯誤的代碼!

(翻譯辛苦,請勿轉(zhuǎn)載此譯文。)
如果覺得對您有幫助,請給我打賞點幣兒吧。
BTC地址:19hexJYkSBpqDmG4phGmE9Q7CK5SRxE4r9
ETH地址:0xa9b6344371588c3911e5172d52f114b3b5377536

原文來自:
https://ethereum.stackexchange.com/questions/3/what-is-meant-by-the-term-gas/62#62

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 簡介 不管你們知不知道以太坊(Ethereum blockchain)是什么,但是你們大概都聽說過以太坊。最近在新...
    Lilymoana閱讀 3,995評論 1 22
  • 首先非常感謝imToken錢包的郭輝同志,第一時間將國外對以太坊大都會升級的詳細解答翻譯成可讀通順的中文資料! 譯...
    AndrewDing閱讀 910評論 0 2
  • 一、區(qū)塊鏈 1. 分布式去中心化 比特幣設(shè)計的初衷就是要避免依賴中心化的機構(gòu),沒有發(fā)行機構(gòu),也不可能操縱發(fā)行數(shù)量。...
    Tenny1225閱讀 34,351評論 5 35
  • 這兩天,一直在車上輾轉(zhuǎn),心情起起伏伏,太多感慨。 年過三十,心里還是有太多柔軟的地方,性情中人,就是這樣。 這么多...
    王玬錦閱讀 972評論 2 3
  • 4.2.3作業(yè)3(8組) 我怕……(復(fù)原卡1張) 我常常用……方式攻擊/防御(復(fù)原卡動物卡1張) 其實我投射了……...
    如常0811閱讀 335評論 0 0

友情鏈接更多精彩內(nèi)容