以太坊account nonce的作用
2018-09-27 本文已影响57人
Scott_Song
在以太坊中存在两种账户,一种是外部账户EOA,一种是合约账户。不管是外部账户还是合约账户,都包括nonce,balance,code hash,storage hash。
外部账户生成一个交易创建合约,以太坊会生成一个合约账户,并保存合约代码和状态。
两种账户稍有区别,外部账户只有nonce和balance,另两个为空。外部账户由私钥控制,合约账户由合约代码控制。
以太坊account nonce主要用于防止重放攻击。
重放攻击是指将一条用户交易信息在一条链上再次发送,比如Alice转钱给Bob这样一条交易发出后,Bob可以将这条交易信息重复发送到网络中,如果没有nonce,那么这些交易都会被当作合法交易。
详见:https://ethereum.stackexchange.com/questions/26/what-is-a-replay-attack