一种智能合约的自动化生成方法_第1页
一种智能合约的自动化生成方法_第2页
一种智能合约的自动化生成方法_第3页
一种智能合约的自动化生成方法_第4页
一种智能合约的自动化生成方法_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、权利要求书一种智能合约的自动化生成方法,其特征在于:首先,根据已有的智能合约通过新增智能合约模板组建模板库,并保持对 该模板库进行更新;所述智能合约模板包含功能描述、属性代码以及方法代码;然后,根据所需智能合约的相关属性代码查找模板库,得到相应的智能合 约模板并根据该模板自动生成所需的智能合约。根据权利要求1所述的自动化生成方法,其特征在于:所述新增智能合 约模板的具体过程为:对于已有的任一智能合约,先将其分解为属性代码和方 法代码;然后新建一空的智能合约模板,并将分解得到的属性代码和方法代码 直接赋予该智能合约模板并添加相应功能描述,进而将该智能合约模板保存到 模板库中。根据权利要求1所述的

2、自动化生成方法,其特征在于:所述对模板库进 行更新的具体过程为:对于新的智能合约,先将其分解为属性代码和方法代码, 进而将新智能合约与模板库中各智能合约模板进行比对:若模板库中有一智能合约模板,其与新智能合约相比较属性代码一致但方 法代码不一致,则将该智能合约模板的方法代码全部替换为新智能合约的方法 代码;若模板库中有一智能合约模板,其与新智能合约相比较属性代码不完全一 致,即不具有新智能合约的个别属性代码,则将该个别属性代码及其相关方法 代码添加至该智能合约模板中,并更新相应的功能描述。根据权利要求1所述的自动化生成方法,其特征在于:所述查找模板库 及生成智能合约的具体实现过程为:首先,根据

3、所需智能合约的相关属性代码 查找模板库:若模板库中有一智能合约模板,其具有所需智能合约的所有属性代码,则 从该智能合约模板中选中相关属性代码及相关方法代码,自动生成所需的智能 合约;若模板库中有一智能合约模板,其具有所需智能合约大部分的属性代码, 只缺少个别属性代码,则从该智能合约模板中选中相关属性代码及相关方法代码,自动生成相应的智能合约,进而将缺少的个别属性代码及相关方法代码补 充至该智能合约中,最终得到所需的智能合约并利用其对该智能合约模板进行 更新;若模板库中不存在相关的智能合约模板,则根据所需智能合约的相关属性 代码和方法代码编写相应的智能合约,并利用编写得到的智能合约新增相应的 智

4、能合约模板保存到模板库中。一种智能合约的自动化生成方法技术领域本发明属于智能合约技术领域,具体涉及一种智能合约的自动化生成方法。背景技术合约指两方面或几方面在办理某事时,为了确定各自的权利和义务而订立 的共同遵守的条文。传统的合约都是先经过“桌面会议”讨论得到一致后,记 录在纸张上。经过了这么多年的发展,“合约”已经形成了自身的概念与原则。在传统合约中,人们先通过面谈的形式制定合约并达成一致,把合约记录 在纸张上,合约双方在纸上签字;合约的执行过程由很多的控制协议构成,控 制协议包括两个部分:表格、账单等记录的保存,还有记录的审核与协商,记 录的审核与协商往往需要第三方参与,容易造成合约方之间

5、的地位不平等;合 约的执行效能只能通过法律、武力来保证。这些控制协议都是经过多年的沉淀 积累下来的。虽然控制协议的成本很高,但它是我们在不信任的环境中保持协 作的根本保证。合约的执行过程中,记录的审核不仅花费很高,而且依靠低效 率的人工完成,所以人们往往通过抽样审核来缩减成本的。我们已经进入了数字社会的时代,应该通过计算机、互联网、密码理论等 技术的引入,来减少了交易在合约制定、控制协议和执行效能保障的人工花费 与计算成本。1997年,Nick Szabo引入“智能合约”的概念:智能合约把合约 条款嵌入到软、硬件中,通过协议与用户接口来促进合约的执行,它是我们在 互联网中形成安全、数字化关系的

6、关键。他在Formalizing and SecuringRelationships on Public Networks ”中提出了智能合约的三大重要的性质:可观察 性、可验证性与接入控制。可观察性指合约本身与合约执行过程能够被观察; 可验证性指合约执行的过程与判决都能够被验证;接入控制是指合约本身及与 合约相关的信息只有相关的合约方才能够接触,当发生冲突的时候才会把相关 信息暴露给第三方审查。通过把智能合约与传统合约比较,可以看到智能合约的优势:首先,传统 合约需要通过“桌面协议”的形式协商与撰写,智能合约可以通过互联网与数 字签名技术就可以形成有合约方认证签名的智能合约;与此同时,传统合

