[Coin] 再請教ETH交易的nonce問題

看板DigiCurrency (數位貨幣)作者 (做過頭主義)時間3年前 (2022/06/16 23:36), 3年前編輯推噓1(3215)
留言20則, 7人參與, 最新討論串1/1
根據這個網站說明: https://gitchat.csdn.net/columnTopic/5b0e4011100ce52029ab6f40 以太坊中為了防止交易重播攻擊,每筆 Transaction 都必須 有一個 Nonce 隨機數。每個賬戶從同一個節點發起交易時的 Nonce 值都是從 0 開始,發送一筆 Transaction 後 Nonce 加 1,當 Nonce 為 0 的交易處理完之後,才會處理 Nonce 為 1 的交易,並以此類推。 以下是 Nonce 使用的規則: 當 Nonce 值小於之前 Transaction 的 Nonce 值時, 交易會被直接拒絕; 當 Nonce 值過大時,Transaction 會一直處於隊列之中,等待執行; 假設賬號 C 最後一筆 Transaction 的 Nonce 值為 10,此時 發送一筆 Nonce 值為 13 的 Transaction 至節點中。此筆 交易會一直處於隊列中,不會立即打包上鍊。需要等待 Nonce 值為 11 和 12 的 Transaction 依次執行完後才會來處理這筆 Transaction。 ===== 哇,我的老天,那這樣不是代表一個帳戶越使用,優先級別就越低了? 所以以太坊的用戶交易次數多了,還要換錢包嘛? 這是不是我誤會了什麼? 另外,這個 nonce 值正常人不可能去記他, 基本上要透過 Web3 API 去鍊上取得, 但在製作交易簽名的時候這個值要預先填進去, 這是不是意味著 ETH 其實無法靠冷錢包做離線簽名? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.11.110 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1655393771.A.17F.html

06/16 23:38, 3年前 , 1F
nonce 是跟自己比
06/16 23:38, 1F
喔,這樣就了解了 不過如果不取得nonce,沒法離線簽名了.... ※ 編輯: overdoingism (118.169.11.110 臺灣), 06/16/2022 23:41:24

06/16 23:42, 3年前 , 2F
nonce 本來就可以手動填 完全離線的狀況就由自己去把 nonce
06/16 23:42, 2F

06/16 23:42, 3年前 , 3F
填上去
06/16 23:42, 3F

06/16 23:43, 3年前 , 4F
給太低的 nonce 會被拒絕 給太高要等前面的執行
06/16 23:43, 4F

06/16 23:51, 3年前 , 5F
最常見的狀況就是 fee 給太低了
06/16 23:51, 5F

06/16 23:51, 3年前 , 6F
用另外一筆同 nonce 但 fee 比較高的交易把它取代掉
06/16 23:51, 6F

06/17 00:09, 3年前 , 7F
對啊,要取消交易就是填同一個nonce值的0值交易
06/17 00:09, 7F

06/17 00:10, 3年前 , 8F
你的離線簽名是指sign message還是sign transaction?
06/17 00:10, 8F

06/17 00:13, 3年前 , 9F
假如是sign message用不到nonce值
06/17 00:13, 9F

06/17 00:14, 3年前 , 10F
假如真的要sign一個離線的transaction放很久的話
06/17 00:14, 10F

06/17 00:14, 3年前 , 11F
那就開一個account給它專用就不用管nonce值跳動
06/17 00:14, 11F

06/17 00:17, 3年前 , 12F
sign transaction
06/17 00:17, 12F

06/17 00:17, 3年前 , 13F
了解
06/17 00:17, 13F

06/17 01:42, 3年前 , 14F
交易簽名時不用填nonce,送出時會自動抓”確認”tx nonce
06/17 01:42, 14F

06/17 01:42, 3年前 , 15F
所以如果不是特殊操作重複送tx用比較大的gas price會蓋過
06/17 01:42, 15F

06/17 01:42, 3年前 , 16F
pending tx
06/17 01:42, 16F

06/17 02:05, 3年前 , 17F
不用填nonce是因為在signTransaction的時候會自動抓吧?
06/17 02:05, 17F

06/17 02:05, 3年前 , 18F
在對tx簽名時裡面沒有nonce怪怪的
06/17 02:05, 18F

06/17 05:12, 3年前 , 19F
答案文檔和黃皮書裡全都有 請認真閱讀
06/17 05:12, 19F

06/19 14:43, , 20F
請google 或是自己試
06/19 14:43, 20F
文章代碼(AID): #1Ygqth5_ (DigiCurrency)
文章代碼(AID): #1Ygqth5_ (DigiCurrency)