比特币交易所地址识别方法、系统、装置与流程

文档序号:17990962发布日期:2019-06-22 00:47阅读:1138来源:国知局
比特币交易所地址识别方法、系统、装置与流程

本发明属于信息技术及安全技术领域,具体涉及一种比特币交易所地址识别方法、系统、装置。



背景技术:

2008年金融危机时期,各国为应对危机纷纷出台宽松货币政策,主权货币信用跌至冰点,导致基于国家信用的中心化货币体系不再那么可靠。比特币就此诞生,它具有匿名性和去中心化的特点,使用区块链技术构建公开帐单,确保交易安全,控制新货币的诞生,受到越来越多人的关注。但不法分子利用其匿名性进行非法交易活动并轻易逃脱法律的制裁,最臭名昭著的就是丝绸之路(silkroad)非法毒品贩卖和跨国洗钱,而监管机构很难对其进行监管和调查。

针对这种情况,目前的主流方法是反匿名推测,主要包括以下两种方案:

方案一:通过搜集比特币交易所等公开获得的数据,实现比特币的反匿名,一些比特币交易所会存储用户的比特币地址、身份信息等,还有一些支持比特币支付或接受比特币捐赠的服务机构,会公开他们的比特币地址。但涉及隐私保护问题,需政府和多方平台的支持,代价比较大,无法大规模应用。

方案二:通过部署尽可能多的探测节点,监听并获取比特币网络交易信息及传播路径,实现交易者信息的识别。该方案在发明名称为“一种比特币交易身份表示方法”(申请号为201710965814)的专利申请中有具体描述。该方案涉及大量探针的部署,代价较大,无法普及使用,准确率也无法保证。

鉴于上述情况,本发明的目的是将反匿名问题转为比特币交易所地址的真伪识别问题。比特币交易所,作为比特币和法定货币兑换的平台,提供了虚拟货币与真实世界链接的唯一通道,在比特币交易系统中具有重要的作用。识别比特币交易网络中的交易所地址对监管至关重要,可通过其进一步分析感兴趣的交易和地址,观察这些交易和地址加入、退出交易网络的时间,并进一步对其可能牵涉的犯罪行为进行判定。



技术实现要素:

为了解决现有技术中的上述问题,即为了解决基于比特币的交易信息判断输入的地址信息是否为交易所地址的问题,本发明第一方面,提出了一种比特币交易所地址的识别方法,该方法包括:

步骤s10,获取待识别交易数据作为输入信息;所述交易数据包括比特币地址标识符、比特币流向数据;

步骤s20,将基于所述输入信息,构成比特币交易网络;

步骤s30,利用网络表示学习法,获取所述比特币交易网络中的节点的特征向量构成的特征空间;

步骤s40,根据特征空间,通过地址分类器识别所述输入信息中的比特币地址标识符是否为真实的比特币交易所地址信息;

其中,

所述地址分类器为基于多个映射函数的分类器模型的组合,所述的映射函数的分类器模型包括线性支持向量机模型、二项逻辑回归模型、决策树模型、随机森林模型中的一个或多个;多个映射函数模型的输出通过多数投票法选择,作为所述地址分类器的输出。

在一些优选的实施方式中,所述的比特币交易网络中,以交易地址为节点、以同一交易中地址之间比特币的流动关系为边。

在一些优选的实施方式中,步骤s30“利用网络表示学习法,获取所述比特币交易网络中节点的特征向量构成的特征空间”,其方法为:

对所述比特币交易网络各节点,采用截断的随机游走策略生成一组游走序列;

使用skip-gram模型对随机游走序列进行训练,通过最大化每个游走序列节点生成邻居节点的概率,得到每个节点的向量表示,进而得到所述比特币交易网络的特征矩阵,并以该矩阵作为所述比特币交易网络的特征空间。

在一些优选的实施方式中,所述地址分类器其训练方法为:

获取训练样本;所述训练样本包括交易数据样本和标签样本;所述交易数据样本为包含比特币地址标识符、比特币流向数据的集合,所述标签样本为判断交易数据样本中的比特币地址标识符是否为比特币交易所地址的标签;

