题目
服务端把「以用户地址模拟调用成功」当作登录凭据,另一处前端在省略 from 的模拟结果上进行权限判断。请说明 eth_call 里 from 的语义,以及这些做法的问题所在。
考察目标
- eth_call 的语义与 from 参数的角色。
- 模拟成功与身份、权限之间的关系。
- 默认参数的实现依赖问题。
说明 eth_call 的只读语义与 from 参数的角色,并给出模拟预检与签名验签之间的责任划分。
服务端把「以用户地址模拟调用成功」当作登录凭据,另一处前端在省略 from 的模拟结果上进行权限判断。请说明 eth_call 里 from 的语义,以及这些做法的问题所在。
eth_call 是节点侧的只读执行,不写入链上状态,也不验证签名;from 只是调用方指定的消息发送者参数,可以被填写为任意地址,因此模拟成功不能证明身份或账户控制权。实现差异与工程取舍见深入回答。
发现这道题有问题? 反馈此题