一种私有区块链的智能合约异步执行存储系统与实现方法技术方案

技术编号:16101958 阅读:64 留言:0更新日期:2017-08-29 22:35
本发明专利技术提供了一种私有区块链的智能合约异步执行存储系统,包括:私有区块链的执行状态机、交易处理器执行状态机,能够支持SCAM的存储结构模块。还提供了一种私有区块链的智能合约异步执行存储系统的实现方法。通过以上系统和实现方法,提高了智能合约的执行效率,智能合约作为区块链的链上代码执行的安全性进一步提高并且智能合约代码与文本的一致性问题得以解决。

【技术实现步骤摘要】
一种私有区块链的智能合约异步执行存储系统与实现方法
本专利技术涉及一种智能合约
,特别是涉及区块链上智能合约执行与存储的系统设计与实现方法。
技术介绍
合约是现实社会中经济活动的基础,它是两方面或几方面在共同协作时,为了确定各自的权利和义务而订立的共同遵守的条文。合约规定了交易的标的、内容、时间和执行约定等,并具有法律保障,双方或多方在信任或者不信任的状态下履行合约承诺,有法可依、有据可寻。合约通过规范承诺与执行合约过程,从而保证交易活动的有序进行。当前,人类社会正在向数字社会发展,虚拟经济是数字社会的重要活动,一个巨大挑战就是将现实中人们经济活动转移到网络虚拟世界上。智能合约的概念在1994年由NickSzabo首次提出。智能合约是能够自动执行合约条款的可计算交易协议程序代码,它与区块链(Blockchain)技术的结合,形成了诚信网络上价值转移的数字合约或代码即合约(CodeasaContract),正成为人们在虚拟世界中维持安全数字关系的重要手段,是未来数字社会的基础协议,因此智能合约的相关研究是具有重要意义的。智能合约理论几乎与互联网技术(WorldWideWeb)同时出现,但应用实践却一直严重地落后于理论,缺乏将这个理念转变现实的清晰路径。主要面临两个方面问题,一是智能合约没有有效的手段来控制实物资产,保证合约的执行,正如售货机通过将商品保存在内部控制财产所有权,可是计算机程序很难控制现金、股份等现实世界中的资产;二是单个计算机很难保证执行这些条款以获得合约方的信任,合约方需要可靠的解释和执行代码的可信环境,它无法亲自检查有问题的计算机,也无法直接观察与验证其他合约方的执行动作,只有让第三方审核各方合约执行的记录。而区块链技术的出现解决了这些问题,奠定了智能合约应用的基础,同时,智能合约也扩大了区块链的应用范围。区块链为完全数字化资产的记录和转移奠定了基础,通过完全数字化的资产,区块链给计算机代码提供直接控制资产的方法,使得智能合约具有执行力。在区块链上,资产的控制就是控制资产对应的密钥权限,而不是任何实物。区块链使计算系统成为受信任系统,它已经不仅限于数据库的功能,同时还是可以执行代码和记录数字资产所有权的分布式计算机,数字资产所有权就可以被上传和存储在区块链中,并根据指令执行,一旦区块链记录了合约代码,合约方就可以确定合约不会被更改。2015年以太坊(Ethereum)把区块链技术和智能合约理论结合,设计实现了可编程的合约语言与可执行的基础设施,开创了基于区块链上智能合约的巨大应用场景。在Ethereum中,智能合约是存储在区块链上的脚本,通过区块链节点以分布式的形式执行,相当于商业交易、监督管理过程中法律、法规的执行者。区块链以按序、安全、可验证的方式保证合约的执行。相比目前复杂的涉及用户、汽车经销商和银行的贷款行为和手续,智能合约是能够自动执行合约条款的计算机程序,它能够完善现有的商业模式,更重要的是他们可能颠覆现有的商业模式,也大大减少了第三方中介的费用。但是现有的基于区块链的智能合约技术还处于一个初级阶段,尚有很多问题还没有解决,如执行效率低下,Ethereum虽然改进了比特币的公有链算法,但也需要15秒/块,这还无法满足实际生产的需求;智能合约作为区块链的链上代码执行的安全问题;以及智能合约代码与文本的一致性问题等。目前基于区块链的智能合约的设计与技术仍有进一步研究和改进的空间,有必要进一步研究基于区块链的智能合约技术。区块链与智能合约的结合对区块链纳入交易的速度与智能合约的可扩展性都会产生影响。当前Ethereum的智能合约执行模型降低了区块链纳入交易的速度。智能合约就是一段经过协商的代码,它的执行应该是分布式的、可观察和可验证的,代码被部署在分享的、复制的账本上,它可以维持自己的状态、控制自己的资产(状态、资产与代码一样,被存储在账本上),还能够对接收到的外界信息进行回应。把智能合约放在区块链上执行就是利用区块链本身自带的一致性算法来保证合约执行结果的一致性。图1是智能合约与区块链结合的原理性示意图,其中,区块链是安全的分布式数据库,智能合约通过协议与用户界面促使合约的执行具有一致性、可观察性、可验证性、自强制性和接入控制。代码/程序以文本形式存储在不同的节点上,给代码/程序添加断点,并对断点的程序状态进行一致性验证,只能通过消息改变程序的信息空间,合约及其状态记录在区块链中,合约状态的改变智能通过消息去触发。
技术实现思路
有鉴于此,本专利技术设计了一种私有区块链的智能合约异步执行存储系统与实现方法。首先,提供一种私有区块链的智能合约异步执行存储系统,包括:私有区块链的执行状态机、交易处理器执行状态机,能够支持SCAM(SmartContractAsynchronousModel,即智能合约异步执行模型)的存储结构模块。优选的,采用执行状态机Mnode表示SCAM中私有区块链的执行状态机,是一个五元组(qnode,∑mode,δnode,snode,Fnode),qnode是私有区块链中节点的状态集合,∑mode是输入(事件)的集合,δnode是转换函数的集合,snode是初始状态,Fnode是终止状态的集合并且Fnode={1}。优选的,采用执行状态机Mexecutor表示SCAM中交易处理器执行状态机,是一个五元组(qexecutor,∑executor,δexecutor,sexecutor,Fexecutor),qexecutor是交易处理器状态机的状态集合如表4。∑executor是输入(事件)的集合。δexecutor是转换函数的集合。sexecutor是初始状态值,Fexecutor终止状态的集合在这里Fexecutor={sexecutor}。优选的,所述能够支持SCAM的存储结构模块包括关系型数据库以及kv(key-value)数据库,所述关系型数据库用于存储区块链,所述kv数据库用于存储状态树的节点,并且为了支持协议,kv中设置多个变量。优选的,所述关系型数据库采用区块头部表与交易数据表两个表存储的形式,其中区块头部表以区块哈希为主键,而交易数据表以交易哈希为主键,同时在存储交易的时候,增加一个字段用于存储交易所在的区块哈希。优选的,所述kv中设置的多个变量包括:1)“State_root”,表示最新处理交易的状态树根;2)“State_height”,表示最新处理交易所在区块的高度;3)“State_tx”,表示最新处理交易所在区块的序号;4)“State_latest”,表示交易处理器最新处理的高度;5)“block:itran:j”,表示记录区块高度为i,交易序号为j的交易处理成功后的状态根与结果;6)“blocktrans:*”,表示区块*的交易的key值;7)“用户编号”,表示对应存储用户信息;8)“计算节点”,记录区块链计算节点的地址列表,作为一个多方共同维护的合约账户,当有计算节点需要更新的时候,必须经过大多数管理节点的同意,才能更新,这样保证了更新的同步性;9)“第三方编号”,用于给监管方分配权限;10)“合约编号”,存储合约的信息,包括代码、合约状态;11)“名称注册”,用于给合约注册名称,便于查询。优选的,所述交易处理器执行本文档来自技高网
...
一种私有区块链的智能合约异步执行存储系统与实现方法