通过步骤s20、s30的方法对交易数据样本进行预处理,得到交易数据样本对应的特征空间样本;

基于所述特征空间样本及对应的标签样本,对所述地址分类器进行训练。

在一些优选的实施方式中,所述标签样本为一般节点时标签为-1、为交易所地址对应的节点时标签为1。

在一些优选的实施方式中,所述交易数据样本包括交易的哈希值、交易时间戳数据、交易输入地址的哈希值、交易输出地址的哈希值。

在一些优选的实施方式中,“对多个映射函数模型的输出通过多数投票法选择,作为所述地址分类器的输出”,其方法为:

依据多个映射函数的模型的输出类别,选择得票最多的类别,若两个类别的得票数相同,则从中随机选出一个。

本发明的第二方面,提出了一种比特币交易所地址识别系统,该系统包括获取模块、网络构建模块、特征提取模块、分类器预测模块;

所述获取模块,配置为获取待识别交易数据作为输入信息;所述交易数据包括比特币地址标识符、比特币流向数据;

所述网络构建模块,配置为基于所述输入信息,构建比特币交易网络;

所述特征提取模型,配置为利用网络表示学习法,获取所述比特币交易网络中节点的特征向量构成的特征空间;

所述分类器预测模块,配置为根据所述特征空间,通过地址分类器识别所述输入信息中的比特币地址标识符是否为真实的比特币交易所地址信息。

本发明的第三方面,提出了一种存储装置,其中存储有多条程序,所述程序应用由处理器加载并执行以实现上述的比特币交易所地址识别方法。

本发明的第四方面,提出了一种处理设置,包括处理器、存储装置;处理器,适用于执行各条程序;存储装置,适用于存储多条程序;所述程序适用于由处理器加载并执行以实现上述的比特币交易所地址识别方法。

本发明的有益效果:

本发明仅需依据比特币交易网络数据即可判断是否为交易所地址,比特币交易网络数据可以为通过比特币区块链网站公开获得带标注的比特币数据,或通过爬虫下载比特币钱包网站的数据,本发明的比特币交易所地址识别技术依赖资源少,且不需要搜集或者再进行人工数据标注,能够大范围使用;

本发明使用网络表示学习方法提取特征,通过非监督的机器学习方法,能够自动学习网络的结构特征,得到网络中每个节点的向量表示。相比传统地利用节点的网络特征,如节点的入度/出度、子节点/兄弟节点/前辈节点的数量,无需人工提取特征,能够更好的掌握网络的结构特征;

通过本发明依据比特币交易网络数据识别交易所地址,具有较好的识别效果。

附图说明

通过阅读参照以下附图所做的对非限制性实施例所做的详细描述,本申请的其他特征、目的和优点将会变得更明显。

图1是本发明一种实施例的比特币交易地址识别方法的流程示意图;

图2是本发明一种实施例中基于从交易数据构造交易网络的示例图;

图3是本发明一种实施例的比特币交易地址识别系统的框架示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本发明的比特币交易所地址识别方法,包括以下步骤:

步骤s10,获取待识别交易数据作为输入信息;所述交易数据包括比特币地址标识符、比特币流向数据;

步骤s20,将基于所述输入信息,构成比特币交易网络;

步骤s30,利用网络表示学习法,获取所述比特币交易网络中的节点的特征向量构成的特征空间;

步骤s40,根据特征空间,通过地址分类器识别所述输入信息中的比特币地址标识符是否为真实的比特币交易所地址信息;

其中,所述地址分类器为基于多个映射函数的分类器模型的组合,所述的映射函数的分类器模型包括线性支持向量机模型、二项逻辑回归模型、决策树模型、随机森林模型中的一个或多个;多个映射函数模型的输出通过多数投票法选择,作为所述地址分类器的输出。

为了更清晰地对本发明比特币交易所地址识别方法进行说明,下面结合图1对本发明方法一种实施例中各步骤进行展开详述。

