一种基于区块链的智能合约系统及实现方法技术方案

技术编号:15254133 阅读:99 留言:0更新日期:2017-05-02 20:07
本发明专利技术属于区块链技术领域,提出了一种基于区块链的智能合约系统,包括OP代码执行模块、合约执行虚拟机、智能合约模块;所述OP代码执行模块用于将基于堆栈的脚本内容通过OPCode解析,形成相应的运算代码,从而获取所述运算代码执行的汇编语言;所述智能合约模块用于将智能合约的代码登记到区块链上即合约链;所述合约执行虚拟机用于接收到执行区块链上的智能合约指令后,执行智能合约。本发明专利技术还提出了一种基于区块链的智能合约的实现方法,具体是将智能合约登记到区块链上,且具有执行各种语言编写的智能合约环境执行。采用本发明专利技术的系统和方法可以运行庞大复杂的智能合约,使得约定更智能,大大的减少了执行成本。

Block chain based intelligent contract system and implementing method thereof

The invention belongs to the technical field of block chain, this paper proposes an intelligent system based on block chain contracts, including the OP code execution module, contract execution, virtual machine intelligent contract module; the OP code execution module is used to convert the script based content stack through OPCode analysis, to form the corresponding code of the operation, so as to obtain the operation the assembly language code execution; the intelligent module for intelligent contract contract registration code to block chain contract chain; the contract to perform intelligent virtual machine for receiving the contract instruction blocks on the chain after the implementation of smart contracts. The invention also provides a method for realizing the intelligent contract based on the block chain, in particular to the intelligent contract registration to the block chain and the execution of the intelligent contract environment executed by various languages. The system and method of the invention can run a large and complex intelligent contract, making the protocol more intelligent and greatly reducing the execution cost.

【技术实现步骤摘要】

