一种分区的区块链网络及其实现分区存储的方法技术

技术编号:17407212 阅读:23 留言:0更新日期:2018-03-07 04:59
本申请公开了一种分区的区块链网络,由多个节点组成;根据各节点对不同交易数据的可见权限,将部分或全部节点划分在一个或多个分区内;同一分区内部对于交易数据完全可见,不同分区之间对于交易数据不可见;又根据各节点参与共识过程的权限对全部节点分类为全局共识节点、分区共识节点、同步节点;全局共识节点以区块链数据结构存储全网发生的所有通过验证的交易数据,分区共识节点和同步节点均以区块链数据结构存储所在分区发生的所有通过验证的交易数据以及其他分区发生的所有通过验证的交易数据的交易指纹。本申请通过对区块链网络中的各节点进行分区和分类,限制了通过验证的交易数据的存储节点范围,提高了数据隐私保护效果。

A partitioned block chain network and its implementation of partition storage

The invention discloses a partition block chain network, composed of a plurality of nodes; each node according to the visible permissions for different transaction data, some or all nodes in one or more partitions; the same partition for internal transaction data completely visible between different partitions for transaction data is not visible; according to each node in the consensus process permissions on all nodes classified as a global consensus on the node, node, node partition consensus synchronization; global consensus node to store the block chain data structure of whole network occurred all through the transaction data to verify the partition node and the nodes are synchronized with the consensus blocks chain data structure partition where all occurred through the transaction data validation and other partitions all through the transaction transaction data to verify the fingerprint. By dividing and classifying each node in the block chain network, this application restricts the storage node range of the verified transaction data and improves the data privacy protection effect.

【技术实现步骤摘要】
一种分区的区块链网络及其实现分区存储的方法
本申请涉及一种区块链(Blockchain)技术,特别是涉及其中对通过验证的交易数据/通过验证的新区块的存储方案。
技术介绍
2016年10月18日工业和信息化部发布的《中国区块链技术和应用发展白皮书》中,将区块链定义为一种无须中介参与、亦能在互不信任或弱信任的参与者之间维系一套不可篡改的账本记录的技术。首先,区块链是一种以区块(block)为单位的链(chain)状数据结构,每一个区块都与前续区块通过密码学证明的方式链接在一起,如图1所示。其次,区块链是一种全网共享的分布式账本(distributedledger)。许多场景中,区块链与分布式账本这两个技术术语具有相同含义。典型地,区块链技术被P2P网络(peer-to-peernetwork)的全部或部分节点用来根据某种共识算法验证新的区块,通过验证的新区块被新增到区块链数据结构的末尾。采用区块链技术的P2P网络就被称为区块链网络。共识是指多方参与的节点在预设规则下,通过多个节点交互对某些数据、行为或流程达成一致的过程。共识机制是定义共识过程的算法、协议和规则。请参阅图2,这是现有的区块链网络一,其中的每个节点均可以参与共识过程,因此每个节点都是共识节点。这种区块链网络的典型代表是一些公有链(publicblockchain),例如比特币(bitcoin)所使用的区块链网络。请参阅图3,这是现有的区块链网络一实现共识的方法,包括如下步骤。步骤301:一个或多个节点将等待确认的交易数据广播给其他节点。步骤302:收到等待确认的交易数据的部分或全部节点将若干等待确认的交易数据打包为一个候选区块,通常是将一段时间内等待确认的交易数据进行打包。打包好的候选区块再广播给其他节点。步骤303:收到候选区块的部分或全部节点采用共识算法对候选区块进行验证。现有的区块链网络一中,每个节点都以区块链数据结构记录存储全网发生的所有交易数据,即每个节点都存储一套完整、一致的账本记录。请参阅图4,这是现有的区块链网络一实现存储的方法,包括如下步骤。步骤401:如果候选区块通过共识算法的验证,就成为合法的新区块,各节点均将合法的新区块添加到自身存储的区块链数据结构的末尾。步骤402:如果候选区块未通过共识算法的验证,就未成为合法的新区块,各节点在自身存储的区块链数据结构的末尾均不添加该候选区块。所述步骤401可以无缝地衔接在步骤303之后。请参阅图5,这是现有的区块链网络二。其中的节点分为两类:可以参与共识过程的节点称为共识节点,不可以参与共识过程的节点称为同步节点。这种区块链网络的典型代表是一些联盟链(Consortiumblockchain)或私有链(Privateblockchain)。请参阅图6,这是现有的区块链网络二实现共识的方法,包括如下步骤。步骤601:将区块链网络中的各节点或者确定为共识节点,或者确定为同步节点。换而言之,区块链网络中的任意节点必然属于以上两类中的一类。步骤602:一个或多个节点将等待确认的交易数据广播给共识节点。步骤603:收到等待确认的交易数据的部分或全部共识节点将若干等待确认的交易数据打包为一个候选区块,通常是将一段时间内等待确认的交易数据进行打包。打包好的候选区块再广播给其他共识节点。步骤604:收到候选区块的部分或全部共识节点采用共识算法对候选区块进行验证。现有的区块链网络二中,无论是共识节点还是同步节点,每个节点都以区块链数据结构存储全网发生的所有交易数据,即每个节点都存储一套完整、一致的账本记录。请参阅图7,这是现有的区块链网络二实现存储的方法,包括如下步骤。步骤701:如果候选区块通过共识算法的验证,就成为合法的新区块。该新区块被广播给各个同步节点或广播给全网各节点,各个共识节点和同步节点均将该新区块添加到自身存储的区块链数据结构的末尾。步骤702:如果候选区块未通过共识算法的验证,就未成为合法的新区块,各个共识节点或同步节点在自身存储的区块链数据结构的末尾均不添加该候选区块。所述步骤701可以无缝地衔接在步骤604之后。请参阅图8,这是现有的区块链网络一或区块链网络二实现查询的方法,包括如下步骤。步骤801:区块链网络中的每个节点均存储有全部历史交易数据的交易指纹。交易指纹可以保存在各节点存储的区块链数据结构的每个区块内,也可以保存在区块链数据结构以外的各节点自身存储器中。该步骤例如是在步骤302中、或步骤603中将若干等待确认的交易数据打包为候选区块时,由执行打包的部分或全部节点对每一笔等待确认的交易数据计算出对应的交易指纹,并打包在候选区块内。或者,该步骤例如是在步骤401中、或步骤701中将合法的新区块添加到区块链数据结构的末尾时,由执行存储的各节点在区块链数据结构以外存储该新区块中的每一笔交易数据的交易指纹。步骤802:区块链网络中的任意节点接收到对历史交易数据的查询请求,所述查询请求中至少包括待查询历史交易数据的交易指纹。步骤803:该节点将查询请求中的交易指纹与自身存储的所有历史交易数据的交易指纹进行比较。步骤804:如果找到相同的交易指纹,表明查询请求中的交易指纹属于某一笔历史交易数据,返回查询成功。此时可选地展示出该笔历史交易数据的部分或全部内容。步骤805:如果未找到相同的交易指纹,表明查询请求中的交易指纹不属于任何历史交易数据,返回查询失败。所述交易指纹是指由交易数据根据加密算法得到的指纹值,不能反向推导出交易数据,仅能用来验证交易数据是否存在以及是否被篡改。优选地,所述加密算法应使得不同的交易数据对应于不同的交易指纹,即不同的交易数据加密后绝不可能产生相同的交易指纹。次优选地,所述加密算法允许极小概率下发生不同的交易数据对应于相同的交易指纹的情况。例如,哈希函数(Hashfuction,也称散列函数)就属于极小概率下可能发生不同的明文对应于相同密文的情况。在区块链网络中,任意节点在将等待确认的交易数据广播并打包为候选区块之前,都要先计算等待确认的交易数据的哈希值是否与账本记录中的历史交易数据的哈希值相重合,如果有重合情况,则判定等待确认的交易数据不合法,由此保证了交易数据与哈希值之间的一一对应关系。上述两种现有的区块链网络中,传输和存储的交易数据都是公开可见的,仅通过“伪匿名”的方式对交易双方进行一定的隐私保护。上述两种现有的区块链网络在进行共识过程中,候选区块会广播给至少是各个共识节点,因此候选区块中所有等待确认的交易数据对于各个共识节点都是可见的。上述两种现有的区块链网络在进行存储过程中,合法的新区块会广播给各个节点,因此新区块中所有交易数据对于各个节点都是可见的。上述两种现有的区块链网络在进行查询过程中,各个节点可在自身存储的全部历史交易数据的交易指纹中对查询请求独立进行查询操作,因此历史交易数据对于各个节点都是可见的。在许多应用场景中,无论是等待确认的交易数据、通过共识算法验证的交易数据,还是历史交易数据都可能包含大量的商业机密和利益的,这些交易数据都不希望暴露给不相关的节点。为了符合各类业务规则和监管要求,也为了提供良好的数据隐私保护,一些改进的区块链技术被提出。有一种现有的区块链网络引入了轻节点(lightclient)的概念。除轻本文档来自技高网...
一种分区的区块链网络及其实现分区存储的方法

