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

技术编号:37372650 阅读:21 留言:0更新日期:2023-04-27 07:17
一种比特币交易自治消息提取及分析方法。其包括数据提取、交易自治消息提取、特征提取、消息解码、消息清洗、消息融合和数据表构建等步骤。本发明专利技术效果:1、该方法具有普适性:通过分析目前区块链技术架构,发现本方法同样适用于以太坊、EOS、波卡以及Fabric等主流区块链系统中。2、该方法具有有效性:以交易自治消息情感倾向与价格变化的关系为例,所产生数据集在网络舆情监测方面的效果好。3、该方法具有进步性:本比特币交易自治消息提取及分析方法有助于实现区块链系统中的舆情监测,增强网络空间安全,提高信息分析水平。提高信息分析水平。提高信息分析水平。

【技术实现步骤摘要】
一种比特币交易自治消息提取及解析方法


[0001]本专利技术属于区块链数据挖掘
,特别涉及一种比特币交易自治消息提取及解析方法。

技术介绍

[0002]随着区块链技术的发展,公有链因其具有去中心化、不易监管等特性而常被用于非法金融活动之中。传统的区块链监测技术通常以交易溯源为主要目的,通常采用地址聚类方法或图方法等,并且更多关注于用户间的交易行为关系,而忽视了单笔交易的交易内容中的异常信息。在区块链系统中,用户除了进行交易外,还可以添加自治交易消息,这些消息可以由任意内容组成,可能存在网络舆情消息,但是目前针对这些消息没有有效的提取和解析方法。
[0003]传统的区块链监测技术大致有以下几种:
[0004](1)基于地址聚类的区块链监测方法:比特币采用UTXO模型,同一个实体用户在网络中可以拥有多个交易地址。就实体用户地址聚类而言,从异常交易记录中识别出哪些属于同一个实体的地址是一个重要的问题。
[0005](2)基于图匹配的区块链监测方法:以空投糖果和贪婪注资两类异常交易行为作为典型代表,分别设计了两类异常交易行为的判定规则。
[0006](3)基于复杂网络的区块链监测方法:使用复杂网络分析技术来研究比特币交易网络,特别是有效地使用社区检测来重新识别属于同一用户的多个地址。
[0007]传统的区块链监测技术聚焦于区块链用户间的交易关系,对于区块链中与用户间交易无关的信息没有进行分析。近年来的一些区块链留言事件说明,对区块链交易数据进行检测和分析,从而实现区块链上的舆情监测,是区块链数据挖掘的重要研究内容。

技术实现思路

[0008]为了解决上述问题,本专利技术的目的在于提供一种比特币交易自治消息提取及解析方法。
[0009]为了达到上述目的,本专利技术提供的比特币交易自治消息提取及解析方法包括按顺序进行的下列步骤:
[0010]1)搭建比特币客户端,将原始区块流数据同步到本地;然后对原始区块流数据进行解析和结构化处理,得到比特币结构化数据;之后从比特币结构化数据获得每笔交易输出脚本;
[0011]2)利用交易脚本验证算法Algorithm
test
验证上述交易输出脚本的有效性,如验证通过表明交易是真实有效的,不包含交易自治消息;若验证失败,则返回结果为交易自治消息Tx
information

[0012]3)从上述交易自治消息Tx
information
中提取区块链特征,然后利用上述交易自治消息和区块链特征构建交易自治消息数据表;
[0013]4)从交易自治消息数据表中依次读取交易自治消息Tx
information
,利用交易自治消息解码算法Algorithm
code_recognition
对上述交易自治消息Tx
information
进行解码,得到解码消息Information
decode
;之后将解码信息Information
decode
作为特征插入交易自治消息数据表;
[0014]5)通过对上述解码消息Information
decode
进行特征提取和识别,将解码消息Information
decode
进行清洗,并将被成功解码的解码信息Information
decode
的可解码标记Sign
decode
标记为1,其它解码消息的可解码标记Sign
decode
标记为0,并将上述可解码标记Sign
decode
作为特征插入交易自治消息数据表;
[0015]6)利用基于交易地址关联分析的消息融合算法Algorithm
address_association
对成功解码的交易自治消息Information
decode
进行可融合判断并将可融合的交易自治消息Information
decode
进行融合,形成融合后消息Information
related

[0016]7)从融合后消息Information
related
中提取出融合前消息序号info
id
,并构建交易自治消息融合消息数据表。
[0017]在步骤1)中,所述搭建比特币客户端,将原始区块流数据同步到本地;然后对原始区块流数据进行解析和结构化处理,得到比特币结构化数据;之后从比特币结构化数据获得每笔交易输出脚本的具体方法如下:
[0018]搭建比特币客户端Bitcoin Core,将原始区块流数据Dt同步到本地;通过对原始区块流数据Dt进行解析和结构化处理,得到比特币结构化数据St;其中原始区块流数据Dt表示比特币系统截止到t时刻的所有区块数据;比特币结构化数据St是将t时刻之前的区块数据经过处理后得到的,包括区块大小BTC_Block
size
、交易列表Tx_List;之后从比特币结构化数据St中查找交易列表Tx_List来输出数组Outputs中的Script字段,最终获得每笔交易输出脚本
[0019]在步骤2)中,所述利用交易脚本验证算法Algorithm
test
提取交易自治消息的具体方法如下:
[0020]201)将交易输出脚本从字符串格式转化为二进制字节流Scirpt
bytearray

