长安链ChainMaker基于公钥用户标识的身份模式介绍

身份权限控制简介

在区块链中,身份权限控制是非常重要的一个环节。区块链技术在应用过程中,要面对各种不同的场景,而很多场景的区别,本质就是身份权限控制强弱的区别。例如,利用区块链技术的以太坊项目,身份权限控制较弱,任何人都可以参与链上活动。如果在企业应用场景下,较弱的身份权限控制,可能就会显得力不从心,所以一般会采用数字证书作为用户标识的强权限控制模式(下文简称证书模式)。

传统的中心化信息系统中,经常采用用户名或者手机号来标识用户,而区块链系统中,目前主要有以下几种用户标识方法:

1. 数字证书;

2. 公钥/地址;

3. 分布式数字身份(DID)。

本期我们主要介绍两方面,一是长安链为何要实现以公钥作为用户标识的身份模式(下文简称公钥模式),这样的实现能够面向哪些企业级应用场景?二是长安链是如何设计与实现公钥模式的?

为什么采用公钥模式

长安链中,在公钥模式上线之前,身份模式主要采用的是数字证书模式。数字证书模式的特点是安全、唯一。数字证书的本质是给公钥绑定信息,然后由可信的机构颁发和签名,保证公钥及其绑定信息的真实性。但是,数字证书的颁发流程比较繁琐,需要第三方可信的CA机构参与,这样就加大了长安链运行的成本。

在某些应用场景下,应用本身可以保证公钥不被复制,掉包和伪造,或者应用本身并不关心公钥的状态,这时候如果继续采用数字证书的身份模式,就增加了不必要的成本造成资源浪费,长安链中的公钥模式就是为了解决这一问题。

简单列出以下几种常见的采用公钥模式的场景:

1. 身份权限控制本身就很弱,需要大量用户参与链上活动;

2. 需要较强的身份权限控制,但是公钥和用户身份的映射关系安全唯一;

3. 身份权限控制简单,业务或者系统并不在意公钥被复制,掉包和伪造。

公钥模式的设计与实现

在长安链中,目前主要实现了三种身份权限管理模型,即三种身份模式。身份模式是根据用户标识方法和权限控制场景区分的。我们所说的公钥模式,是分为两种身份模式。

公钥身份模式

1. PermissionedWithKey:面向强权限控制场景,利用公钥作为用户身份标识;

2. Public:面向弱权限控制场景,利用公钥作为用户身份标识。

PermissionedWithKey

对于强权限控制场景,长安链采用了基于角色的权限控制模型,如下图所示。具体来说,需将用户绑定到某一组织的一个或多个角色上,再将链上资源(即链上需要进行权限管理的操作)绑定至特定的组织、角色,即可完成资源和用户的关联。

长安链ChainMaker基于公钥用户标识的身份模式介绍_第1张图片

由于本期内容主要介绍长安链公钥模式的相关内容,其他内容就不再赘述,感兴趣者可以去查看长安链技术文档身份权限管理模块:https://docs.chainmaker.org.cn/tech/%E8%BA%AB%E4%BB%BD%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86.html。

在这里需要提到的就是数字证书和公钥作为用户标识另一个区别,数字证书里的自定义字段可以填写组织,角色等信息,而公钥却不能承载这些信息,那如何将这些权限控制所需要的信息与公钥绑定呢?

我们新增了公钥管理的系统合约:PUBKEY_MANAGE,该合约采用SELF的权限控制方案,即需要组织的管理员签名,为该组织下用户或节点的公钥绑定信息至链上。而组织管理员是启动区块链时,默认注册到链上的,通过写到链配置的trust_roots字段。另外,共识节点的组织和角色信息,也是通过在链配置中默认注册的。

系统合约PUBKEY_MANAGE拥有下列三个方法:

1. PUBKEY_ADD:增加公钥身份信息方法;

2. PUBKEY_DELETE:删除公钥身份信息方法;

3. PUBKEY_QUERY:查询公钥身份信息方法。

总结来说,组织管理员提前将用户的公钥和其绑定的组织信息和角色信息,直接写到链上,从而达到强权限控制的目的。

Public模式

相较于PermissionedWithKey模式,Public模式用户体系发生了明显的变化。

PermissionedWithKey模式,长安链的链上用户体系如下图所示:

长安链ChainMaker基于公钥用户标识的身份模式介绍_第2张图片

Public模式,长安链的链上用户体系如下图所示:

长安链ChainMaker基于公钥用户标识的身份模式介绍_第3张图片

可以看到,Public模式下,组织的概念已经不存在,角色的区分也变得更加简化,这是因为在弱权限场景下,希望更多的用户参与链上活动,所以我们放开了大部分的权限限制,仅保留了管理员和共识节点的部分特有权限。

简单来说,任何用户,不需要提前注册身份,不需要提前申请证书,使用自己的公私钥,就可以在链上调用合约!

对于合约的创建,升级,冻结,解冻等操作,也包括链配置更新等操作,还是需要管理员参与进行。想要了解更具体的权限控制,可以查看长安链技术文档身份权限管理部分:https://docs.chainmaker.org.cn/tech/%E8%BA%AB%E4%BB%BD%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86.html。

后续长安链会推出更多丰富的身份模式,例如DID身份模式,期待您的持续关注!

RECOMMEND

推荐阅读

长安链ChainMaker国密TLS设计与实现、

长安链ChainMaker新特性——透明数据加密TDE

长安链自研网络Liquid详解及应用指南

Tips

更多长安链开源项目QA,可登录开源社区、技术文档库查看。

下载源码

https://git.chainmaker.org.cn/chainmaker/chainmaker-go

查阅文档

https://docs.chainmaker.org.cn/

长安链ChainMaker案例征集

http://www.wenjuan.com/s/UZBZJvhFGte/

图片

长安链ChainMaker基于公钥用户标识的身份模式介绍_第4张图片

“长安链ChainMaker”是国内首个自主可控区块链软硬件技术体系,由微芯研究院联合头部企业和高校共同研发,具有全自主、高性能、强隐私、广协作的突出特点。长安链面向大规模节点组网、高交易处理性能、强数据安全隐私等下一代区块链技术需求,融合区块链专用加速芯片硬件和可装配底层软件平台,为构建高性能、高可信、高安全的数字基础设施提供新的解决方案,为长安链生态联盟提供强有力的区块链技术支撑。取名“长安链”,喻意“长治久安、再创辉煌、链接世界“

你可能感兴趣的:(区块链,以太坊,big,data)