【技术保护点】
一种分区的区块链网络,由多个节点组成;其特征是,根据各节点对不同交易数据的可见权限,将部分或全部节点划分在一个或多个分区内;同一分区内部对于交易数据完全可见,不同分区之间对于交易数据不可见;又根据各节点参与共识过程的权限对全部节点分类:能参与所有分区的共识过程的节点为全局共识节点,仅能参与所在分区的共识过程的节点为分区共识节点,不能参与任何共识过程的节点为同步节点;全局共识节点以区块链数据结构存储全网发生的所有通过验证的交易数据,分区共识节点和同步节点均以区块链数据结构存储所在分区发生的所有通过验证的交易数据以及其他分区发生的所有通过验证的交易数据的交易指纹。

【技术特征摘要】
1.一种分区的区块链网络,由多个节点组成;其特征是,根据各节点对不同交易数据的可见权限,将部分或全部节点划分在一个或多个分区内;同一分区内部对于交易数据完全可见,不同分区之间对于交易数据不可见;又根据各节点参与共识过程的权限对全部节点分类:能参与所有分区的共识过程的节点为全局共识节点,仅能参与所在分区的共识过程的节点为分区共识节点,不能参与任何共识过程的节点为同步节点;全局共识节点以区块链数据结构存储全网发生的所有通过验证的交易数据,分区共识节点和同步节点均以区块链数据结构存储所在分区发生的所有通过验证的交易数据以及其他分区发生的所有通过验证的交易数据的交易指纹。2.根据权利要求1所述的分区的区块链网络,其特征是,全局共识节点以区块链数据结构存储全网发生的所有通过验证的新区块,分区共识节点和同步节点均以区块链数据结构存储所在分区发生的所有通过验证的新区块以及其他分区发生的所有通过验证的新区块的变形区块。3.根据权利要求2所述的分区的区块链网络,其特征是,对某个分区共识节点或同步节点而言,当通过验证的新区块中的交易数据是该节点所在分区的交易数据,即通过验证的新区块是由该节点所在分区打包为候选区块并通过共识算法验证的,那么该节点存储通过验证的新区块;当通过验证的...

【专利技术属性】
技术研发人员:李俊
申请(专利权)人:上海分布信息科技有限公司
类型:发明
国别省市:上海,31

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

1