本专利技术涉及区块链
,具体地说是一种基于区块链的智能合约系统及实现方法
技术介绍
智能合约的理念可以追溯到1995年,几乎与互联网(worldwideweb)同时出现。因为比特币打下基础而受到广泛赞誉的密码学家尼克·萨博(NickSzabo)首次提出了“智能合约”这一术语。从本质上讲,这些自动合约的工作原理类似于其它计算机程序的if-then语句。智能合约只是以这种方式与真实世界的资产进行交互。当一个预先编好的条件被触发时,智能合约执行相应的合同条款。智能合约显示出了它独特的优势,比如在P2P交易中的应用,减少了执行合约成本等,促使很多技术专家对智能合约做进一步探索与研究。
技术实现思路
本专利技术的目的是提出一种基于区块链的智能合约系统,包括OP代码执行模块、合约执行虚拟机、智能合约模块;所述OP代码执行模块用于将基于堆栈的脚本内容通过OPCode解析,形成相应的运算代码,从而获取所述运算代码执行的汇编语言;所述智能合约模块用于将智能合约的代码登记到区块链上即合约链;所述合约执行虚拟机用于接收到执行区块链上的智能合约指令后,判断即将执行的智能合约是何种代码编写,如果就是OPCode代码编写,则直接执行,如果是高级语言编写的智能合约代码,则将高级语言编写的智能合约代码解析,通过调用OP代码执行模块获取的汇编语言,执行智能合约。优选的是,还包括外部数据模块,所述外部数据模块用于给合约执行虚拟机执行智能合约提供外部数据资源。优选的是,所述智能合约模块还包括将智能合约代码进行哈希运算,哈希运算后将哈希值登记到区块链上。优选的是,所述合约执行虚拟机还包括将智能合约代码哈希值与智能合约存储服务器中的智能合约代码相匹配,获取与哈希值相对应的智能合约代码。为了解决上述技术问题,本专利技术又提出了一种基于区块链的智能合约实现方法,包括如下:将基于堆栈的脚本内容通过OPCode解析,形成相应的运算代码,从而获取所述运算代码执行的汇编语言;将智能合约对应的代码登记到区块链上;接收到执行智能合约命令,从区块链上获取与要执行的智能合约对应的智能合约代码;判断执行的智能合约代码是何种语言编写的,如果就是OPCode代码编写,则直接执行即可,如果是高级语言编写的智能合约代码,则将高级语言编写的智能合约代码解析,通过调用解析后的汇编语言,执行智能合约。优选的是,在执行智能合约时,智能合约中的有些条件或者参数可以采用外部数据资源。优选的是,将智能合约代码进行哈希运算,将哈希值登记到区块链上。优选的是,若在区块链上获取到智能合约哈希值时,将哈希值与智能合约存储服务器中的智能合约代码相匹配,获取与哈希值相对应的智能合约代码,执行智能合约代码。本专利技术有益效果如下:区块链技术是分布式账本,可以在多个节点存储,所以比较安全,而且是防篡改的。本专利技术的基于区块链的智能合约系统及实现方法采用将智能合约代码存储到区块链上,所以比较安全,且防篡改。本专利技术的基于区块链的智能合约系统及实现方法可以运行庞大复杂的智能合约,所以使得约定更智能,大大的减少了执行成本。附图说明图1是实施例3中的一种基于区块链的智能合约实现方法流程图。图2是实施例4中的一种基于区块链的智能合约实现方法流程图。具体实施方式下面结合附图对本专利技术作进一步详细描述,有必要在此指出的是,以下具体实施方式只用于对本专利技术进行进一步的说明,不能理解为对本专利技术保护范围的限制,该领域的技术人员可以根据上述
技术实现思路
对本专利技术作出一些非本质的改进和调整。本专利技术提出的基于区块链的智能合约系统及实现方法,可以运行庞大复杂的智能合约,所以使得约定更智能,大大的减少了执行成本,且安全防篡改。实施例1本专利技术提出的基于区块链的智能合约系统包括OP代码执行模块、合约执行虚拟机、智能合约模块、外部数据模块。OP代码执行模块用于将基于堆栈的脚本内容通过OPCode解析,形成相应的运算代码,从而获取所述运算代码执行的汇编语言。比如比特币构造原理中采用OpCode(operationcode)形成智能合约执行,而本专利技术中OP代码执行模块是将这种OpCode解析成更高级的语言可调用的汇编语言,或者更容易理解的说法为解析成可调用的函数。脚本被解析后程序更加安全,简洁,执行速度更快。智能合约模块用于将智能合约的代码登记到区块链上即合约链。确切的说,登记到区块链上的智能合约代码可以是高级语言编写的,也可以是OPCode代码编写的。合约执行虚拟机用于接收到执行区块链上的智能合约指令后,判断即将执行的智能合约是何种代码编写,如果就是OPCode代码编写,则在合约执行虚拟机中直接执行,如果是高级语言编写的智能合约代码,则将高级语言编写的智能合约代码解析,通过调用OP代码执行模块获取的汇编语言,执行智能合约。外部数据模块用于给合约执行虚拟机执行智能合约提供外部数据资源。比如智能合约中有时间约定,那通过外部数据提供标准时间执行智能合约,这样比较可信,公平。又比如资产跨境交易时,需要提供汇率转换转换汇率的。甚至在执行智能合约时需要外部数据模块提供算法模型。实施例2如图2所示,本实施例提出的基于区块链的智能合约系统包括OP代码执行模块、合约执行虚拟机、智能合约模块、智能合约存储服务器、外部数据模块。其中,OP代码执行模块用于将基于堆栈的脚本内容通过OPCode解析,形成相应的运算代码,从而获取所述运算代码执行的汇编语言。比如比特币构造原理中采用OpCode(operationcode)形成智能合约执行,而本专利技术中OP代码执行模块是将这种OpCode解析成更高级的语言可调用的汇编语言,或者更容易理解的说法为解析成可调用的函数。脚本被解析后程序更加安全,简洁,执行速度更快。本实施例中的智能合约模块用于将智能合约的代码进行哈希后登记到区块链上即合约链。确切的说,经过哈希算法后登记到区块链上的智能合约代码可以是高级语言编写的,也可以是OPCode代码编写的。将智能合约代码进行哈希算法后登记入链,这适用于智能合约代码比较庞大,这是因为直接将庞大的智能合约入链,会造成区块链臃肿。智能合约存储服务器用于存储智能合约代码。本实施例中合约执行虚拟机用于接收到执行区块链上的智能合约指令后,将智能合约代码哈希值与智能合约存储服务器中的智能合约代码相匹配,获取与哈希值相对应的智能合约代码,并判断即将执行的智能合约代码是何种代码编写,如果就是OPCode代码编写,则在合约执行虚拟机中直接执行,如果是高级语言编写的智能合约代码,则将高级语言编写的智能合约代码解析,通过调用OP代码执行模块获取的汇编语言,执行智能合约。外部数据模块用于给合约执行虚拟机执行智能合约提供外部数据资源。比如智能合约中有时间约定,那通过外部数据提供标准时间执行智能合约,这样比较可信,公平。又比如资产跨境交易时,需要提供汇率转换转换汇率的。甚至在执行智能合约时需要外部数据模块提供算法模型。实施例3本实施例提出的基一种于区块链的智能合约实现方法,如图1所示,具体如下:步骤S01、将基于堆栈的脚本内容通过OPCode解析,形成相应的运算代码,从而获取所述运算代码执行的汇编语言。比如比特币构造原理中采用OpCode(operationcode)形成智能合约执行,而本专利技术中OP代码执行模块是将这种OpCo本文档来自技高网
...

