去中心化金融协议智能合约转化方法、系统及电子设备技术方案

技术编号:38533918 阅读:12 留言:0更新日期:2023-08-19 17:05
本发明专利技术公开了一种去中心化金融协议智能合约转化方法、系统及电子设备,首先针对SPESC法律合约,进行语法分析和词法分析,构建SPESC抽象语法树;然后定义SPESC抽象语法树的BNF范式;最后基于SPESC抽象语法树的BNF范式,结合Go抽象语法树的语法语义,给出SPESC抽象语法树到GO抽象语法树的语义映射关系;完成SPESC抽象语法树到Go抽象语法树的转化,实现SPESC法律合约代码到Go智能合约代码的转换。本发明专利技术可以建立从法律合约到可执行智能合约代码生成的直接关系。成的直接关系。成的直接关系。

【技术实现步骤摘要】
去中心化金融协议智能合约转化方法、系统及电子设备


[0001]本专利技术涉及计算机技术区块链
,涉及一种智能合约的转化方法、系统及电子设备,尤其涉及一种去中心化金融(DeFi)协议智能合约转化方法、系统及电子设备。
技术背景
[0002]去中心化金融(DeFi)是基于智能合约平台构建的开放、无需许可且高度可互相操作加密资产、金融类智能合约以及金融协议。狭义上讲,智能合约就是部署并运行在区块链上的计算机程序。智能合约的代码、执行的中间状态、及执行结果都会存储在区块链中,区块链除了保证这些数据不被篡改外,还会通过每个节点以相同的输入执行智能合约来验证运行结果正确性。区块链的这种共识验证机制,保证了智能合约的不可篡改性和可追溯等特性,从而使得它具备了被法律认可的可能。智能合约平台和语言已日益成熟且功能趋于完善。然而,由于智能合约通常涉及到计算机、法律、金融等多领域的协作,而目前的智能合约编程语言存在对于非计算机领域人员不够友好,对没学习过编程的人员来说难以理解等问题。具体而言,目前的智能合约语言存在以下几个缺点:程序语言与法律合约形式相去甚远;智能合约程序专业性强,用户和法律人员难以理解,从法律合约到可执行智能合约代码生成没有建立直接关系。

技术实现思路