[0021]202)初始化一个空的栈数据结构;
[0022]203)从二进制字节流Scirpt
bytearray
中读取一个字节,并将该字节从二进制字节流Scirpt
bytearray
中删除;
[0023]204)将该字节转化为比特币操作码OP_code;
[0024]205)将比特币操作码OP_code放入栈中;
[0025]206)获取栈顶比特币操作码OP_code,并依照栈顶比特币操作码OP_code对栈进行操作;
[0026]207)若该栈顶比特币操作码OP_code存在后续输入参数,则从二进制字节流Scirpt
bytearray
读取相应的字节数Bytes;
[0027]208)将字节数Bytes放入栈中;
[0028]209)重复步骤203)到步骤208),直到二进制字节流Scirpt
bytearray
为空;
[0029]210)验证栈顶元素,若栈顶元素为Boolean类型的True,则交易输出脚本验证通过;若栈顶元素为Boolean类型的False,则交易输出脚本验证失败;若栈顶元素不是
Boolean类型,则为提取到的交易自治消息Tx
information
,这些消息依旧会被留存在区块链上,相应未交易的货币会转移到交易生成方手中。
[003本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种比特币交易自治消息提取及解析方法,其特征在于:所述比特币交易自治消息提取及解析方法包括按顺序进行的下列步骤:1)搭建比特币客户端,将原始区块流数据同步到本地;然后对原始区块流数据进行解析和结构化处理,得到比特币结构化数据;之后从比特币结构化数据获得每笔交易输出脚本;2)利用交易脚本验证算法Algorithm
test
验证上述交易输出脚本的有效性,如验证通过表明交易是真实有效的,不包含交易自治消息;若验证失败,则返回结果为交易自治消息Tx
information
;3)从上述交易自治消息Tx
information
中提取区块链特征,然后利用上述交易自治消息和区块链特征构建交易自治消息数据表;4)从交易自治消息数据表中依次读取交易自治消息Tx
information
,利用交易自治消息解码算法Algorithm
code_recognition
对上述交易自治消息Tx
information
进行解码,得到解码消息Information
decode
;之后将解码信息Information
decode
作为特征插入交易自治消息数据表;5)通过对上述解码消息Information
decode
进行特征提取和识别,将解码消息Information
decode
进行清洗,并将被成功解码的解码信息Information
decode
的可解码标记Sign
decode
标记为1,其它解码消息的可解码标记Sign
decode
标记为0,并将上述可解码标记Sign
decode
作为特征插入交易自治消息数据表;6)利用基于交易地址关联分析的消息融合算法Algorithm
address_association
对成功解码的交易自治消息Information
decode
进行可融合判断并将可融合的交易自治消息Information
decode
进行融合,形成融合后消息Information
related
;7)从融合后消息Information
related
中提取出融合前消息序号info
id
,并构建交易自治消息融合消息数据表。2.根据权利要求1所述的比特币交易自治消息提取及解析方法,其特征在于:在步骤1)中,所述搭建比特币客户端,将原始区块流数据同步到本地;然后对原始区块流数据进行解析和结构化处理,得到比特币结构化数据;之后从比特币结构化数据获得每笔交易输出脚本的具体方法如下:搭建比特币客户端Bitcoin Core,将原始区块流数据Dt同步到本地;通过对原始区块流数据Dt进行解析和结构化处理,得到比特币结构化数据St;其中原始区块流数据Dt表示比特币系统截止到t时刻的所有区块数据;比特币结构化数据St是将t时刻之前的区块数据经过处理后得到的,包括区块大小BTC_Block
size
、交易列表Tx_List;之后从比特币结构化数据St中查找交易列表Tx_List来输出数组Outputs中的Script字段,最终获得每笔交易输出脚本3.根据权利要求1所述的比特币交易自治消息提取及解析方法,其特征在于:在步骤2)中,所述利用交易脚本验证算法Algorithm
test
提取交易自治消息的具体方法如下:201)将交易输出脚本从字符串格式转化为二进制字节流Scirpt
bytearray
;202)初始化一个空的栈数据结构;203)从二进制字节流Scirpt
bytearray
中读取一个字节,并将该字节从二进制字节流Scirpt
bytearray
中删除;
204)将该字节转化为比特币操作码OP_code;205)将比特币操作码OP_code放入栈中;206)获取栈顶比特币操作码OP_code,并依照栈顶比特币操作码OP_code对栈进行操作;207)若该栈顶比特币操作码OP_code存在后续输入参数,则从二进制字节流Scirpt
bytearray
读取相应的字节数Bytes;208)将字节数Bytes放入栈中;209)重复步骤203)到步骤208),直到二进制字节流Scirpt
bytearray
为空;210)验证栈顶元素,若栈顶元素为Boolean类型的True,则交易输出脚本验证通过;若栈顶元素为Boolean类型的False,则交易输出脚本验证失败;若栈顶元素不是Boolean类型,则为提取到的交易自治消息Tx
information
,这些消息依旧会被留存在区块链上,相应未交易的货币会转移到交易生成方手中。4.根据权利要求1所述的比特币交易自治消息提取及解析方法,其特征在于:在步骤3)中,所述从上述交易自治消息Tx
information
中提取区块链特征,然后利用上述交易自治消息和区块链特征构建交易自治消息数据表的具体方法如下:从上述交易自治消息Tx
information
中提取区块链特征:序号Block
id
、区块哈希Block
hash
,交易版本号Block
version
、区块高度Block
number
、区块产生时间Block
timestamp
、交易哈希Block
this_txhash
、输入脚本交易哈希Block
input_txhash
、输入金额Block
input_value
、输入地址Block
input_address
、交易费Block
fee
、输出脚本Block
output_script_asm
、ASCII脚本Block
output_script_asc
...

【专利技术属性】
技术研发人员:王劲松赵泽宁
申请(专利权)人:天津理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1