区块链 · 数字资产知识 · 行业资讯
文章库关于本站

政策资料

区块链用户授权的应用边界是什么:账户控制与合约权限

摘要

区块链用户授权并不等于把账户的全部控制权交给应用。以以太坊账户机制和智能合约访问控制为例,授权边界取决于谁发起操作、合约允许哪些动作,以及谁能调整权限。账户控制、业务角色和角色管理权应分别理解,不能把有效签名视为对所有功能的通行许可。

玻璃文档与棱镜的原创资料研究概念插画

一、授权边界需要分层理解

区块链用户授权的应用边界是什么?关键在于区分账户控制权、业务操作权和权限管理权。能够控制一个账户,不代表能够调用所有合约功能;获得某项业务权限,也不意味着可以把权限授予其他人。

以下讨论适用于以太坊账户和采用所有者或角色机制的智能合约。不同系统的权限规则可能不同,不能仅凭“区块链应用”这一名称判断授权范围。

二、账户签名不等于合约许可

Ethereum 的账户文档区分由私钥控制的外部账户与由代码控制的合约账户,并强调钱包是与账户交互的界面,而不是账户本身。签名用于证明操作来自相应的密钥持有者。

这意味着,“由谁发起”和“是否有权执行”是两个问题。用户签署一笔请求,只能解决其中的身份验证环节;如果目标功能设置了访问限制,操作还需要满足合约中的权限条件。钱包界面上的确认不能替代这些检查。

三、权限应对应具体功能

OpenZeppelin 的访问控制文档介绍了所有者模式和基于角色的模式。前者适合单一管理主体,后者允许把不同操作分配给不同角色,体现最小权限原则。

适用边界应落实为“哪个账户可以执行哪些功能”,而不是笼统地写成“已授权用户”。例如,内容管理和资源创建属于不同职责时,可以分别定义权限;但是否真正隔离,仍取决于相关功能有没有执行对应检查。

四、操作权限与管理权限要分开

角色持有者默认不因此获得为他人分配该角色的能力;角色的授予和撤销由相应管理员控制。因此,评估授权范围时,既要看当前角色能做什么,也要看谁能够改变角色分配。

对于职责会变动的应用,动态授予和撤销有其适用性。普通业务角色的范围即使很小,如果权限管理权过于集中,整体控制边界仍可能较宽。不能只检查业务角色而忽略管理层。

五、常见问题与判断方法

持有私钥是否就能操作任意合约?不能。私钥提供相应账户的签名能力,不会自动获得其他合约的受限权限。拥有一个角色是否意味着拥有全部管理权?也不能这样推断,应分别核对业务权限和角色管理规则。

判断一个应用的授权边界,可以依次确认账户主体、受限功能、对应角色和角色管理员。界面名称与文字承诺只能辅助理解,最终应以实际生效的合约规则为准;这些技术规则也不能单独证明某项业务安排在现实中的合法性。

← 返回全部文章

延伸阅读 · 相关栏目

行业资讯研究与报告政策资料交易平台观察