解锁超级链去中心化的权限系统

区块链资讯百度超级链2019-12-28 16:18:06  阅读 -评论 0

中心化的权限系统使用场景受限,同时增加了网络运维成本以及用户使用成本。百度超级链基于ACL权限模型实现了一套去中心化的权限系统,同时保持着可扩展、易用的特性,有助于开发者快速上手。
 
本期超级链学院线上微课堂就带你解锁超级链去中心化的权限系统!明星讲师超哥将主要围绕以下几点展开:
1.权限系统在区块链中有哪些作用?
2.超级链权限系统是如何构建的?
3.用户如何快速上手超级链权限系统?
4.使用过程有哪些常见问题需要避免?
5.超级链权限系统与其他系统的异同点?
快来继续往下看吧!
Q1:账户与权限系统的定义是什么?
账户用于标识区块链网络中不同身份,而权限控制用于约束资源获取/更新等能力。
账户与权限系统就是指结合账户与权限控制两个要素,以账户为粒度对资源获取/更新等能力进行约束的一种系统要素。这里的账户包括普通账户以及合约账户。
Q2:账户与权限系统有哪些常见模型?
区块链中常见的权限控制模型包括:基于ACL的权限控制模型、基于RBAC的权限控制模型以及基于ABAC的权限控制模型。
Q3:账户与权限系统在区块链中有哪些作用?
权限系统用于保障区块链网络中普通用户资产、合约用户资产的安全,只有拥有相应权限的用户才能访问/更新相应的数据,做到用户对自己的数据具有所有权。
常见的权限系统包括以联盟链为代表的MSP身份认证系统,以公链为代表的去中心化权限系统。
Q4:超级链采用的哪种账户与权限模型呢?
超级链其实已经实现了一套基于CA的权限控制系统,适用于联盟链应用场景。为了不仅适用于联盟链场景,同时适用于公链场景的需求,超级链还自研了一套基于ACL权限控制模型的去中心化的账户与权限系统。当初设计去中心化的账户与权限系统主要是为了公链场景下,支持智能合约数据资产的访问权限控制,保障合约资产数据的安全。
到目前为止,超级链中普通账户的权限认证也走去中心化权限系统,实现了权限认证的入口统一。目前,超级链自研的权限控制系统支持签名阈值策略、AK集签名策略等。
阈值策略是指每个用户持有一定权重的权限,当授权用户的总权重达到一定阈值时,表明鉴权通过。AK集策略是指集合中的AK之间的与以及集合之间的或逻辑表达式,来决定是否鉴权通过。
Q5:超级链是如何实现账户与权限系统的?
权限系统主要包括赋权与鉴权两个部分,这两个方法以系统合约的形式实现。在创建合约账户、设置合约账户权限列表、设置合约方法权限列表时,会分别调用赋权与鉴权这两类系统合约。
(1)超级链是如何实现赋权的?什么操作涉及到赋权?
赋权是指为合约账户或者合约方法设置访问权限列表,涉及到更新数据库数据。
一般在创建合约账户、设置合约账户权限列表、设置合约方法权限列表时都会涉及到赋权操作。
主要操作就是将一个<key,value>写入数据库,value通常为json格式的权限配置文件,而key就是合约账户的ID或者合约方法的ID。
赋权过程中,还会对参数进行有效性验证,比如合约账户命名规范是否合法,权限列表数量是否达到上限。
(2)超级链是如何实现鉴权的?什么操作涉及到鉴权?
鉴权是指验证一组签名是否具有足够权限执行特定的操作,比如调用某个合约的某个方法、普通用户转账等。
主要通过权限树模型进行权限认证流程,具体流程如下:
①根据实体的链上权限规则构造出权限树,并缓存每个非叶子节点的具体权限规则;
②按层遍历权限树,从最底层的节点进行鉴权;
a.如果节点是一个普通的address,直接判断是否满足实体的权限需求;
b.如果节点是一个合约账号,则递归判断其所有子节点是否获得授权;
③如果当前节点为根节点,则按照(2)中的鉴权规则判断,得到最终的鉴权结果;
通常,涉及到数据更新的地方都需要鉴权。
Q6:应该如何使用超级链的账户与权限系统?

只需要正确填写Initiator以及AuthRequire以及对应的签名即可。
Initiator通常从data/keys/address文件中获取,AuthRequire通常从data/acl/addrs文件中获取。
我们以创建一个合约账户为例,说明如何使用。
step1: 准备一个acl配置文件,命名为newAccount.json,内容如下:
{
    "module_name": "xkernel",
    "method_name": "NewAccount",
    "args" : {
        "account_name": "1111111111111111",
        "acl": "{\"pm\": {\"rule\": 1,\"acceptValue\": 0.6},\"aksWeight\": {\"AK1\": 0.5,\"AK2\": 0.5}}"
    }
}
其中,module_name是指创建合约账户调用的系统合约名字;
method_name是指创建合约账户调用的系统合约方法名字;
account_name是指待创建的合约账户名字;
acl就是具体的权限配置规则,其中rule是指特定的权限模型,acceptValue是权限阈值,aksWeight是指具体的权限比重配置。
step2: 发起预执行,命令如下:
./xchain-cli multisig gen - -desc newAccount.json
step3: 对预执行结果进行签名,命令如下:
./xchain-cli multisig sign --output my.sign
step4: 将预执行结果以及签名组装成一个完整的交易并转发到网络,命令如下:
./xchain-cli multisig send my.sign my.sign
Q7:超级链权限模型与其他模型有何异同点呢?
Fabric:
实现了一套基于MSP的权限认证系统,通过CA进行证书授权,基于ABAC进行权限访问控制。
只适用于联盟链场景,不适用于公链,且ABAC方式较复杂。
EOS
基于RBAC实现一套账户权限系统,RBAC将角色与权限挂钩。
Ethereum
权限控制都是靠每个合约自己在代码中定义。
Bitcoin
没有权限控制。
分享结束后,群里涌现出的精彩问题,摘取部分分享给各位。
问:超级链的权限模型是不是不使用CA证书?因为在我的理解中,CA是个中心化的东西。
答:我们支持CA模型,不过当前开源的版本没有实现CA。我们的联盟链解决方案包含了CA,但目前开源版本的权限系统是独立于CA存在的,是一种完全去中心化的权限系统。
问:普通账户权限认证的去中心化权限系统是在哪个版本升级了?普通用户该如何使用权限系统呢?
答:普通账户的权限验证一直都是在链上完成的,后来将普通账户的权限验证接口统一到了权限系统中了。
普通用户的权限验证就是公私钥验证。
问:物联网的海量数据接入链会发生什么事?是否有具体有关充电桩场景应用的案例呢?
答:这种场景对网络的性能有要求。如果网络性能不行,容易阻塞。
超级链之前恰好有过汽车充电桩数据接入区块链的案例,在这个案例中,我们通过LCV轻量级节点植入到充电桩中,从源头保证数据可信采集,并将实际充电结算数据上链,解决了充电桩服务商、电力部门和用户之间的数据互信问题。
问:rule是指特定的权限模型,acceptValue是权限阈值,aksWeight是指具体的权限比重配置。那权限模型、阈值、权限比重配置,可以说明一下这3个吗?
答:权限模型是指使用什么样的ACL规则模型来验证权限,可选的有阈值模型和AK集模型。如果选择阈值模型,那么ACL中每个address可以配置一个权重,这个权重配置列表就是aksWeight,那么将所有签名Address的权重累加,如果超过acceptValue这个阈值,就说明权限验证成功。
问:EOS实现RBAC将角色与权限挂钩。这种是不是更适合联盟链业务场景?超级链选择的acl的优势是什么?
答:超级链的ACL并不是传统意义的访问控制列表,而是一种基于账户列表的可扩展的权限模型。举例来说,我们提供的AK集模型就可以支持账户集合之间的逻辑关系判断。所以基于这种可扩展的权限模型,用户甚至可以定制出自己的RBAC模型,这种灵活性要比RBAC更高。
问:由于企业内部可能存在账号系统中用户信息被恶意泄露的问题,超级链中的授权鉴权能否发展成为企业内部账号系统?或者说未来有没有可能打造一款类似产品,部署在企业内部做私有链
答:对于企业账户信息泄露的问题,可以从两个角度考虑,第一个角度是单个用户密码泄露导致的单个用户信息泄露,这个在区块链场景下如果用户私钥泄露也同样会泄露个人信息;第二个角度是因为用户数据中心化存储带来的中心化系统数据泄露问题,这种情况通过区块链可以将用户信息作为个人隐私数据保留在个人账户中,典型的例如去中心化身份系统,可以做到不会因为中心化系统被攻破而泄露所有用户的信息。
问:有方法实现去中心化的身份认证系统吗?
答:DID去中心化身份系统有标准实现,我们也会在未来开源我们自己的DID解决方案。
问:Fabric中的CA认证能不能拓展到其他场景呢?例如:登陆某一网站或者APP,通过扫描二维码,进行CA授权及权限划分。
答:超级链不是Fabric,不过我们也有CA。除此之外,我们的权限系统是一种更灵活、可扩展的权限模型。理论上,可以通过扩展权限模型来支持外部验证系统,不过外部系统数据不在链上,当外部用户发生变化时,链上并无法及时得知,有可能导致数据不一致问题。