步骤s10,获取待识别交易数据作为输入信息;所述交易数据包括比特币地址标识符、比特币流向数据。

本实施例中,输入信息包括交易的哈希值、交易时间戳数据、交易输入地址的哈希值、交易输出地址的哈希值。

输入信息可以为一次交易的数据,也可以为一个交易链条中连续多个交易的数据。一个交易的输出是另一个交易的输入,循环往复形成交易链条。

步骤s20,将基于所述输入信息,构成比特币交易网络。

比特币交易网络中,以交易地址为节点、以同一交易中地址之间比特币的流动关系为边。如图2所示,图2示例性地给出了从交易数据和交易所地址构造交易网络的过程。

图2中,a示例性地给出了2011年5月1日在比特币交易网络上添加的具有两个发送地址和两个接收地址的交易实例,可通过交易的哈希值在相关的比特币块浏览器网站上查询详细信息。具体地,右上角的时间表示该交易加入区块链的时间,第一行的值是交易的标识符,是交易的唯一标识。接下来,“1btc”及其相邻值(交易地址的哈希值)表明该地址发送了1个比特币。

图2的a中,输入信息为待识别交易数据(标识符:f19fb7212bef80de028646261b5a318baba23d9f1ace5896cabf5bd7c9b65ab3)作为输入信息;该交易数据包括比特币地址标识符、比特币流向数据:

比特币交易地址标识符,是交易地址的唯一标识,包括:

1jfogt4kneavrqdmjzeabula33a4h9s8qx;

1ajiyir7dmrzle3375bmfhddynavpmuluu;

1jfogt4kneavrqdmjzeabula33a4h9s8qx;

1jfogt4kneavrqdmjzeabula33a4h9s8qx。

比特币流向数据包括交易金额、交易流向。交易金额如图2中a部分显示的1btc、135btc、135.67btc、0.33btc,btc为比特币。交易流向如图2中a部分显示:两个发送地址分别发送了1个比特币和135个比特币,两个接收地址分别接收了135.67个比特币(用于支付)和0.33个比特币(可能是交易费或存放剩余比特币的新地址)。

图2中,b是从比特币交易中提取的信息示例,其中箭头上的值表示流通的比特币数量。这里,ai表示地址,ti表示交易。t1为向地址a1发送1btc的交易,t2为向地址a2发送135btc的交易。t3是一个具有两个输入(a1和a2)和两个输出(a3和a4)的交易,该交易于2011年5月1日加入区块链中。t4是发生在同一天的具有五个输入和两个输出(a5和a6)的交易。其中,t4的两个输入(即a3和a4)为之前已发生的交易t3的输出;

交易网络表示随时间的变化比特币在地址间的流动。图2中c是根据图2中b的信息构建的交易网络,其中,节点表示交易地址,边表示同一交易中地址间比特币的流动关系。因交易网络只有一个地址发送/接收了多少比特币的信息,并没有给出输入和输出间比特币流动的的具体数值,因此,同一交易的任意输入、输出地址间都存在边。

步骤s30,用网络表示学习法,获取所述比特币交易网络中的节点的特征向量构成的特征空间。

本实施例中,首选,对所述比特币交易网络各节点,采用截断的随机游走策略生成一组游走序列。使用deepwalk算法(该方法为一种无监督的表示学习算法),通过掌握网络的拓扑信息生成每个节点的向量表示。为发现节点的分布,采用截断的随机游走策略生成一组游走序列。形式化地,假设生成的随机游走序列中vi的左右为w的窗口中的序列是vi-w,...,vi-1,vi+1,...,vi+w。

然后,使用skip-gram模型对随机游走序列进行训练,通过最大化每个游走序列节点产生邻居节点的概率,得到每个节点的向量表示,进而得到所述比特币交易网络的特征矩阵,并以该矩阵作为所述比特币交易网络的特征空间。作为简化,忽略了节点的顺序和距离中心节点的距离。

