本发明属于计算机领域领域,具体涉及一种区块链系统的可视化方法及装置。
背景技术:
区块链技术具有不依赖第三方管理机构或设施、相对传统分布式技术更安全的优势,被广泛应用于各行各业。
然而区块链技术的无法实体化和用户无法直观感受的特点,妨碍了区块链技术的快速应用和推广,并且出现了很多假借区块链技术进行炒作的情况。
因此需要提供一种方案来解决上述问题。
技术实现要素:
本发明的目的在于提供一种区块链系统的可视化方法及装置,可以将各区块链用户相关的数据存储位置安全可靠的可视化呈现给用户,以便用户直观的了解到自己相关业务数据及数据副本存储在区块链系统的位置。
为实现上述目的,本发明采取的技术方案为:提供一种区块链系统的可视化方法,包括:
建立区块链系统的拓扑模型;所述区块链系统的拓扑模型由应用服务单元、编码服务单元、节点模块以及分布于所述节点模块中的区块构成,所述区块用于记录区块链系统的动作记录,每个区块的记录内容包括本区块地址映射、上一区块的哈希指针、编码服务单元创建的编码表副本和数据内容;
所述编码服务单元创建和管理编码表,并将所述编码表以副本形式存储到指定区块;
当前状态下区块可视化信息的生成;存储业务流程记录的区块,向编码服务单元发送所述区块的id信息;所述编码服务单元接收到所述区块的id信息后,首先确认正确的编码表信息;所述编码服务单元根据接收到的所述区块的id信息从正确的编码表信息中查询所述区块的id信息,验证后作为当前状态下的区块可视化信息;
对当前状态下所述区块可视化信息进行时空变换和重构;
所述编码服务单元将当前状态下的所述区块可视化信息发送给所述应用服务单元,用于向应用系统提供区块链系统的可视化信息服务。
进一步的,所述编码服务单元创建和管理编码表,并将所述编码表以副本形式存储到指定区块的方法,包括,
创建含有时间戳并且不可逆单增特性的节点编号方法;
在所述编码服务单元中,创建编码表,所述编码表内容包括节点编号、地理地址、物理地址、ip地址、区块id、验证信息;所述验证信息是对所述编码表中的节点编号、地理地址、物理地址、ip地址、区块id进行哈希变换;
编码服务单元将所述编码表向系统中所有节点广播,并将副本保存到指定的区块中。
进一步的,所述含有时间戳并且不可逆单增特性的节点编号方法包括,
所述节点编号的源信息包括节点接入区块链网络的时间戳t、节点ip地址
采用哈希算法对所述节点编号
其中
记系统中已有的i个节点编号为
其中j为累加的计数参数,1≤j≤i;
进一步的,所述编码服务单元将所述编码表向系统中所有节点广播,并将副本保存到指定的区块中的方法包括,
所述编码服务单元先向系统中所有c个节点广播编码表,并测得所述编码服务单元到各节点的数据传输速率
m的取值确定之后,从中随机选取(m-1)个节点,将编码表副本存储到(m-1)个节点的所有区块中,保留了一个中转节点u。
进一步的,所述m的取值根据数据传输速率、数量以及区域分布性三方面因素综合确定,数据传输速率应以不影响区块链系统中用户业务体验为准;区域分布不过于集中。
进一步的,所述编码服务单元接收到所述区块的id信息后确认正确的编码表信息的方法,包括:
所述编码服务单元从所有存储编码表副本的区块中读取编码表,并与自身的编码表正本比对,当编码表副本中与所述编码表正本一致的副本数量占51%以上时,所述编码表正本即正确的编码表信息;
当所述编码表副本中与所述编码表正本一致的副本数量占比小于51%时,所述编码服务单元将解析编码表正本和编码表副本的最新记录时间,若所述编码表正本的最新记录时间晚于所有的编码表副本最新记录时间,则所述编码服务单元用编码表副本的记录覆盖编码表正本的记录,并以覆盖后的编码表正本作为正确的编码表信息,若编码表正本的最新记录时间早于所有的编码表副本最新记录时间,则此次可视化处理停止,区块的可视化信息仍采用上一状态的信息。
进一步的,对当前状态下所述区块可视化信息进行时空变换和重构的方法,包括,
将当前状态下的区块可视化信息发送给所述应用服务单元前,对当前可视化信息进行时空变换,所述对当前可视化信息进行时空变换的方法包括,
记当前状态下可视化信息的区块链为{
将
将当前状态下的区块可视化信息重构,按照时空变换前的区块链数据顺序,确定时空变换后区块的顺序,记变换后区块的id号为
将变换后的区块重构为链,记变换后第q个区块id号为
则,变换后的第(q+1)个区块
一种区块链系统的可视化装置,包括:
区块,节点模块,编码服务单元,应用服务单元;
所述区块,用于存储数据,分布在所述节点模块中;所述区块中的数据包括本区块地址映射、构成区块链系统的上一区块哈希指针、编码表副本、数据内容;
所述编码服务单元,用于以编码表的形式创建、管理和维护各区块所属节点的实体地址以及各区块的地址映射,并将中心化的编码表以编码表副本形式广播到指定的区块;
应用服务单元,一方面用于从所述编码服务单元中获取所述区块的可视化信息,另一方面用于向应用系统提供区块链系统可视化服务。
进一步的,所述节点模块在区块链系统中能够随所述区块链系统的运行灵活地接入或退出。
与现有技术相比,本发明实施例至少具有以下有益效果:
1.本发明的区块链系统的可视化方法,通过不仅能够将区块链中与用户区块关联的区块通过可验证的方式展现,将区块链系统的可视化信息呈现到数据展示网页界面等场合,实现区块链系统的可视化;同时在区块提供区块可视化服务前进行了区块可视化信息的时空变换和重构处理作为区块链可视化的安全机制,确保区块链系统的可信、安全的可视化。
2.本发明实施例包括“创建含有时间戳并且不可逆单增特性的节点编号规则”等技术方案,可通过建立含有时间戳并且不可逆单增特性的节点编号规则后,实现了根据节点编号查询节点的编码信息,却不能通过节点编号解析出节点的编码信息,实现了记录号编码规则的不可逆,无法篡改记录,加强了安全性。
3.本发明实施例包括“将当前状态下的区块可视化信息发送给应用服务单元前,对当前可视化信息进行时空变换”“将当前状态下的区块可视化信息重构”以及“将变换后的区块重构为链”的技术方案,完成了区块可视化信息的时空变换,这样即使信息被劫持,也无法改变原始数据和记录,进一步确保了数据的安全性。
附图说明
图1本发明所述的一种区块链系统的可视化装置结构图;
图2本发明所述的一种区块链系统的可视化装置应用示例图;
图3本发明所述的一种区块链系统的可视化方法流程图;
图4本发明所述一种区块链系统的可视化方法实施例系统的拓扑结构图;
图5本发明所述编码表副本存储区块的选取流程图;
图6本发明所述区块可视化信息的时空变换和重构流程图。
具体实施方式
为了更清楚地描述本方案,下面将结合说明书附图和具体实施例,对本发明技术方案进行清楚、完整的描述。
本申请的发明人经过研究发现,区块链技术对于普通用户来讲,是看不到摸不着也无法直观化展现。传统行业的营销人员经常借区块链技术的名义大肆营销,很多用户上当受骗,进而也阻碍了区块链技术的快速应用和推广。
鉴于此,本发明提供了一种区块链系统的可视化装置,可以将各区块链用户相关的数据存储位置安全可靠的可视化呈现给用户,以便用户直观的了解到自己相关业务数据及数据副本存储在区块链系统的位置。参照图1,所述区块链系统的可视化装置包括:
区块10,节点模块20,编码服务单元30,应用服务单元40。
所述区块10,是区块链系统中用来存储数据的基本单元,分布在区块链系统的各个节点模块20中,本发明所述的区块链系统的可视化装置,区块中的数据包括:本区块地址映射、构成区块链系统的上一区块哈希指针、编码表副本、数据内容。
需要说明的是,所述本区块地址映射,是由编码服务单元30创建并管理的编码表中的一条编码记录,用于展现区块的可视化信息。所述上一区块哈希指针,存储着与本区块相连接的上一区块的位置以及数据内容的哈希值。所述编码表副本,是由编码服务单元30创建的编码表存储到指定区块的副本。所述数据内容,即区块链系统的业务数据。
所述节点模块20,是区块链网络中用于运行区块链系统的有限个实体节点。需要说明的是,所述节点模块20在区块链系统中可以随着所述区块链系统的运行而灵活地接入或退出,其形式可以是服务器或其它具有计算能力的节点。
所述编码服务单元30,用于以编码表的形式创建、管理和维护各区块所属节点的实体地址以及各区块的地址映射,并将中心化的编码表以编码表副本形式广播到指定的区块;
应用服务单元40一方面用于从编码服务单元30中获取区块的可视化信息,另一方面用于以数据流或接口的形式向应用系统提供区块链系统可视化服务。
需要说明的是,应用服务单元40向应用系统提供区块链系统可视化服务的具体接口形式可以是api(应用程序编程接口)、sdk(软件开发工具包)或遵循约定好的数据协议。
应用示例:
参照图2,区块链系统中具有多个区块10,所述区块分布在节点模块20的存储空间中,节点模块20与编码服务单元30之间具有通信连接,可以交互数据;编码服务单元30以编码表的形式创建、管理和维护各区块所属节点的实体地址以及各区块的地址映射,一方面将中心化的编码表以编码表副本形式广播到指定的区块,另一方面对当前状态区块链系统的可视化信息进行时空变换和重构,以确保区块链系统的安全;编码服务单元30与应用服务单元40之间具有通信连接,可以交互数据;应用服务单元40从编码服务单元30中获取区块链系统的可视化信息,并以数据流或接口的形式向应用系统50提供区块链的可视化信息,实现向区块链系统用户展示可视化信息的目的。
需要说明的是,应用服务单元40在向应用系统50提供用户相关的区块链可视化信息时,可以是由应用系统50请求,应用服务单元40响应请求而给出所述的用户相关的区块链可视化信息;也可以是无需应用系统50请求,应用服务单元40主动向应用系统50发送所述的用户相关的区块链可视化信息。
基于以上给出的区块链系统可视化装置,本发明还公开了一种区块链系统的可视化方法,参照图3,作为应用示例,具体处理步骤包括:
s1建立本发明所述区块链系统的拓扑模型;
如图4所示,本发明所述区块链系统的拓扑模型由应用服务单元40、编码服务单元30以及分布于有限个节点模块20的多个区块10构成。
其中,区块10用于记录区块链系统的动作记录,每个区块的记录内容包括本区块地址映射、上一区块的哈希指针、编码服务所创建的编码表副本和数据内容;
节点模块20是区块链网络中用于运行区块链系统的有限个实体节点;
编码服务单元30用于以编码表的形式创建、管理和维护各区块所属节点的实体地址以及各区块的地址映射,并将中心化的编码表以编码表副本形式广播到指定的区块;
应用服务单元40用于以数据流或接口的形式向应用系统50提供可视化信息接口服务。
s2编码服务单元30创建和管理编码表,并将编码表以副本形式广播到指定区块;
编码服务是将节点编号、地理地址、物理地址和ip地址,以及区块id进行统一编码,并以映射的方式生成存储记录的区块地址映射,其具体处理过程包括:
s201创建含有时间戳并且不可逆单增特性的节点编号规则;
为防止节点伪装攻击,本发明创建了一种不可逆单增的节点编号规则,具体如下:
节点编号
采用哈希算法对源信息进行加密:
其中
记系统中已有的i个节点编号为
其中j为累加的计数参数,1≤j≤i;
综上,便建立了含有时间戳的不可逆且具有单增特性的节点编号规则,这样就实现了根据节点编号查询节点的编码信息,却不能通过节点编号解析出节点的编码信息。
区块链的最大特点就是去中心化和共同记账,意图恶意篡改账本信息的行为因为无法确定账本所在的区块地址而无法篡改。而本发明所述的区块链系统可视化,理论上存在某一细微时间窗口下,使得某个环节的攻击行为获得数据存储区块的地址,可能会弱化区块链的安全性,使得相关区块同时篡改某条记录变得可能,采用s201所述的含有时间戳并且不可逆单增特性的节点编号规则后,实现了记录号编码规则的不可逆,无法篡改记录,加强了安全性。
s202在编码服务单元30中,创建编码表;
对于区块链系统的任意节点x,其编码表的内容包括:节点编号
所述节点编号
所述地理地址
所述验证信息
s203编码服务单元30将编码表向系统中所有节点广播,并将副本保存到指定的区块中;
编码服务单元30先向系统中所有c个节点广播编码表,并测得编码服务单元30到各节点的数据传输速率
m的取值应综合数据传输速率、数量以及区域分布性三方面因素考虑,数据传输速率应以不影响区块链系统中用户业务体验为准;区域分布不过于集中,即当系统中存在分布式的节点,那么指定的区块不能全部位于同一地理位置的节点;
在本实施例中,m的取值采用如下方法:
其中c是本发明所述区块链系统中节点的数量;
m取值确定之后,从中随机选取(m-1)个节点,将编码表副本存储到(m-1)个节点的所有区块中。
s3当前状态下区块可视化信息的生成;
当区块链系统中用户y发起了业务流程,根据现有区块链技术惯用手段,其业务流程记录会存储到区块链系统的多个区块的数据内容中,记这些区块的数量为w,其中第t个区块的id为
s301存储业务流程记录的区块,首先向编码服务单元30发送区块的id信息;
s302编码服务接收到区块id信息后,首先确认正确的编码表信息;
s3021编码服务单元30从所有存储编码表副本的区块中读取编码表,并与自身的编码表正本比对,当编码表副本中与正本一致的副本数量占51%以上时,此时编码表正本即正确的编码表信息;
s3022当编码表副本中与正本一致的副本数量占比小于51%时,编码服务单元30将解析编码表正本和副本的最新记录时间,若正本的最新记录时间晚于所有的副本最新记录时间,则编码服务单元30用副本的记录覆盖正本的记录,并以覆盖后的编码表正本作为正确的编码表信息。若正本的最新记录时间早于所有的副本最新记录时间,则此次可视化处理停止,区块的可视化信息仍采用上一状态的信息。
s303编码服务单元30根据接收到的区块id信息从正确的编码表信息中,查询所述区块id信息的节点编号、地理地址、物理地址、ip地址,验证后作为当前状态下的区块可视化信息;
编码服务单元30根据接收到的区块id信息从正确的编码表信息中,查询所述区块id信息的节点编号
若
若
s4区块可视化信息的时空变换和重构。
经过s1-s3步骤,可实现每一步操作和任意用户的业务流程记录的存储位置的详细信息可视化,为了确保区块可视化信息发送给应用服务单元40时的安全和不可逆,本发明将区块的可视化信息进行时空变换,即使信息被劫持,也无法改变原始数据和记录,具体处理过程如下:
s401将当前状态下的区块可视化信息发送给应用服务单元40前,对当前可视化信息进行时空变换;
在s203步骤的最后处理:“m取值确定之后,从中随机选取(m-1)个节点,将编码表副本存储到(m-1)个节点的所有区块中”。此时还保留了一个节点u,作为中转节点u,对当前状态的可视化信息进行区块空间变换,如图6所示:
记当前状态s下可视化信息的区块链为{
s4011中转节点u向区块
中转节点u向区块
s4012完成区块可视化信息的时空变换;
将
再将
最后将中转节点u中的数据块转存到
s402将当前状态下的区块可视化信息重构;
经过s401步骤的可视化信息时空变换后,将当前状态下的区块链打破了,还需要对区块链进行重构,使得区块重构成新的区块链。
因为可视化信息的时空变换前后,只是数据存储的区块变化了,而数据内容并没变。因此按照时空变换前的区块链数据顺序,确定时空变换后区块的顺序。记变换后区块的id号为
s403将变换后的区块重构为链;
区块链的重构即每一区块中上一区块哈希指针的重计算。
记变换后第q个区块id号为
则,变换后的第(q+1)个区块
综上,便可以将时空变换后的区块重构为新的区块链。
s5编码服务单元30将状态s下的区块可视化信息发送给应用服务单元40,用于向应用系统50提供区块链系统的可视化信息服务。
经过s4步骤区块可视化信息的时空变换和重构处理后,编码服务单元30将状态s下的区块可视化信息
应用示例:
本发明可通过应用服务单元40向第三方系统提供区块链可视化服务,编码服务单元30所创建的区块链可视化信息发送至应用服务单元40,所述应用服务单元以数据流、sdk或api的形式与第三方应用系统进行数据交互,可将区块链的可视化信息发送给第三方应用系统,用于将区块链系统的可视化信息呈现到数据展示网页界面等场合。
综上,便完成了本发明所述的一种区块链系统的可视化方法,本发明所述方法不仅将区块链中与用户区块关联的区块通过可验证的方式展现,并且在区块提供区块可视化服务前进行了区块可视化信息的时空变换和重构处理,作为区块链可视化的安全机制,确保区块链系统的可信、安全的可视化。
需要说明的是,以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改,等同替换、改进等,均应包含在本发明的保护范围之内。