中移链系统合约管控功能介绍

news2024/11/25 20:21:45

中移链是在满足我国信息化监管需求、合规可控的前提下,打造的中国移动区块链服务平台。如果把中移链类比为计算机系统,那么系统合约就是中移链中的系统设置部分,用于配置和管理链的资源和行为。在计算机系统中,系统设置提供了对计算机系统的底层控制,使其能够有效地运行各种应用程序。同样,在中移链中,系统合约是中移链中的底层协议,负责账户、交易、RAM、CPU、网络带宽等相关配置和管理。

01

账户和权限体系介绍

在中移链中,账户与系统合约密切相关,所有账户都必须由系统合约创建和管理。系统合约执行需要链账户来进行发起。链账户是中移链中的重要参与者,用于管理用户的资产、执行智能合约和交互。中移链中链账户可以设置多个权限和角色,这种灵活的权限管理机制使得中移链账户可以更加安全地进行交易。而这一机制,正是由系统合约来实现的。

在创建新账号时,默认需要指定以下参数:账户名称,Active和Owner权限公钥以及需要的资源(账户需要拥有一定数量的资源才能进行交易和操作,这些资源包括RAM、CPU和NET)。

账户名:在中移链中,账户名是唯一的标识符,用于标识账户和接收中移链资源。账户名必须是12个字符串,只能包含小写字母a-z和数字1-5。

公钥和私钥:账户可以有多个公钥,不同的公钥可以用于不同的场景来进行加密和签署交易。私钥是与公钥相关联的一个字符串,它用于签署交易和解密加密信息。私钥必须保持机密,不能被分享或泄露。   

权限:中移链中的账户权限有多种类型,例如活跃权限(Active)、所有者权限(Owner)和合约权限等。这些权限用于管理账户的访问控制,例如限制谁可以访问账户、对账户进行转账或修改账户信息等。中移链中的权限非常灵活,允许账户所有者定义自己的访问规则和安全策略。

如果需要更复杂的签名加密方式,可以通过多重签名来实现,它允许多个签名者进行多个公私钥对的协作,实现多方授权的目的。例如,一个企业账户可以设置3个签名者,当进行敏感操作时,需要至少有2个签名者共同授权才能完成操作。下图简单说明了一下多重签名的概念。

我们可以把Alice在区块链中的权限和授权表看作一张清单,这张清单告诉我们她需要多少权重才能使用自己的Active权限进行签名。假设她的Active权限阈值是2,那么只有当权重达到2时,才能使用她的Active权限进行签名。如果我们把Bob和Stacy在Alice的Active权限表中的权重都改为1,那么他们两个的权限加起来才能达到2,才可以使用Alice的Active权限进行签名。

02

系统合约与交易介绍

目前中移链的主要的系统合约有如下几个:

中移链系统合约中的各个子合约之间相互协作,共同维护系统的正常运行。要执行中移链的系统合约,用户需要使用其私钥对其进行签名并发起交易请求。交易随后广播到网络并由网络参与者进行验证。以转账合约为例,整体的执行过程如下:

1、用户发起交易,使用对应权限的公私钥签名;

2、节点收到交易后,发送给共识节点;

3、共识节点接收到交易后,进行交易排序;

4、交易执行;

5、交易打包出块;

6、区块同步全网,交易在每个节点上运行;

7、区块链网络中每个节点数据同步一致;

为了保证合约的执行安全,合约的执行都需要使用账户进行签名,签名的账户权限必须满足合约执行的需求。比如,一个合约需要执行一个转账操作,那么它所依赖的账户就需要拥有相应的转账权限。如果账户没有这样的权限,那么合约的执行就会失败。

03

系统合约权限管控功能改造

通过对账户权限和系统合约执行过程的了解,不难发现虽然有灵活的组合权限来确认账户权限的归属,但是在系统合约层面,无法对重要系统合约的执行进行有效管控,比如新建链账户、资源购买、赎回和选举共识节点等重要操作,只需要签名通过并满足创建资源的需求即可调用,无法指定管理员来管理这些系统合约的权限,这显然也不符合开放联盟链的管理模式。

为了增强安全性,满足开放联盟链的需求,中移链在系统合约的主要函数中加入了权限组的校验逻辑。当调用转账和购买资源等需要权限的合约时,需要先校验权限是否通过。如下为提前设置管理员的命令:

以购买资源的合约为例,在购买资源前,中移链会在购买资源的系统合约中预先设置管理员权限表,为不同系统资源分配不同的管理员。当用户购买内存时,会校验当前用户是否在的权限组中。这样,当调用账户没有管理员权限时,将抛出异常并拒绝调用该合约。这种修改只是增加了管理员,缩小了权限范围,因此是向后兼容的,不会造成硬分叉。这样升级的好处是可以在不中断链的情况下,引入新的功能和升级系统,使得整个系统更加安全和可靠。