【技术保护点】
一种基于区块链的智能合约系统,其特征在于:包括OP代码执行模块、合约执行虚拟机、智能合约模块;所述OP代码执行模块用于将基于堆栈的脚本内容通过OPCode解析,形成相应的运算代码,从而获取所述运算代码执行的汇编语言;所述智能合约模块用于将智能合约的代码登记到区块链上即合约链;所述合约执行虚拟机用于接收到执行区块链上的智能合约指令后,判断即将执行的智能合约是何种代码编写,如果就是OPCode代码编写,则直接执行,如果是高级语言编写的智能合约代码,则将高级语言编写的智能合约代码解析,通过调用OP代码执行模块获取的汇编语言,执行智能合约。

【技术特征摘要】
1.一种基于区块链的智能合约系统,其特征在于:包括OP代码执行模块、合约执行虚拟机、智能合约模块;所述OP代码执行模块用于将基于堆栈的脚本内容通过OPCode解析,形成相应的运算代码,从而获取所述运算代码执行的汇编语言;所述智能合约模块用于将智能合约的代码登记到区块链上即合约链;所述合约执行虚拟机用于接收到执行区块链上的智能合约指令后,判断即将执行的智能合约是何种代码编写,如果就是OPCode代码编写,则直接执行,如果是高级语言编写的智能合约代码,则将高级语言编写的智能合约代码解析,通过调用OP代码执行模块获取的汇编语言,执行智能合约。2.根据权利要求1所述的基于区块链的智能合约系统,其特征在于:还包括外部数据模块,所述外部数据模块用于给合约执行虚拟机执行智能合约提供外部数据资源。3.根据权利要求1所述的基于区块链的智能合约系统,其特征在于:所述智能合约模块还包括将智能合约代码进行哈希运算,哈希运算后将哈希值登记到区块链上。4.根据权利要求1所述的基于区块链的智能合约系统,其特征在于:所述合约执行虚拟机还包括将智能合约代码哈希值与智能合约存储服务器中的智能合...

【专利技术属性】
技术研发人员:邓迪丁江
申请(专利权)人:天津米游科技有限公司
类型:发明
国别省市:天津;12

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

1