在以太坊中存在兩種賬戶,一種是外部賬戶EOA,一種是合約賬戶。不管是外部賬戶還是合約賬戶,都包括nonce,balance,code hash,storage hash。
外部賬戶生成一個交易創(chuàng)建合約,以太坊會生成一個合約賬戶,并保存合約代碼和狀態(tài)。
兩種賬戶稍有區(qū)別,外部賬戶只有nonce和balance,另兩個為空。外部賬戶由私鑰控制,合約賬戶由合約代碼控制。
以太坊account nonce主要用于防止重放攻擊。
重放攻擊是指將一條用戶交易信息在一條鏈上再次發(fā)送,比如Alice轉(zhuǎn)錢給Bob這樣一條交易發(fā)出后,Bob可以將這條交易信息重復(fù)發(fā)送到網(wǎng)絡(luò)中,如果沒有nonce,那么這些交易都會被當作合法交易。
詳見:https://ethereum.stackexchange.com/questions/26/what-is-a-replay-attack