一种比特币交易自治消息提取及解析方法

文档序号:33952608发布日期:2023-04-26 12:51阅读:55来源:国知局
一种比特币交易自治消息提取及解析方法

本发明属于区块链数据挖掘,特别涉及一种比特币交易自治消息提取及解析方法。


背景技术:

1、随着区块链技术的发展,公有链因其具有去中心化、不易监管等特性而常被用于非法金融活动之中。传统的区块链监测技术通常以交易溯源为主要目的,通常采用地址聚类方法或图方法等,并且更多关注于用户间的交易行为关系,而忽视了单笔交易的交易内容中的异常信息。在区块链系统中,用户除了进行交易外,还可以添加自治交易消息,这些消息可以由任意内容组成,可能存在网络舆情消息,但是目前针对这些消息没有有效的提取和解析方法。

2、传统的区块链监测技术大致有以下几种:

3、(1)基于地址聚类的区块链监测方法:比特币采用utxo模型,同一个实体用户在网络中可以拥有多个交易地址。就实体用户地址聚类而言,从异常交易记录中识别出哪些属于同一个实体的地址是一个重要的问题。

4、(2)基于图匹配的区块链监测方法:以空投糖果和贪婪注资两类异常交易行为作为典型代表,分别设计了两类异常交易行为的判定规则。

5、(3)基于复杂网络的区块链监测方法:使用复杂网络分析技术来研究比特币交易网络,特别是有效地使用社区检测来重新识别属于同一用户的多个地址。

6、传统的区块链监测技术聚焦于区块链用户间的交易关系,对于区块链中与用户间交易无关的信息没有进行分析。近年来的一些区块链留言事件说明,对区块链交易数据进行检测和分析,从而实现区块链上的舆情监测,是区块链数据挖掘的重要研究内容。


技术实现思路

1、为了解决上述问题,本发明的目的在于提供一种比特币交易自治消息提取及解析方法。

2、为了达到上述目的,本发明提供的比特币交易自治消息提取及解析方法包括按顺序进行的下列步骤:

3、1)搭建比特币客户端,将原始区块流数据同步到本地;然后对原始区块流数据进行解析和结构化处理,得到比特币结构化数据;之后从比特币结构化数据获得每笔交易输出脚本;

4、2)利用交易脚本验证算法algorithmtest验证上述交易输出脚本的有效性,如验证通过表明交易是真实有效的,不包含交易自治消息;若验证失败,则返回结果为交易自治消息txinformation;

5、3)从上述交易自治消息txinformation中提取区块链特征,然后利用上述交易自治消息和区块链特征构建交易自治消息数据表;

6、4)从交易自治消息数据表中依次读取交易自治消息txinformation,利用交易自治消息解码算法algorithmcode_recognition对上述交易自治消息txinformation进行解码,得到解码消息informationdecode;之后将解码信息informationdecode作为特征插入交易自治消息数据表;

7、5)通过对上述解码消息informationdecode进行特征提取和识别,将解码消息informationdecode进行清洗,并将被成功解码的解码信息informationdecode的可解码标记signdecode标记为1,其它解码消息的可解码标记signdecode标记为0,并将上述可解码标记signdecode作为特征插入交易自治消息数据表;

8、6)利用基于交易地址关联分析的消息融合算法algorithmaddress_association对成功解码的交易自治消息informationdecode进行可融合判断并将可融合的交易自治消息informationdecode进行融合,形成融合后消息informationrelated;

9、7)从融合后消息informationrelated中提取出融合前消息序号infoid,并构建交易自治消息融合消息数据表。

10、在步骤1)中,所述搭建比特币客户端,将原始区块流数据同步到本地;然后对原始区块流数据进行解析和结构化处理,得到比特币结构化数据;之后从比特币结构化数据获得每笔交易输出脚本的具体方法如下:

11、搭建比特币客户端bitcoin core,将原始区块流数据dt同步到本地;通过对原始区块流数据dt进行解析和结构化处理,得到比特币结构化数据st;其中原始区块流数据dt表示比特币系统截止到t时刻的所有区块数据;比特币结构化数据st是将t时刻之前的区块数据经过处理后得到的,包括区块大小btc_blocksize、交易列表tx_list;之后从比特币结构化数据st中查找交易列表tx_list来输出数组outputs中的script字段,最终获得每笔交易输出脚本

12、在步骤2)中,所述利用交易脚本验证算法algorithmtest提取交易自治消息的具体方法如下:

13、201)将交易输出脚本从字符串格式转化为二进制字节流scirptbytearray;

14、202)初始化一个空的栈数据结构;

15、203)从二进制字节流scirptbytearray中读取一个字节,并将该字节从二进制字节流scirptbytearray中删除;

16、204)将该字节转化为比特币操作码op_code;

17、205)将比特币操作码op_code放入栈中;

18、206)获取栈顶比特币操作码op_code,并依照栈顶比特币操作码op_code对栈进行操作;

19、207)若该栈顶比特币操作码op_code存在后续输入参数,则从二进制字节流scirptbytearray读取相应的字节数bytes;

20、208)将字节数bytes放入栈中;

21、209)重复步骤203)到步骤208),直到二进制字节流scirptbytearray为空;

22、210)验证栈顶元素,若栈顶元素为boolean类型的true,则交易输出脚本验证通过;若栈顶元素为boolean类型的false,则交易输出脚本验证失败;若栈顶元素不是boolean类型,则为提取到的交易自治消息txinformation,这些消息依旧会被留存在区块链上,相应未交易的货币会转移到交易生成方手中。

