Verify

乙太坊如何知道我有足夠的 ETH 可以使用?

  • September 11, 2017

乙太坊使用基於賬戶的模型。這意味著如果賬戶 A 有 50 ETH 並向賬戶 B 發送 10 ETH,則交易看起來像“從 A 向 B 發送 10 ETH”(沒有 UTXO 中的輸入和輸出)。

使用這個模型,乙太坊應該在某個步驟檢查賬戶 A 是否真的有 10 個 ETH 以防止雙重支出。

我的問題是乙太坊如何、在哪裡(模組/程式碼/契約)以及何時驗證?

這可能就是你要找的,

https://ethereum.stackexchange.com/a/1173/19016

每個帳戶都有一個可全域訪問的帳戶nonce,可防止雙重支出。這nonce是礦工檢查的序列號,因為具有不正確隨機數的交易的區塊是無效區塊(其他礦工不會在其上建構)。(nonce不能防止重放攻擊。)

在第一條消息之前無法確認第二條消息(具有更高的隨機數)。

有關補充詳細資訊,請參閱內容,例如:

全域狀態儲存具有餘額、程式碼和內部儲存的帳戶列表

如果發送賬戶有足夠的餘額來支付交易,則交易有效,在這種情況下,發送賬戶被借記,接收賬戶被記入金額

參見https://myetherwallet.groovehq.com/knowledge_base/topics/what-is-nonce

引用自:https://ethereum.stackexchange.com/questions/26242