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

一种基于静态分析的智能合约隐私泄露检测方法技术

技术编号:36219712 阅读:12 留言:0更新日期:2023-01-04 12:17
本发明专利技术公开了一种基于静态分析的智能合约隐私泄露检测方法,该方法分析了智能合约中的隐私类型和隐私信息的存在形式;从文本类型的注释和合约代码中提取与代码行为相关的关键信息;将关键信息与隐私相关的词库进行比对,检测是否出现隐私泄露。本发明专利技术利用静态分析的方法来检测智能合约中是否出现隐私泄露,有助于智能合约开发者尽快对隐私泄露处进行修正,从而有效帮助用户预防隐私泄露,对于执行智能合约时用户隐私的保护具有重要的研究意义和应用价值。意义和应用价值。意义和应用价值。

【技术实现步骤摘要】
一种基于静态分析的智能合约隐私泄露检测方法


[0001]本专利技术属于区块链安全的
,具体涉及一种基于静态分析的智能合约隐私泄露检测方法。

技术介绍

[0002]智能合约的概念最早追溯到1995年,由尼克
·
萨博首次提出。智能合约是以数字形式定义的一套承诺,包括合约参与方执行这些承诺的协议。作为图灵完备的编程语言,智能合约可以最大限度地满足现实场景的开发,不再需要通过中介来完成传统的业务流程,提高了执行业务的效率且减少了由于人为的过失引起的风险。然而,非许可链上的合约会公开在区块链上,所有节点都可以执行合约;许可链通过设置访问控制策略来实现隐私保护,但是通道内的节点也可以访问到与交易无关的数据。流量分析、聚类分析等这类反匿名技术的出现促使攻击者分析已有的信息进而追踪交易轨迹,提取大量用户身份、用户地址等用户不愿意透露的信息。由于区块链的不可篡改性,用户的隐私信息一旦泄露,将永远公开在区块链上,所带来的损失将难以挽回。因此,对隐私泄露进行自动检测可以有效缓解隐私泄露所带来的严重后果。本文利用静态分析的方式来揭露智能合约中可能会出现隐私泄露的部分,帮助智能合约开发人员进一步维护智能合约,从而有效帮助用户预防隐私泄露,对于执行智能合约时保证用户隐私不被泄露具有重要的研究意义。
[0003]静态检测方法通过不运行应用本身,仅对代码进行静态分析来检测是否存在隐私泄露的可能,如程序的语法、结构、过程等。目前,对于隐私泄露的检测方法主要涉及在移动应用上,因为这类应用经常会获取用户的手机、地址等隐私信息,隐私泄露问题严重。而去中心化的区块链有公开透明的特性,隐私泄露问题是影响区块链应用广泛的重要原因,因此,在智能合约部署前,对智能合约进行静态分析以降低隐私泄露的可能是缓解隐私泄露问题的有效途径。本工作通过分析智能合约代码中的一些状态变量、函数名等有效信息,对文本类型的注释进行预处理和关键词提取;将提取的信息与隐私相关的词库进行比对分析,若相似度较高,则该智能合约有隐私泄露的可能。

技术实现思路

[0004]针对于上述现有技术的不足,本专利技术的目的在于提供一种基于静态分析的智能合约隐私泄露检测方法,以预防智能合约隐私泄露问题;本专利技术充分利用自然语言处理技术分析文本类型的注释,利用抽象语法树表示代码,提取关键信息,检测智能合约的隐私泄露,为智能合约中用户的隐私提供了安全保障。
[0005]为达到上述目的,本专利技术采用的技术方案如下:
[0006]本专利技术的一种基于静态分析的智能合约隐私泄露检测方法,包括步骤如下:
[0007]1)智能合约中隐私信息的分类:分析智能合约中隐私泄露的原因,总结并定义智能合约中隐私信息的类型,分别为用户身份信息、账户地址信息以及交易内容信息,并根据这三类信息构建隐私相关的词库;
[0008]2)隐私信息的存在形式分析:分析智能合约中出现隐私信息的形式,隐私信息通常出现在合约名、状态变量名、函数名、事件名、结构体名、结构体中的变量名、枚举类型名以及合约注释中;
[0009]3)注释及代码的信息提取:利用TextRank算法提取文本类型的智能合约注释中的关键词;构建智能合约代码的抽象语法树,根据节点类型提取步骤2)中所需要提取的信息;
[0010]4)相似度阈值确定及隐私泄露检测:将步骤3)中提取的单词与步骤1)中构建的隐私相关的词库中的单词计算相似度。通过选取标记过的实验数据进行评估,利用精度、假阳率和假阴率这三个评估指标选择合适的相似度阈值,超过该阈值的智能合约可能会存在隐私泄露。
[0011]优选地,所述步骤1)中三类隐私信息主要有:
[0012]11)用户身份信息涉及用户个人的相关私密信息,包括真实姓名、性别、年龄、住址、身份证号。例如,在实现个人健康记录的医疗区块链上,每个用户的健康记录为私人数据,不应被其他未授权的用户利用智能合约调用这类信息;
[0013]12)账户地址信息为账户及账户间的交易关系,主要包括账户地址的余额、账户之间的交易联系以及账户地址的交易记录。例如,智能合约中验证该成员的余额是否大于转账金额时,将该成员的余额不应对所有成员可见;
[0014]13)交易内容信息包含用户之间发生交易所涉及的信息,包括交易发起方、交易接收方、交易金额以及其他附带数据。例如,一个实现转账交易的智能合约中,转账金额应该只对发送方和接收方可见;
[0015]14)根据以上三类信息人工构建隐私相关的词库,并利用同义词词库对其进行扩充。
[0016]优选地,所述步骤3)具体包括:
[0017]31)规范的智能合约中包含大量注释,注释可以有效揭示代码的行为意图。利用正则表达式提取智能合约中的注释,对注释进行分词和去除停用词的预处理操作,并利用抽取式的文本摘要算法TextRank提取注释中有意义的关键词;
[0018]32)遍历智能合约代码的抽象语法树,获取抽象语法树的节点信息,根据节点类型对所有的节点内容进行筛选,抽取步骤2)中所需要的信息,并利用驼峰拆分规则和下划线拆分规则将这些信息分解成单词。
[0019]优选地,所述步骤4)具体包括:
[0020]41)将步骤3)中提取的单词与步骤1)中构建的隐私相关的词库中的单词计算相似度,通过选取标记过的实验数据进行评估,利用精度、假阳率和假阴率这三个评估指标选择合适的相似度阈值。当精度较高,假阳率和假阴率较低时即为合适的阈值。若某智能合约与隐私相关词库的相似度超过该阈值,则可能会存在隐私泄露,将智能合约中相似的部分呈现给开发人员,以进一步完善或保护智能合约。
[0021]本专利技术的有益效果:
[0022]本专利技术充分利用了智能合约的注释和代码,从文本类型的注释中提取出关键词,从合约代码中提取代表代码语义的关键词,构成智能合约的关键信息,通过与隐私相关的词库进行比对,判断是否出现隐私泄露。利用静态分析的方法有助于智能合约开发者尽快对隐私泄露处进行修正。
[0023]具体说,主要有如下一些优点:
[0024](1)静态分析的方式无需依赖solidity语言的执行环境,在不实际执行程序的情况下,对智能合约代码的语义和行为进行分析,可以迅速在智能合约编程阶段就可以检测出隐私泄露,有利于预防隐私泄露。
[0025](2)据调研发现,目前缺少对智能合约隐私泄露检测的研究。本专利技术从智能合约的注释和代码两方面进行分析,从代码行为上分析隐私泄露的可能,对合约代码的修正更具有针对性,提高了合约代码的质量。
[0026](3)利用自然语言处理技术对注释和代码自动化地提取隐私相关的关键信息,取代了传统人工解析的方式,解决了大规模解析智能合约的效率低下、手工解析易出现纰漏等问题。
附图说明
[0027]图1为本专利技术的方法流程图。
具体实施方式
[0028]为了便于本领域技术人员的理解,下面结合实施例与附图对本专利技术作进一步的说明,实施方式提及的内容并非对本专利技术的限定。
[0029]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于静态分析的智能合约隐私泄露检测方法,包括步骤如下:1)智能合约中隐私信息的分类:分析智能合约中隐私泄露的原因,总结并定义智能合约中隐私信息的类型,分别为用户身份信息、账户地址信息以及交易内容信息,并根据这三类信息构建隐私相关的词库;2)隐私信息的存在形式分析:分析智能合约中出现隐私信息的形式,隐私信息通常出现在合约名、状态变量名、函数名、事件名、结构体名、结构体中的变量名、枚举类型名以及合约注释中;3)注释及代码的信息提取:利用TextRank算法提取文本类型的智能合约注释中的关键词;构建智能合约代码的抽象语法树,根据节点类型提取步骤2)中所需要提取的信息;4)相似度阈值确定及隐私泄露检测:将步骤3)中提取的单词与步骤1)中构建的隐私相关的词库中的单词计算相似度,通过选取标记过的实验数据进行评估,利用精度、假阳率和假阴率这三个评估指标选择合适的相似度阈值,超过该阈值的智能合约可能会存在隐私泄露。2.根据权利要求1所述的基于静态分析的智能合约隐私检测泄露方法,其特征在于,所述步骤1)中三类隐私信息主要有:11)用户身份信息涉及用户个人的相关私密信息,包括真实姓名、性别、年龄、住址、身份证号,12)账户地址信息为账户及账户间的交易关系,主要包括账户地址的余额、账户之间的交易联系以及账户地址的交易记录;13)交...

【专利技术属性】
技术研发人员:李必信曹冬玉何嘉昊
申请(专利权)人:东南大学
类型:发明
国别省市:

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

1