G06/Q1010 G06/Q4004
1.一种基于区块链的智能合约的构建方法,其特征在于:包括智能合约的创建步骤和智能合约的执行步骤;
所述智能合约的创建步骤的具体过程为:
S100.接收参与方提交的合约创建申请;合约创建申请中包括参与方的合约标的以及合约标的状态;
S200.根据步骤S100中的合约创建申请生成合约和合约记录,所述合约包含任务、规则以及触发条件;
S300.将合约发送至步骤S100中的参与方;
S400.参与方分别用自身私钥对合约进行签名;
S500.存储经参与方签名的合约,在区块链发布所述合约的信息;
所述智能合约的执行步骤的具体过程为:
P100.设置合约定期检查,逐条遍历合约内包含的状态、事务和触发条件;
P200.当事务满足触发条件,创建合约事务记录,将所述合约事务记录发布至区块链中并执行所述事务。
2.根据权利要求1所述的一种基于区块链的智能合约的构建方法,其特征在于:所述步骤S500的具体过程如下:
S510.在服务器上存储经参与方签名的合约;
S520.经签名的合约在区块链中发布,区块链中参与该合约制定的参与方都收到一份合约并生成合约记录,将所述合约记录保存在区块中。
3.根据权利要求2所述的一种基于区块链的智能合约的构建方法,其特征在于:所述步骤S520中,所述合约记录包括与合约记录对应的时间戳。
4.根据权利要求2所述的一种基于区块链的智能合约的构建方法,其特征在于:所述步骤S520中,在区块链中发布合约的具体过程为:
S521.发送合约代码至区块链节点;
S522.区块链节点接收到合约代码后,判断智能合约代码是否是源代码形式合约:
若是,则调用编译模块编译合约代码,生成二进制合约代码,将二进制合约代码发布到区块链上;
若不是,则解析合约代码,将解析后的合约代码调用编译模块编译合约代码,生成二进制合约代码,将二进制合约代码发布到区块链上。
5.根据权利要求4所述的一种基于区块链的智能合约的构建方法,其特征在于:在所述步骤S521之前,预先在区块链节点内部集成编译模块。
6.根据权利要求5所述的一种基于区块链的智能合约的构建方法,其特征在于:所述预先在区块链节点内部集成编译模块的具体过程为:
获取编译器源代码,在编译器源代码中提取编译器模块代码;
将提到的编译器模块代码集成进区块链节点对应的以太坊代码,完成在区块链节点内部集成编译模块。
7.根据权利要求1-6任一项所述的一种基于区块链的智能合约的构建方法,其特征在于:所述合约标的包括智能合约的执行步骤涉及的数字资产。
一种基于区块链的智能合约的构建方法
技术领域
本发明属于区块链技术领域,具体涉及一种基于区块链的智能合约的构建方法。
背景技术
合约,指两方面或几方面在办理某事时,为了确定各自的权利和义务而订立的共同遵守的条文。
传统合约是写在纸上的,签字盖章之后才会生效,合约的执行过程由很多控制协议构成,控制协议包括表格账单等记录的保存以及记录的审核与协商,记录的审核与协商通常需要第三方的参与,而合约的执行效能只能通过法律和武力保证。
随着信息技术的发展,通过计算机、互联网和密码理论等技术减少合约指定、控制及执行的成本逐渐成为一种新的发展趋势。1997年,Nick Szabo引入“智能合约”的概念:智能合约把合约条款嵌入到软、硬件中,通过协议与用户接口来促进合约的执行,它是我们在互联网中形成安全、数字化关系的关键。也就是说,在计算机界里,合约是通过代码的形式实现的。数字化的合约,存在着是否有效、容易被否认、可能会被篡改及被黑客攻击的风险,因此数字化的合约始终可信度不高。如果执行过程中被人恶意篡改或干预,执行的结果将会偏离合约的本意。
发明内容
为了解决现有技术存在的上述问题,本发明目的在于提供一种不可篡改且可靠性高的基于区块链的智能合约的构建方法。
本发明所采用的技术方案为:
一种基于区块链的智能合约的构建方法,包括智能合约的创建步骤和智能合约的执行步骤;
所述智能合约的创建步骤的具体过程为:
S100.接收参与方提交的合约创建申请;合约创建申请中包括参与方的合约标的以及合约标的状态;
S200.根据步骤S100中的合约创建申请生成合约和合约记录,所述合约包含任务、规则以及触发条件;
S300.将合约发送至步骤S100中的参与方;
S400.参与方分别用自身私钥对合约进行签名;
S500.存储经参与方签名的合约,在区块链发布所述合约的信息;
所述智能合约的执行步骤的具体过程为:
P100.设置合约定期检查,逐条遍历合约内包含的状态、事务和触发条件;
P200.当事务满足触发条件,创建合约事务记录,将所述合约事务记录发布至区块链中并执行所述事务。
进一步地,所述步骤S500的具体过程如下:
S510.在服务器上存储经参与方签名的合约;
S520.经签名的合约在区块链中发布,区块链中参与该合约制定的参与方都收到一份合约并生成合约记录,将所述合约记录保存在区块中。
进一步地,所述步骤S520中,所述合约记录包括与合约记录对应的时间戳。
进一步地,所述步骤S520中,在区块链中发布合约的具体过程为:
S521.发送合约代码至区块链节点;
S522.区块链节点接收到合约代码后,判断智能合约代码是否是源代码形式合约:
若是,则调用编译模块编译合约代码,生成二进制合约代码,将二进制合约代码发布到区块链上;
若不是,则解析合约代码,将解析后的合约代码调用编译模块编译合约代码,生成二进制合约代码,将二进制合约代码发布到区块链上。
进一步地,在所述步骤S521之前,预先在区块链节点内部集成编译模块。
进一步地,所述预先在区块链节点内部集成编译模块的具体过程为:
获取编译器源代码,在编译器源代码中提取编译器模块代码;
将提到的编译器模块代码集成进区块链节点对应的以太坊代码,完成在区块链节点内部集成编译模块。
进一步地,所述合约标的包括智能合约的执行步骤涉及的数字资产。
本发明的有益效果为:
本发明通过将经参与方签名的合约发布至区块链上,避免了智能合约的恶意篡改;同时参与方不用担心系统在合约的触发条件满足时合约不会被执行。
具体实施方式
下面结合具体实施例对本发明做进一步阐释。
实施例1:
本实施例提供一种基于区块链的智能合约的构建方法,包括智能合约的创建步骤和智能合约的执行步骤;
所述智能合约的创建步骤的具体过程为:
S100.接收参与方提交的合约创建申请;合约创建申请中包括参与方的合约标的以及合约标的状态;
S200.根据步骤S100中的合约创建申请生成合约和合约记录,所述合约包含任务、规则以及触发条件;
S300.将合约发送至步骤S100中的参与方;
S400.参与方分别用自身私钥对合约进行签名;
S500.存储经参与方签名的合约,在区块链发布所述合约的信息;
所述智能合约的执行步骤的具体过程为:
P100.设置合约定期检查,逐条遍历合约内包含的状态、事务和触发条件;
P200.当事务满足触发条件,创建合约事务记录,将所述合约事务记录发布至区块链中并执行所述事务。
以两个参与者为例说明本智能合约的构建方法的原理。参与者一和参与者二在区块链上通过智能合约约定对某数字资产的权属从参与者一转移到参与者二,转移的触发条件是参与者二向参与者一在区块链上支付一定数量的。首先,参与者一将数字资产抵押到智能合约中,具体方式是将行为动作和自己掌握的私钥进行数字签名后发送到区块链上;其次,参与者二将通过该智能合约发送给参与者一,具体方式同样是将该行为动作和自己掌握的私钥进行数字签名后发送到区块链上。区块链上其他节点对上述行为动作、数字签名进行验证,通过后即认可了这笔交易。
具体地,本实施例中的步骤S500的具体过程如下:
S510.在服务器上存储经参与方签名的合约;
S520.经签名的合约在区块链中发布,区块链中参与该合约制定的参与方都收到一份合约并生成合约记录,将所述合约记录保存在区块中。
进一步地,在步骤S520中,所述合约记录包括与合约记录对应的时间戳。
更进一步地,步骤S520中,在区块链中发布合约的具体过程为:
S521.发送合约代码至区块链节点;
S522.区块链节点接收到合约代码后,判断智能合约代码是否是源代码形式合约:
若是,则调用编译模块编译合约代码,生成二进制合约代码,将二进制合约代码发布到区块链上;
若不是,则解析合约代码,将解析后的合约代码调用编译模块编译合约代码,生成二进制合约代码,将二进制合约代码发布到区块链上。
用户可通过查看合约的源代码,提高了发布到区块链上的合约的可靠性和安全性,也能及时对合约的功能进行判断。
优选地,本实施例中,在所述步骤S521之前,预先在区块链节点内部集成编译模块。
具体地,预先在区块链节点内部集成编译模块的具体过程为:
获取编译器源代码,在编译器源代码中提取编译器模块代码;
将提到的编译器模块代码集成进区块链节点对应的以太坊代码,完成在区块链节点内部集成编译模块。
所述合约标的包括智能合约的执行步骤涉及的数字资产。
本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。
本文发布于:2023-04-15 05:15:25,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/87077.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |