Go-Ethereum
交易收據、區塊和確認
在比特幣中,最好的做法是在接受交易之前等待三到六個區塊確認。這是為了避免雙重支出。乙太坊有類似的經驗法則嗎?
假設我正在建構一個跟踪乙太坊支付交易的服務。如果我有一個傳入的 tx 雜湊,我如何通過 Geth RPC API 檢查確認?我認為應該使用交易收據,但我應該跟踪哪些數字以提防雙重支出和類似的事情。如果檢測到雙花或其他惡意條件(分叉?),交易是否會以某種方式失效?
以下是關於確認、檢查確認和雙花的 3 個問題的答案。
12個確認;但是,仍然鼓勵經常處理大量乙太幣的交易所和實體執行兩種不同的乙太坊實現,並且只接受已經被雙方確認的交易以實現最大安全性(例如 Go 和 C++)。
- 事實上,使用交易收據是檢查確認的一種方式。程式碼範例:DApp 如何使用 web3.js 或其他庫檢測分叉或鏈重組?
防止雙花,因為每個賬戶都有一個隨著每筆交易而增加的交易計數(nonce)。
注意:雖然每個賬戶都有一個防止雙花的隨機數,但隨機數不能防止重放攻擊。