题目
运营想做一个「用户活跃度」看板,初版方案是用账户的随机数当作「发送过的交易数」,并统计合约地址的随机数来判断协议活跃度。
请指出这个方案的问题,并说明随机数在两类账户上分别代表什么。
考察目标
- 是否理解随机数在外部账户与合约账户上的两种语义。
- 能否指出内部调用不消耗调用者随机数这一事实。
- 能否给出替代的统计口径。
考察随机数在两类账户上的不同语义,以及它对「账户活跃度」类指标的影响。
运营想做一个「用户活跃度」看板,初版方案是用账户的随机数当作「发送过的交易数」,并统计合约地址的随机数来判断协议活跃度。
请指出这个方案的问题,并说明随机数在两类账户上分别代表什么。
nonce 是账户状态中的序号,不等于业务操作次数。普通外部账户发交易会递增 nonce,合约之间的普通调用不会因此递增被调账户的 nonce;但合约执行 CREATE 会递增创建者的 nonce,EIP-7702 授权也可能递增被授权账户的 nonce。因此不能说整条调用链只有交易发起者的 nonce 会变化。业务活跃度应按明确的事件、交易或应用记录口径统计。
CALL 不会仅因调用而递增被调账户的 nonce;调用过程中若有 CREATE,创建者的 nonce 仍会变化(依据:Yellow Paper §7 Contract Creation;EIP-7702 §Backwards Compatibility)。发现这道题有问题? 反馈此题