CN110688151B - 一种面向以太坊Solidity智能合约的安全翻译与解析方法 - Google Patents

一种面向以太坊Solidity智能合约的安全翻译与解析方法 Download PDF

Info

Publication number
CN110688151B
CN110688151B CN201910904195.5A CN201910904195A CN110688151B CN 110688151 B CN110688151 B CN 110688151B CN 201910904195 A CN201910904195 A CN 201910904195A CN 110688151 B CN110688151 B CN 110688151B
Authority
CN
China
Prior art keywords
intelligent contract
contract
solid
flow chart
function
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.)
Active
Application number
CN201910904195.5A
Other languages
English (en)
Other versions
CN110688151A (zh
Inventor
翁健
陈新凯
李明
袁浩宸
张斌
卢贺贤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinan University
Original Assignee
Jinan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jinan University filed Critical Jinan University
Priority to CN201910904195.5A priority Critical patent/CN110688151B/zh
Publication of CN110688151A publication Critical patent/CN110688151A/zh
Application granted granted Critical
Publication of CN110688151B publication Critical patent/CN110688151B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种面向以太坊Solidity智能合约的安全翻译与解析方法,包括以下步骤:首先将智能合约源代码转化为XML文本,然后对Solidity智能合约进行代码Java转换,并基于新生成的Java代码进行流程分析和控制流程图生成。同时,基于PageRank算法对Solidity智能合约核心代码行进行识别,并在图中将核心代码进行高亮显示。此外,利用自然语言处理进行代码分割和词性分析,将代码分割出来的英语单词,按动词和名词组织成一个利于理解的序列,并通过对Solidity智能合约的关键逻辑(转账、变量状态更新)进行识别,形成可理解的英语短语。最后,生成完整的智能合约翻译文档。

Description

一种面向以太坊Solidity智能合约的安全翻译与解析方法
技术领域
本发明涉及网络空间安全技术领域,具体涉及一种面向以太坊Solidity智能合约的安全翻译与解析方法。
背景技术
随着区块链技术的发展和其经济价值的不断提升,无论是计算机行业从业人员、亦或是金融科技的从业者,甚至是从未了解区块链底层技术的投资专家,都想更好地了解和使用区块链系统。其中以太坊是除比特币之外最为成熟的公有链,随着在全球范围内不断的发展和成熟,目前已成为业界底层区块链的首选开发平台。以太坊中可以支持图灵完备的智能合约,突破了比特币对区块链应用的限制,让人们对区块链的认识不再局限于数字货币,将应用领域通过智能合约的形式进一步拓展到各行各业。但与此同时,随着区块链影响力日益扩大,其本身的智能合同欺诈等问题也日益突出,由于很多爱好者缺乏专业的计算机背景知识,使得他们难以理解和读懂区块链智能合约,导致了由智能合约引发的合同欺诈。
近几年频发的区块链安全事件亦给用户造成了巨大的经济损失,正因为智能合约在安全性和可靠性中存在的问题会让参与用户蒙受巨大的经济损失,所以针对区块链智能合约的翻译和解析是一项具有重要实用价值和经济价值的工作。此外,由于以太坊智能合约的实际使用过程需要用户输入私钥,并对合约中的代码函数进行操作(针对参数类型给有效的输入信息),然而并非所有的参与用户都能理解并正确地操作智能合约,这些操作对于无相关编程知识或是不了解智能合约编写语言的人来说具有一定的难度。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种面向以太坊Solidity智能合约的安全翻译与解析方法。本发明实现过程主要分为两个阶段,首先解析智能合约的控制流程,生成合约代码流程图并高亮显示核心代码,然后将NLP自然语言处理应用于以太坊Solidity智能合约的安全翻译能对合约代码进行准确翻译。
本发明的目的可以通过采取如下技术方案达到:
一种面向以太坊Solidity智能合约的安全翻译与解析方法,所述的安全翻译与解析方法包括以下步骤:
S1、对要进行安全翻译与解析的Solidity智能合约进行转换,将Solidity智能合约代码转化为XML文本;
S2、在所述的XML文本中将Solidity智能合约的片段令牌化,将令牌分割为已知的英语单词,并对各个单词标注上词性和单词原型;
S3、在所述的XML文本中将Solidity智能合约转化语法功能一致的Java代码,并保留原合约的特有语法特征,再根据转换的Java代码生成Solidity智能合约的控制流程图;
S4、在所述的Solidity智能合约的每个函数体的控制流程图中,依据PageRank算法在控制流程图中对各个节点赋予相同权重,然后进行计算修改权重,进而根据权重的大小分析出函数执行的核心操作或重要语句;
S5、通过步骤S3获取的控制流程图以及步骤S4获取的核心操作或重要语句,在控制流程图中高亮显示核心操作或重要语句所在的节点,完成对Solidity智能合约的解析;
S6、将步骤S2中分割出来的英语单词,按动词和名词组织成一个利于理解的序列,并通过将形容词、介词等添加到序列的适当位置,形成可读的英语短语;
S7、将步骤S6中所有Solidity智能合约生成的英语短语,通过去除相同主语和添加连词,生成完整的Solidity智能合约翻译文档。
进一步地,所述的步骤S1过程如下:
S11、将Solidity智能合约作为输入;
S12、Solidity智能合约通过语法解析器生成Solidity抽象语法树;
S13、将Solidity抽象语法树以XML格式保存,输出XML文本。
进一步地,所述的语法解析器,通过输入编程语言源码,经过词法分析,输出抽象语法树。
进一步地,所述的XML文本中每个节点都代表为Solidity智能合约抽象语法树的语法元素,并提供关于Solidity智能合约的数量、函数的数量以及函数的具体内容的所有细节。
进一步地,所述的步骤S2过程如下:
S21、将Solidity智能合约对应的XML文本进行遍历,提取合约中所有的合约名、函数名、变量名和变量类型并保存,将以上字符串称为令牌;
S22、将令牌分割为已知的英语单词,并通过自然语言处理对各个单词标注上词性和单词原型。
进一步地,所述的步骤S3过程如下:
S31、将Solidity智能合约对应的XML文本进行遍历,提取合约中所有的函数体,包括函数签名和函数内部代码;
S32、在Solidity智能合约中,针对语法与Java编程语言不同的部分转化成语法功能一致的Java代码,生成符合Java语法的Solidity智能合约;
S33、通过Java控制流程图生成器,将符合Java语法的Solidity智能合约作为输入,生成Solidity智能合约的控制流程图。
进一步地,所述的步骤S4过程如下:
S41、将Solidity智能合约的每个函数体的控制流程图中作为输入;
S42、对控制流程图中的各个节点,即各代码行赋予相同权重,通过PageRank算法进行计算并修改权重;
S43、将权重最大的节点作为函数执行的核心操作或重要语句。
进一步地,所述的PageRank算法又称网页排名、谷歌左侧排名,是一种由搜索引擎根据网页之间相互的超链接计算的技术,通过节点之间的相互连接情况,进行迭代计算生成各个节点在图中的权重,越大权重的节点越重要。
本发明相对于现有技术具有如下的优点及效果:
本发明为非计算机专业的参与用户提供易于理解的合约代码翻译分析,使他们能够更加方便快速地了解智能合约的内容,以来降低参与合约的风险,增加参与者投资的信心。本发明采取了基于自然语言处理NLP的智能合约翻译方法,将Solidity合约转化为结构化的XML数据,该过程保留了Solidity合约的所有信息。然后通过代码分析、词性分析、数据重组等方式来对合约进行翻译,并对函数的调用情况、输入输出参数等做了详细说明,可以有效地帮助参与用户更好地理解和操作智能合约;由于目前的研究工作停留在基于Solidity字节码的流程分析,而非Solidity源代码,非计算机专业背景的用户难以看懂和理解的。本发明采取基于控制流程图以及PageRank算法生成智能合约流程图,将Solidity转化为大众人群能理解的控制流程图,能够给参与者带来直观的认识。
附图说明
图1是本发明实施例提供的一种面向以太坊Solidity智能合约的安全翻译与解析方法流程图;
图2是本发明实施例提供的一种面向以太坊Solidity智能合约的安全翻译与解析方法中的XML结构化文本示意图,其中图2中方框中具体所示的文字内容并不影响本发明技术方案的表达。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
本实施例公开了一种面向以太坊Solidity智能合约的安全翻译与解析方法,通过将智能合约源代码转化为XML文本,然后对Solidity智能合约进行代码Java转换,并基于新生成的Java代码进行流程分析和控制流程图生成。同时,基于PageRank算法对Solidity智能合约核心代码行进行识别,并在图中将核心代码进行高亮显示。此外,利用自然语言处理进行代码分割和词性分析,将代码分割出来的英语单词,按动词和名词组织成一个利于理解的序列,并通过对Solidity智能合约的关键逻辑(转账、变量状态更新)进行识别,形成可理解的英语短语。最后,生成完整的智能合约翻译文档。
如图1所示,面向以太坊Solidity智能合约的安全翻译与解析方法包括以下步骤:
S1、对要进行安全翻译与解析的Solidity智能合约进行转换,将Solidity智能合约代码转化为XML文本,过程如下:
S11、将Solidity智能合约作为输入;
S12、Solidity智能合约通过用ANTLR这一基于LL(Left-to-right,Leftmostderivation)算法实现的语法解析器,使用自上而下的递归下降LL剖析器方法生成Solidity抽象语法树,广泛用于表示程序代码结构的数据结构;
S13、将Solidity抽象语法树以XML格式保存,输出XML文本。
该过程保留了Solidity合约的所有信息以方便接下来的安全翻译XML文本中的每个节点表示编程语言的语法元素,如<functionDefinition>节点代表了Solidity代码中的函数定义语句,能提供了关于源代码特性的丰富细节,如合约的数量,函数的数量以及函数的具体内容。
S2、在所述的XML文本中将Solidity智能合约的片段令牌化,将令牌分割为已知的英语单词,并对各个单词标注上词性和单词原型;
S21、将Solidity智能合约对应的XML文本进行遍历,提取合约中所有的合约名、函数名、变量名和变量类型并保存,将以上字符串称为令牌;
S22、将令牌分割为已知的英语单词,并通过自然语言处理对各个单词标注上词性和单词原型。
由于每个令牌一般以驼峰样式的单词串组成,然后通过驼峰命名规则将令牌分割为可知的英语单词,并用Standford CoreNLP工具包对单词标注上词性和单词原型。
以在DAO合约中一个简单方法来说明,ManagedAccount(address owner,boolpayOwnerOnly),其中方法名称ManagedAccount被解析为两个单词,第一个单词Managed的词性表示为{“pos”:“VBD”},“VBD”代表过去式动词和其原型表示为{“lema”:“manage”};“Account”的词性表示为{“pos”:“NN”},“NN”代表名词和其原型表示为{“lema”:“account”},对于余下的方法参数owner,payOwnerOnly使用相同的解析方法,能将Solidity合约代码解析成一连串带有词性标注的英语单词。“pos”是代表词性的缩写,在Standford CoreNLP中有近40种pos的类型如VB,NN等。所述“lema”是代表单词原型的缩写。
S3、在所述的XML文本中将Solidity智能合约转化语法功能一致的Java代码,并保留原合约的特有语法特征,再根据转换的Java代码生成Solidity智能合约的控制流程图;
S31、将Solidity智能合约对应的XML文本进行遍历,提取合约中所有的函数体,包括函数签名和函数内部代码;
S32、在Solidity智能合约中,针对语法与Java编程语言不同的部分转化成语法功能一致的Java代码,生成符合Java语法的Solidity智能合约;
S33、通过Java控制流程图生成器,将符合Java语法的Solidity智能合约作为输入,生成Solidity智能合约的控制流程图。
Java控制流程图生成器该对转换的java代码做静态分析:根据关键词将代码执行流程语句进行入栈操作。当出栈时,根据出栈元素的内容,如if、for、赋值语句、return等,为其定义相应的结点和边,生成Solidity智能合约的控制流程图。
S4、在所述的Solidity智能合约的每个函数体的控制流程图中,依据PageRank算法在控制流程图中对各个节点赋予相同权重,然后进行计算修改权重,进而根据权重的大小分析出函数执行的核心操作或重要语句;
S41、将Solidity智能合约的每个函数体的控制流程图中作为输入;
S42、对控制流程图中的各个节点,即各代码行赋予相同权重,通过PageRank算法进行计算并修改权重;
S43、将权重最大的几个节点作为函数执行的核心操作或重要语句;
合约核心代码能高度的概括合约本身的功能和效用,对翻译起到指导作用。通过XML文本可以帮助获得源代码的每个函数片段,在给定函数片段上分析函数执行的核心操作或重要语句。
S5、通过步骤S3获取的控制流程图以及步骤S4获取的核心操作或重要语句,在控制流程图中高亮显示核心操作或重要语句所在的节点,完成对Solidity智能合约的解析;
S6、将步骤S2中分割出来的英语单词,按动词和名词组织成一个利于理解的序列,并通过将形容词、介词等添加到序列的适当位置,形成可读的英语短语;
首先对全局变量和函数进行解析,再按照智能合约通用逻辑针对不同类型代码行定义不同的自然语言表达逻辑:包括合约转账、中间变量状态更新、赋值语句、条件判断、Modifier修饰等,然后利用解析完的形容词、介词等添加到序列的适当位置,形成可读的英语短语:
全局变量和函数,指在Solidity合约中,由于Solidity智能合约自身的语法规定的通用的变量和函数,并具有确定的意义。在智能合约“msg”被定义为事务的发起者,“msg.sender”被定义为发起者地址,“msg.value”被定义为发起者向合同转移的货币数量和“sha256(var m)”方法是用来计算“m”的散列值,可以作为该消息的摘要,这是一种密码学算法,人们无法通过其变量名或方法名来理解它的含义。此外,还有另一种特殊的方法”selfdestruct(address recipient)”,能销毁当前契约并将其剩余的货币发送给特定地址的接收人。本发明将以上这些在Solidity合约中有特殊定义的函数统一进行提前解释和翻译,能有效地帮助人们更清楚地理解合约的功能和目的,生成更加准确的翻译语句。
合约转账,指在Solidity合约中出现转账方法如:1)address.transfer();2)address.send();3)address.call.value().gas()。
本发明对这些方法建立了如下的解析过程:“recipientAddress.transfer(1ether)”解析为“From the messasge sender’address tranfer 1ether to therecipient address”,表示从信息的发送方地址发送1ether接收方地址address。
中间变量状态更新,指在Solidity合约中出现变量的数值的变化,如:“ownerAccount=ownerAccount+1000”解析为“the value of owner’s account hasincreased 1000”,表示拥有者的账户增加了一千。
赋值语句,指在Solidity合约中出现变量的赋值行为如:“ownerAddress=msg.sender”解析为“The address of owner is assigned to the address of messsagesender”,表示拥有者的地址被替换成了消息发送者的地址。
条件判断,指在Solidity合约中出现变量的条件判断语句如:“if(ownerAccount>0){return 0;}”解析为“when the value of owner’s account is greater than 0,itwill return value 0”,表示当拥有者账户的值大于0时,返回0。
Modifier修饰,指在Solidity合约中出现函数被Modifier(修饰器)修饰的情况如:“function setOwnerAccount(address newOwner)public onlyOwner{}”,其中函数“setOwnerAccount”被“onlyOwner”修饰器修饰,解析为“this function can only becalled by the owner”,表示“setOwnerAccount”这个函数只能被拥有者所调用。
S7、将步骤S6中所有Solidity智能合约生成的英语短语,通过去除相同主语和添加连词,生成完整的Solidity智能合约翻译文档。
综上所述,本实施例公开的一种面向以太坊Solidity智能合约的安全翻译与解析方法,通过步骤S1将Solidity智能合约代码转化为XML文本,能够降低智能合约内容提取的复杂度;在步骤S2中将Solidity合约分割为已知的词性的英语单词,能够方便接下来的Solidity智能合约的翻译过程;在步骤S3中生成Solidity智能合约的控制流程图,能够给参与者带来直观的认识,降低理解难度;在步骤S4中得到核心操作或重要语句,可以高度的概括合约本身的功能和效用,对解析和翻译起到指导作用;在步骤S7中生成完整的Solidity智能合约翻译文档,能够使参与者能够更加方便快速地了解智能合约的内容,以来降低参与合约的风险,增加投资的信心。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (6)