7、约的 执行过程由很多的控制协议构成,控制协议包括两个部分:表格、账单等记录 的保存,还有记录的审核与协商,记录的审核与协商往往需要第三方参与,这 样不仅容易造成合约方之间的地位不平等,而且需要花费第三方的费用,智能 合约通过密码协议与用户界面的结合保证合约的本身及其执行过程的可观察 性、可验证性,减少了控制协议的人工花费与计算成本。因此,智能合约不仅比传统“纸质”合约具有更大功能、生命力更强,它 还减少了交易在合约制定、控制协议和执行效能保障的人工花费与计算成本。 同时,它还是形成“数字社会”主力军,起着不可缺少的重要作用。由此看来, 智能合约的发展潜力是巨大的。由于技术的不成熟,所以智能合约

8、的发展一直十分缓慢,直到2013年, Ethereum提出了带有内置图灵完备编程语言的区块链,智能合约能够在区块链 上实现,使得智能合约的研究又进入了一个新的阶段。区块链是一个可验证的、 不可更改的复制型分布式数据库。区块链有两个重要的组成部分:交易和区块。 其中,交易不仅记录了改变数据库状态的操作,还是对数据库使用权限的载体; 区块是对交易验证时间与顺序的记录。区块链记录了所有的交易,保证区块链 的可验证性。交易、区块的正确性主要在于系统对标准的制定,交易的有效性 判断标准在于实际的需要;由于区块链是复制型数据库,所以区块的有效性判 断决定了区块链的不可更改性与一致性、系统的安全性。同时,带

9、有内置图灵 完备编程语言的区块链可以自动执行保存在区块链中的规则,所以智能合约能 够用区块链实现。随着区块链技术的发展,区块链之上的智能合约也越来越多,也必然存在 了大量相似甚至重复的智能合约,若每次都需要重新编写,需要一定的人力与 时间成本。发明内容为了节省人力物力以及时间成本,本发明提供了一种智能合约的自动化生成方法,其针对同一个行业或相似的行业内使用的智能合约比较相似,其中也 就存在某些固定的特征,根据代码复用的思想,把这些固定特征抽取出来,编 写出数据结构和相应的代码片段,将这些代码片段保存到代码数据库中。本发 明使用智能合约自动化生成系统生成合约时,选择需要的智能合约模板以及属 性和

10、方法就可以自动化生成合约。一种智能合约的自动化生成方法,包括如下步骤:首先,根据已有的智能合约通过新增智能合约模板组建模板库,并保持对 该模板库进行更新;所述智能合约模板包含功能描述、属性代码以及方法代码;然后,根据所需智能合约的相关属性代码查找模板库,得到相应的智能合 约模板并根据该模板自动生成所需的智能合约。所述新增智能合约模板的具体过程为:对于已有的任一智能合约,先将其 分解为属性代码和方法代码;然后新建一空的智能合约模板,并将分解得到的 属性代码和方法代码直接赋予该智能合约模板并添加相应功能描述,进而将该 智能合约模板保存到模板库中。所述对模板库进行更新的具体过程为:对于新的智能合约,

11、先将其分解为 属性代码和方法代码,进而将新智能合约与模板库中各智能合约模板进行比对:若模板库中有一智能合约模板,其与新智能合约相比较属性代码一致但方 法代码不一致,则将该智能合约模板的方法代码全部替换为新智能合约的方法 代码;若模板库中有一智能合约模板,其与新智能合约相比较属性代码不完全一 致,即不具有新智能合约的个别属性代码,则将该个别属性代码及其相关方法 代码添加至该智能合约模板中,并更新相应的功能描述。所述查找模板库及生成智能合约的具体实现过程为:首先,根据所需智能 合约的相关属性代码查找模板库:若模板库中有一智能合约模板,其具有所需智能合约的所有属性代码,则 从该智能合约模板中选中相关

12、属性代码及相关方法代码,自动生成所需的智能 合约;若模板库中有一智能合约模板,其具有所需智能合约大部分的属性代码,只缺少个别属性代码,则从该智能合约模板中选中相关属性代码及相关方法代 码,自动生成相应的智能合约,进而将缺少的个别属性代码及相关方法代码补 充至该智能合约中,最终得到所需的智能合约并利用其对该智能合约模板进行 更新;若模板库中不存在相关的智能合约模板,则根据所需智能合约的相关属性 代码和方法代码编写相应的智能合约,并利用编写得到的智能合约新增相应的 智能合约模板保存到模板库中。基于上述技术方案,本发明智能合约自动化生成方法利用智能合约模板能 够大大节省人力物力以及时间成本,且方法可

