题目
你在设计一个签名体系,需要决定有效期怎么加、由谁判断。团队里出现了三种意见:前端判断即可、服务端判断即可、交给链上合约判断。
请分别说明链上授权与链下登录两种场景下有效期的正确强制位置,以及过期后用户应该看到什么。
考察目标
- 能否区分「链上强制执行」与「服务端校验」。
- 是否理解前端判断只影响体验,不影响安全。
- 能否指出「永不过期」这类取值的影响。
考察截止时间字段的强制位置,以及前端判断与服务端判断的职责差异。
你在设计一个签名体系,需要决定有效期怎么加、由谁判断。团队里出现了三种意见:前端判断即可、服务端判断即可、交给链上合约判断。
请分别说明链上授权与链下登录两种场景下有效期的正确强制位置,以及过期后用户应该看到什么。
链上授权类签名的截止时间由合约在链上判定:不满足截止条件时整笔调用回滚,前端与服务端都无法绕过。链下登录类签名不在链上执行,过期时间需要由服务端在解析后校验。前端在两处都只承担体验优化,例如提前提示即将过期。
deadline,任一条件不满足时整笔调用回滚(依据:EIP-2612 §Specification)。nonces[owner] 一致,调用成功后该 nonce 递增,因此同一份签名无法重复使用(依据:EIP-2612 §Specification)。deadline 可以被设置为 uint(-1),使授权实际上长期有效(依据:EIP-2612 §Rationale)。发现这道题有问题? 反馈此题