权利要求书
1. 一种基于行为时间序列的区块链节点聚类方法,包括如下步骤:
(1)提取每个区块链节点的行为时间序列;
(2)初始随机选取k个行为时间序列对应作为k个类别的聚类中心,分别记为O1,O2,…,O k,k为大于1的自然数;
(3)逐个对行为时间序列进行分类:对于待分配的行为时间序列x,计算其与各聚类中心O1,O2,…,O k的相似度,若其中聚类中心O i与行为时间序列x的相似度最高,则将行为时间序列x归为类别i,进而分配下一个行为时间序列;待所有行为时间序列均分配完成后更新各类别的聚类中心,进而执行步骤(4)的判断过程,i为自然数且1≤i≤k;
(4)判断各类别新的聚类中心是否与旧的聚类中心完全一致:若是,则停止并输出聚类结果即当前所有行为时间序列的分类结果,各行为时间序列的分类结果即为对应区块链节点的聚类结果;若否,则返回步骤(3)重新对行为时间序列进行分类。
2. 根据权利要求1所述的区块链节点聚类方法,其特征在于:所述行为时间序列为关于区块链节点账户余额、交易频率、交易金额或区块生成速度的特征信息随时间变化的数值序列。
3. 根据权利要求1所述的区块链节点聚类方法,其特征在于:所述步骤(3)中采用DTW算法计算行为时间序列x与各聚类中心O1,O2,…,O k的相似度。
4. 根据权利要求1所述的区块链节点聚类方法,其特征在于:所述步骤(3)中更新各类别聚类中心的具体方法为:对于任一类别,计算该类别中每一行为时间序列相对其他所有同类行为时间序列的平均相似度,取平均相似度最高的行为时间序列作为该类别新的聚类中心。
5. 根据权利要求4所述的区块链节点聚类方法,其特征在于:对于类别i 中的任一行为时间序列,采用DTW算法计算该行为时间序列与其他各同类行为时间序列的相似度,进而求和平均后即得到该行为时间序列相对其他所有同类行为时间序列的平均相似度。
6. 根据权利要求1所述的区块链节点聚类方法,其特征在于:所述步骤(4)
中进一步判断聚类中心更新的次数,若更新次数超过一定阈值,则停止并输出聚类结果即当前所有行为时间序列的分类结果,各行为时间序列的分类结果即为对应区块链节点的聚类结果。
说明书
一种基于行为时间序列的区块链节点聚类方法
技术领域
本发明属于区块链技术领域,具体涉及一种基于行为时间序列的区块链节点聚类方法。
背景技术
区块链(Blockchain)技术是在去中心化、互相不信任环境下维持公共总账的底层技术。
其本质是基于密码学方法实现分布式、不可篡改的交易账簿,每个区块链网络中的节点都保存有记录所有交易的公共账本。
在公有区块链网络中,任何实体都可以申请成为网络中的节点。
因此,在公有链中往往具有数量庞大的节点,其中一些节点可能尝试在网络中作弊来非法获利,黑客节点可能故意破坏网络的正常运行来展示技术,有敌意的节点可能蓄谋使整个网络陷入瘫痪。
因此对节点进行聚类,将节点划分成若干个类内相互相似的类簇,有助于对大量节点的维护和发现有异常行为的节点。
发明内容
为解决对区块链节点进行聚类分析的问题,本发明提供了一种基于行为时间序列的区块链节点聚类方法,能够自动将区块链节点按照其行为时间序列聚类成若干类簇。
一种基于行为时间序列的区块链节点聚类方法,包括如下步骤:
(1)提取每个区块链节点的行为时间序列;
(2)初始随机选取k个行为时间序列对应作为k个类别的聚类中心,分别记为O1,O2,…,O k,k为大于1的自然数;
(3)逐个对行为时间序列进行分类:对于待分配的行为时间序列x,计算其与各聚类中心O1,O2,…,O k的相似度,若其中聚类中心O i与行为时间序列x的相似度最高,则将行为时间序列x归为类别i,进而分配下一个行为时间序列;
待所有行为时间序列均分配完成后更新各类别的聚类中心,进而执行步骤(4)的判断过程,i为自然数且1≤i≤k;
(4)判断各类别新的聚类中心是否与旧的聚类中心完全一致:若是,则停止并输出聚类结果即当前所有行为时间序列的分类结果,各行为时间序列的分类结果即为对应区块链节点的聚类结果;若否,则返回步骤(3)重新对行为时间序列进行分类。
所述行为时间序列为关于区块链节点账户余额、交易频率(每月或每周)、交易金额或区块生成速度等特征信息随时间变化的数值序列。
优选地,所述步骤(3)中采用DTW(Dynamic Time Warping,动态时间归整)算法计算行为时间序列x与各聚类中心O1,O2,…,O k的相似度;选择DTW是为了能够度量两个不同长度的行为时间序列之间的相似度。
所述步骤(3)中更新各类别聚类中心的具体方法为:对于任一类别,计算该类别中每一行为时间序列相对其他所有同类行为时间序列的平均相似度,取平均相似度最高的行为时间序列作为该类别新的聚类中心。
对于类别i中的任一行为时间序列,采用DTW算法计算该行为时间序列与其他各同类行为时间序列的相似度,进而求和平均后即得到该行为时间序列相对其他所有同类行为时间序列的平均相似度。
所述步骤(4)中进一步判断聚类中心更新的次数,若更新次数超过一定阈值,则停止并输出聚类结果即当前所有行为时间序列的分类结果,各行为时间序列的分类结果即为对应区块链节点的聚类结果。
本发明区块链节点聚类方法能够对区块链节点进行聚类,将节点划分成若干个类内相互相似的类簇,有助于对大量节点的维护和发现有异常行为的节点;同时,用户可以根据自己的需要选择使用节点的哪个属性(如交易金额、交易频率)构建时间序列。
附图说明
图1为本发明区块链节点聚类方法的流程示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
本发明基于行为时间序列的区块链节点聚类方法,包括如下步骤:
1. 提取每个区块链节点的行为时间序列。
每个区块链节点的信息包括账户余额,每月(或每周)交易频率,交易金额,生产区块的速度等。
对于单个节点,将其有价值的某个信息(例如交易金额)随时间变化的序列提取为用户行为的特征,记为该节点的行为时间序列。
2. 计算每两个行为时间序列之间的相似度。
时间序列的相似度使用动态时间弯曲算法DTW计算。
选择DTW是为了能够度量两个不同长度的时间序列之间的相似度。
3. 随机选择k个时间序列作为初始聚类中心,记为O1,O2,…,O k。
4. 对每个时间序列a进行分类,如果在a与O1,O2,…,O k的相似度中,与O i 的相似度最高,则将a归入第i个类别。
5. 记录当前的聚类中心O1,O2,…,O k为旧的聚类中心。
6. 所有时间序列分类完成后,为每个类别计算新的聚类中心O i。
使用第2步计算好的序列间相似度,计算类别i中一个时间序列到类别i中的其他序列之间的平均相似度,选择到同类其他时间序列平均相似度最高的时间序列作为该类的新的聚类中心。
依此,k个类别有k个新的聚类中心O1,O2,…,O k。
7. 如果新的聚类中心和旧的聚类中心相同,则停止循环返回聚类结果,否则循环执行第4步到第7步,直到循环次数超过阈值。
以下对于一个金融交易的区块链网络,需要根据该网络中区块链节点的交易金额序列对它们进行聚类;如图1所示,采用上述方法对该区块链网络进行聚类的具体实施过程如下:
首先,提取区块链网络中每个节点的交易金额时间序列。
然后,使用动态时间规整DTW算法计算每两个时间序列之间的相似度。
随后,随机选择k个时间序列作为初始的聚类中心,记为O1,O2,…,O k。
对每个时间序列进行分类,根据其到每个聚类中心的距离,将其划分到距
离最近的聚类中。
例如,对于一个时间序列s,如果s到O1,O2,…,O k的距离中,离O2最近,则把s划分到第2个类别中;如果s到O1,O2,…,O k的距离中,离O7最近,则把s划分到第7个类别中,以此类推。
待所有时间序列分类完成后,为每个类重新计算类的聚类中心。
对于任一类别i,计算类别i中一个时间序列到类别i中的其他序列之间的平均相似度,选择到同类其他时间序列平均相似度最高的时间序列作为该类的新的聚类中心。
依此,k个类别有k个新的聚类中心O1,O2,…,O k。
如果新的聚类中心和旧的聚类中心相同,则停止循环并返回当前聚类结果,否则判断一下是否迭代循环次数达到了阈值,如达到了阈值则结束并返回当前聚类结果。
如没有达到阈值,则跳转并继续循环过程。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。
熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。
因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。
本发明公开了一种基于行为时间序列的区块链节点聚类方法,该方法能够对区块链节点进行聚类,自动将区块链节点按照其行为时间序列划分成若干个类内相互相似的类簇,有助于对大量节点的维护和发现有异常行为的节点;同时,用户可以根据自己的需要选择使用节点的哪个属性(如交易金额、交易频率)构建时间序列。
图1
摘 要 附 图。