Transactions
區塊中包含的 EOA 交易是否保證成功?
無論交易的來源(外部擁有的地址/智能合約)和交易中包含的數據如何,如果目的地是 EOA 並且交易包含在一個區塊中,我是否可以確定資金在沒有驗證的情況下實際轉移交易收據?
如果我理解正確,交易內在有效性的標準(黃皮書,第 6 節“交易執行”)強制要求在沒有呼叫智能合約的情況下為交易提供足夠的氣體,但我可能誤解了 g0 和v0。
我包括了我擔心的黃皮書的摘錄:
交易的執行是乙太坊協議中最複雜的部分:它定義了狀態轉換函式 Υ。假設首先執行的任何交易都通過了內在有效性的初始測試。這些包括:
(1) 交易是格式良好的 RLP,沒有額外的尾隨字節;
(2) 交易簽名有效;
(3) 交易nonce有效(相當於發送方賬戶的目前nonce);
(4) gas limit 不小於交易使用的固有gas g0;和
(5) 發送方帳戶餘額至少包含預付款所需的成本 v0。
如果交易首先通過了內在驗證並包含在一個塊中,那麼 EOA 中沒有程式碼會導致它失敗。
即使交易似乎包含在一個區塊中,鏈頭的交易順序和合法性也存在一定程度的不確定性,因此等待多個確認以降低風險可能是明智的,就像所有 PoW 系統一樣。
可能對遇到此問題的其他人有所幫助,請指出我們僅談論 Eth 向 EOA 和從EOA 的轉移。代幣轉移非正式地描述為“到使用者”實際上是“到代幣合約”,所以情況不同。合約中的 Eth 轉賬總是從 開始
{from: EOA, to: contract}
。希望能幫助到你。