1.面向金融大数据的多叉树结构区块链集成优化存储方法,其特征在于,其步骤为:步骤1构建多叉树结构区块链集成优化模型;
步骤2构建基于Merkle树的私有链区块;
步骤3构建基于Merkle Patircia树的联盟链区块;
步骤4建立区块链的通信共识机制;
其中所述建立区块链的通信共识机制包括:
步骤4‑1数据层混沌加密机制:
确定性混沌离散时间动力系统,设置混沌映射函数f:Sxn—>Sxn+1是一个混沌映射,表示将当前状态Xn映射到下一个状态Xn+1;公式如下:Xn+1=f(Xn)
Xn∈S,n=0,1,2,……,为系统状态,X0为系统的初始状态:
H(Xn|X0)=0
把S分成m个相互不相交的状态,其中β表示划分的区间:
β={β1,β2,β3,…,βm}
因为在β划分的每个区间的Xn都不相等,这样就生成一组m进制的随机序列,产生函数f的最大变化的区间定义为生成划分,则且
βi表示β划分的第i个区间,βj表示β划分的第j个区间;
采用分段线性混沌映射函数生成非记忆离散信息源的生成划分,分段线性混沌映射函数如下:其中,表达式中的参数B的取值决定整个系统状态的随机质量,其中A是一个标量值;在该分段函数中,在混沌状态中确定一个生成非记忆离散信息源的生成划分为β={[‑A,0),[0,A]},系统由此生成一个随机序列;
步骤4‑2网络层区块通信模式:
在网络层需要进行网络的组网方式和区块链节点之间的通信,通过可容忍单点故障的P2P协议作为网络传输协议;为每个私有链上的节点分配一个属于自己的散列块,每个节点管理自己的散列块,所有的散列块组合成一个散列表,私有链上的所有节点共同维护这个散列表,形成基于全分布式结构化拓扑的网络通信结构;
对每个私有链上节点的IP地址进行Hash后得到该节点的节点值,将节点按照节点值从小到大构成一个Chord环,根据节点值获取每个节点与下一个邻近节点之间的距离,依此获得每个节点需要负责的值区间,提取每个节点上的关键字,通过对关键字进行Hash,得到的Hash值按照上述每个节点负责的区间进行分配,使每一项资源的存储信息都存储在一个节点上;当搜索一项资源时,先对其关键字进行Hash,得到的值与当前节点的值区间表进行比较后获得资源的索引信息最大概率存在的节点,然后查询该节点获取资源的索引,根据索引找到资源所在的节点,并建立通信;
联盟链以主实体作为超级结点,子实体作为普通结点;超级结点之间先构成一个高速转发层,这些超级结点和所负责的普通结点再构成若干层次;系统中其他部分结点的信息存储在各个超级结点上,发现算法在超级结点之间转发,超级结点再将查询请求转发给适当的叶子结点,形成基于半分布式拓扑结构的网络通信结构;
步骤4‑3共识层区块共识算法
去中心化的多叉树区块链由多方共同管理维护,在建立区块间的通信后,在共识层建立区块间的共识算法;
私有链共识:每个节点设置三种状态Follower、Candidate、Leader,通过领导人选举、日志复制,在保证安全性的基础上形成基于RAFT共识的节点间的共识机制;开始时将所有节点设为follower状态,如果它们收不到leader发送的消息,其中的1个节点将变成candidate状态,candidate节点给其他节点发送请求投票消息,其他follower节点将会返回给candidate节点消息,表示同意,如果收到一半以上节点同意,这个节点成为leader状态;客户端发一个消息给leader节点,leader节点会加一个实体到日志中,leader把这个实体广播到其他follower节点,当leader节点收到大于预定阈值数目节点回复同意的时候,leader提交这个实体,然后广播给其他follower节点,follower节点收到提交消息,本地提交,该过程结束;
联盟链共识:从预准备、准备和确认三个阶段进行,预准备阶段和准备阶段把在同一个视图里发送的请求排好序,让各个副本节点都认可这个序列,然后照序执行,准备阶段和确认阶段确保已经达到确认状态的请求即使在发生视图变化后在新的视图里依然保持原有的序列不变,形成基于PBFT共识的节点间的共识机制;取一个副本作为主节点,其他的副本作为备份,用户端向主节点发送使用服务操作的请求,主节点通过广播将请求发送给其他副本,所有副本执行请求并将结果发回用户端,用户端等待F+1个不同副本节点发回相同的结果,将其作为整个操作的最终结果。
2.根据权利要求1所述面向金融大数据的多叉树结构区块链集成优化存储方法,其特征在于:所述的步骤1中,具体方法为:
步骤1‑1:构建私有链集成存储模型:
构建实体的内部私有链:在实体的内部私有链网络上,根据实体的交易频率设定的周期,每个周期内该实体发生的交易为一个独立节点,把从实体采集、认证及更新的交易信息按日期对其进行分类,通过哈希算法将所有的交易数据进行哈希运算生成相应的唯一的Hash值和密钥对及时间戳,存储在每一个交易节点的本地账本中,通过网络广播和共识机制验证,单个实体内部私有链网络的每个节点将记录所有交易类型及其对应的交易信息;
步骤1‑2构建联盟链集成存储模型:
构建实体间的联盟链,所有实体通过协议达成统一的区块链技术标准和统一的行业准则;基于其达成的协议,在不同的实体间构建联盟链;联盟链上的每一家实体都作为一个独立的区块链大节点,其内部私有链网络互相连接共同组成联盟链网络;实体采集认证的交易信息,在内部私有区块链认证通过后,再通过联盟区块链分布存储在每一个实体节点的本地账本中,基于此整个区块链联盟的所有实体节点中将存储每个实体采集的交易信息,实现实体间交易数据信息的互联共享。
3.根据权利要求1所述面向金融大数据的多叉树结构区块链集成优化存储方法,其特征在于:所述的步骤2中,具体方法为:
步骤2‑1区块头设计:
区块头由上个区块哈希值、时间戳、随机数和交易的根哈希、“交易类型”索引表、“可疑交易”索引表组成,通过将上个区块哈希、根哈希和随机数信息进行哈希算法生成当前区块的哈希值,每个区块的前块哈希指针按照时间顺序链接构成整个区块的链接关系;
步骤2‑2区块体设计:
基于步骤2‑1,设计区块体存储全部的交易信息,每一笔交易信息是通过哈希函数把交易数据转换成一串唯一的哈希值存储在Merkle树的叶子结点上;通过哈希函数逐层生成上层节点的哈希值,每个数据集对应一个唯一的哈希根,如果底层交易记录发生篡改,Merkle树根的值也随之变化;
在交易数据存入区块前,首先,统计实体开展的全部交易类型并统一编号,在交易数据存入区块的同时在“交易类型”索引表中添加交易的交易类型信息,在数据追溯查询时,“交易类型”索引表用于查询需要追溯的交易数据的交易类型;
其次,制定可疑交易规则,在数据存入区块时,根据可疑交易规则对交易进行判断是否属于可疑交易;若属于可疑交易,计算该交易的Hash值后,把Hash值存入Merkle树上的同时也把Hash值存入区块头的“可疑交易”索引表中,在进行数据追溯查询时,从“可疑交易”索引表开始检索;若不属于可疑交易,计算该交易的Hash值后,直接把Hash值存入Merkle树上。
4.根据权利要求1所述面向金融大数据的多叉树结构区块链集成优化存储方法,其特征在于:所述的步骤3中,具体方法为:
在联盟链中建立三个levelDB数据库,分别为BlockDB、StateDB和ExtrasDB;其中,BlockDB存储区块头和交易记录,StateDB存储实体的状态数据,ExtrasDB存储实体间往来签订的合同信息,基于此构建联盟链的底层数据库;每个区块都包含整个状态树的根哈希,其中状态树以周期T进行更新。