【技术保护点】
一种私有区块链的智能合约异步执行存储系统,其特征在于,包括:私有区块链的执行状态机、交易处理器执行状态机以及能够支持SCAM的存储结构模块以及私有区块链智能合约模块。

【技术特征摘要】
1.一种私有区块链的智能合约异步执行存储系统,其特征在于,包括:私有区块链的执行状态机、交易处理器执行状态机以及能够支持SCAM的存储结构模块以及私有区块链智能合约模块。2.根据权利要求1的一种私有区块链的智能合约异步执行存储系统,其特征在于,采用执行状态机Mnode表示SCAM中私有区块链的执行状态机,是一个五元组(qnode,∑mode,δnode,snode,Fnode),qnode是私有区块链中节点的状态集合,∑mode是输入(事件)的集合,δnode是转换函数的集合,snode是初始状态,Fnode是终止状态的集合并且Fnode={1}。3.根据权利要求1的一种私有区块链的智能合约异步执行存储系统,其特征在于,采用执行状态机Mexecutor表示SCAM中交易处理器执行状态机,是一个五元组(qexecutor,∑executor,δexecutor,sexecutor,Fexecutor),qexecutor是交易处理器状态机的状态集合。∑executor是输入(事件)的集合。δexecutor是转换函数的集合。sexecutor是初始状态值,Fexecutor终止状态的集合在这里Fexecutor={sexecutor}。4.根据权利要求1的一种私有区块链的智能合约异步执行存储系统,其特征在于,所述能够支持SCAM的存储结构模块包括关系型数据库以及kv(key-value)数据库,所述关系型数据库用于存储区块链,所述kv数据库用于存储状态树的节点,并且为了支持协议,kv中设置多个变量。5.根据权利要求4的一种私有区块链的智能合约异步执行存储系统,其特征在于,所述关系型数据库采用区块头部表与交易数据表两个表存储的形式,其中区块头部表以区块哈希为主键,而交易数据表以交易哈希为主键,同时在存储交易的时候,增加一个字段用于存储交易所在的区块哈希。6.根据权利要求4的一种私有区块链的智能合约异步执行存储系统,其特征在于,所述kv中设置的多个变量包括:1)“State_root”,表示最新处理交易的状态树根;2)“State_height”,表示最新处理交易所在区块的高度;3)“State_tx”,表示最新处理交易所在区块的序号;4)“State_latest”,表示交易处理器最新处理的高度;5)“block:itran:j”,表示记录区块高度为i,交易序号为j的交易处理成功后的状态根与结果;6)“blocktrans:*”,表示区块*的交易的key值;7)“用户编号”,表示对应存储用户信息;8)“计算节点”,记录区块链计算节点的地址列表,作为一个多方共同维护的合约账户,当有计算节点需要...

【专利技术属性】
技术研发人员:胡凯黄洁华白晓敏陈志东孙赫
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

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

1