一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种以太坊未来交易行为预测方法及计算机可读存储介质与流程

2022-03-19 22:59:34 来源:中国专利 TAG:


1.本发明涉及区块链技术领域,尤其涉及一种以太坊未来交易行为预测方法及 计算机可读存储介质。


背景技术:

2.以太坊是当前最大的、基于区块链的、支持智能合约的平台,截至2021年 11月,以太坊中已生成超过千万个区块,平均每9秒就会有一个新块诞生。为 了方便智能合约的实施,以太坊引入了帐户的概念,账户之间会进行交易,以太 坊上相应的加密货币,称为以太币,可以在帐户之间传输。截至2021年11月, 以太坊中已有上亿个账户和数十亿条交易记录。以太坊从建立到现在,已经有很 多关于安全、性能等方面的研究,但是关于挖掘以太坊中用户和智能合约的特征 和关系的研究还不够成熟,用户们在创建和调用智能合约,用户之间也在互相转 账,如何利用用户们现有的行为数据进行建模并挖掘具有异常行为的用户,预测 异常用户未来的行为,有利于我们对以太坊有一个更深的了解。同时,以太坊中 最近出现了越来越多的非法行为或骗局,例如:庞氏骗局,非法所得合法化的行 为,如何利用现有以太坊中的数据预测未来可能发生的交易,能够帮助人们追踪 以太币的实时交易轨迹,提前预警非法用户的危险行为。
3.为了预测以太坊中用户未来可能发生的交易,我们将以太坊中的数据定义为 一个带有时间信息的有向多边图,其中以太坊中的账户定义为图中的节点,以太 坊中账户间发生的交易定义为图中的边,因为交易是从发起方账户汇入接收方账 户,所以这张图是有向的,交易的以太币数量定义为图中边的权重,并且交易是 发生在某个确定时间的,所以这张图是带有时间信息的。
4.现有的预测以太坊中未来交易的方法是基于一种随机游走的技术,它通过这 种技术来获取每个节点的嵌入表示,再通过两个节点嵌入表示的相近程度来预测 两个节点未来是否会发生交易;现有技术有如下缺点:
5.1.只能预测整个未来是否会发生交易,无法预测未来某个具体时间点会发生 交易。
6.2.如果预测节点间交易发生间隔较长(如两节点上一次发生交易的时间为 2019年,而如今要预测2022年是否会发生交易),并没有一个很好的预测效果。
7.3.现有的基于随机游走的技术是一种直推式学习的方法,不能用于预测以太 坊中新加入的账户。
8.所以,现有技术中缺乏一种更有效的以太坊未来交易行为预测方法。
9.以上背景技术内容的公开仅用于辅助理解本发明的构思及技术方案,其并不 必然属于本专利申请的现有技术,在没有明确的证据表明上述内容在本专利申请 的申请日已经公开的情况下,上述背景技术不应当用于评价本技术的新颖性和创 造性。


技术实现要素:

