Nonce

如果地址有非空程式碼並且有人從該地址送出交易,nonce 會發生什麼?

  • March 21, 2020

乙太坊黃皮書指出:

nonce:一個標量值,等於從該地址發送的交易數量,或者,對於具有關聯程式碼的賬戶,該賬戶創建的合約數量。由於地址a處於狀態σ,這將正式表示為σ$$ a $$ñ

該聲明沒有描述存在帶有程式碼的地址的私鑰的情況。此外,我還沒有找到任何禁止合約存在私鑰的聲明。直覺說,在這兩種情況下,隨機數都只是增加了,但我需要從授權來源確定這一點。

它將同時起作用。

  • 當交易由私鑰簽名時,它將充當 EOA。隨機數將隨著每筆交易而增加。
  • 當它作為合約被呼叫時,它將充當合約。Nonce 在創建新合約時會增加。

與其他智能合約一樣,nonce 將從 1 開始。

在乙太坊中有兩種類型的賬戶:

  1. 外部擁有的賬戶 (EOA)
  2. 合約賬戶

EOA 具有與之關聯的公鑰和私鑰,而合約賬戶沒有與之關聯的私鑰。

合約地址有一個隨機數,僅當合約創建另一個合約時才會增加,否則隨機數不會增加。

交易只能由 EOA 送出,不能由合約地址送出。合約地址可以通過消息呼叫而不是通過交易來呼叫其他合約的功能。

可以在此處找到有關契約隨機數的更多詳細資訊

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