Ethereum

什麼是乙太坊的 Gas Limit?

  • April 5, 2017

乙太坊中 Gas Limit 參數的作用是什麼?它涉及採礦還是其他?

在乙太坊中,gas 是計算工作量的衡量標準。每次操作都會分配固定數量的gas(例如,添加兩個數字需要3 gas,計算雜湊需要30 gas,發送交易需要21000 gas [1])。

由於計算成本很高(請注意,它必須由網路中的每個完整節點完成),因此需要阻止過度消耗 gas。因此,觸發計算的交易的發送者必須(以乙太幣)支付每個單位的氣體。

不幸的是,預先知道一筆交易最終需要多少 gas 通常並不容易,通常甚至不可能。因此,交易有一個gas limit欄位來指定發送者願意購買的最大gas量。如果在執行期間使用的氣體超過此限制,則停止處理。發送方仍然需要為執行的計算付費,但他們可以避免資金完全耗盡。

交易氣體限制還可以保護完整節點免受攻擊者的攻擊,攻擊者可以在沒有氣體限制的情況下使它們執行有效的無限循環。如果此類交易的處理時間超過一個塊,則它永遠不會被包含在一個塊中,因此,攻擊者不需要為此付費。[2]

此外,區塊也有一個名為gas limit的欄位。它定義了整個區塊中所有交易允許消耗的最大氣體量。類似於比特幣中的最大塊大小(以字節為單位),其目的是保持塊傳播和處理時間較短,從而允許足夠分散的網路。然而,與比特幣相比,它不是一個常數。相反,礦工可以選擇將每個區塊增加或減少一定的因子。[3]

  • [1] 請參閱黃皮書了解運營明細和相應的 gas 成本(附錄 G 和 H)
  • [2] <https://github.com/ethereum/wiki/wiki/Design-Rationale#gas-and-fees>
  • [3] 請參閱黃皮書公式 40 至 42 了解確切規則

引用自:https://bitcoin.stackexchange.com/questions/39132