本实施例中的deepwalk算法,可以参考b.perozzi,r.al-rfou,ands.skiena,"deepwalk:onlinelearningofsocialrepresentations,"presentedattheproceedingsofthe20thacmsigkddinternationalconferenceonknowledgediscoveryanddatamining,newyork,newyork,usa,2014。此处不再展开详述。

步骤s40,根据特征空间,通过地址分类器识别所述输入信息中的比特币地址标识符是否为真实的比特币交易所地址信息。

本实施例中,地址分类器用于判别是否为比特币交易所地址的二分类问题上。该分类器将交易网络的节点分为两类,一类对应交易所地址,另一类对应一般的网络节点。给定交易网络g=(v,e),节点集合v为交易地址,边集合e为地址间的比特币的流通关系。令gl=(v,e,x,y)是一个带标记的交易网络,x∈rv×d是基于网络表示学习生成的特征空间,d是每个特征向量的特征空间的大小,y是标签集合,其值是-1(一般节点)或1(交易所地址对应的节点)。任务即为学习一个从特征空间到标签集合的映射函数f:x→y。

在本实施例中,地址分类器需要经过提前训练,其训练方法为:

获取训练样本;所述训练样本包括交易数据样本和标签样本;所述交易数据样本为包含比特币地址标识符、比特币流向数据集合,所述标签样本为判断所述交易数据样本中比特币地址标识符是否为比特币交易所地址的标签;

通过步骤s20、s30的方法对交易数据样本进行预处理,得到交易数据样本对应的特征空间样本;

基于所述特征空间样本及对应的标签样本,对所述地址分类器进行训练。

本实施例中,所述交易数据样本包括交易的哈希值、交易时间戳数据、交易输入地址的哈希值、交易输出地址的哈希值。标签样本为一般节点时标签为-1、为交易所地址对应的节时标签为1。

学习映射函数的模型包括线性支持向量机、二项逻辑回归、决策树、随机森林中的一个或多个,本实施例优选的为四个模型的组合。

在训练过程中,分别通过以下(1)、(2)、(3)、(4)四部分分别对四个模型的训练方法进行描述。

(1)“线性支持向量机”模型的训练方法为:

基于训练集在样本空间中找到一个分离超平面,将两类数据正确划分且间隔最大。通过求解间隔最大化问题或对应凸二次规划问题,得到分离超平面和分类决策函数。本实施例中,“线性支持向量机”模型可以参考c.cortesandv.vapnik,"support-vectornetworks,"machinelearning,journalarticlevol.20,no.3,pp.273-297,september011995.此处不再展开详述。

(2)“二项逻辑回归”模型的训练方法为:

转为条件概率分布问题,概率为参数化的逻辑斯谛分布。应用极大似然估计法估计模型参数,即以似然函数为目标函数的最优化问题,通常采用梯度下降法及拟牛顿法求解模型参数。本实施例中,“二项逻辑回归”模型可以参考m.collins,r.e.schapire,andy.singer,"logisticregression,adaboostandbregmandistances,"machinelearning,vol.48,no.1,pp.253-285,2002/07/012002.此处不再展开详述。

(3)“决策树”模型的训练过程包括3个步骤:特征选择、决策树的生成和决策树的剪枝。

特征选择的目的,在于选取对训练数据能够分类的特征。特征选择的关键是其基准,选取基尼指数来定义数据集的纯度,在候选的属性集合a中,选择那个使得划分后基尼指数最小的属性作为最优划分属性。

决策树的生成,是通过计算基尼指数,从根节点开始,递归地产生决策树。即用基尼指数不断地选取局部最优的特征,将训练集分割为能够基本正确分类的子集。

决策树的剪枝,是对生成的决策树存在的过拟合问题,进行剪枝,以简化学到的决策树。决策树的剪枝,往往从已生成的树上剪掉一些叶节点或叶节点以上的子树,并将其父节点或根节点作为新的叶节点,从而简化生成的决策树。

本实施例中,“决策树”模型可以参考j.r.quinlan,"inductionofdecisiontrees,"machinelearning,journalarticlevol.1,no.1,pp.81-106,march011986.此处不再展开详述。