1.一种面向以太坊Solidity智能合约的安全翻译与解析方法,其特征在于,所述的安全翻译与解析方法包括以下步骤:
S1、对要进行安全翻译与解析的Solidity智能合约进行转换,将Solidity智能合约代码转化为XML文本;
S2、在所述的XML文本中将Solidity智能合约的片段令牌化,将令牌分割为已知的英语单词,并对各个单词标注上词性和单词原型;其中,所述的步骤S2过程如下:
S21、将Solidity智能合约对应的XML文本进行遍历,提取合约中所有的合约名、函数名、变量名和变量类型并保存,将以上字符串称为令牌;
S22、将令牌分割为已知的英语单词,并通过自然语言处理对各个单词标注上词性和单词原型;
S3、在所述的XML文本中将Solidity智能合约转化语法功能一致的Java代码,并保留原合约的特有语法特征,再根据转换的Java代码生成Solidity智能合约的控制流程图;其中,所述的步骤S3过程如下:
S31、将Solidity智能合约对应的XML文本进行遍历,提取合约中所有的函数体,所述的函数体包括函数签名和函数内部代码;
S32、在Solidity智能合约中,针对语法与Java编程语言不同的部分转化成语法功能一致的Java代码,生成符合Java语法的Solidity智能合约;
S33、通过Java控制流程图生成器,将符合Java语法的Solidity智能合约作为输入,生成Solidity智能合约的控制流程图;
S4、在所述的Solidity智能合约的每个函数体的控制流程图中,依据PageRank算法在控制流程图中对各个节点赋予相同权重,然后进行计算修改权重,进而根据权重的大小分析出函数执行的核心操作或重要语句;
S5、通过步骤S3获取的控制流程图以及步骤S4获取的核心操作或重要语句,在控制流程图中高亮显示核心操作或重要语句所在的节点,完成对Solidity智能合约的解析;
S6、将步骤S2中分割出来的英语单词,按动词和名词组织成一个利于理解的序列,并通过将形容词、介词添加到序列的适当位置,形成可读的英语短语;
S7、将步骤S6中所有Solidity智能合约生成的英语短语,通过去除相同主语和添加连词,生成完整的Solidity智能合约翻译文档。
2.根据权利要求1所述的一种面向以太坊Solidity智能合约的安全翻译与解析方法,其特征在于,所述的步骤S1过程如下:
S11、将Solidity智能合约作为输入;
S12、Solidity智能合约通过语法解析器生成Solidity抽象语法树;
S13、将Solidity抽象语法树以XML格式保存,输出XML文本。
3.根据权利要求2所述的一种面向以太坊Solidity智能合约的安全翻译与解析方法,其特征在于,所述的语法解析器,通过输入编程语言源码,经过词法分析,输出抽象语法树。
4.根据权利要求1或2所述的一种面向以太坊Solidity智能合约的安全翻译与解析方法,其特征在于,所述的XML文本中每个节点都代表为Solidity智能合约抽象语法树的语法元素,并提供关于Solidity智能合约的数量、函数的数量以及函数的内容细节。
5.根据权利要求1所述的一种面向以太坊Solidity智能合约的安全翻译与解析方法,其特征在于,所述的步骤S4过程如下:
S41、将Solidity智能合约的每个函数体的控制流程图中作为输入;
S42、对控制流程图中的各个节点,即各代码行赋予相同权重,通过PageRank算法进行计算并修改权重;
S43、将权重最大的节点作为函数执行的核心操作或重要语句。
6.根据权利要求5所述的一种面向以太坊Solidity智能合约的安全翻译与解析方法,其特征在于,所述的PageRank算法由搜索引擎根据网页之间相互的超链接计算,通过节点之间的相互连接情况,进行迭代计算生成各个节点在图中的权重。
CN201910904195.5A 2019-09-24 2019-09-24 一种面向以太坊Solidity智能合约的安全翻译与解析方法 Active CN110688151B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910904195.5A CN110688151B (zh) 2019-09-24 2019-09-24 一种面向以太坊Solidity智能合约的安全翻译与解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910904195.5A CN110688151B (zh) 2019-09-24 2019-09-24 一种面向以太坊Solidity智能合约的安全翻译与解析方法

