CN115470498A - 一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法 - Google Patents
一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法 Download PDFInfo
- Publication number
- CN115470498A CN115470498A CN202211163193.3A CN202211163193A CN115470498A CN 115470498 A CN115470498 A CN 115470498A CN 202211163193 A CN202211163193 A CN 202211163193A CN 115470498 A CN115470498 A CN 115470498A
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- reentry
- refund
- attack
- contract
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明设计一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法,属于计算机网络安全领域;首先提出了一种重入攻击智能合约,是基于现有拍卖退款智能合约通过增加退款函数withdraw的方式,避免使用revert()方法进行优化得到的;为了验证重入攻击智能合约的有效性,使用promela语言将重入攻击智能合约转化为reentrancySecure.pml形式化文件,对重入攻击智能合约进行建模;最后将重入攻击智能合约模型进行形式化验证;采用本方法优化的智能合约能够避免因系统中断产生的重入攻击,与带有漏洞智能合约相比,优化后的智能合约等效内存使用量减少、搜索深度提升以及运行时间也有缩短。
Description
技术领域
本发明属于计算机网络安全领域,尤其涉及一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法。
背景技术
1995年密码学家尼科萨博提出了“智能合约”概念,智能合约是能够自动执行合约条款的计算机程序,由于其具有可信、去中心化特点被应用于区块链中。重入漏洞存在于合约之间的交互过程,常见的合约之间的交互其实也是很多的,例如:向未知逻辑的合约发送ether,调用外部合约中的函数等,在以上交互过程看似没有什么问题,但潜在的风险点就是外部合约可以接管控制流从而可以实现对合约中不期望的数据进行修改,迫使其执行一些非预期的操作。智能合约和一般程序不同,因其不可篡改性,使得其无法通过打补丁方式来修复,一旦遭受攻击,合约将无法被调用。
当智能合约的交易金额特别巨大,而同时发现合约上有较为明显漏洞时,将导致巨额资产损失。近五年因智能合约安全问题引发了诸多攻击事件。2016年6月,恶意攻击者利用Solidity语言中的递归调用splitDAO漏洞,入侵以太坊公有链上作为智能合约执行的最大众筹项目The DAO,导致超过6000万美元的以太币被盗;2017年,黑客利用Parity多重签名钱包合约中的委托调用漏洞,获取钱包地址的所有权并转移内部资产,导致价值上亿美元资金被冻结;2018年4月22日,BeautyChain出现安全漏洞,导致BEC损失64亿人民币;同年4月28日,EOS被爆出可能存在BEC合约类似的安全漏洞,若此漏洞存在,则极大可能导致市场价值归零,金融行业也因此蒙受较大损失;2020年8月,非法用户利用存在漏洞的智能合约导致YAM项目暴跌致崩盘。
智能合约中的部分函数执行是依赖于外部调用结果,该情况下又没有对外部返回的结果做严格控制,比如返回结果非预期的处理,可能会引发一些安全事故,因而可能会造成系统的意外中断。例如DoS攻击导致的KotET安全漏洞事件。该事件可能会造成系统资源的耗尽直至中断。2021年8月17日,BSC上DeFi项目XSURGE遭遇闪电贷攻击。当地时间8月16日,XSURGE官方在遭攻击前曾发布了关于SurgeBNB漏洞的声明,由于SurgeBNB合约不可更改且已被放弃,因此无法修补该漏洞。XSURGE称没有透露任何关于此漏洞性质的具体细节,但强烈建议用户尽快迁移出SurgereBnb,该漏洞随时可能被攻击者触发。在声明发布后,XSURGE随后便遭遇攻击,攻击者在SurgeBNB中窃取了500万美元。2022年3月27日,RevestFinance遭到黑客攻击。黑客利用了Revest合约的逻辑漏洞盗取了近770万枚ECO、579枚LYXe、近7.15亿枚BLOCKS以及超35万枚RENA,价值约200万美元。黑客攻击使用从TornadoCash取出的资金发动了攻击,通过SushiSwap以及Uniswap将盗取的Token兑换成了ETH,最后通过Tornado Cash平台将ETH转移到了其他账户。
案例表明,智能合约若自身存在漏洞隐患,会严重威胁用户信息和财产安全,甚至造成难以预估的损失。面对智能合约存在的安全问题,研究高效的合约漏洞优化方法具有重要意义。能够对智能合约漏洞进行完备性和安全性分析的方法目前仍未被提出,当前对于智能合约的安全保障主要依靠专家审计和人工复查,而该类方式不能保证代码的绝对安全。
目前针对智能合约漏洞研究主要以智能合约部署后检测是否存在漏洞为主。2020年,赵伟等针对目前没有利用符号执行技术检测漏洞问题,提出利用符号执行技术检测智能合约漏洞的方案,结果显示,对漏洞库中70份含漏洞的智能合约检测正确率达85%,但存在漏检率偏高且检索时间长等问题。2021年,朱飑凯等针对智能合约漏洞挖掘误报率、低效能等问题,提出一种基于动态模糊测试和机器学习的适用于智能合约漏洞的检测方法模型,使40352份智能合约样本中,OOB错误率低至5%以下,但对常见漏洞类型检测没有提及;同年,李宗鸿等针对现有符号执行检测速度慢的问题,结合深度优先与广度优先进行路径选择,提出一种自底向上求解约束的改进符号执行方法,该方法针对选取的100份带有漏洞的智能合约检测率达84%,但在几类常见漏洞分类检测方面没有深入研究。在智能合约部署前进行检测及优化的较少,针对可重入攻击的优化改进方面的研究也是进展缓慢。
发明内容
针对现有技术的不足,本发明设计了一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法。
一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法,具体包括以下步骤:
步骤1:设定重入攻击智能合约,contract reentrancy合约是不含拒绝服务漏洞的合约;所述重入攻击智能合约是基于现有拍卖退款智能合约通过增加退款函数withdraw的方式,避免使用revert()方法进行优化得到的;
首先定义并输入当前领先者currentFrontrunner、当前金额currentBid、存储退款映射refunds和退款数组refund;若保存到合约中金额大于当前最高价,则继续执行支付函数bid()和退款函数withdraw();否则,则中止支付函数bid(),执行退款函数withdraw();
bid()函数带有关键字“payable”是带有支付性质的函数;退款函数将需要退款的地址借助变量refund来存储,依次退款,以此来避免重入攻击;
使用solidity语言进行重入攻击智能合约编写,合约名字为reentrancySecure,该合约首先定义mapping类映射refunds来存储用户之间的退款,避免拒绝服务攻击,随后设计bid支付函数用于用户间竞价,最后设计withdraw函数用于执行用户的退款;
设置支付金额为vether(v<100)用于建议退款,点击bid按钮后,该笔交易成功执行,生成对应的合约地址及交易地址,花费一定的燃料费gas,然后点击withdraw按钮合约执行退款功能,vether被退回,该笔交易成功,仅花费很少的燃料费gas;
步骤2:为了验证重入攻击智能合约的有效性,使用promela语言将重入攻击智能合约转化为reentrancySecure.pml形式化文件,对重入攻击智能合约进行建模:
步骤2.1:首先将solidity代码翻译成等效Promela代码,将一部分solidity代码去除,其他部分直接或间接换成Promela代码语句;建模时对合约控制语句进行抽象,对合约控制语句进行形式化定义如下所示:
(B,σB,σM)→True:
(if(B){O},σB,σM)→(O,σB,σM) (1)
(B,σB,σM)→False:
(if(B){O},σB,σM)→(//,σB,σM) (2)
式1和式2为if语句,其中,B表示判断条件,σB,σM分别表示存储在智能合约上的全局变量和局部变量,判断条件分为True(真)和False(假),若判断条件为真时,执行操作O,∥表示若判断条件为假,不执行任何操作;
(B,σB,σM)→True:
(while(B){O},σB,σM)→(O,while(B){O},σB,σM) (3)
(B,σB,σM)→False:
(while(B){O},σB,σM)→(//,σB,σM) (4)
式3和式4为while语句,其中,B表示判断条件,σB,σM分别表示存储在智能合约上的全局变量和局部变量,判断条件分为True真和False假,若判断条件为真时,执行操作O再进行判断,∥表示若判断条件为假,不执行任何操作;
步骤2.2:在使用promela建模时,需要将solidity中的控制语句转换为promela语句;定义转化规则如下:
需要转化的只有上述if语句和while语句两个部分,promela中if语句的关键词需要以fi来结尾,如果达到条件,就执行相应语句,否则跳出循环;while需要转化成do关键字,同时以od来结尾,如果满足循环条件则一直循环,否则跳出循环向下执行;
步骤2.3:基于上述步骤对入攻击智能合约进行建模;
首先定义msg_sender,msg_value类型以及初始值、定义整型数组refunds用于存放退款、定义出价最高者currentFrontrunner以及出具金额currentBid;定义付款函数sendCoin,用于货币传输;定义amount和receiver,amount参数用于存储账户金额,receiver参数用于存储收款人即参与竞价的地址;定义交易函数bid:包含通道变量currentstate,用于存储当前参与竞价地址以及竞价金额;定义退款函数withdraw,用于进行地址的退款,同时避免重入攻击;
将上述提及所有函数使用关键字run来激活进程;最终得到重入攻击智能合约模型;
步骤3:将步骤2得到的重入攻击智能合约模型进行形式化验证;
利用Remix在线编辑器编写智能合约并编译运行,采用形式化验证工具SPIN进行形式化验证,包含语法校验和冗余校验,得出校验结果及运行日志;
将编写完成的“reentrancySecure.pml”文件导入到SPIN;对reentrancySecure.pml进行语法校验和冗余校验:使用“syntax check”进行语法校验,得出“无语法错误”的提示,使用“Redundancy check”进行冗余校验,得出“无冗余”的提示;使用“Verification”检验验证优化后的重入智能合约的安全性及效率,生成存储空间使用情况及运行时间。
本发明有益技术效果:
区块链智能合约为新兴技术,因其不可篡改性及分布式特性被广泛用于大宗交易,但也因不可篡改性使其无法通过打补丁的方式对带有漏洞的合约进行修补,因此,部署前对合约进行漏洞优化显得尤为重要,目前漏洞的优化还未提出通用性方法,还依靠专家及人工的经验,同时,针对重入型漏洞进展缓慢。本发明致力于只针对拍卖退款智能合约漏洞中由非正常退款引发的重入漏洞问题。实验结果表明,采用本文方法优化的智能合约能够避免因系统中断产生的重入攻击,与带有漏洞智能合约相比,优化后的智能合约等效内存使用量减少了约61.2%,搜索深度提升了近39%,运行时间也有缩短。
附图说明
图1本发明实施例一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法流程图;
图2本发明实施例reentrancySecure.pml语法校验结果;
图3本发明实施例reentrancySecure.pml冗余校验结果;
图4本发明实施例未优化智能合约形式化验证运行日志;
图5本发明实施例优化后智能合约形式化验证运行日志。
具体实施方式
下面结合附图和实施例对本发明做进一步说明。
当前对智能合约漏洞进行完备性和安全性分析的方法目前仍未被提出,对于智能合约的安全保障主要依靠专家审计和人工复查,而该类方式不能保证绝对安全。本发明基于拍卖退款交易应用场景中退款时产生的重入攻击问题,设计区块链拍卖退款交易智能合约重入攻击漏洞优化方法,如附图1所示,同时结合形式化验证技术,对优化后的重入攻击智能合约验证后表明效率和运行时间得到提升。
本发明实施例的实验环境:
(3)内存:虚拟内存4.0GB(3.8GB可用);
(4)编程环境:Remix在线编辑器,Ispin形式化验证工具图形界面;
(5)编程语言:Solidity 0.4.15,Promela形式化验证语言。
一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法,具体包括以下步骤:
步骤1:设定重入攻击智能合约,contract reentrancy合约是不含拒绝服务漏洞的合约;所述重入攻击智能合约是基于现有拍卖退款智能合约通过增加退款函数withdraw的方式,避免使用revert()方法进行优化得到的。
首先定义并输入当前领先者currentFrontrunner、当前金额currentBid、存储退款映射refunds和退款数组refund;若保存到合约中金额大于当前最高价,则继续执行支付函数bid()和退款函数withdraw();否则,则中止支付函数bid(),执行退款函数withdraw();
bid()函数带有关键字“payable”是带有支付性质的函数;退款函数将需要退款的地址借助变量refund来存储,依次退款,以此来避免重入攻击;
使用solidity语言0.4.15版本进行重入攻击智能合约编写,合约名字为reentrancySecure,该合约首先定义mapping类映射refunds来存储用户之间的退款,避免拒绝服务攻击,随后设计bid支付函数用于用户间竞价,最后设计withdraw函数用于执行用户的退款;
设置支付金额为vether(v<100)用于建议退款,点击bid按钮后,该笔交易成功执行,生成对应的合约地址及交易地址,花费一定的燃料费gas,然后点击withdraw按钮合约执行退款功能,vether被退回,该笔交易成功,仅花费很少的燃料费gas。
步骤2:为了验证重入攻击智能合约的有效性,使用promela语言将重入攻击智能合约转化为reentrancySecure.pml形式化文件,对重入攻击智能合约进行建模:
步骤2.1:首先将solidity代码翻译成等效Promela代码,将一部分solidity代码去除,其他部分直接或间接换成Promela代码语句;建模时对合约控制语句进行抽象,对合约控制语句进行形式化定义如下所示:
(B,σB,σM)→True:
(if(B){O},σB,σM)→(O,σB,σM) (1)
(B,σB,σM)→False:
(if(B){O},σB,σM)→(//,σB,σM) (2)
式1和式2为if语句,其中,B表示判断条件,σB,σM分别表示存储在智能合约上的全局变量和局部变量,判断条件分为True(真)和False(假),若判断条件为真时,执行操作O,∥表示若判断条件为假,不执行任何操作;
(B,σB,σM)→True:
(while(B){O},σB,σM)→(O,while(B){O},σB,σM) (3)
(B,σB,σM)→False:
(while(B){O},σB,σM)→(//,σB,σM) (4)
式3和式4为while语句,其中,B表示判断条件,σB,σM分别表示存储在智能合约上的全局变量和局部变量,判断条件分为True真和False假,若判断条件为真时,执行操作O再进行判断,∥表示若判断条件为假,不执行任何操作;
步骤2.2:在使用promela建模时,需要将solidity中的控制语句转换为promela语句;定义转化规则如下:
需要转化的只有上述if语句和while语句两个部分,promela中if语句的关键词需要以fi来结尾,如果达到条件,就执行相应语句,否则跳出循环;while需要转化成do关键字,同时以od来结尾,如果满足循环条件则一直循环,否则跳出循环向下执行;
步骤2.3:基于上述步骤对入攻击智能合约进行建模;
首先定义msg_sender,msg_value类型以及初始值、定义整型数组refunds用于存放退款、定义出价最高者currentFrontrunner以及出具金额currentBid;定义付款函数sendCoin,用于货币传输;定义amount和receiver,amount参数用于存储账户金额,receiver参数用于存储收款人即参与竞价的地址;定义交易函数bid:包含通道变量currentstate,用于存储当前参与竞价地址以及竞价金额;定义退款函数withdraw,用于进行地址的退款,同时避免重入攻击;
上述提及所有函数是三个不同的进程名,使用关键字run来激活进程;最终得到重入攻击智能合约模型;
建模形式化代码如下:
交易函数sendCoin():
int amount;//定义一个账户用于存储交易额
If amount<high_sendCoin_account:
amount++;
assert(balances[msg_sender]>amount)
支付函数bid():
chancurrentstate=[2]of{byte,int};
assert(msg_value>currentBid);
msg_value=currenBid+msg_value;
currentFrontrunner=msg_sender;
退款函数withdraw():
chan refund=[2]of{byte,int};
currentFrontrunner=msg_sender;
重入攻击智能合约交易输出的详细信息如表1所示。
表1 优化后合约运行日志
其中,参数Status表示本次交易状态,参数from表示账户地址,参数to表示合约地址,参数gas表示花费燃料,参数Transaction cost表示交易燃料,参数hash表示交易加密,参数value表示交易10ether。contract reentrancy中,gas>>Transaction cost(燃料费与交易费不等),并未花费全部资源来支撑本次交易,表明不存在拒绝服务漏洞。
优化智能合约执行withdraw退款函数后结果如表2所示。
表2withdraw退款函数运行日志
表2中,参数value表示交易0ether。本次拍卖完成后不存在资源耗尽问题,同时在运行withdraw退款函数后系统资源由表1的65651gas变为表2的23804gas,参数value由表1的10ether变为表2的0ether,表明退款成功。
步骤3:将步骤2得到的重入攻击智能合约模型进行形式化验证;
利用Remix在线编辑器编写智能合约并编译运行,采用形式化验证工具SPIN进行形式化验证,包含语法校验和冗余校验,得出校验结果及运行日志。
将编写完成的“reentrancySecure.pml”文件导入到SPIN;对reentrancySecure.pml进行语法校验和冗余校验:使用“syntax check”进行语法校验,如附图2所示,得出“无语法错误”的提示,使用“Redundancy check”进行冗余校验,如附图3所示,得出“无冗余”的提示;使用“Verification”检验验证优化前后的重入智能合约的安全性及效率,生成存储空间使用情况及运行时间等数据,如附图4、附图5所示。
形式化验证记录对比如表3所示。
表3 形式化验证记录对比
其中,equivalent memory usage for states表示等效内存占用量,actualmemory usage for states表示实际状态占用量,total actual memory usage表示总共实际内存占用,compression表示压缩率,elapsed time表示运行时间。
运行日志表明,优化后智能合约与带有漏洞智能合约的总存储空间占用基本相同,但在等效内存使用量方面,优化后的智能合减少了约62.8%,说明优化后的智能合约空间利用率更高。运行时间也减少了44.9%。
Claims (4)
1.一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法,其特征在于,具体包括以下步骤:
步骤1:设定重入攻击智能合约,contract reentrancy合约是不含拒绝服务漏洞的合约;所述重入攻击智能合约是基于现有拍卖退款智能合约通过增加退款函数withdraw的方式,避免使用revert()方法进行优化得到的;
步骤2:为了验证重入攻击智能合约的有效性,使用promela语言将重入攻击智能合约转化为reentrancySecure.pml形式化文件,对重入攻击智能合约进行建模;
步骤3:将步骤2得到的重入攻击智能合约模型进行形式化验证。
2.根据权利要求1所述的一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法,其特征在于,步骤1所述设定重入攻击智能合约具体为:
首先定义并输入当前领先者currentFrontrunner、当前金额currentBid、存储退款映射refunds和退款数组refund;若保存到合约中金额大于当前最高价,则继续执行支付函数bid()和退款函数withdraw();否则,则中止支付函数bid(),执行退款函数withdraw();
bid()函数带有关键字“payable”是带有支付性质的函数;退款函数将需要退款的地址借助变量refund来存储,依次退款,以此来避免重入攻击;
使用solidity语言进行重入攻击智能合约编写,合约名字为reentrancySecure,该合约首先定义mapping类映射refunds来存储用户之间的退款,避免拒绝服务攻击,随后设计bid支付函数用于用户间竞价,最后设计withdraw函数用于执行用户的退款;
设置支付金额为vether(v<100)用于建议退款,点击bid按钮后,该笔交易成功执行,生成对应的合约地址及交易地址,花费一定的燃料费gas,然后点击withdraw按钮合约执行退款功能,vether被退回,该笔交易成功,仅花费很少的燃料费gas。
3.根据权利要求1所述的一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法,其特征在于,步骤2具体为:
步骤2.1:首先将solidity代码翻译成等效Promela代码,将一部分solidity代码去除,其他部分直接或间接换成Promela代码语句;建模时对合约控制语句进行抽象,对合约控制语句进行形式化定义如下所示:
(B,σB,σM)→True:
(if(B){O},σB,σM)→(O,σB,σM) (1)
(B,σB,σM)→False:
(if(B){O},σB,σM)→(//,σB,σM) (2)
式1和式2为if语句,其中,B表示判断条件,σB,σM分别表示存储在智能合约上的全局变量和局部变量,判断条件分为True(真)和False(假),若判断条件为真时,执行操作O,∥表示若判断条件为假,不执行任何操作;
(B,σB,σM)→True:
(while(B){O},σB,σM)→(O,while(B){O},σB,σM) (3)
(B,σB,σM)→False:
(while(B){O},σB,σM)→(//,σB,σM) (4)
式3和式4为while语句,其中,B表示判断条件,σB,σM分别表示存储在智能合约上的全局变量和局部变量,判断条件分为True真和False假,若判断条件为真时,执行操作O再进行判断,∥表示若判断条件为假,不执行任何操作;
步骤2.2:在使用promela建模时,需要将solidity中的控制语句转换为promela语句;定义转化规则如下:
需要转化的只有上述if语句和while语句两个部分,promela中if语句的关键词需要以fi来结尾,如果达到条件,就执行相应语句,否则跳出循环;while需要转化成do关键字,同时以od来结尾,如果满足循环条件则一直循环,否则跳出循环向下执行;
步骤2.3:基于上述步骤对入攻击智能合约进行建模;
首先定义msg_sender,msg_value类型以及初始值、定义整型数组refunds用于存放退款、定义出价最高者currentFrontrunner以及出具金额currentBid;定义付款函数sendCoin,用于货币传输;定义amount和receiver,amount参数用于存储账户金额,receiver参数用于存储收款人即参与竞价的地址;定义交易函数bid:包含通道变量currentstate,用于存储当前参与竞价地址以及竞价金额;定义退款函数withdraw,用于进行地址的退款,同时避免重入攻击;
将上述提及所有函数使用关键字run来激活进程;最终得到重入攻击智能合约模型。
4.根据权利要求1所述的一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法,其特征在于,步骤3进行形式化验证具体为:
利用Remix在线编辑器编写智能合约并编译运行,采用形式化验证工具SPIN进行形式化验证,包含语法校验和冗余校验,得出校验结果及运行日志;
将编写完成的“reentrancySecure.pml”文件导入到SPIN;对reentrancySecure.pml进行语法校验和冗余校验:使用“syntax check”进行语法校验,得出“无语法错误”的提示,使用“Redundancy check”进行冗余校验,得出“无冗余”的提示;使用“Verification”检验验证优化后的重入智能合约的安全性及效率,生成存储空间使用情况及运行时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211163193.3A CN115470498A (zh) | 2022-09-23 | 2022-09-23 | 一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211163193.3A CN115470498A (zh) | 2022-09-23 | 2022-09-23 | 一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115470498A true CN115470498A (zh) | 2022-12-13 |
Family
ID=84335678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211163193.3A Pending CN115470498A (zh) | 2022-09-23 | 2022-09-23 | 一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115470498A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117436091A (zh) * | 2023-12-21 | 2024-01-23 | 电子科技大学(深圳)高等研究院 | 基于模型检测的区块链众筹合约形式化验证方法 |
CN118277284A (zh) * | 2024-06-04 | 2024-07-02 | 华东交通大学 | 一种基于形式化验证的智能合约安全审核系统及方法 |
-
2022
- 2022-09-23 CN CN202211163193.3A patent/CN115470498A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117436091A (zh) * | 2023-12-21 | 2024-01-23 | 电子科技大学(深圳)高等研究院 | 基于模型检测的区块链众筹合约形式化验证方法 |
CN117436091B (zh) * | 2023-12-21 | 2024-04-12 | 电子科技大学(深圳)高等研究院 | 基于模型检测的区块链众筹合约形式化验证方法 |
CN118277284A (zh) * | 2024-06-04 | 2024-07-02 | 华东交通大学 | 一种基于形式化验证的智能合约安全审核系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | {TXSPECTOR}: Uncovering attacks in ethereum from transactions | |
US10698885B2 (en) | Method and device for writing service data in block chain system | |
US11074350B2 (en) | Method and device for controlling data risk | |
RU2635275C1 (ru) | Система и способ выявления подозрительной активности пользователя при взаимодействии пользователя с различными банковскими сервисами | |
CN115470498A (zh) | 一种基于拍卖退款交易智能合约重入攻击漏洞的优化方法 | |
Lu et al. | NeuCheck: A more practical Ethereum smart contract security analysis tool | |
CN111898360A (zh) | 基于区块链的文本相似性检测方法及装置、电子设备 | |
David et al. | Do you still need a manual smart contract audit? | |
US20220036350A1 (en) | Cross-border resource transfer authenticity verification method, device and electronic equipment | |
Demir et al. | Security smells in smart contracts | |
Cui et al. | VRust: Automated vulnerability detection for solana smart contracts | |
Qin et al. | The blockchain imitation game | |
Duan et al. | Multiple‐Layer Security Threats on the Ethereum Blockchain and Their Countermeasures | |
Ma et al. | Pied-piper: Revealing the backdoor threats in ethereum erc token contracts | |
US20220036351A1 (en) | Method and apparatus for resource exchange | |
CN115408689A (zh) | 一种重入漏洞的检测与修复方法、系统 | |
CN112261020A (zh) | 一种分布式远程外包数据审计系统及方法 | |
Leid et al. | Testing ethereum smart contracts: A comparison of symbolic analysis and fuzz testing tools | |
Xu et al. | A survey on vulnerability detection tools of smart contract bytecode | |
Li et al. | Protect your smart contract against unfair payment | |
He et al. | TokenCat: detect flaw of authentication on ERC20 tokens | |
Ibba et al. | Analysis Of The Relationship Between Smart Contracts' Categories and Vulnerabilities | |
CN103034810A (zh) | 一种检测方法、装置及电子设备 | |
Fekih et al. | Formal modeling and verification of erc smart contracts: Application to nft | |
Verheijke et al. | An exploratory study on solidity guards and ether exchange constructs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |