
一、授权边界首先是操作范围
区块链用户授权的应用边界是什么?核心是区分“谁发起请求”与“谁有权执行某项操作”。能够控制账户,不代表能够调用所有受限功能;拥有某项业务权限,也不代表拥有整个应用的管理权。本文讨论以太坊账户及合约访问控制的一般机制,不将其视为所有区块链应用的统一规则。
二、账户控制不等于应用授权
Ethereum账户文档区分了由私钥控制的外部账户与由代码控制的合约账户,并指出钱包是与账户交互的界面。签名帮助验证请求的发起方,但是否允许执行具体业务,还要看目标合约的规则。

因此,钱包界面、账户控制和业务许可属于不同层次。不能仅因为用户能够签名,就认定其可以执行管理操作;也不能仅凭一个账户地址,就确认操作者的现实身份。

三、权限应对应明确的业务职责
OpenZeppelin访问控制文档介绍了所有者模式与基于角色的权限管理。前者适合单一管理主体,后者支持不同职责分工。拥有业务角色通常不意味着能够授予该角色,权限分配由相应管理员控制。
适用条件在于职责是否需要分离。若系统存在不同管理任务,应分别界定每项任务涉及的动作,而不是把“管理员”理解成不受限制的通行证。最小权限原则要求账户仅持有完成职责所需的权限。
四、边界还包括谁能改变权限
理解授权不能只看当前谁能操作,还要看谁能修改权限分配。同一个业务角色,即使眼下只有少数账户持有,如果管理员仍可重新分配,权限范围就不是永久固定的。
评估应用时,应分别关注执行权限与管理权限。前者决定当前能做什么,后者决定以后谁可以做。撤销某项权限通常限制的是后续受控操作,并不意味着已经产生的业务结果自动恢复。
五、常见问题与适用限制
授权是否意味着数据保密?不意味着。限制某个函数的调用资格,与限制数据被读取是不同问题,不能把操作权限当作完整的隐私保护机制。
链上允许执行是否等于现实中合法有效?不能直接等同。合约依据代码判断是否接受操作,现实身份、法律权利和组织责任仍需独立确认。判断授权是否合理,应同时明确主体、操作范围、权限管理者及其适用场景。