科技一哥|区块链系统的权限管控——以联盟链为例


科技一哥|区块链系统的权限管控——以联盟链为例
文章图片
免责声明:本文旨在传递更多市场信息 , 不构成任何投资建议 。 文章仅代表作者观点 , 不代表火星财经官方立场 。
小编:记得关注哦
来源:产业最前线
原文标题:区块链系统的权限管控——以联盟链为例
区块链(Blockchain)是支撑比特币运行的底层技术 , 以太坊则开启了智能合约(smartcontract)的新时代 。 区块链发展至今 , 在各领域催生了诸多新需求和新技术 , 如权限管控、隐私保护、数据分片、跨链交易等 。 本文将主要探讨区块链系统的权限管控问题 。
目前在联盟链(PermissionedBlockchain)领域充斥着关于各类技术的探讨 , 讨论的焦点当属权限管控、隐私保护这两大领域 。 具体来说 , 产品溯源、金融应用等场景对于权限管控和隐私保护的需求就像此前信息化对移动互联网的需求一样蓬勃 , 没有人能接受一个基础功能贫乏的技术底层 。 区块链的引入并没有减少平台权限管控的需求 , 反而因此进一步深化了权限管控方面的实践 。 结合以往经验和互联网现状 , 我们对区块链系统的权限管控问题做出了以下分析:
RBAC模型
用户-角色-权限:
在这个最基础的权限模型中 , 用户是发起操作的主体 , 可以是代表企业的某个决策帐号 , 或是具体个人帐号;角色指基于角色来定义相关功能权限 , 是相对于用户而言更加抽象的业务单元;权限则指用户或角色可以访问的资源 , 如数据、操作等权限 。
延伸的版本
我们还可以基于不同的业务需求制订多层级的角色关系 , 继承角色拥有被继承角色的权限 , 也可以新增、修改、删除部分角色权限等功能 , 主要目的是简化权限管理功能 。
出于业务场景需要或者因为系统本身没有限制 , 有时会出现一个用户有多种角色的情况 , 此时就有可能产生角色或功能上的矛盾 。 规避这一矛盾的常见做法是添加约束规则 , 比如规定提交者与审批者不可为同一人(约束规则需根据业务定义来规划 , 在某些既定场景中提交者与审批者又可为同一人) 。
另外 , 按业务组织、职位 , 并加上抽象的用户组概念进行设计 , 这样能更好地应对多样复杂的业务场景 。
上述这个在互联网领域中得到反复验证方案 , 同样适用于区块链 。 首先 , 以目前的经验来看 , 我们不仅需要将传统的RBAC模型应用于区块链 , 还需要满足保护业务数据隐私保护的需求 。 引入区块链技术后 , 过去难以实现的“有限数据分享”将会产生质的飞跃 。 同时业务需求方也可以根据引入的技术 , 特别是密码学技术 , 对业务权限提出更多需求 。 基于以往参与过和探讨过的案例 , 我们对基于区块链本身的权限管理得出了以下心得 。
心得
1.角色管理
每种角色对应不同的权限等级 。
具体分为系统管理者、合约部署者 , 以及针对联盟本身的管理机制而定义的链管理者、节点管理者等 , 以上角色的功能权限与其业务权限并不是一一对应的 , 系统管理者和合约部署者并不会因为联盟管理机制的要求而被纳入管理机制之中 。
2.节点类型
目前区块链中常见的节点类型有:
共识节点:此类节点在区块链中参与进行共识并出块 。
观察者节点:一般区块链中会一直存在几个稳定的观察者节点 , 稳定地同步区块 。
3.节点管理
基于业务、联盟管理本身的需求对区块链系统中的节点进行管理 , 涉及节点的加入、退出、升级等
【科技一哥|区块链系统的权限管控——以联盟链为例】4.合约(功能)/数据管理
基于业务需要 , 针对不同场景设置合约(功能)和数据权限 。 如最简单的合约部署、合约操作权限、数据读写功能等都是基于业务需要而设计的技术 。 而权限授与和回收则可搭配上述的「角色管理」规则进行 。