23、在步骤3)中,所述从上述交易自治消息txinformation中提取区块链特征,然后利用上述交易自治消息和区块链特征构建交易自治消息数据表的具体方法如下:

24、从上述交易自治消息txinformation中提取区块链特征:序号blockid、区块哈希blockhash,交易版本号blockversion、区块高度blocknumber、区块产生时间blocktimestamp、交易哈希blockthis_txhash、输入脚本交易哈希blockinput_txhash、输入金额blockinput_value、输入地址blockinput_address、交易费blockfee、输出脚本blockoutput_script_asm、ascii脚本blockoutput_script_asc、解码输出脚本blockoutput_script_decode;然后利用上述交易自治消息和区块链特征构建交易自治消息数据表。

25、在步骤4)中,所述利用交易自治消息解码算法algorithmcode_recognition对上述交易自治消息txinformation进行解码,得到解码消息informationdecode的具体方法如下:

26、401)利用已知交易自治消息编码规则构建编码表codeinfo;

27、402)读取交易自治消息数据表中的一条交易自治消息txinformation;

28、403)读出该交易自治消息txinformation十六进制字符串的前两位,并将其依照十六进制整型转化为字符charbytes;

29、404)判断该字符charbytes是否为自然语言字符,若是执行步骤405),否则执行步骤406);

30、405)执行步骤410),直到交易自治消息txinformation十六进制字符串为空,最终得到该条交易自治消息txinformation的解码消息informationdecode;

31、406)继续读出交易自治消息txinformation十六进制字符串的前两位,将四位十六进制整型按照unicode编码规则在编码表codeinfo中搜索解码规则,若能够搜索到执行步骤407),否则执行步骤408);

32、407)按照编码表codeinfo解码,标记交易自治消息的编码语言;重复步骤403),直到交易自治消息txinformation十六进制字符串为空,最终得到该条交易自治消息txinformation的解码消息informationdecode;

33、408)将交易自治消息txinformation标记为不可解码;

34、409)将解码信息informationdecode作为特征插入交易自治消息数据表,若交易自治消息不可解码,则插入交易自治消息txinformation;

35、410)重复步骤402)-409),直到所有交易自治消息txinformation解码完成。

36、在步骤6)中,所述基于交易地址关联分析的消息融合算法algorithmaddress_association对成功解码的自治消息数据informationdecode进行可融合判断并将可融合的自治消息数据informationdecode进行融合,形成融合后消息informationrelated的具体方法如下:

37、601)输入一条交易自治消息的解码消息informationdecode;

38、602)利用可融合消息识别算法algorithmis_fusible判断该解码消息informationdecode是否为可融合消息,若是,执行步骤603),否则执行步骤606);

39、603)若该消息是后向融合消息,执行步骤604);若该消息是前向融合消息,执行步骤605);若该消息不是可融合消息,执行步骤606);

40、604)在步骤3)生成的交易自治消息数据表中读取该解码消息的输入脚本交易哈希blockinput_txhash,判断该交易的输出中是否存在可融合消息,若存在,进行消息融合并生成融合后消息informationrelated;之后执行步骤606);

41、605)在步骤3)生成的交易自治消息数据表中读取该解码消息的交易哈希blockthis_txhash,判断是否可融合消息以该交易哈希作为输入脚本交易哈希blockinput_txhash,若存在,进行消息融合并生成融合后消息informationrelated;

42、606)重复步骤601)-605),直到所有交易自治消息的解码消息融合完毕。

43、在步骤602)中,所述利用可融合消息识别算法algorithmis_fusible判断该解码消息informationdecode是否为可融合消息的具体方法如下:

44、60201)初始化待匹配字符表,包含各个待匹配字符的标记位,所有字符标记位值为0;

45、60202)输入一条交易自治消息的解码消息informationdecode;

46、60203)从解码消息informationdecode中读取一个字符,判断该字符是否为待匹配字符,若该字符为待匹配字符,执行步骤60204),否则执行步骤60205);

47、60204)判断该字符是起始字符还是终止字符,若为起始字符,则对待匹配字符表中该待匹配字符的标记位值+1;若为终止字符,则对该待匹配字符的标记位值-1;若既非起始字符也非终止字符,则不做任何操作;

48、60205)重复步骤60202-60204),直到解码消息informationdecode为空;

49、60206)判断所有待匹配字符的标记位值,若全为0,则该解码消息不是可融合消息;若部分待匹配字符的标记位值为正数,部分待匹配字符的标记位值为负数,则该解码消息不是可融合消息;若部分待匹配字符的记位值为正数,其它值为0,则该解码消息是后向可融合消息,返回待匹配字符表;若部分待匹配字符的记位值为负数,其它值为0,则该解码消息是前向可融合消息,返回待匹配字符表。

50、本发明提供的比特币交易自治消息提取及分析方法的有益效果是:

51、1、该方法具有普适性:通过分析目前区块链技术架构,发现本方法同样适用于以太坊、eos、波卡以及fabric等主流区块链系统中。

52、2、该方法具有有效性:以交易自治消息情感倾向与价格变化的关系为例,所产生数据集在网络舆情监测方面的效果好。

53、3、该方法具有进步性:本比特币交易自治消息提取及分析方法有助于实现区块链系统中的舆情监测,增强网络空间安全,提高信息分析水平。

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