(4)“随机森林”模型由多棵cart(分类与决策树)构成的,其训练过程为:

步骤411,给定训练集s,测试集t,特征维数d;

确定参数:使用到的cart的数量t,每棵树的深度d,每个节点使用到的特征数量f;

终止条件:节点上最少样本数s,节点上最少的gini指数m;

步骤412,对于每棵树,从s中有放回的抽取大小和s一样的训练集s(i),作为根节点的样本,从根节点开始训练;

步骤413,如果在当前节点上达到终止条件,则设置当前节点为叶子节点,该叶子节点的预测输出为当前节点样本集合中数量最多的那一类c(j),概率p为c(j)占当前样本集的比例。然后继续训练其它节点。

如果当前节点没有达到终止条件,则从d维特征中无放回的随机选取f维特征。利用这f维特征,寻找分类效果最好的一维特征k及其阈值th,当前节点上样本第k维特征小于th的样本被划分到左节点,其余的被划分到右节点,继续训练其它节点。

步骤414,重复步骤412、步骤413,直至所有节点都训练过或者被标记为叶子节点;

步骤415,重复步骤412、步骤413、步骤414,直至所有的cart都被训练过。

本实施例中,“随机森林”模型可以参考a.cutler,d.r.cutler,andj.r.stevens,"randomforests,"machinelearning,vol.45,no.1,pp.157-176,2004.此处不再展开详述。

训练好上述四个模型后,在识别过程中,

“线性支持向量机”模型:

对于某一实例,带入分类决策函数进行计算,结果即为实例所属类别。

“二项逻辑回归”模型:

对于某一实例,分别计算属于正类和负类的条件概率分布,概率大的类别即为实例所属的类别。

“决策树”模型:

从根节点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到子节点,如此递归,直至到达叶子节点,并输出预测值。

“随机森林”模型:

步骤421,对于每棵树,从当前树的根节点开始,根据当前节点的阈值th,判断实例是进入左节点(<th)还是进入右节点(>=th),直到到达某个叶子节点,并输出预测值;

步骤422,重复执行步骤421直到所有t棵树都输出了预测值,输出为所有树中预测概率总和最大的那一个类,即对每个c(j)的p进行累计。

通过上述四个模型得到分类结果后,依据多个映射函数的模型的输出类别,选择得票最多的类别,若两个类别的得票数相同,则从中随机选出一个。在本实施例中,采用多数投票法对上述4个模型的预测值进行投票,预测值为得票最多的类别,若两个类别的得票数相同,则从中随机选取一个,如果类别为1,则该节点为比特币交易所地址对应的节点,否则为一般节点,为后续的安全方面的应用提供准备。

通过对本发明的测试,f1值能达到85%以上,准确率达80%以上,召回率达85%以上,实验证明具有较好的识别效果。

本发明第二实施例的一种比特币交易所识别系统,如图3所示,包括:获取模块1、网络构建模块2、特征提取模块3、分类器预测模块4;

获取模块1配置为获取待识别交易数据作为输入信息;所述交易数据包括比特币地址标识符、比特币流向数据;

网络构建模块2,配置为基于所述输入信息,构建比特币交易网络;

特征提取模型3,配置为利用网络表示学习法,获取所述比特币交易网络中节点的特征向量构成的特征空间;

分类器预测模块4,配置为根据所述特征空间,通过地址分类器识别所述输入信息中的比特币地址标识符是否为真实的比特币交易所地址信息。

所述技术领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的系统的具体的工作过程及有关说明,可以参考签署方法实施例中的对应过程,在此不再赘述。

需要说明的是,上述实施例提供的比特币交易所识别系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。

本发明第三实施例的一种存储装置,其中存储有多条程序,所述程序适用于由处理器加载并实现上述的比特币交易地址识别方法。

本发明第四实施例的一种处理装置,包括处理器、存储装置;处理器,适于执行各条程序;存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的比特币交易所地址识别方法。

所述技术领域的技术人员可以清楚的了解到,未描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考签署方法实例中的对应过程,在此不再赘述。

本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。

术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1