区块链账户关联性查询方法及虚假交易筛选方法与流程

    专利2022-07-08  137


    本发明涉及区块链交易路径技术领域,具体涉及一种区块链账户关联性查询方法及虚假交易筛选方法。



    背景技术:

    neo4j是一个高性能的nosql(非关系型的数据库)图形数据库。在neo4j中,数据被存储在网络中而非表中,数据被保存为图中的节点以及节点之间的关系。对于一些应用数据,例如交通路网数据、社交网络数据等,可以很直接的表示成图的节点和关系的概念。使用neo4j来存储这些数据很自然,并且使用效率会高于关系型数据库。目前facebook、阿里巴巴、百度等许多大公司都在使用neo4j。

    neo4j的数据存储模型为node(节点)和relationship(关系),以及包含的property(属性)。property(属性)使用key(键)-value(值)对的双向列表进行保存。node节点保存第一个属性和第一个关系id。relationship关系保存了开始节点id、结束节点id、属性。

    随着区块链技术的不断发展,区块链交易也随之而来,而虚假交易也在区块链交易中占据很高的比例。根据neo4j数据库和区块链交易的契合度,将每一个账户作为节点,每一笔交易作为节点间的关系存入neo4j数据库,在neo4j数据库处理区块链交易。现有技术中,通过关系型数据库mysql直接储存区块链交易账户和交易哈希,查询单个账户的交易路径,简单判断比较明显的虚假交易。然而,在查找区块链上账户关联性上的查询时间长,效率低下,在判断账户的虚假交易中无法处理很多笔交易的情况,无法处理多交易环路的情况。



    技术实现要素:

    本发明要解决的技术问题是提供一种区块链账户关联性查询方法及虚假交易筛选方法,其通过账户关系筛选出虚假交易,查询时间快,效率高,在判断账户的虚假交易中可以处理很多笔交易,且能够处理多交易环路。

    为了解决上述技术问题,本发明提供了一种区块链账户关联性查询方法,包括以下步骤:

    s1、获取多条原始交易数据,每条所述原始交易数据包括转出方账户哈希、转入方账户哈希、交易哈希、交易金额和交易时间戳;

    s2、设定交易金额阈值,获得交易金额高于交易金额阈值的交易数据并生成交易数据库;

    s3、遍历交易数据库中的每条交易数据,将交易数据作为两个账户节点的关系插入交易数据库;

    s4、通过cql语句查询两个账户之间的关联性。

    作为优选的,所述s1中,获取的原始交易数据存储在mysql中。

    作为优选的,所述s2中设定交易金额阈值,具体包括:

    计算所有原始交易数据的平均交易金额,设定金额系数,获取交易金额阈值,所述交易金额阈值等于平均交易金额乘以金额系数。

    作为优选的,所述s3包括:

    遍历交易数据库中的每条交易数据,若转入方存在,转出方存在,则将交易数据作为两个账户节点的关系插入数据库;若转入方存在,转出方不存在,则以转出方账户哈希作为节点名创建节点,并且将交易数据作为两个账户节点的关系插入数据库;若转入方不存在,转出方存在,则以转入方账户哈希作为节点名创建节点,并且将交易数据作为两个账户节点的关系插入数据库;若转入方不存在,转出放不存在,则分别以转入方账户哈希和转出方账户哈希作为节点名创建节点,并且将交易数据作为两个账户节点的关系插入数据库。

    作为优选的,所述s3中,在插入交易数据时,若两个账户节点存在交易关系,则先读取两个账户节点的关系,并将新的交易时间戳和交易哈希构成数组,插入至两个账户节点的关系。

    作为优选的,所述s4中,所述s4包括:通过cql语句查询两个账户节点8条路径以内的关系。

    本发明还公开了一种虚假交易筛选方法,基于上述的区块链账户关联性查询方法,包括:遍历每个账户节点,通过cql语句判断所述账户是否有直接转入账户;若无直接转入账户,则所述账户视为正常账户;若有直接转入账户,则查出所有到所述账户节点的交易路径,并通过时间戳判断交易路径是否为有效交易回路;若其为有效交易回路,则该回路上的交易均视为虚假交易。

    作为优选的,所述通过时间戳判断交易路径是否为有效交易回路的方法,包括以下步骤:

    所述交易回路上的每个账户皆对应建立交易列表,所述交易列表存储对应账户接收交易的交易信息,每个所述交易列表中的交易信息按照时间顺序排序;

    建立空栈,将交易回路上的初始账户中的第一个交易信息移入栈中,其中,所述初始账户为交易回路上的第一个账户;

    依次判断初始账户以外的账户所对应的交易列表中的交易信息的交易时间是否在栈中第一交易信息之后,并将符合要求的交易信息移入栈中,删除对应的交易列表中符合要求的交易信息之前的交易信息;

    若栈中元素个数等于账户个数,那么将该交易路径视为有效交易回路,否则,视为无效交易回路;

    将栈置空,对初始账户中交易列表剩下交易信息进行上述操作,直至初始账户的交易列表中无交易信息为止。

    本发明公开了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述方法的步骤。

    本发明公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

    本发明的有益效果:

    本发明解决账户关系查询效率和复杂交易路径处理,并通过账户关系筛选出虚假交易,查询时间快,效率高,在判断账户的虚假交易中可以处理很多笔交易,且能够处理多交易环路。

    附图说明

    图1为本发明的流程图。

    具体实施方式

    下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。

    参照图1所示,本发明的公开了一种区块链账户关联性查询方法,以下步骤:

    步骤一、获取多条原始交易数据,每条所述原始交易数据包括转出方账户哈希、转入方账户哈希、交易哈希、交易金额和交易时间戳。其中,获取的原始交易数据存储在mysql中。

    步骤二、设定交易金额阈值,获得交易金额高于交易金额阈值的交易数据并生成交易数据库。其中,交易金额阈值的设定方法为:计算所有原始交易数据的平均交易金额,设定金额系数,获取交易金额阈值,所述交易金额阈值等于平均交易金额乘以金额系数。

    步骤三、通过neo4j遍历交易数据库中的每条交易数据,首先判断转入方和转出方是否存在于数据库,情况如下:

    情况一、若转入方存在,转出方存在,则将交易数据作为两个账户节点的关系插入数据库;在插入交易数据时,若两个账户节点存在交易关系,则先读取两个账户节点的关系,并将新的交易时间戳和交易哈希构成数组,插入至两个账户节点的关系;

    情况二、若转入方存在,转出方不存在,则以转出方账户哈希作为节点名创建节点,并且将交易数据作为两个账户节点的关系插入数据库;

    情况三、若转入方不存在,转出方存在,则以转入方账户哈希作为节点名创建节点,并且将交易数据作为两个账户节点的关系插入数据库;

    情况四、若转入方不存在,转出放不存在,则分别以转入方账户哈希和转出方账户哈希作为节点名创建节点,并且将交易数据作为两个账户节点的关系插入数据库。

    步骤四、通过cql语句查询两个账户之间的关联性。其中,本发明可以通过cql语句查询两个账户节点8条路径以内的关系。

    本发明还公开了一种虚假交易筛选方法,以上述的区块链账户关联性查询方法为基础,遍历每个账户节点,通过cql语句判断所述账户是否有直接转入账户:若无直接转入账户,则所述账户视为正常账户,其交易视为正常交易;若有直接转入账户,则查出所有到所述账户节点的交易路径,并通过时间戳判断交易路径是否为有效交易回路,若其为有效交易回路,则该回路上的交易均视为虚假交易。

    其中,所述通过时间戳判断交易路径是否为有效交易回路的方法,包括以下步骤:

    1、所述交易回路上的每个账户皆对应建立交易列表,所述交易列表存储对应账户接收交易的交易信息,每个所述交易列表中的交易信息按照时间顺序排序;

    2、建立空栈,将交易回路上的初始账户中的第一个交易信息移入栈中,其中,所述初始账户为交易回路上的第一个账户;

    3、依次判断初始账户以外的账户所对应的交易列表中的交易信息的交易时间是否在栈中第一交易信息之后,并将符合要求的交易信息移入栈中,删除对应的交易列表中符合要求的交易信息之前的交易信息;

    4、若栈中元素个数等于账户个数,那么将该交易路径视为有效交易回路,否则,视为无效交易回路;

    5、将栈置空,对初始账户中交易列表剩下交易信息进行上述操作,直至初始账户的交易列表中无交易信息为止。

    例如,a账号转到b账户有三条交易存入a列表,b账户转到c账户有三条交易存入b列表,c账户转到a账户有三条交易存入c列表,以上交易均按时间顺序排序,建立一个空栈,将a中第一个交易信息移入栈中,按顺序判断b中交易时间是否在栈顶交易信息之后,将第一个时间符合要求的交易信息移入栈中,该条交易信息之前信息从b列表中删除,同理找到c列表中符合要求的交易信息,存入栈中。如果栈中元素个数等于账户个数,那么便将该交易路径视为有效交易回路。将栈置空,同理对列表剩下元素进行上述操作,直到a列表中无元素为止。

    本发明还公开了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述方法的步骤。

    本发明还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

    以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。


    技术特征:

    1.一种区块链账户关联性查询方法,其特征在于,包括以下步骤:

    s1、获取多条原始交易数据,每条所述原始交易数据包括转出方账户哈希、转入方账户哈希、交易哈希、交易金额和交易时间戳;

    s2、设定交易金额阈值,获得交易金额高于交易金额阈值的交易数据并生成交易数据库;

    s3、遍历交易数据库中的每条交易数据,将交易数据作为两个账户节点的关系插入交易数据库;

    s4、通过cql语句查询两个账户之间的关联性。

    2.如权利要求1所述的区块链账户关联性查询方法,其特征在于,所述s1中,获取的原始交易数据存储在mysql中。

    3.如权利要求1所述的区块链账户关联性查询方法,其特征在于,所述s2中设定交易金额阈值,具体包括:

    计算所有原始交易数据的平均交易金额,设定金额系数,获取交易金额阈值,所述交易金额阈值等于平均交易金额乘以金额系数。

    4.如权利要求1所述的区块链账户关联性查询方法,其特征在于,所述s3包括:

    遍历交易数据库中的每条交易数据,若转入方存在,转出方存在,则将交易数据作为两个账户节点的关系插入数据库;若转入方存在,转出方不存在,则以转出方账户哈希作为节点名创建节点,并且将交易数据作为两个账户节点的关系插入数据库;若转入方不存在,转出方存在,则以转入方账户哈希作为节点名创建节点,并且将交易数据作为两个账户节点的关系插入数据库;若转入方不存在,转出放不存在,则分别以转入方账户哈希和转出方账户哈希作为节点名创建节点,并且将交易数据作为两个账户节点的关系插入数据库。

    5.如权利要求4所述的区块链账户关联性查询方法,其特征在于,所述s3中,在插入交易数据时,若两个账户节点存在交易关系,则先读取两个账户节点的关系,并将新的交易时间戳和交易哈希构成数组,插入至两个账户节点的关系。

    6.如权利要求1所述的区块链账户关联性查询方法,其特征在于,所述s4中,所述s4包括:通过cql语句查询两个账户节点8条路径以内的关系。

    7.一种虚假交易筛选方法,基于权利要求1-6所述的区块链账户关联性查询方法,其特征在于,包括:遍历每个账户节点,通过cql语句判断所述账户是否有直接转入账户;

    若无直接转入账户,则所述账户视为正常账户;

    若有直接转入账户,则查出所有到所述账户节点的交易路径,并通过时间戳判断交易路径是否为有效交易回路;若其为有效交易回路,则该回路上的交易均视为虚假交易。

    8.如权利要求7所述的虚假交易筛选方法,其特征在于,所述通过时间戳判断交易路径是否为有效交易回路的方法,包括以下步骤:

    所述交易回路上的每个账户皆对应建立交易列表,所述交易列表存储对应账户接收交易的交易信息,每个所述交易列表中的交易信息按照时间顺序排序;

    建立空栈,将交易回路上的初始账户中的第一个交易信息移入栈中,其中,所述初始账户为交易回路上的第一个账户;

    依次判断初始账户以外的账户所对应的交易列表中的交易信息的交易时间是否在栈中第一交易信息之后,并将符合要求的交易信息移入栈中,删除对应的交易列表中符合要求的交易信息之前的交易信息;

    若栈中元素个数等于账户个数,那么将该交易路径视为有效交易回路,否则,视为无效交易回路;

    将栈置空,对初始账户中交易列表剩下交易信息进行上述操作,直至初始账户的交易列表中无交易信息为止。

    9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求7或8所述方法的步骤。

    10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求7或8所述方法的步骤。

    技术总结
    本发明公开了一种区块链账户关联性查询方法及虚假交易筛选方法,包括:获取多条原始交易数据;设定交易金额阈值,获得交易金额高于交易金额阈值的交易数据并生成交易数据库;遍历交易数据库中的每条交易数据,将交易数据作为两个账户节点的关系插入交易数据库;通过CQL语句查询两个账户之间的关联性;遍历每个账户节点,通过CQL语句判断所述账户是否有直接转入账户;若有直接转入账户,则查出所有到所述账户节点的交易路径,若其为有效交易回路,则该回路上的交易均视为虚假交易。其通过账户关系筛选出虚假交易,查询时间快,效率高,在判断账户的虚假交易中可以处理很多笔交易,且能够处理多交易环路。

    技术研发人员:姜森;谢绍韫
    受保护的技术使用者:苏州黑云智能科技有限公司
    技术研发日:2020.11.30
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-17417.html

    最新回复(0)