CN110569033B - 一种数字化交易类智能合约基础代码生成方法 - Google Patents

一种数字化交易类智能合约基础代码生成方法 Download PDF

Info

Publication number
CN110569033B
CN110569033B CN201910864332.7A CN201910864332A CN110569033B CN 110569033 B CN110569033 B CN 110569033B CN 201910864332 A CN201910864332 A CN 201910864332A CN 110569033 B CN110569033 B CN 110569033B
Authority
CN
China
Prior art keywords
intelligent contract
code
data
discriminator
transaction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910864332.7A
Other languages
English (en)
Other versions
CN110569033A (zh
Inventor
毛典辉
王亚磊
李海生
蔡强
左敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Technology and Business University
Original Assignee
Beijing Technology and Business University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Technology and Business University filed Critical Beijing Technology and Business University
Priority to CN201910864332.7A priority Critical patent/CN110569033B/zh
Publication of CN110569033A publication Critical patent/CN110569033A/zh
Application granted granted Critical
Publication of CN110569033B publication Critical patent/CN110569033B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/313Selection or weighting of terms for indexing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/353Clustering; Classification into predefined classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Machine Translation (AREA)

Abstract

本发明涉及一种数字化交易类智能合约基础代码生成方法,包括两个方面:针对爬取的各应用领域智能合约代码数据集,基于文档主题生成模型LDA(Latent Dirichlet Allocation)与高斯混合模型GMM(Gaussian mixture model)聚类算法实现智能合约领域应用模式特征的提取与分类;以此为基础,选取交易类智能合约数据集,应用SeqGAN(Sequence Generative Adversarial Nets,序列生成对抗网络)学习智能合约逻辑特征生成智能合约基本代码片段,形成交易类智能合约基本代码库,最后为区块链数字化交易场景提供模板化的智能合约。

Description

一种数字化交易类智能合约基础代码生成方法
技术领域
本发明涉及区块链技术和深度学习领域,具体涉及一种数字化交易类智能合约基础代码生成方法。
背景技术
区块链作为近年来兴起的新型技术,其所需的数字化交易类智能合约代码设计难度大,尤其对于初级编程人员而言,智能合约代码逻辑及业务规则复杂。一方面,合约设计者需要熟悉区块链应用领域知识;另一方面,智能合约编写对合约设计者的编程技能具有较高要求。因此,本发明从智能合约代码在区块链数字化交易的应用场景出发,提出了一种数字化交易类智能合约的基础代码设计方法。
交易类智能合约编程是实现区块链在数字化交易领域应用的基础,然而,在实际交易类智能合约开发中会涉及到大量的源代码编程,因此对开发人员代码编程效率、代码阅读与理解能力、编程语言专业性等要求越来越高。在已有研究中,大量成熟的代码生成方法与成果被提出,例如,通过定义模板引擎、模型驱动设计方法、领域特定语言文本等众多方式都可实现代码生成。模板引擎(Template Engine)通过生成特定格式的代码文档模板,实现代码业务逻辑与简单用户界面内容分类,以便于代码重用。例如,Jinja2实现了Python模板,增强了代码的可读性,并且根据易于理解和维护;模型驱动设计(Model DrivenDesign)通过对软件核心代码统一建模,提供IDE(Integrated Development Environment,集成开发环境)插件通过UML(Unified Model Language,统一建模语言)图等方式定义代码结构等抽象模型,实现与模型关联的代码自动生成。例如,Umple是一种针对面向对象编程语言C++、Java、PHP等提供的建模工具,可以通过UML添加代码关联的属性、状态;领域特定语言(Domain Specific Language,DSL)DSL编程又称为声明式编程,是一种专门针对某一特定问题的计算机语言。DSL通过文本代码描述,基于语义模型(程序库或代码框架)而实现的代码生成方法。例如,Xtext实现了基于文本DSL的Eclispse开发框架。对已有代码生成工作进行研究分析可知,有关代码生成与设计的研究主要涉及两个关键要素:输入,即用于代码生成的原始信息;输出,即如何获取并展示生成的代码;RNN网络实现代码自动生成,2016年Iyer等人利用神经网络模型训练大量文档数据集,成功实现了文档生成。这也为将代码映射到自然语言向量空间,并通过RNN模型实现代码自动生成提供了可能。
对代码生成方法的研究是一个前沿性的研究方向,虽然现有的代码生成方法已经取得了一定的进展,但是仍存在诸多缺陷,尤其是基于RNN(Recurrent Neural Network,循环神经网络)的代码自动生成方法,仍极具挑战性,这些不足之处主要包括两个方面:(1)对常用的代码生成方法而言,成本高的问题仍然存在。常用的代码生成方法,如模板引擎、模型驱动设计、领域特定语言等,基本都是通过建模的方式为代码生成提供接口。这些方法有利于代码规范的统一,并且为代码生成提供了便捷统一的模型。但是对代码的学习和建模仍需采用人工方式,同时考虑到代码运行所需语言、平台等环境的差异,在建立模型时需要针对需求不断进行人工完善,因此,这些方法虽然降低了重复性编写工作带来的成本,却增加了不同编程语言、平台在保证代码可移植性所付出的成本。(2)对基于循环神经网络的代码自动生成方法而言,基础RNN网络对于序列很长的数据学习能力差,且存在梯度消失等问题。基于循环神经网络的代码自动生成方法,如利用RNN通过构建神经网络模型对代码进行学习,并实现了代码的自动生成。这些方法虽然极大降低了人力成本,且相比于传统神经网络,其高维隐藏层有利于信息持久化,为实现代码自动生成带来了巨大突破。但是,在独立维度下,RNN网络的隐藏中仅有一个隐藏状态。因此该模型在处理序列较长的数据时,其记忆效果会随着序列时间间隔的增加而变差,导致之前的序列数据历史信息容易丢失,出现梯度消失等情况。
发明内容
本发明技术解决问题:针对当前智能合约编写效率低、通用性差、设计难度大缺点,提供一种交易类智能合约基础代码生成方法,应用SeqGAN学习智能合约逻辑特征生成智能合约基本代码片段,形成交易类智能合约基本代码库,为数字化交易场景提供模板化、可视交互设计的智能合约。
本发明技术解决方案:针对爬取的各应用领域智能合约代码数据集,基于文档主题生成模型LDA(Latent Dirichlet Allocation)与高斯混合模型GMM(Gaussian mixturemodel)聚类算法实现智能合约领域应用模式特征的提取与分类;以此为基础,选取交易类智能合约数据集,应用SeqGAN学习智能合约逻辑特征生成智能合约基本代码片段,形成交易类智能合约基本代码库,最后为区块链数字化交易场景提供模板化的智能合约。
具体步骤如下:
步骤(1)爬取以太坊区块链上已公开的各应用领域智能合约代码数据,并通过Python程序实现智能合约数据集合中代码去除停用词、代码注释、空格去除,建立词库预处理操作,最终将筛选和预处理后的智能合约数据作为学习数据集合;
步骤(2)通过文档主题生成模型LDA(Latent Dirichlet Allocation)对步骤(1)各领域智能合约数据集合构建智能合约特征矩阵来完成智能合约特征矢量化,实现智能合约应用模式特征提取,得到不同领域的智能合约应用模式特征向量集;
步骤(3)应用高斯混合模型算法GMM(Gaussian mixture model)对智能合约数据集进行聚类,将步骤(2)中LDA提取的智能合约应用模式特征向量集作为GMM算法的输入数据,实现不同应用领域的智能合约分类。具体过程为:首先选择k聚类簇,随机初始化每个聚类的高斯分布参数;给定每个聚类的高斯分布,计算每个数据点属于特定聚类的概率;根据计算的概率值,重新设置新的参数进行加权计算,重复迭代加权计算直到收敛重复迭代直到收敛;最终获得k个应用领域智能合约分类集合;
步骤(4)利用步骤(2)、(3)获得的不同应用领域的智能合约分类结果,选取数字化交易类合约数据,应用SeqGAN学习智能合约逻辑特征生成智能合约基本代码片段,形成交易类智能合约基本代码库,最后为区块链数字化交易场景提供模板化的智能合约。
所述SeqGAN由生成器G和判别器D构成,生成器G采用循环神经网络结构LSTM实现;判别器D采用卷积神经网络CNN;同时为了使CNN的分类效果更好,在CNN的基础上增加一个高速网(highway network),解决随着CNN网络深度加深,梯度信息回流受阻造成网络训练困难的问题;在对SeqGAN训练过程中,根据判别器D网络回传的判别概率通过增强学习更新生成器G,生成器G的目标是尽量生成与原始智能合约代码接近的结果去欺骗判别器D;而判别器D的最终目标是把生成器G生成的结果和真实智能合约代码区分开。在整个训练过程中生成器G和判别器D为博弈双方,生成器G捕捉样本智能合约代码数据的分布,判别器D是一个分类器,用于判断输入的结果是来自于训练智能合约代码数据的概率。除此之外,SeqGAN网络借助梯度下降算法和损失函数对每一次的预测输出
Figure GDA0003857420000000042
进行修正,使得训练得到SeqGAN模型用以自动生成智能合约代码的损失尽可能小。
所述生成器G和判别器D采用交替优化的方式形成一个动态的博弈过程,生成器G和判别器D之间的关系定义为:
Figure GDA0003857420000000041
GAN的优化问题是一个极小-极大化问题,GAN的目标函数为
Figure GDA0003857420000000051
其中x为真实数据,z为随机变量,pz(z)为随机变量服从的分布,E(·)表示计算期望值,pdata(x)真实数据服从的分布,G(z)则为由G生成的服从真实智能合约代码数据分布pdata(x)的样本,D(x)为判断输入x来源于data这个数据分布的概率的判别器函数。
所述步骤(4)中,生成的交易类合约基础代码包括三类:基础方法代码(例如,transfer转账函数)、标准接口代码(例如,ERC代币标准接口)以及基础合约代码(例如,SafeMath数值运算库)。
本发明与现有技术相比的优点在于:
(1)相比现有技术本发明给出的基于SeqGAN生成交易类智能合约基础代码的方法,该方法通过生成式对抗网络训练模式保障了基础代码生成方式的智能性与基础代码生成质量的可靠性、一致性。常用的代码生成方法,如模板引擎、模型驱动设计、领域特定语言等,基本都是通过建模的方式为代码生成提供接口,这些方法对代码的学习和建模仍需采用人工方式,同时考虑到代码运行所需语言、平台等环境的差异,在建立模型时需要针对需求不断进行人工完善,因此,这些方法虽然降低了重复性编写工作带来的成本,却增加了不同编程语言、平台在保证代码可移植性所付出的成本;相比现有技术,本发明方法,基于生成式对抗网络的方式实现智能合约基本代码片段的自动生成,避免了人工干预,并且提高了代码生成质量。
(2)相比基于循环神经网络的代码自动生成方法而言,本发明给出的基于SeqGAN的智能合约代码自动生成方法,该方法解决了训练数据因历史信息丢失而出现梯度消失情况。在独立维度下,RNN网络的隐藏中仅有一个隐藏状态。在处理序列较长的数据时,其记忆效果会随着序列时间间隔的增加而变差,导致之前的序列数据历史信息容易丢失,出现梯度消失等情况。而SeqGAN中生成器G选择的是长短期记忆网络LSTM,判别器D选取卷积神经网络,并增加了一个highway network,借助梯度下降算法和损失函数对每一次的预测输出进行修正,使得训练得到SeqGAN模型用以自动生成代码的损失尽可能小,因此生成的代码质量比基于循环神经网络的方法更加准确。
附图说明
图1为本发明方法的实现流程图;
图2描述了智能合约数据爬取具体实现过程;
图3描述了智能合约特征提取与分类具体实现过程;
图4描述了SeqGAN生成交易类智能合约基础代码的具体实现过程。
具体实施方式
下面结合附图和具体实施方式对本发明进行描述。
如图1所示,本发明的一种数字化交易类智能合约基础代码生成方法,通过对数字化交易类智能合约的交易模式特征提取,并应用SeqGAN生成智能合约基本代码片段,从而为交易类应用场景提供模板化智能合约,降低了智能合约编写复杂性、提高智能合约编写效率。具体步骤如下:
(1)本发明通过爬虫程序爬取以太坊区块链平台(Etherscan)上已公开的各应用领域智能合约代码数据,实现了对Etherscan上已验证智能合约代码的爬取。Etherscan上智能合约的验证内容包括:与最初开发者部署的智能合约solidity代码进行比对验证;Etherscan重新编译智能合约代码后,与存储在以太坊区块链网络中的运行结果进行比对验证。如图2的所示,通过该流程收集到包含多个应用领域的智能合约代码数据,爬虫程序从智能合约程序所在的第一页(https://etherscan.io/contractsVerified/1)开始,首先获取当前页源代码中的智能合约URL列表,再根据URL列表依次跳转到智能合约代码详情页,并将详情页中的智能合约代码保存到当地文件夹中,直至最后一页,最终获得含多应用领域的智能合约代码数据。
(2)基于LDA实现了智能合约特征提取,LDA是通过无监督的学习方法发现文本中隐含的主题信息,目的是要以无指导学习的方法从文本中发现隐含的语义维度-即“Topic”或者“Concept”。通过文档主题生成模型LDA对步骤(1)各领域智能合约数据集合构建智能合约特征矩阵来完成智能合约特征矢量化,进而实现智能合约应用模式特征提取,得到不同领域的智能合约应用模式特征向量集,最终得到了智能合约特征向量集。
(3)应用高斯混合模型算法GMM(Gaussian mixture model)对智能合约数据集进行聚类,将步骤(2)中LDA提取的智能合约应用模式特征向量集作为GMM算法的输入数据,实现不同应用领域的智能合约分类。具体流程如图3所示,首先对各领域智能合约数据集合预处理,然后通过文档主题生成模型LDA对预处理后的各领域智能合约数据集合构建智能合约特征矩阵来完成合约特征矢量化,实现智能合约特征提取,应用高斯混合模型算法GMM对智能合约特征数据集进行聚类,最终实现不同应用领域的智能合约分类,获得不同领域特征的智能合约数据集。
(4)利用步骤(2)(3)获得的智能合约数据集合训练SeqGAN网络实现了交易类智能合约基础代码生成。针对智能合约应用领域特征,基于LDA与聚类算法GMM方法最终得到了K类领域合约数据集,其中包含交易类智能合约。且各类智能合约业务规则及代码逻辑各异,为便于智能合约开发根据应用更具针对性、更便捷简易,本发明选取交易类智能合约作为智能合约领域数据集;并将所有交易类智能合约通过Python程序整合在一个“dataset.txt”文档中,作为研究所用的数据集。本发明采用SeqGAN网络实现了交易类智能合约基础代码生成方法,其详细步骤如下:
数据预处理:交易类智能合约文本数据集中的所有内容可以被看作一个整体x,该整体是由一连串字符[x0,x1,...,xn]组成的,包括智能合约代码(英文字母)、空格、“{”、“}”等。SeqGAN网络是面向字符级的网络模型,该整体x无法直接输入到SeqGAN网络中,因此,实验通过输入构成x的字符xi,i∈[0,n]来对数据集进行操作。然而,字符xi也无法直接输入到网络中进行训练,因此要首先对字符数据进行预处理。主要操作包括:首先对数据集中所有字符进行统计,并构建数据字典;对构成代码文本数据集“dataset.txt”中的每一个字符xi实现序列化,并存储到数据字典中,作为SeqGAN网络的输入。
构建SeqGAN:SeqGAN由生成器G和判别器D构成。判别器D用的CNN实现,根据判别器D网络回传的判别概率通过增强学习更新生成器G,生成器G用的LSTM实现。已知生成器G网络的更新策略是增强学习,而增强学习的三个要素点状态state,action,reward。本发明state指的当前timestep之前的decode结果,action指的当前待解码词,判别器D判别伪造数据的置信度即为奖励,伪造智能合约数据越逼真则相应奖励越大,但该奖励是总的奖励,分配到每个词选择上的reward则采用了以下的近似方法。
Figure GDA0003857420000000081
其中
Figure GDA0003857420000000082
是整个序列的action-value function,表示从状态s开始依据策略Gθ采取动作a直到结束所得到的累计期望奖励,s是当前已生成序列,Gθ表示以θ为参数的生成模型,
Figure GDA0003857420000000083
表示以
Figure GDA0003857420000000084
为参数的判别模型,t是时间步长,T表示训练时间,n为初始值,N表示训练次数。Y为生成序列,yt为t时刻的单词。
Figure GDA0003857420000000085
表示序列Y1:t来自真实数据中的概率,MC表示Monte Carlo搜索算法,Gβ表示以β为参数的生成模型,
Figure GDA0003857420000000086
表示使用N次Monte Carlo搜索和Gβ来对剩下的T—t个未知单词进行采样的过程。
生成器G网络采用Tensorflow框架来构建神经网络结构,它有利于对复杂数据结构进行分析与处理。Tensorflow提供了实现RNN网络的抽象类RNNCell,通过扩展该抽象类构建了生成器G。首先表1对构建网络时所用到的一些参数进行了介绍。
表1生成器G默认参数
Figure GDA0003857420000000091
SeqGAN模型训练:对以上构建的SeqGAN网络进行训练,得到生成交易合约基础代码的SeqGAN模型。SeqGAN网络训练过程:初始化生成器G和判别器D参数;通过MLE(最大似然训练生成模型)预训练G网络,目的是提高生成器G的搜索效率;通过生成器G生成部分负样预训练判别器D;通过生成器G生成sequence用判别器D去评判,得到reward;根据上一步计算得到每个action选择得到的奖励并求得累积奖励的期望,以此为loss function,并求导对网络进行梯度更新;以下是标准的判别器D误差函数,训练目标是最大化识别真实合约样本的概率,最小化识别伪造合约样本的概率;
Figure GDA0003857420000000092
seqGAN网络的误差函数如上,循环以上过程直至收敛。其中
Figure GDA0003857420000000093
表示最小误差,φ为参数,Y为生成序列,pdata真实数据服从的分布,Dφ(Y)是以φ为参数,以Y为输入数据的判别模型,Gθ表示以θ为参数的生成模型,E表示计算期望值。
训练之前可以根据实际需要,先对构建的SeqGAN网络默认参数进行设置,之后用自定义的SeqGAN网络对预处理后的交易类智能合约代码数据集进行学习。在学习的过程中,对于每一个输入的字符都会得到softmax函数处理后对应的预测输出结果
Figure GDA0003857420000000101
训练模型时需定义损失函数,同时借助梯度下降算法可以根据预测输出结果计算梯度损失,从而修正并优化网络的训练过程,以得到预测结果更为准确的SeqGAN模型。
区块链数字化交易类智能合约基础代码生成:利用训练好的SeqGAN模型生成交易类智能合约基础代码时,首先输入一段初始序列作为预测输出的准备阶段,其目的是为模型生成具有记忆的隐藏状态,并保留该隐藏状态,相当于为之后模型生成代码形成缓冲。之后将初始序列的最后一个字符“r”传入SeqGAN模型中,用于后续字符“”(空格)、“(”、“a”等的生成。最后通过softmax函数对中间输出状态处理后,输出最终指定生成的区块链数字化交易类智能合约基础代码。流程如图4所示,数据预处理作为SeqGAN网络的输入;构建SeqGAN,SeqGAN由生成器G和判别器D构成。判别器D用的CNN实现,生成器G用的LSTM实现;SeqGAN模型训练,对以上构建的SeqGAN网络进行训练,得到生成交易合约基础代码的SeqGAN模型;应用SeqGAN学习交易类智能合约逻辑特征,实现了交易类智能合约基础代码生成库,最后为区块链数字化交易场景提供模板化的智能合约。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。

Claims (4)

1.一种数字化交易类智能合约基础代码生成方法,其特征在于,包括以下步骤:
步骤(1)爬取以太坊区块链上已公开的各应用领域智能合约代码数据,并通过Python程序实现智能合约数据集合中代码去除停用词、代码注释、空格去除,建立词库预处理操作,最终将筛选和预处理后的智能合约数据作为学习数据集合;
步骤(2)通过文档主题生成模型LDA(Latent Dirichlet Allocation)对步骤(1)各领域智能合约数据集合构建智能合约特征矩阵来完成智能合约特征矢量化,实现智能合约应用模式特征提取,得到不同领域的智能合约应用模式特征向量集;
步骤(3)应用高斯混合模型算法GMM(Gaussian mixture model)对智能合约数据集进行聚类,将步骤(2)中LDA提取的智能合约应用模式特征向量集作为GMM算法的输入数据,实现不同应用领域的智能合约分类。具体过程为:首先选择k聚类簇,随机初始化每个聚类的高斯分布参数;给定每个聚类的高斯分布,计算每个数据点属于特定聚类的概率;根据计算的概率值,重新设置新的参数进行加权计算,重复迭代加权计算直到收敛,最终获得k个应用领域智能合约分类集合;
步骤(4)利用步骤(2)、(3)获得的不同应用领域的智能合约分类结果,选取数字化交易类智能合约数据,应用SeqGAN(Sequence Generative Adversarial Nets,序列生成对抗网络)学习智能合约逻辑特征生成智能合约基本代码片段,形成交易类智能合约基本代码库,最后为区块链数字化交易场景提供模板化的智能合约。
2.根据权利要求1所述的一种数字化交易类智能合约基础代码生成方法,其特征在于:所述步骤(4)中,SeqGAN由生成器G和判别器D构成,G采用循环神经网络结构LSTM实现;判别器D采用CNN(Convolutional Neural Networks,卷积神经网络);同时为了使CNN的分类效果更好,在CNN的基础上增加一个高速网,解决随着CNN网络深度加深,梯度信息回流受阻造成网络训练困难的问题;在对SeqGAN训练过程中,根据判别器D网络回传的判别概率通过增强学习更新生成器G,生成器G的目标是尽量生成与原始智能合约代码接近的结果去欺骗判别器D;而判别器D的最终目标是把生成器G生成的结果和真实智能合约代码区分开,在整个训练过程中生成器G和判别器D为博弈双方,生成器G捕捉样本智能合约代码数据的分布,判别器D是一个分类器,用于判断输入的结果是来自于训练智能合约代码数据的概率;由此实现的SeqGAN网络,解决序列数据历史信息容易丢失,出现梯度消失,SeqGAN网络还借助梯度下降算法和损失函数对每一次的预测输出进行修正,使得训练得到SeqGAN网络自动生成代码的损失尽可能小。
3.根据权利要求2所述的一种数字化交易类智能合约基础代码生成方法,其特征在于:所述生成器G和判别器D采用交替优化的方式形成一个动态的博弈过程,生成器G和判别器D之间的关系定义为:
Figure FDA0003857419990000021
GAN的优化问题是一个极小-极大化问题,GAN的目标函数为
Figure FDA0003857419990000022
其中x为真实数据,z为随机变量,pz(z)为随机变量服从的分布,E(·)表示计算期望值,pdata(x)真实数据服从的分布,G(z)则为由G生成的服从真实智能合约代码数据分布pdata(x)的样本,D(x)为判断输入x来源于data这个数据分布的概率的判别器函数。
4.根据权利要求1所述的一种数字化交易类智能合约基础代码生成方法,其特征在于:所述步骤(4)中,生成的交易类智能合约基础代码包括三类:基础方法代码、标准接口代码以及基础合约代码。
CN201910864332.7A 2019-09-12 2019-09-12 一种数字化交易类智能合约基础代码生成方法 Active CN110569033B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910864332.7A CN110569033B (zh) 2019-09-12 2019-09-12 一种数字化交易类智能合约基础代码生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910864332.7A CN110569033B (zh) 2019-09-12 2019-09-12 一种数字化交易类智能合约基础代码生成方法

Publications (2)

Publication Number Publication Date
CN110569033A CN110569033A (zh) 2019-12-13
CN110569033B true CN110569033B (zh) 2022-11-01

Family

ID=68779575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910864332.7A Active CN110569033B (zh) 2019-09-12 2019-09-12 一种数字化交易类智能合约基础代码生成方法

Country Status (1)

Country Link
CN (1) CN110569033B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112015396B (zh) * 2020-08-28 2024-02-13 深圳赛安特技术服务有限公司 基于dsl的智能合约代码生成方法、装置、设备及存储介质
CN112560925A (zh) * 2020-12-10 2021-03-26 中国科学院深圳先进技术研究院 一种复杂场景目标检测数据集构建方法及系统
CN113052331A (zh) * 2021-02-19 2021-06-29 北京航空航天大学 一种基于区块链的物联网个性化联邦学习方法
CN113110843B (zh) * 2021-03-05 2023-04-11 卓尔智联(武汉)研究院有限公司 合约生成模型训练方法、合约生成方法及电子设备
CN112884087A (zh) * 2021-04-07 2021-06-01 山东大学 一种生物增强子及其类型的识别方法
CN112949778A (zh) * 2021-04-17 2021-06-11 深圳前海移联科技有限公司 基于局部敏感哈希的智能合约分类方法、系统及电子设备
CN113688919A (zh) * 2021-08-30 2021-11-23 华北电力大学(保定) 一种基于SeqGAN模型的风电机组健康状态评估数据集构建方法
CN114390035A (zh) * 2022-01-12 2022-04-22 国家计算机网络与信息安全管理中心陕西分中心 一种以太坊智能合约应用态势感知系统
CN117473170B (zh) * 2023-12-27 2024-04-09 布比(北京)网络技术有限公司 基于代码表征的智能合约模版推荐方法、装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107967539A (zh) * 2017-11-29 2018-04-27 暨南大学 基于机器学习和区块链技术的预测以太坊上交易的燃料限制的方法
CN108985073A (zh) * 2018-07-18 2018-12-11 成都链安科技有限公司 一种高度自动化的智能合约形式化验证系统及方法
CN109522008A (zh) * 2018-11-06 2019-03-26 陕西医链区块链集团有限公司 一种区块链智能合约构建方法
CN109977682A (zh) * 2019-04-01 2019-07-05 中山大学 一种基于深度学习的区块链智能合约漏洞检测方法及装置
CN110175454A (zh) * 2019-04-19 2019-08-27 肖银皓 一种基于人工智能的智能合约安全漏洞挖掘方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544708B2 (en) * 2017-12-29 2023-01-03 Ebay Inc. User controlled storage and sharing of personal user information on a blockchain

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107967539A (zh) * 2017-11-29 2018-04-27 暨南大学 基于机器学习和区块链技术的预测以太坊上交易的燃料限制的方法
CN108985073A (zh) * 2018-07-18 2018-12-11 成都链安科技有限公司 一种高度自动化的智能合约形式化验证系统及方法
CN109522008A (zh) * 2018-11-06 2019-03-26 陕西医链区块链集团有限公司 一种区块链智能合约构建方法
CN109977682A (zh) * 2019-04-01 2019-07-05 中山大学 一种基于深度学习的区块链智能合约漏洞检测方法及装置
CN110175454A (zh) * 2019-04-19 2019-08-27 肖银皓 一种基于人工智能的智能合约安全漏洞挖掘方法及系统

Also Published As

Publication number Publication date
CN110569033A (zh) 2019-12-13

Similar Documents

Publication Publication Date Title
CN110569033B (zh) 一种数字化交易类智能合约基础代码生成方法
Gao et al. Deep leaf‐bootstrapping generative adversarial network for structural image data augmentation
Hui et al. Linguistic structure guided context modeling for referring image segmentation
Plemenos et al. Intelligent scene modeling
CN110580501A (zh) 一种基于变分自编码对抗网络的零样本图像分类方法
Zhang et al. Interpreting and boosting dropout from a game-theoretic view
CN111046661B (zh) 基于图卷积网络的阅读理解方法
Sethi et al. DLPaper2Code: Auto-generation of code from deep learning research papers
CN111459491B (zh) 一种基于树形神经网络的代码推荐方法
CN110232373A (zh) 人脸聚类方法、装置、设备和存储介质
WO2021204014A1 (zh) 一种模型训练的方法及相关装置
CN114341880A (zh) 用于使神经网络的操作可视化的技术
CN113051914A (zh) 一种基于多特征动态画像的企业隐藏标签抽取方法及装置
CN113393370A (zh) 中国书法文字图像风格迁移的方法、系统、智能终端
CN115983274B (zh) 一种基于两阶段标签校正的噪声事件抽取方法
Wu et al. Optimized deep learning framework for water distribution data-driven modeling
CN111273911A (zh) 基于双向lstm和注意力机制的软件技术债务识别方法
CN112418320A (zh) 一种企业关联关系识别方法、装置及存储介质
CN114258550A (zh) 用于修改神经网络的操作的技术
CN113741886A (zh) 一种基于图的语句级程序修复方法及系统
CN111522963A (zh) 一种基于公安知识图谱引擎的智能助理应用交互方法
Lin et al. A multimodal dialogue system for conversational image editing
KR102401114B1 (ko) UX-bit를 이용한 가치망을 포함하는 자동 디자인 생성 인공신경망 장치 및 방법
CN115422349A (zh) 一种基于预训练生成模型的层次文本分类方法
CN114332491A (zh) 一种基于特征重构的显著性目标检测算法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant