当前位置: 首页 > 专利查询>广州大学专利>正文

智能合约的数据一致性保障方法、系统、设备及存储介质技术方案

技术编号:31572706 阅读:80 留言:0更新日期:2021-12-25 11:13
本发明专利技术提供了智能合约的数据一致性保障方法、系统、设备及存储介质,所述方法包括:接收智能合约的状态变量加锁请求;根据所述状态变量加锁请求,获取智能合约地址和状态变量名称;根据所述智能合约地址和状态变量名称分配互斥锁,并采用所述互斥锁对所述状态变量名称对应的状态变量进行加锁操作;响应于智能合约的状态变量解锁请求,执行所述状态变量的解锁操作。本发明专利技术通过对关联操作序列之间数据读写隔离结合数据锁状态检测识别重入风险,不仅能保证区块链系统交易业务正常稳定处理,而且能有效防止攻击者在脏状态下读写数据而造成数据不一致状态,防范重入攻击,较少交易损失风险,还不限制外部调用,保证智能合约应用开发的灵活性和通用性。的灵活性和通用性。的灵活性和通用性。

【技术实现步骤摘要】
智能合约的数据一致性保障方法、系统、设备及存储介质


[0001]本专利技术涉及电子与信息
,特别是涉及一种智能合约的数据一致性保障方法、系统、计算机设备和存储介质。

技术介绍

[0002]智能合约从技术层面可视为一组由字节码指令定义的函数,具体能够接收、存储、发送信息与货币的性质。特定承担应用业务的智能合约状态数据之间存在逻辑关联约束称之为数据一致性。例如:“账户”和“余额”间的约束为每个项目参与者持有对应的代币数额,在智能合约的开发、审计和测试过程中,通常假设其上下文环境数据逻辑是一致的,而在智能合约执行数据操作,尤其是复杂数据操作时,却会出现不满足关联约束的中间脏状态,若开发人员对智能合约设计不够严谨,就会使得智能合约更易被恶意攻击者利用而从中获利。即,恶意攻击者可借助重入攻击等方式构造智能合约的脏状态,外部合约则有机会通过重入攻击恶意利用脏状态以突破智能合约的原有约束,篡改原智能合约的控制流和状态,通过回退函数或者回调攻击合约自身来进行实现恶意重复转账等攻击。例如:引起市场剧烈波动的The DAO事件就是攻击者利用脏状态进行超额提款本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种智能合约的数据一致性保障方法,其特征在于,所述方法包括以下步骤:接收智能合约的状态变量加锁请求;根据所述状态变量加锁请求,获取智能合约地址和状态变量名称;所述状态变量名称包括至少一个状态变量;根据所述智能合约地址和状态变量名称分配互斥锁,并采用所述互斥锁对所述状态变量名称对应的状态变量进行加锁操作;响应于智能合约的状态变量解锁请求,执行所述状态变量的解锁操作。2.如权利要求1所述的智能合约的数据一致性保障方法,其特征在于,所述互斥锁采用标准库方法实现。3.如权利要求1所述的智能合约的数据一致性保障方法,其特征在于,所述根据所述智能合约地址和状态变量名称分配互斥锁,并对所述状态变量名称对应的状态变量进行加锁操作的步骤包括:根据访问数据栈和所述状态变量名称,判断是否允许分配所述互斥锁;若允许分配所述互斥锁,则将所述智能合约地址和所述状态变量名称存储于所述访问数据栈,并分配对应的所述互斥锁,反之,则拒绝所述状态变量加锁请求。4.如权利要求3所述的智能合约的数据一致性保障方法,其特征在于,所述根据访问数据栈和所述状态变量名称,判断是否允许分配所述互斥锁的步骤包括:遍历所述状态变量名称,并判断是否存在已保存于所述访问数据栈中状态变量;若所述状态变量名称中不存在已保存于所述访问数据栈的状态变量,则允许分配所述互斥锁,反之,则拒绝分配所述互斥锁。5.如权利要求1所述的智能合约的数据一致性保障方法,其特征在于,所述响应于智能合约的状态变量解锁请求,执行所述状态变量的解锁操作的步骤包括:将所述状态变量名称对应的所述互斥...

【专利技术属性】
技术研发人员:邓靖田志宏苏申鲁辉林链升李柯斌
申请(专利权)人:广州大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1