13、应用于一切具有相似性的智能合 约,如交易历史合约、股票合约、资产合约等。附图说明图1为本发明智能合约模板的更新流程示意图。图2为本发明智能合约自动化生成的流程示意图。具体实施方式为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技 术方案进行详细说明。本实施方式使用智能合约自动化生成系统用于生成智能合约,生成合约时, 选择需要的智能合约模板以及属性和方法就可以自动化生成合约;智能合约模 板包含功能描述以及属性代码和方法代码。本实施方式所使用的智能合约自动化生成系统具有以下功能:增加新的智能合约模板:根据智能合约,增加新的智能合约模板;增加 方法为:将智能合约分解为属性代码和方法代码

14、,然后组合成智能合约模板, 添加功能描述,最后保存到数据库中。更新已存在的智能合约模板:根据智能合约,更新已存在的智能合约模 板;更新方法为:将智能合约分解为属性代码和方法代码,与智能合约模板中 的属性代码和方法代码对比,如果相关属性代码已存在于智能合约模板中,但是相关方法代码不同,则更新方法代码至模板中;如果有个别属性代码不存在 于智能合约模板中,则将该属性代码及其相关方法代码添加到智能合约模板中, 更新功能描述,最后保存到数据库中。删除已存在智能合约模板:从数据库删除已经存在的智能合约模板。智能合约模板的展示:展示智能合约模板的功能描述,以及属性和方法 名称,提供复选框可以选择属性和方法,

15、但不直接展示相应的代码片。自动化生成智能合约:根据选择的智能合约模板,以及在复选框中选择 的属性和方法名称,从数据库中取出代码片,然后自动化组合生成智能合约, 返回给用户。用户可以通过Web或其他方式使用上述智能合约自动化生成系统。在多个 领域都有Customer这个对象,因此以下我们将以自动化生成Customer智能合约 为例详细介绍该智能合约自动化生成系统的模板更新及合约生成过程:初始时,智能合约自动化生成系统是没有模板的。公司X首先需要C ustomer智能合约,需要为Customer编写智能合约。为Customer编写的智能合 约具有以下属性代码:CustID、CustName、Cus

16、tAddress;方法代码有:getCust ID( )、getCustName( )、getCustAddress()、叩dateCustID(_CustID)、叩dateCust Name(_CustName)、updateCustAddress(_CustAddress)。利用编写好的Customer智能合约更新系统已经存有的智能合约模板, 但因为Customer并不是从模板自动生成的,所以使用的智能合约模板B设置为 空。调用子程序更新智能合约模板,输入参数为智能合约A和智能合约模 板B,其过程如图1所示。当智能合约模板B为空时,生成空白的智能合约模 板B;否则,跳过。分解智能合约A中的

17、属性代码和方法代码,使用这些属性 代码和方法代码更新智能合约模板B,更新方法为:将从智能合约A分解得到 的属性代码和方法代码与智能合约模板B中的属性代码和方法代码进行对比, 如果属性代码一致,而方法代码不一致,则将智能合约模板B中的方法代码替 换为智能合约A的方法代码;如果智能合约模板B中不存在智能合约A的个别 属性代码,则增加该属性代码和相应方法代码至智能合约模板B中。公司Y需要Customer智能合约,相关属性代码有CustID、CustName、CustAddress、CustTel,需要这些属性代码相关的方法代码。如图2所示通过检 索,发现系统中已经存在了 Customer合约模板B。

18、那么,公司Y只需要根据模 板 B,选择属性代码 CustID、CustName、CustAddress,然后选择 getCustID()、 getCustName( )、getCustAddress( )、updateCustID(_CustID)、updateCustName( CustName)、叩dateCustAddress(_CustAddress)等方法代码。然后,系统会自动化 生成智能合约C,但智能合约C中缺少属性代码CustTel和相应方法代码,需要 增加属性代码CustTel以及方法代码getCustTel()、叩dateCustTel(_CustTel)至智 能合约C中,得到智能合约D。由于新的智能合约D系统中不存在有对应的智 能合约模板,所以需要更新系统中的智能合约模板B,转到步骤(3)更新智能 合约模板,其中输入参数为智能合约D和智能合约模板B。步骤(1)到(3)中还未涉及到自动化生成智能合约,涉及了增加及更新 智能合约模板;步骤(4)利用已存在智能合约模板,自动化生成了智能合约, 然后更新了智能合约模板。上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本 发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并 把在此说明的一般原

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论