[0003]本专利技术的目的在于提供一种去中心化金融(DeFi)协议智能合约转化方法、系统及电子设备,建立从法律合约到可执行智能合约代码生成的直接关系。
[0004]本专利技术的方法所采用的技术方案是:一种去中心化金融协议智能合约转化方法,包括以下步骤:
[0005]步骤1:针对SPESC法律合约,进行语法分析和词法分析,构建SPESC抽象语法树;
[0006]步骤2:定义SPESC抽象语法树的BNF范式;
[0007]步骤3:基于SPESC抽象语法树的BNF范式,结合Go抽象语法树的语法语义,给出SPESC抽象语法树到GO抽象语法树的语义映射关系;完成SPESC抽象语法树到Go抽象语法树的转化,实现SPESC法律合约代码到Go智能合约代码的转换。
[0008]本专利技术的系统所采用的技术方案是:一种去中心化金融协议智能合约转化系统,包括以下模块:
[0009]模块1:针对SPESC法律合约,进行语法分析和词法分析,构建SPESC抽象语法树;
[0010]模块2:定义SPESC抽象语法树的BNF范式;
[0011]模块3:基于SPESC抽象语法树的BNF范式,结合Go抽象语法树的语法语义,给出SPESC抽象语法树到GO抽象语法树的语义映射关系;完成SPESC抽象语法树到Go抽象语法树的转化,实现SPESC法律合约代码到Go智能合约代码的转换。
[0012]本专利技术的电子设备所采用的技术方案是:一种电子设备,包括:
[0013]一个或多个处理器;
[0014]存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现所述的去中心化金融协议智能合约转化方法。
[0015]相对于现有技术,本专利技术的有益效果是:
[0016]首先,定义了SPESC语言的BNF范式,并实现了SPESC到GO的映射关系生成语言转换工具。其次定义了SPESC语言的可执行形式化语义并验证其正确性,接着将可执行形式化语义应用于K框架,验证转换的正确性。本专利技术完成了将现实合约转换为智能合约的过程,打破了智能合约与非程序人员之间的领域壁垒,能更好地满足法律合同的自动化、形式化转化。
附图说明
[0017]图1为本专利技术实施例的转换方法流程图;
[0018]图2为本专利技术实施例的GO抽象语法树形成流程图;
[0019]图3为本专利技术实施例的SPESC[KS]的定义与验证流程图。
具体实施方式
[0020]为了便于本领域普通技术人员理解和实施本专利技术,下面结合附图及实施例对本专利技术作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本专利技术,并不用于限定本专利技术。
[0021]请见图1,本专利技术提供的一种去中心化金融协议智能合约转化方法,包括以下步骤:
[0022]步骤1:针对SPESC法律合约,进行语法分析和词法分析,构建SPESC抽象语法树;
[0023]本实施例中,首先提供SPESC代码文件利用ANTLR4工具得到SPESC的抽象语法树。具体为用词法分析器(Lexer)对文本进行词法分析,生成Token,然后传给语法解析器(parser)检索生成抽象语法树(AST)。其中:词法分析器Lexer用来将字符序列转换为单词(Token),主要是完成对源程序代码进行从左到右的逐行扫描,识别出各个单词,从而确定单词的类型;将识别出的单词转换为统一的机内表示
‑‑‑
词法单位(Token)形式。语法分析器Parser则是进行语法检查,并构建由输入的单词(Token)组成的数据结构
‑‑‑
语法树。
[0024]步骤2:定义SPESC抽象语法树的BNF范式;
[0025]本实施例中,对SPESC语言的官方给出的拓展巴克斯范式(本专利技术简称SPESC[EBNF])进行研究,将SPESC[EBNF]转化为一般巴克斯范式;
[0026]EBNF是BNF的扩展,其对于符号的使用规则与BNF存在差别,故将现有的BPMN2.0[EBNF]改写成符合K框架要求的巴科斯范式BPMN2.0[BNF]形式,改写规则包括以下4点:
[0027](1)等价符号的改写。由“=”改写为“::=”,两个符号表示意思相同,后者为BNF中等价的符号。
[0028](2)可选符号的改写。EBNF中“[]”表示[]中表达式均可选择,且其出现次数为0次或1次。改写成BNF中“|”,此符号代表“或”的关系,改写后语法不变。
[0029](3)分组符号的改写。EBNF中“()”表示()中的表达式为一组。改写成BNF中的“|”,使用此符号将所有可能出现的表达式罗列,例如X=(E1|E2)A改写为X=E1A|E2A,改写后语
法不变。
[0030](4)重复符号的改写。EBNF中“{}”表示{}中表达式均出现,且其出现次数为1次或者多次。改成写BNF中“|”,使用此符号将所有可能出现的表达式罗列,例如,X=E{A}改写成X::=E|X A,改写后语法不变。
[0031]从而定义得到SPESC的巴科斯范式。
[0032]步骤3:基于SPESC抽象语法树的BNF范式,结合Go抽象语法树的语法语义,给出SPESC抽象语法树到GO抽象语法树的语义映射关系;完成SPESC抽象语法树到Go抽象语法树的转化,实现SPESC法律合约代码到Go智能合约代码的转换。
[0033]本实施例中,结合SPESC到Go语言的语义映射和得到的SPESC抽象语法树,相应得到Go语言对应的抽象语法树。要对抽象语法树进行分析,使其变化为另一种语言的抽象语法树,则需要对抽象语法树的各节点进行增删本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种去中心化金融协议智能合约转化方法,其特征在于,包括以下步骤:步骤1:针对SPESC法律合约,进行语法分析和词法分析,构建SPESC抽象语法树;步骤2:定义SPESC抽象语法树的BNF范式;步骤3:基于SPESC抽象语法树的BNF范式,结合Go抽象语法树的语法语义,给出SPESC抽象语法树到GO抽象语法树的语义映射关系;完成SPESC抽象语法树到Go抽象语法树的转化,实现SPESC法律合约代码到Go智能合约代码的转换。2.根据权利要求1所述的去中心化金融协议智能合约转化方法,其特征在于:步骤1中,用词法分析器Lexer对SPESC法律合约文本进行词法分析,生成Token,然后传给语法解析器parser检索生成抽象语法树AST;所述词法分析器Lexer,用来将字符序列转换为单词Token;对源程序代码进行从左到右的逐行扫描,识别出各个单词,从而确定单词的类型;将识别出的单词转换为统一的词法单位Token形式;所述语法分析器Parser,用来进行语法检查,并构建由输入的单词Token组成的数据结构,即抽象语法树AST。3.根据权利要求1所述的去中心化金融协议智能合约转化方法,其特征在于:步骤2中,所述SPESC的BNF范式,是对SPESC语言的拓展巴克斯范式SPESC[EBNF]转化为一般巴克斯范式;其中,EBNF是BNF的扩展,是进BPMN2.0[EBNF]改写成符合K框架要求的巴科斯范式BPMN2.0[BNF]形式,改写规则包括以下4点:(1)等价符号的改写;由“=”改写为“::=”,两个符号表示意思相同,后者为BNF中等价的符号;(2)可选符号的改写;EBNF中“[]”表示[]中表达式均可选择,且其出现次数为0次或1次,改写成BNF中“|”,此符号代表“或”的关系,改写后语法不变;(3)分组符号的改写;EBNF中“()”表示()中的表达式为一组,改写成BNF中的“|”,使用此符号将所有可能出现的表达式罗列,改写后语法不变;(4)重复符号的改写;EBNF中“{}”表示{}中表达式均出现,且其出现次数为1次或者多次,改成写BNF中“|”,使用此符号将所有可能出现的表达式罗列,改写后语法不变;定义得到SPESC的巴科斯范式,即SPESC抽象语法树的BNF范式。4.根据权利要求1所述的去中心化金融协议智能合约转化方法,其特征在于:步骤3中,所述给出SPESC抽象语法树到GO抽象语法树的语义映射关系,包括从变量映射、常量及表达式映射、自定义函数、进程与事件四个方面完成映射关系。具体步骤包括:(1)变量映射;SPESC的数据用String来定义,在数据类型的转换上,直接与Go的String对应;(2)常量及表达式映射,具体映射规则为下表1;表1SEPSCGo类型>、>=、<、<=、=、!=和belong to>、>=、<、<=、==、!=和无对应关系运算符+、-、*、/、**+、-、*、/、<<算术运算符含整型常量、浮点常量、布尔常量含整型常量、浮点常量、布尔常量常量
&&、||...

【专利技术属性】
技术研发人员:孟博王佳慧王德军王陈
申请(专利权)人:湖北云商智创信息技术有限公司
类型:发明
国别省市:

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

1