10.本发明为了解决现有的问题,提供一种以太坊未来交易行为预测方法及计算 机可读存储介质。
11.为了解决上述问题,本发明采用的技术方案如下所述:
12.一种以太坊未来交易行为预测方法,包括如下步骤:s1:获取以太坊中账户 交易数据;s2:从以太坊的所述账户交易数据中选取数据构建训练数据动态图; s3:构建动态图模型并采用所述训练数据动态图对所述动态图模型进行训练; s4:采用训练好的所述动态图模型用于以太坊未来交易行为预测得到预测结果。
13.优选地,构建所述训练数据动态图包括如下步骤:s21:按照预先设置的条 件从所述账户交易数据中筛选账户作为中心节点;s22:获取所述账户交易数据 中所有与所述中心节点发生过交易的节点加入到训练数据动态图中,作为一跳邻 居图;s23:继续获取所有与所述一跳邻居图中的所有节点发生过交易的节点加 入到训练数据动态图中,作为二跳邻居图;s24:重复上述步骤直至获取预先设 置的k跳邻居图,k为正整数。
14.优选地,构建所述动态图模型包括:内存模块,用于保存所述节点的历史交 易信息;信息处理模块,用于接收交易数据并处理生成交易信息;内存更新模块, 用于接收所述交易信息并更新所述内存模块中的所述历史交易信息;嵌入表示生 成模块,用于生成每个所述节点的嵌入表示;解码模块,用于根据所述嵌入表示 得到当前时间点所述节点发生交易的概率。
15.优选地,所述节点的历史交易信息包括:对于每个节点i在某一时间t都有 一个内存向量si(t),在时间t之后,这个内存会在遇到一条新的包含节点i的交 易时被更新;第一次遇见节点j,则内存向量sj(t)被初始化为一个零向量。
16.优选地,所述信息处理模块处理信息包括:对于一条从节点i到节点j、发 生在时间t、交易以太币量为e
ij
(t)的交易,被处理成如下两条信息:
17.mi(t)=concat(si(t-),sj(t-),δt,e
ij
(t))
18.mj(t)=concat(sj(t-),si(t-),δt,e
ij
(t))
19.其中,concat表示几个向量的si(t-)拼接,表示节点i在时间t前在所 述内存模块中保留δt的历史交易信息,表示上一条有节点i的交易发生的 时间与本条交易发生的时间差。
20.优选地,所述内存模块根据交易时间只保留所述节点最新生成的交易信息。
21.优选地,所述内存更新模块更新所述内存模块中的所述历史交易信息包括:
22.si(t)=gru(mi(t),si(t-))
23.其中,gru是用于处理时间信息的结构。
24.优选地,所述嵌入表示生成模块生成每个所述节点的所述嵌入表示包括:
25.zi(t)=multiheadattention(q(t),k(t),v(t))
26.q(t)=si(t)||(0)
27.k(t)=v(t)=[s1(t)||e
i1
(t-t1)||(t1),...,sn(t)||e
in
(tn)||(t-tn)]
[0028]
其中,multiheadattention是注意力结构,用于计算节点i的每个邻居节点 的重要性并聚合邻居节点的信息;q(t),k(t),v(t)是multiheadattention结构中的 中间工具向量,||代表向量的连接,sn(t)||e
in
(tn)||(tn)代表当前节点i的n个 邻居节点的信息,sn(t)是该邻居节点的内存向量,e
in
(tn)是节点i和该邻居节点 在时间tn发生的交易的以太币数量,(t-tn)则是该交易与当前时间t的时间差。
[0029]
优选地,所述解码模块接收发起方节点嵌入表示zi(t)和接收方节点嵌入表示 zj(t)的拼接,输出为当前时间点发生交易的概率。
[0030]
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计 算机程序,所述计算机程序被处理器执行时实现如上任一所述方法的步骤。
[0031]
本发明的有益效果为:提供一种以太坊未来交易行为预测方法及计算机可读 存储介质,通过构建训练数据动态图及动态图模型,可以预测未来某具体时间点 的交易,对某些交易时间间隔较大的账户预测的效果更好。
[0032]
进一步地,本发明是一种归纳性学习的方法,与之前直推式学习的方法不同, 可以用于预测以太坊中新加入的用户。
附图说明
[0033]
图1是本发明实施例中以太坊未来交易行为预测的流程示意图。
[0034]
图2是本发明实施例中以太坊未来交易行为预测的方法示意图。
[0035]
图3是本发明实施例中构建所述训练数据动态图的方法示意图。
[0036]
图4是本发明实施例中动态图模型的示意图。
具体实施方式
[0037]
为了使本发明实施例所要解决的技术问题、技术方案及有益效果更加清楚明 白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所 描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0038]
需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直 接在另一个元件上或者间接在该另一个元件上。当一个元件被称为是“连接于
”ꢀ
另一个元件,它可以是直接连接到另一个元件或间接连接至该另一个元件上。另 外,连接既可以是用于固定作用也可以是用于电路连通作用。
[0039]
需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、
ꢀ“
左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指 示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发 明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、 以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0040]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗 示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、
ꢀ“
第二”的特征可以明示或者隐含地包括一个或者更多该特征。在本发明实施例 的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0041]
如图1所示,本发明总的流程分为获取以太坊交易数据、构建训练数据图、 训练基于时间的节点嵌入表示模型、将模型用于以太坊未来交易预测任务四大步 骤。
[0042]
如图2所示,本发明提供一种以太坊未来交易行为预测方法,包括如下步骤:
[0043]
s1:获取以太坊中账户交易数据;
[0044]
s2:从以太坊的所述账户交易数据中选取数据构建训练数据动态图;
[0045]
s3:构建动态图模型并采用所述训练数据动态图对所述动态图模型进行训练;
[0046]
s4:采用训练好的所述动态图模型用于以太坊未来交易行为预测得到预测结 果。
[0047]
具体的,以太坊上的账户可分为两类:(1)外部账户,它与一般银行账户 比较相似,可以用于发送交易(转移以太币或发送消息),形同一张带数字id的 储蓄卡;(2)智能合约账户,可以在以太坊上存储合约代码与合约数据的账户, 外部不能直接操作此账户。在本发明中,将重点关注外部账户之间的交易,因为 它们之间的以太币传输记录可以在区块链上公开获得。此外,本发明只将具有非 零以太币交易额的成功交易纳入数据集中。以太坊中所有信息记录的网址是 https://etherscan.io/,本发明使用geth接口获取以太坊至今 (2015-07-30~2021-11-01)所有共约1400万块的内容。其中每块可能包含数条 或数百条账户间交易的信息,包括交易的发起方地址、接收方地址、发生的时间 以及以太币数量。
[0048]
获取以太坊中账户交易数据用于构建训练数据动态图,以太坊中账户之间的 交易有丰富的时间信息,如果只考虑其空间信息,构建成一个普通图的话,预测 效果并不好;加入时间信息,构建成一个动态图的话,能更准确地预测以太坊中 未来的交易。
[0049]
如图3所示,构建所述训练数据动态图包括如下步骤:
[0050]
s21:按照预先设置的条件从所述账户交易数据中筛选账户作为中心节点;
[0051]
s22:获取所述账户交易数据中所有与所述中心节点发生过交易的节点加入 到训练数据动态图中,作为一跳邻居图;
[0052]
s23:继续获取所有与所述一跳邻居图中的所有节点发生过交易的节点加入 到训练数据动态图中,作为二跳邻居图;
[0053]
s24:重复上述步骤直至获取预先设置的k跳邻居图,k为正整数。
[0054]
由于使用上百万的外部账户来构造并处理整个以太坊交易的网络非常耗时, 所以本发明只选择了一部分目标账户来构建训练数据动态图,具体选择方法如下: 按照预先设置的条件从以太坊中随机选择一个交易频繁的账户(预先设置的条件 可以是与其他账户产生过超过100条交易记录)作为中心节点,寻找所有与其发 生过交易的节点加入到当前训练数据动态图中,作为一跳邻居图;再寻找所有与 中心节点一跳邻居的节点发生过交易的节点加入到当前训练数据动态图中,作为 二跳邻居图;重复上述步骤直到构建一个中心节点的k跳邻居图作为最终的训练 数据动态图,k为正整数。在本发明中,选择构造一个五跳邻居图作为最终训练 数据动态图,因为当k大于5时构造的图就过于庞大了,处理它较为耗时,最 终的五跳邻居训练数据图大概包含26000个以太坊账户和670000条交易信息, 在下面的叙述中,用节点来描述以太坊中的账户。
[0055]
构建上述训练数据图以后,构建动态图模型并训练。本发明构建的模型模型 生成各节点各时间的嵌入表示,所以可用于预测账户间未来某具体时间点的交易; 嵌入表示生成模块使用attention聚合邻居节点的信息,能使近期不活跃的节点 的嵌入表示得到更新,使其嵌入表示更准确,交易预测也随之更准确;内存、信 息处理、内存更新模块把交易数据转换成了交易信息压缩保存,更有效的储存了 节点庞大的历史交易数据;整个模型是一种归纳性学习的方法,能直接用于以太 坊中新加入的用户。
[0056]
如图4所示,本发明的动态图模型可以看做成一个编码器-解码器结构,其 中编码器可以看做一个从动态图到节点嵌入表示的函数映射,它的输入是动态图 中发生的交易,输出是动态图中节点各时间的嵌入表示;解码器可以看做一个节 点嵌入表示到具体预测
任务的映射,本发明在这里的具体预测任务是未来交易预 测。下面具体介绍一下本发明中动态图模型的核心模块:
[0057]
(1)内存模块,用于保存所述节点的历史交易信息;
[0058]
对于每个节点i在某一时间t,它都有一个内存向量si(t),在时间t之后,这 个内存会在遇到一条新的包含节点i的交易时被更新,具体更新方式将在内存更 新模块中介绍;如果第一次遇见某节点j,则内存向量sj(t)被初始化为一个零向 量;记录内存是为了保存节点的历史交易信息,这样,本发明就能记忆动态图中 所有节点的长程时间依赖。
[0059]
(2)信息处理模块,用于接收交易数据并处理生成交易信息;
[0060]
对于每条交易数据,信息处理模块都要对它进行处理,生成信息用来更新节 点的内存,对于一条从节点i到节点j,发生在时间t,交易以太币量为e
ij
(t)的 交易,将被处理成如下两条信息:
[0061]
mi(t)=concat(si(t-),sj(t-),δt,e
ij
(t))
[0062]
mj(t)=concat(sj(t-),si(t-),δt,e
ij
(t))
[0063]
其中concat表示几个向量的拼接,si(t-)表示节点i在时间t前的内存 (它在上一条有节点i的交易中被更新),δt表示上一条有节点i的交易发 生的时间与本条交易发生的时间差。
[0064]
由于在训练过程中,交易是批处理的,所以如果在本批次的交易中某些节点 出现过多次,会导致该节点的信息被处理过多次,这时舍弃掉该节点发生时间t 较早的信息,只留下该节点最新生成的信息。
[0065]
(3)内存更新模块,用于接收所述交易信息并更新所述内存模块中的所述 历史交易信息;
[0066]
如(1)所说,在遇到一条新的包含节点i的交易时,要更新节点i的内 存,具体更新方式如下:
[0067]
si(t)=gru(mi(t),si(t-))
[0068]
其中,gru是用于处理时间信息的结构,它是循环神经网络中的一种,能 够挖掘数据中的时序信息和语义信息,解决了普通神经网络对处理序列数据效果 不好的问题。
[0069]
(4)嵌入表示生成模块,用于生成每个所述节点的嵌入表示;
[0070]
这个模块用于生成节点最终的嵌入表示zi(t),主要方法是聚合节点i的邻居 的内存向量s,目的是解决某节点交易时间间隔较长的问题,因为某些节点虽然 最近没有发生过交易,但是这并不代表他的邻居节点近期不活跃,所以聚合邻居 节点的信息有利于解决这个问题。
[0071]
嵌入表示生成模块生成每个所述节点的所述嵌入表示包括:
[0072]
zi(t)=multiheadattention(q(t),k(t),v(t))
[0073]
q(t)=si(t)||(0)
[0074]
k(t)=v(t)=[s1(t)||e
i1
(t-t1)||(t1),...,sn(t)||e
in
(tn)||(t-tn)]
[0075]
其中,multiheadattention是注意力结构,用于计算节点i的每个邻居节点 的重要性并聚合邻居节点的信息;q(t),k(t),v(t)是multiheadattention结构中的 中间工具向量,||代表向量的连接,sn(t)||e
in
(tn)||(tn)代表当前节点i的n个 邻居节点的信息,sn(t)是该邻居节点的内存向量,e
in
(tn)是节点i和该邻居节点 在时间tn发生的交易的以太
币数量,(t-tn)则是该交易与当前时间t的时间差。
[0076]
(5)解码模块,用于根据所述嵌入表示得到当前时间点所述节点发生交易 的概率。
[0077]
该模块由一个简单的神经网络构成,输入为发起方节点嵌入表示zi(t)和接收 方节点嵌入表示zj(t)的拼接,输出为当前时间点发生交易的概率,损失函数为二 分类问题中常用的交叉熵损失函数。
[0078]
在训练过程中,要把所有交易数据按时间顺序排序,分批次进行训练,在实 际实验中,发现每批次选取128条交易效果最好,具体训练过程按照图4所示顺 序进行:
[0079]
(1)获得一批次交易数据,从内存更新模块中获取本批次交易数据中出现 节点的内存,一并放入到嵌入表示生成模块中,更新本批次交易数据中出现所有 节点对应时间的嵌入表示。
[0080]
(2)拼接本批次交易数据中所有发起方节点和接收方节点的嵌入表示作为 解码模块的输入,计算所有交易发生的概率p。
[0081]
(3)使用交叉熵损失更新模型参数。
[0082]
(4)将本批次交易数据用信息处理模块处理,生成本批次交易信息。
[0083]
(5)使用本批次生成的交易信息和内存更新模块中旧的内存作为输入,用 内存更新模块进行处理,更新本批次交易数据中出现所有节点的内存。
[0084]
最后,将本发明模型用于最终的以太坊未来交易预测任务:在测试本发明 的模型效果时,随机选择10000条以太坊中未来真实发生过的交易为正样本,记 录它们的交易发起方地址、交易接收方地址及交易时间;再虚构10000条未发生 过的交易作为负样本,负样本是把正样本中每条交易的发起方及交易时间固定, 从图中随机选择节点作为交易接收方。依次按照图4中的(1)、(2)步骤进行 处理,得到模型预测的每条交易在该时间发生的概率,概率大于0.5的预测为会 发生,概率小于0.5的预测为不会发生,预测完毕后和真实结果作比对,得到模 型预测准确率。
[0085]
通过本发明的方法可以预测未来某具体时间点的交易;预测的准确率提升 (从90%提升到98%),对交易发生间隔较长节点的预测效果较佳。
[0086]
本技术实施例还提供一种控制装置,包括处理器和用于存储计算机程序的存 储介质;其中,处理器用于执行所述计算机程序时至少执行如上所述的方法。
[0087]
本技术实施例还提供一种存储介质,用于存储计算机程序,该计算机程序被 执行时至少执行如上所述的方法。
[0088]
本技术实施例还提供一种处理器,所述处理器执行计算机程序,至少执行如 上所述的方法。
[0089]
所述存储介质可以由任何类型的易失性或非易失性存储设备、或者它们的组 合来实现。其中,非易失性存储器可以是只读存储器(rom,read only memory)、 可编程只读存储器(prom,programmable read-only memory)、可擦除可编程只 读存储器(eprom,erasable programmable read-only memory)、电可擦除可编程 只读存储器(eeprom,electrically erasable programmable read-only memory)、 磁性随机存取存储器(fram,ferromagnetic random access memory)、快闪存储 器(flash memory)、磁表面存储器、光盘、或只读光盘(cd-rom,compact discread-only memory);磁表面存储器可以是
磁盘存储器或磁带存储器。易失性存 储器可以是随机存取存储器(ram,random access memory),其用作外部高速缓 存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存 储器(sram,static random access memory)、同步静态随机存取存储器(ssram, synchronous static random access memory)、动态随机存取存储器(dram, dynamic random access memory)、同步动态随机存取存储器(sdram, synchronous dynamic random access memory)、双倍数据速率同步动态随机存取 存储器(ddrsdram,double data rate synchronous dynamic random accessmemory)、增强型同步动态随机存取存储器(esdramenhanced synchronousdynamic random access memory)、同步连接动态随机存取存储器(sldram, sync link dynamic random access memory)、直接内存总线随机存取存储器 (drram,direct rambus random access memory)。本发明实施例描述的存储介 质旨在包括但不限于这些和任意其它适合类型的存储器。
[0090]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以 通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单 元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如: 多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或 不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通 信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、 机械的或其它形式的。
[0091]
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单 元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分 布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本 实施例方案的目的。
[0092]
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中, 也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个 单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功 能单元的形式实现。
[0093]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以 通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介 质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包 括:移动存储设备、只读存储器(rom,read-only memory)、随机存取存储器 (ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0094]
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的 产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理 解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软 件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指 令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行 本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设 备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0095]
本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任 意组合,得到新的方法实施例。
[0096]
本技术所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任 意组合,得到新的产品实施例。
[0097]
本技术所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下 可以任意组合,得到新的方法实施例或设备实施例。
[0098]
以上内容是结合具体的优选实施方式对本发明所做的进一步详细说明,不能 认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而 且性能或用途相同,都应当视为属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献