系统合约功能改造前改造后
新建链账户只要有资源就能创建链账户管理员才能创建
购买RAM资源有TOKEN(通证)就能购买内存管理员才能进行购买分配
购买CPU资源有TOKEN(通证)就能购买CPU管理员才能购买分配
.........

通过权限表的灵活配置,中移链实现了系统合约管控功能,敏感合约只允许权限表中对应的管理员进行操作。比如新建链账户,只允许链账户管理员进行操作,资源的买卖和赎回,只允许资源管理员进行操作,确保链上数据和系统合约的安全和稳定,也符合BSN开放联盟链的需求和目标。

04

系统合约权限管控功能验证

1、使用管理员账号分别创建两个测试账号:testaccount2和testaccount5,账号信息如下:

2、将测试账号testaccount2设置成为管理员账号

3、测试管理员testaccount2进行购买资源,购买成功。

4、接着使用普通账号的testaccount5进行购买资源测试,购买失败。

5、现在将testaccount2从权限表中移除,再次进行购买资源测试。

6、移除权限后,testaccount2变成普通账号,购买资源失败。

中移链致力于构建一个开放、安全、高效、易用的区块链基础设施网络,以满足各种企业和开发者的需求。后续将持续对中移链底层框架进行能力增强,为BSN生态中的企业和开发者用户提供更加多元化的技术选择与更加可靠的基础设施保障。

05

参考资料

[1]BSN开放联盟链:

https://opb.bsnbase.com/main/index

[2]官方EOSIO账号和权限介绍:

https://developers.eos.io/welcome/latest/protocol-guides/accounts_and_permissions

[3]官方EOSIO交易介绍:

https://developers.eos.io/welcome/latest/protocol-guides/transactions_protocol

[4]官方EOSIO智能合约介绍:

https://developers.eos.io/welcome/latest/smart-contract-guides/index

-END-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/425823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SE11/SM30 维护视图

文章目录创建维护视图偶遇错误创建维护视图 首先我们现在SE11中创建一个透明表,然后点击如下图 需要我们创建一个函数组,他的目的是为了让系统生成相应的代码放在这个函数组中,也可以说是SM30的操作界面;点击上面的保存就可以了 注意在输入屏幕编号的时候切记不要和其他的维护…

ChatGPT背后的逻辑

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl OpenAI与ChatGPT OpenAI是一个美国的人工智能(AI)研究实验室,由非营利组织OpenAI Incorporated和其盈利子公司OpenAI Limited Partnersh…

HTTPS 加密简析

1 前言 HTTPS采用的是对称加密和非对称加密的混合加密方法。 密码学知识可以查看我的这篇博客 CISSP考试要求里的“应用密码学”内容辅助记忆趣味串讲_晓翔仔的博客-CSDN博客 2.HTTPS加密过程 https在建立链接时是非对称加密,建立链接后是对称加密。 步骤1 客户端…

初识掌控板2.0、官方拓展板和配套编程软件mpython

不是广告!!不是广告!! 一、掌控板2.0概览 掌控板又名掌上联网计算机,是一款为青少年学习Python编程和创意制造,特别是物联网应用而设计的开源硬件。内置microPython开源嵌入式Python运行环境,可…

怎么将静图变动图?用这个网站就够了

在使用聊天工具聊天时,大家都喜欢用一些动态的表情包,这种动态表情包就是gif格式图片。因为其生动丰富的画面能够通过一张图片表达多种信息。那么,如何生成gif图片呢?一、什么工具能够制作gif动画? GIF中文网作为一款…

allwinner boot0启动

目录 路径:u-boot-2018/arch/arm/cpu/armv7/sunxi/u-boot-spl.lds 路径:u-boot-2018/arch/arm/cpu/armv7/start.S 路径:u-boot-2018/arch/arm/lib/crt0.S 路径:u-boot-2014.07\common\board_f.c 路径:u-boot-2014.…

领英如何不让对方查看自己的好友,防止他人添加自己客户

那如何防止好友加自己的好友呢?其实领英是可以设置谁能查看到自己好友的,甚至不让所有人查看。 领英是一个关系性的职业社交平台,最大的特点就是关系性。彼此有某种关系的人或在3度内的人都可以查看对方的详细资料,甚至可添加对方…

Redis 如何配置读写分离架构(主从复制)?

文章目录Redis 如何配置读写分离架构(主从复制)?什么是 Redis 主从复制?如何配置主从复制架构?配置环境安装 Redis 步骤通过命令行配置从节点通过配置文件配置从节点Redis 主从复制优点Redis 主从复制缺点Redis 如何配…

第十四届蓝桥杯单片机省赛真题(巨简代码+超级详解)

文章目录前言一、陷阱分析二、代码相关定义、声明1.变量声明2.函数声明三、主要函数1.函数初始化 :关闭蜂鸣器、定时器初始化、设置时间、消除85℃影响、开启总中断2.按键扫描:长按松开清除数据,短按切换界面,加减参数3.数据采集与…

视频提取gif如何操作?教你用gif制作工具快速截取gif

从视频中提取gif动画就是将电影、电视剧中的某一段视频提取出来做成gif格式的动态图片。那么,如何使用电脑或是手机来将视频转换成gif动图呢? 一、使用什么工具能够完成视频转gif制作呢? 通过使用GIF中文网的视频转gif(https://…

S型加减速速度给定功能块(SCL+梯形图)

S型加减速详细算法公式请参看下面博客文章,这里不再赘述: 博途PLC1200/1500PLC S型速度曲线变频器控制应用(SCL完整源代码)_RXXW_Dor的博客-CSDN博客PLC运动控制基础系列之梯形速度曲线,可以参看下面这篇博客:PLC运动控制基础系列之梯形速度曲线_RXXW_Dor的博客-CSDN博客运…

前段开发:配置VSCode像IDEA一样调试VUE项目

如果不配置VSCode调试,那么我们的前段项目一般都是在浏览器中的开发者工具中调试,这样对于使用习惯了IDEA开发调试的人特别不习惯,这几天个人研究了下VSCode中的代码调试功能,做以下记录: 1、使用插件调试&#xff1a…

应用DAP-seq技术鉴定百脉根中一个NAC转录因子在全基因上的靶基因,揭示硝酸盐诱导根瘤衰老的新机制

豆科植物通过与根瘤菌共生,形成能够固氮的根瘤。硝酸盐能够影响根瘤共生的过程,适宜浓度的硝酸盐促进结瘤固氮,而高浓度的硝酸盐抑制菌根共生,并且会促进根瘤衰老。NLP (NIN-Like Protein)转录因子调控硝酸盐信号转导,…

CSS实现三角形的四种方法

方法一&#xff1a;使用 border (常见) 【解释】不设置宽高&#xff0c;用边框大小控制三角型大小 【分解步骤】 设置一个div不设宽高 【示例】 <style>#triangle{width: 0;height: 0;border: 100px solid;border-color: orangered skyblue gold yellowgreen;} </s…

3.8——友元

类的主要特点之一是信息隐藏和封装&#xff0c;即类的私有成员和保护成员只能在定义的范围内使用&#xff0c;也就是说私有成员和保护成员只能通过类的成员函数来访问。但是&#xff0c;有时候我们在类外也需要访问私有成员数据或保护成员数据怎么办。这时我们就要通过友元函数…

gru 串联LLm

单纯是为了降低大LLM 设计的结构 当前如果transformers 可以 输出一个状态也是可以的 这样串联的好处是每次运行知识一个小模型的计算量 时间换空间的概念 可以训练100个模型而后根据需要进行微调 从100 个中选择一个预测比较接近的进行微调预测 预测后继续进行从100中选择 而后…

Linux内核之网络协议栈以及套接字sk_buff分析

网络协议栈以及套接字sk_buff分析一、Linux 内核网络协议栈构架二、网络协议栈常见的数据结构2.1、TCP/IP 参考模型及 ISO/OSI 参考模型2.2、套接字 sk_buff 分析2.3、套接字缓冲区管理数据2.4、Linux 内核提供套接字缓冲区标准 API 函数2.5、使用一个表头来实现套接字缓冲区的…

java StringBuffer和StringBuilder

目录一、概述二、StringBuffer和StringBuilder区别三、StringBuffer使用一、概述 String类是字符串常量&#xff0c;是不可更改的常量。而StringBuffer是字符串变量&#xff0c;它的对象是可以扩充和修改的。 StringBuffer是使用缓冲区的&#xff0c;本身也是操作字符串的&…

工作2年,连接口自动化测试用例怎么设计都不知道?你好意思吗

目录 前言 接口信息来源 单接口测试 场景逻辑验证 异常测试 尽量自动化 独立性 可重复性 合理的断言 公共参数 数据集合 数据模板 前言 说到自动化测试&#xff0c;或者说接口自动化测试&#xff0c;多数人的第一反应是该用什么工具&#xff0c;比如&#xff1a;Py…

FTP-----局域网内部传输文件(1)

在日常工作中&#xff0c;如果需要跨设备的传输文件&#xff0c;您需要借助USB数据线或者借助应用实现无线互联&#xff0c;将所需文件传输到对应设备&#xff0c;这一来一去&#xff0c;花费的时间与精力变多了&#xff0c;那么&#xff0c;怎么实现不使用第三方软件来实现跨设…