基于函数签名相似度计算的智能合约测试种子推荐方法技术

技术编号:30405087 阅读:32 留言:0更新日期:2021-10-20 11:06
本发明专利技术公开了基于函数签名相似度计算的智能合约测试种子推荐方法,从以太坊区块中获取历史交易中出现的执行函数与相应输入并存入数据文件,随后对待测合约的函数进行函数签名的提取,将每一个函数签名与数据文件中出现的执行函数的函数签名进行比对,借助对文本的编码以及机器学习模型BERT获取每一对函数的相似度系数,从中挑选与待测合约函数最相似的k个执行函数的输入作为测试种子,来有效地测试智能合约。本发明专利技术方法能够高效产生一些符合实际意义、优质的测试种子,缓解了进行智能合约测试时缺失优质种子而无法深入检测合约缺陷和漏洞的问题。陷和漏洞的问题。陷和漏洞的问题。

【技术实现步骤摘要】
基于函数签名相似度计算的智能合约测试种子推荐方法


[0001]本专利技术涉及基于函数签名相似度计算的智能合约测试种子推荐方法,属于智能合约开发与测试


技术介绍

[0002]自从出现了去中心化的区块链技术用来进行加密货币的交易,智能合约技术也逐渐受到了工业界和学术界的关注。智能合约给交易的参与者提供了一种可信交易机制,不需要中心机构的帮助就能够避免许多可能的交易异常和损失。智能合约是一种能够自我执行的程序,它同时为区块链平台增添更多可能的功能与应用,比如众筹、游戏等。例如在全球大型开源去中心化应用平台以太坊上,就包含了数以百计的智能合约,每一份智能合约都可以存储大量以太币,它是一种能在以太坊上进行交易的加密货币。
[0003]由于智能合约的执行往往牵涉金钱交易,智能合约中存在的安全问题往往会导致恐怖的经济损失,例如历史上臭名昭著的DAO攻击导致了以太坊巨大的货币损失,并且影响了以太坊社区的公平性。像这类事件说明了在智能合约部署之前提升合约代码质量的重要性,但是实际检测合约漏洞是非常困难的,因为用作编写智能合约的语言语义十分复杂。本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.基于函数签名相似度计算的智能合约测试种子推荐方法,其特征在于,包括如下步骤:步骤1,从以太坊公有链的区块上获取所有的交易信息T
i
,1≤i≤n,其中n表示公有链上交易的总数,对于每一个交易T
i
,获取交易中触发的智能合约执行函数每一个执行函数带有触发该执行函数的输入则有执行函数和输入对将所有交易的执行函数与输入对保存起来,形成数据文件步骤2,对数据文件D中各个执行函数解析得到执行函数的函数签名则解析后数据文件步骤3,对待测合约,获取其待测函数序列f1,f2,...,f
m
,其中m表示待测合约中总共存在的待测函数个数,对每个待测函数f
j
解析得到待测函数的函数签名sig
j
,1≤j≤m;步骤4,对每一个待测函数的函数签名sig
j
进行编码得到待测函数编码e
j
;同理对每一个执行函数的函数签名进行编码得到执行函数编码E
i
;步骤5,对于待测函数f
j
,使用待测函数编码e
j
与每一个执行函数编码E
i
计算相似度值similarity_value,并将所有相似度值按由大到小的顺序进行排序,选择排序前k的相似度值,这些相似度值对应的执行函数的输入作为用来测试待测函数f
j
的种子输入。2.根据权利要求1所述基于函数签名相似度计算的智能合约测试种子推荐方法,其特征在于,步骤2所述执行函数的函数签名,其具体结构为:(funcName,parameterType1,parameterType2,...,pa...

【专利技术属性】
技术研发人员:刘哲周滕
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:

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

1