声明:链世界登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。此文如侵犯到您的合法权益,请联系我们kefu@lianshijie.com

参与讨论 (0 人参与讨论)

相关推荐

如何把区块链应用交给社区?这有一份渐进式去中心化操作手册

如何把区块链应用交给社区?这有一份渐进式去中心化操作手册

为什么「社区参与和去中心化」如此重要呢?实现去中心化的社区控制的另一个重要原因,是合规。对于核心团队来说,放弃控制意味着有机会将责任转交给社区。激励(费用)经济激励是促使社区为项目做贡献的一种方式。

Conflux 与 Chainlink 达成战略合作,将接入去中心化预言机

区块律动 BlockBeats 消息,日前,公链项目 Conflux 宣布与去中心化预言机服务提供商 Chainlink 达成战略合作。Conflux 即将接入 Chainlink,双方将共同在资源整合、信息互动、技术开发等方面进行深度合作。

数据回顾去中心化交易所的 2019

数据回顾去中心化交易所的 2019

原文标题:《用数据来回顾去中心化交易所的 2019》原文来源: 以太坊爱好者去中心化交易所从 2018 年开始崛起,在过去一年中蓬勃发展。现在我们用数据和可视化工具来回顾一下 DEX 在 2019 年的成长。

澳大利亚储备银行进行在以太坊网络支付系统运行CBDC的模拟测试

据 Bitcoinist 报道,澳大利亚储备银行 近期透露,其模拟了在基于以太坊网络的批发支付系统中使用中央银行数字货币的测试,以查看银行之间客户支付的清算系统能否在一个基于以太坊的许可网络上运行。

孙宇晨:波场将会推出一款全新去中心化稳定币

孙宇晨:波场将会推出一款全新去中心化稳定币

区块律动BlockBeats 消息,孙宇晨今日在推特表示,波场将会基于 TRX 以及 BTT 推出一款新去中心化稳定币,并在推特上向网友征集该稳定币的名称。

证监会召开2020年系统工作会议:积极探索区块链等创新金融科技的应用

区块律动 BlockBeats 消息,据格隆汇报道,1 月 17 日,证监会召开 2020 年系统工作会议:积极探索区块链等创新金融科技的应用。

因监管原因,去中心化交易平台 KyberSwap 宣布迁至英属维尔京群岛

因监管原因,去中心化交易平台 KyberSwap 宣布迁至英属维尔京群岛

据区块律动 BlockBeats 消息,加密货币衍生品交易平台 Deribit 也已类似原因迁至巴拿马。数据显示,目前 KyberSwap 目前为第二大非托管型交易平台。

Elastos Hive:亦来云的去中心化存储技术

Elastos Hive:亦来云的去中心化存储技术

亦来云要做一个 Smartweb,一个新型的互联网,一个让区块链的可信能够传递到用户日常场景的操作系统。以区块链为可信基础,结合 Elastos 的沙箱隔离机制和网络隔离机制,让数字资产可以被确权、数量有限(稀缺)、可交易和可消费。 让人人都能拥有数字资产,变现未来财富,从而将互联网打造为智能经济生态圈建立起互联网上的私有经济。在区块链领域,尤其是以太坊社区,互联网上几千台去中心化连接的矿机组成一

麦妖榜
更新日期 2019-09-03
排名用户贡献值
1牛市来了30910
2BitettFan24187
3等待的宿命23810
4区块大康20369
5六叶树20310
6linjm122719429
7天下无双16192
8lizhen00215280
9让时间淡忘14586
10yelanyi050511349
返回顶部 ↑