Publications (2)

Publication Number Publication Date
CN110688151A CN110688151A (zh) 2020-01-14
CN110688151B true CN110688151B (zh) 2022-03-29

Family

ID=69110111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910904195.5A Active CN110688151B (zh) 2019-09-24 2019-09-24 一种面向以太坊Solidity智能合约的安全翻译与解析方法

Country Status (1)

Country Link
CN (1) CN110688151B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111240772A (zh) * 2020-01-22 2020-06-05 腾讯科技(深圳)有限公司 一种基于区块链的数据处理方法、装置及存储介质
CN112860263A (zh) * 2021-03-08 2021-05-28 东南大学 一种基于智能合约知识图谱的合约缺陷检测方法
CN113190234B (zh) * 2021-05-21 2023-04-07 电子科技大学 针对区块链智能合约函数签名自动化恢复的方法及系统
CN113504940B (zh) * 2021-07-28 2023-04-07 电子科技大学 一种改善智能合约字节码逆向工程效果的方法及装置
CN117519667A (zh) * 2023-10-30 2024-02-06 上海交通大学 一种智能合约自动生成方法、管理系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108632045A (zh) * 2018-05-10 2018-10-09 阿里巴巴集团控股有限公司 一种区块链数据处理方法、装置、处理设备及系统
CN109460657A (zh) * 2018-10-15 2019-03-12 杭州安恒信息技术股份有限公司 一种基于智能合约代码数值溢出的安全检测方法
CN109522008A (zh) * 2018-11-06 2019-03-26 陕西医链区块链集团有限公司 一种区块链智能合约构建方法
CN109684838A (zh) * 2018-11-23 2019-04-26 电子科技大学 一种针对以太坊智能合约的静态代码审计系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108632045A (zh) * 2018-05-10 2018-10-09 阿里巴巴集团控股有限公司 一种区块链数据处理方法、装置、处理设备及系统
CN109460657A (zh) * 2018-10-15 2019-03-12 杭州安恒信息技术股份有限公司 一种基于智能合约代码数值溢出的安全检测方法
CN109522008A (zh) * 2018-11-06 2019-03-26 陕西医链区块链集团有限公司 一种区块链智能合约构建方法
CN109684838A (zh) * 2018-11-23 2019-04-26 电子科技大学 一种针对以太坊智能合约的静态代码审计系统及方法

Also Published As

Publication number Publication date
CN110688151A (zh) 2020-01-14

Similar Documents

Publication Publication Date Title
CN110688151B (zh) 一种面向以太坊Solidity智能合约的安全翻译与解析方法
US11681877B2 (en) Systems and method for vocabulary management in a natural learning framework
US11334692B2 (en) Extracting a knowledge graph from program source code
US8117022B2 (en) Method and system for machine understanding, knowledge, and conversation
US8117023B2 (en) Language understanding apparatus, language understanding method, and computer program
US11520992B2 (en) Hybrid learning system for natural language understanding
CN111177184A (zh) 基于自然语言的结构化查询语言转换方法、及其相关设备
EP1638081B1 (en) Creating a speech recognition grammar for alphanumeric concepts
CN106844380A (zh) 一种数据库操作方法、信息处理方法和相应装置
JP2016529603A (ja) オンライン音声翻訳方法及び装置
CN113779062A (zh) Sql语句生成方法、装置、存储介质及电子设备
CN115455981B (zh) 一种多语种语句的语义理解方法、装置、设备及存储介质
WO2019148797A1 (zh) 自然语言处理方法、装置、计算机设备和存储介质
US20220229987A1 (en) System and method for repository-aware natural language understanding (nlu) using a lookup source framework
US20220229990A1 (en) System and method for lookup source segmentation scoring in a natural language understanding (nlu) framework
CN114548082A (zh) 一种语法解析方法、设备和可读存储介质
JP2023018851A (ja) プログラムコード自動生成システム
CN105895091A (zh) 一种eswfst构建方法
Wang et al. gDoc: Automatic Generation of Structured API Documentation
CN111783465A (zh) 一种命名实体归一化方法、系统及相关装置
CN108694163B (zh) 计算句子中的词的概率的方法、装置和神经网络
CN117009319B (zh) 基于大语言模型的数据库操作方法、系统及存储介质
CN104641367A (zh) 用于格式化电子字符序列的格式化模块、系统和方法
US20220245352A1 (en) Ensemble scoring system for a natural language understanding (nlu) framework
CN118170386A (zh) 一种术语编译方法、术语编译系统、存储介质和电子设备

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
GR01 Patent grant
GR01 Patent grant