了解交易的正式描述及其相關退款
摘自黃皮書第 8 頁:
我完全理解合約可以自毀,當發生這種情況時,根據這個執行緒,所有餘額都會退還到作為參數指定的地址。
在等式 64 中,會發生這種情況嗎?在狀態轉換中銷毀的所有賬戶餘額是否加起來?對名為函式的唯一先前引用
R
是在交易收據的上下文中,我懷疑這就是這裡添加的內容。如果是,下一個等式背後的基本原理是什麼,不是。65、對退款設限?
設想:
- Gas 限制為 60,000,Gas 價格為 5 gwei
- 交易僅使用20,000
- 持有1,000,000 gwei或㆔0,01的賬戶在此過程中被銷毀
- 就像
Tg
60,000 和g'
40,000 一樣,((Tg - g') / 2)
是 10,000,按照 5 gwei 的比率,意味著 50,000 gwei 或 ㆔0,00005來電者是否只會被退款
g' + ㆔0,00005
而不是g' + ㆔0,01
?
定義 64
Rselfdestruct與塊收據無關。相反,它是黃皮書附錄 G 中定義的常數,值為 24,000(截至拜占庭版本 69351d5)。
總和 sigma 符號 Σ 表示As中的每個自毀賬戶i都有價值 24,000 gas 的退款。當然,全部金額都會添加到已經存在的退款餘額Ar中。
定義 65
我們必須對退還的 gas 設置一個上限,以確保所有交易從經濟角度來看都是有意義的。如果之前的*Ar’*計算產生的 gas 價值高於交易所有者支付的價格,礦工執行這些交易就沒有意義(他們必須為額外退還的 gas 支付費用)。
因此,乙太坊協議的設計方式避免了經濟上不可行的情況 - 即人們會刪除一堆賬戶只是為了賺錢,但這些交易不會被處理,他們會毫無目的地膨脹記憶體池.
您顯示的方程式專門針對gas退款。的執行
selfdestruct(address)
意味著將合約中的乙太幣發送到address
,Aad 然後銷毀合約。銷毀返還gas的操作,這就是添加到櫃檯的內容。第一個等式 (63) 只是表明退款計數器在自毀後更新。第二個等式表明,要返還的總gas是剩餘的gas,(未使用的gas)加上消耗的一半gas之間的最小值
$$ (Tg-g’)/2 $$和退款櫃檯的金額。這意味著如果您的交易消耗了 30000 天然氣,最多將退還 15000 天然氣。 所以呼叫者將被退還相應的氣體,0.01 乙太幣將進入
address
使用時selfdestruct(address)
希望這可以幫助