Nonce是一个在区块中的4字节区域,用于计算块的hash值,并确保其以一串0开头。这意味着即使是微小的更改(如nonce值),也将导致块hash发生巨大变化。要找到一个满足固定数量0比特位的hash值,需要尝试足够多的nonce值,并计算每个值的对应的块hash。难度是由差异确定的,必须产生一个小于当前难度值的hash。这个过程非常耗时和资源,得到正确的nonce值也构成了工作证明。在以太坊中,nonce有两种含义:工作证明nonce和账户nonce。智能合约也是一种账户,它们也有自己的nonce,代表创建的合约数量。但是,当合约调用另一个合约的方法时,nonce值不会改变。要访问合约中的nonce值,需要自己定义一个计数器。以太坊也需要进行工作证明,类似于比特币,通过nonce计算块hash并确保以0开头。难度不断变化,必须找到一个满足难度要求的值。