区块链(Blockchain)是支撑比特币运行的底层技术,以太坊则开启了智能合约(smart contract)的新时代。区块链发展至今,在各领域催生了诸多新需求和新技术,如权限管控、隐私保护、数据分片、跨链交易等。本文将主要探讨区块链系统的权限管控问题。
目前在联盟链(Permissioned Blockchain)领域充斥着关于各类技术的探讨,讨论的焦点当属权限管控、隐私保护这两大领域。具体来说,产品溯源、金融应用等场景对于权限管控和隐私保护的需求就像此前信息化对移动互联网的需求一样蓬勃,没有人能接受一个基础功能贫乏的技术底层。区块链的引入并没有减少平台权限管控的需求,反而因此进一步深化了权限管控方面的实践。结合以往经验和互联网现状,我们对区块链系统的权限管控问题做出了以下分析:
RBAC 模型
用户 - 角色 - 权限:
在这个最基础的权限模型中,用户是发起操作的主体,可以是代表企业的某个决策帐号,或是具体个人帐号;角色指基于角色来定义相关功能权限,是相对于用户而言更加抽象的业务单元;权限则指用户或角色可以访问的资源,如数据、操作等权限。
延伸的版本
我们还可以基于不同的业务需求制订多层级的角色关系,继承角色拥有被继承角色的权限,也可以新增、修改、删除部分角色权限等功能,主要目的是简化权限管理功能。
出于业务场景需要或者因为系统本身没有限制,有时会出现一个用户有多种角色的情况,此时就有可能产生角色或功能上的矛盾。规避这一矛盾的常见做法是添加约束规则,比如规定提交者与审批者不可为同一人(约束规则需根据业务定义来规划,在某些既定场景中提交者与审批者又可为同一人)。
另外,按业务组织、职位,并加上抽象的用户组概念进行设计,这样能更好地应对多样复杂的业务场景。
上述这个在互联网领域中得到反复验证方案,同样适用于区块链。首先,以目前的经验来看,我们不仅需要将传统的RBAC模型应用于区块链,还需要满足保护业务数据隐私保护的需求。引入区块链技术后,过去难以实现的“有限数据分享”将会产生质的飞跃。同时业务需求方也可以根据引入的技术,特别是密码学技术,对业务权限提出更多需求。基于以往参与过和探讨过的案例,我们对基于区块链本身的权限管理得出了以下心得。
心得
1. 角色管理
每种角色对应不同的权限等级。
具体分为系统管理者、合约部署者,以及针对联盟本身的管理机制而定义的链管理者、节点管理者等,以上角色的功能权限与其业务权限并不是一一对应的,系统管理者和合约部署者并不会因为联盟管理机制的要求而被纳入管理机制之中。
2. 节点类型
目前区块链中常见的节点类型有:
共识节点:此类节点在区块链中参与进行共识并出块。
观察者节点:一般区块链中会一直存在几个稳定的观察者节点,稳定地同步区块。
3. 节点管理
基于业务、联盟管理本身的需求对区块链系统中的节点进行管理,涉及节点的加入、退出、升级等
4. 合约(功能) / 数据管理
基于业务需要,针对不同场景设置合约(功能)和数据权限。如最简单的合约部署、合约操作权限、数据读写功能等都是基于业务需要而设计的技术。而权限授与和回收则可搭配上述的「角色管理」规则进行。
基于不同领域的经验,区块链系统的权限管控方案可能会被设计成截然不同的模样,不过万变不离其宗。长期以来,我们在权限管控方面积累了丰富的经验,即便区块链的功能有所更新,也出现了新的数据权限需求,我们目前也已经提出了比较成熟的解决方案。现存机制针对数据本身的可视性做多租户分隔,并不能根本性地解决同一生态下的问题,更需要在同一片天空(生态)下实现「有限数据分享」。区块链中的密码学技术使其在解决业务需求方面产生了质与量的提升,利益相关方间原来难以跨越的信任藩篱,也将因密码学的应用而开启新世界的大门,如通过引入密码学中的多方安全计算、零知识证明等技术,能更直接地解决各方之间有限数据分享、计算、确认等问题。此外,上述联盟链的权限管控方案也方便进行跨机构的合作和管理。生态中各利益相关方在一套透明可信的规则下有序协同,也是区块链分布式协同带来的价值和意义。当然目前区块链仍处于发展早期,就像一扇刚刚开启的大门,门后新世界里的新事物有待各位有志之士共同探索。
关于万向区块链
2015年,万向集团金融板块中国万向控股有限公司在区块链技术领域开始了战略性布局,成立了国内首个区块链技术研究机构万向区块链实验室,以太坊创始人Vitalik Buterin担任首席科学家。2017年,在进一步整合资源、深化平台建设的基础上,上海万向区块链股份公司正式成立。目前,万向区块链在区块链领域累计投入超过10亿人民币。公司专注于区块链技术研发,联合生态合作伙伴打造了以隐私计算为特色的新一代联盟区块链平台——PlatONE。在技术应用方面,万向区块链聚焦金融、汽车、智能制造、智慧城市、石化、农业等重点行业,利用技术和生态优势为各行业客户提供区块链解决方案和产品,以技术支持实体经济发展。