CN110046894B - 一种基于纠删码的分组可重构区块链建立方法 - Google Patents

一种基于纠删码的分组可重构区块链建立方法 Download PDF

Info

Publication number
CN110046894B
CN110046894B CN201910319269.9A CN201910319269A CN110046894B CN 110046894 B CN110046894 B CN 110046894B CN 201910319269 A CN201910319269 A CN 201910319269A CN 110046894 B CN110046894 B CN 110046894B
Authority
CN
China
Prior art keywords
node
block
data
group
block chain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910319269.9A
Other languages
English (en)
Other versions
CN110046894A (zh
Inventor
廖丹
张尧
张良嵩
李慧
张明
李玉娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CHENGDU RESEARCH INSTITUTE OF UESTC
University of Electronic Science and Technology of China
Original Assignee
CHENGDU RESEARCH INSTITUTE OF UESTC
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CHENGDU RESEARCH INSTITUTE OF UESTC, University of Electronic Science and Technology of China filed Critical CHENGDU RESEARCH INSTITUTE OF UESTC
Priority to CN201910319269.9A priority Critical patent/CN110046894B/zh
Publication of CN110046894A publication Critical patent/CN110046894A/zh
Application granted granted Critical
Publication of CN110046894B publication Critical patent/CN110046894B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Technology Law (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于纠删码的分组可重构区块链建立方法。轻量型节点不再存储区块数据,而是存储编码数据切片。区块链系统拥有完整的功能,保持了区块链系统架构,没有降低系统的安全性。本发明中所提出的可重构分组,可部署于普通的区块链系统中,不影响系统的架构和功能。

Description

一种基于纠删码的分组可重构区块链建立方法
技术领域
本发明涉及区块链技术领域,具体涉及一种基于纠删码的分组可重构区块链建立方法。
背景技术
区块链技术,又称分布式账本技术区块链作为比特币的底层技术逐渐被人们熟知。区块链技术不是一种单一的新技术,而是多种现有技术融合的结果。这些技术巧妙地与数据库相结合,通过分散和信任的方式共同维护一个独特而可靠的数据库,形成了一种新的数据记录、传输、存储和表达方式。
区块链技术的核心是保证整个系统中的所有节点都保存和维护一个相同的防篡改的数据库,是一种Internet分布式数据库技术,传统数据信息的存储通常通过一个集中的数据中心来完成,区块链技术的区别在于系统中的任何人都可以参与数据中心的工作。区块链创新性地使用了块作为数据元素,将块通过索引信息连接成链。第一块是“创世块”,在区块链系统建立时创建,然后每一块按时间顺序记录价值交换信息,在一起形成一个记录集。块结构包含块头和块数据,块头链接前面的块,并确保整个区块链数据库的完整和一致。块数据中的数据记录验证价值交换信息。区块链技术采用分散的方法去除中心控制节点,采用分布式方法构建P2P自组织点对点网络。然后,区块链技术通过非对称密码验证机制维护数据信息的完整性、连续性和一致性。
区块链技术具有以下特点:
1.去中心化:区块链是一种分布式数据存储结构,没有中心节点,所有节点都保存全部的相同的区块信息,完全实现去中心化。对于特殊的应用场景,可以适当地采用弱中心化的管理节点,即中心节点不影响整个区块链结构的运行,比如弱中心化的监管机制;若从安全角度来说,弱中心化结构中的中心节点要满足对于区块链的安全不构成威胁,对用户隐私不构成威胁等。
2.不可篡改性:一方面,区块链中存储的交易信息每一条都有相对应的Hash值,由每一条记录的Hash值作为叶子节点生成二叉Merkle树,Merkle树的根节点(Hash值)保存在本区块的块头部分,区块头部除了当前区块的Merkle树的根节点,还要保存时间戳以及前一个区块的标识符(Hash指针)形成一条链式结构。因此,要想篡改区块链中的一条记录,不仅要修改本区块的Hash值,还要修改后续所有区块的Hash值,或者生成一条新的区块链结构,使得新的链比原来的链更长。实际上,这是很难实现的。一般,一个区块后面有6个新的区块生成时,即可认为该区块不可篡改,可以将该区块加入到区块链的结构中了。
3.不可伪造性:区块链保存的交易数据中不仅含有Hash值,还有交易双方的签名以及验证方的签名。签名具有不可伪造性,因此具有不可伪造性。
4.可验证性:可验证性指的是数据来源的可验证。每一笔交易中电子货币的产生和输入、输出都是可以验证的。区块链结构中不会凭空增加电子货币。以比特币为例,每一笔交易的输入都是前一笔交易的输出,每一笔交易的输出又是下一笔交易的输入,即交易的可追溯性。除了来源的可验证外,还有交易金额的可验证,即验证金额的正确性,确保交易过程中的每一笔资金都是可靠的。目前,为了保证用户的隐私,很多电子货币通过混币、环签名、零知识证明等技术在数据可验证的情况下,尽可能地切断金额的可追溯性。
5.匿名性:区块链中的匿名性实际上是一种伪匿名性。区块链中使用假名技术来切断账号和真实身份的联系。比如,对用户公钥进行一系列高的Hash运算,得到的固定长度的Hash值作为对应的电子账号。实际上,随着使用次数的增加,通过数据分析可以分析出账号的很多交易行为,比如经常和那些账号做交易,交易金额多少等,甚至可以和现实中的真实身份相联系。
如图1所示,区块链技术通过运用数据加密、时间戳、分布式共识有效地解决了拜占庭将军问题中的共识问题,实现了在节点无需互相信任的分布式系统中去中心化的点对点交易,有效降低了现实经济的信任成本。但这种去中心化的系统要求节点共同记录和维护一个数据库并且做到整体一致,这就导致区块链的存储扩展性差,节点需耗费大量本地存储来同步整个区块链系统的交易数据。随着区块链节点和交易的增多,数据容量将会极大增长。区块链存储扩展性差这一特点对每一个节点服务器提出了很高的存储要求,特别是大型的区块链系统,然而越大型的区块链系统往往意味着拥有更多的普通用户节点,普通用户的pc存储性能难以达到区块链系统的要求。这导致区块链的存储扩展性成为区块链技术应用和发展的一大瓶颈,要更好地把区块链技术应用于生活生产中,必须研究增强区块链系统存储扩展性的方法,降低对节点的存储性能要求。本发明便是在不删减区块链系统功能的前提下的一种节点分组架构,降低区块链本地存储数据量。
针对区块链本地存储数据过多问题,现有技术的关键是让本地节点不存储每个区块数据中的交易数据,仅存储区块块头,大量减少需求的存储空间。
轻量型节点研究是区块链存储优化研究最多的方向,早在中本聪的论文中就提到了SPV的概念。它指出不完全节点也可进行支付验证,用户只需要保存区块头就可以。这样用户本地的数据结构如图2所示:
不完全节点可以进行支付验证,过程如下:计算某比交易的hash值tx_hash;定位到包含该tx_hash所在的区块,验证block header是否包含在已知的最长链中;从区块中获取构建merkle tree所需的hash值;根据这些hash值计算merkle_root_hash;若计算结果与block header中的merkle_root_hash相等,则交易真实存在。Spv极大节省存储空间,减轻节点终端用户的负担,spv节点仅保存块头,块头所占内存比例非常小。
虽然不完全节点在可以进行验证的前提下极大的节省了存储空间,但是,spv轻量节点中并没有保存块数据中的具体交易数据。以至于每当spv节点要验证一笔交易的合法性时,必须向某个完整的区块链节点获取该交易所在块中其他所有的交易信息,才能用过计算merkle树根值,与spv节点本身块头中的merkle树根值对比。验证的过程必须依赖于其他节点所存储的具体交易信息,其他节点是否为诚实节点位置,增加了被欺骗的风险。并且区块链系统的核心是分布式记账,抛弃传统的中心式数据库,解决节点之间的信任问题,完全依赖于第三方节点的验证方式摒弃了区块链技术的初衷。另外,整个区块链系统的安全性是建立在完整节点的分布式存储上的,spv轻量级节点对整个区块链的分布式架构并没有贡献,超过完整节点算力51%的攻击能攻破区块链系统,区块链系统中spv节点越多,完整节点数量越少,则区块链系统的安全性越低。
发明内容
针对现有技术中的上述不足,本发明提供的一种基于纠删码的分组可重构区块链建立方法解决了区块链中数据存储较大,安全性较低的问题。
为了达到上述发明目的,本发明采用的技术方案为:一种基于纠删码的分组可重构区块链建立方法,包括以下步骤:
S1、将新节点加入区块链系统,并选择是否成为轻量型节点,若是进入步骤S2,否则进入步骤S4;
S2、将新节点加入分组并产生新的区块,通过纠删码对新的区块进行编码,并令新节点成为轻量型节点;
S3、当需要完整区块数据时,对轻量型节点进行数据重构,建立区块链,并结束本方法;
S4、令新节点成为普通节点,建立区块链,并结束本方法。
进一步地:所述步骤S1中将新节点加入区块链系统具体为:
所述新节点从组内下载历史区块的切片,通过切片帮助新节点解码重构出完整的区块数据,所述下载切片的数量根据新节点的本地存储性能设定。
进一步地:所述步骤S2中分组的架构成员包括领导节点、轻量型节点和普通节点;
所述领导节点作为分组内的领导者,为完整节点,拥有强的本地存储性能,不需要依靠切片编码来节约存储,在全局系统中,领导节点和所有普通的区块链节点一样参与区块链事务;
所述轻量型节点本架构中主要的服务对象,所述轻量型节点本地存储性能有限,通过加入一个分组,轻量型节点无需存储所有区块数据,也可执行区块链节点的所有功能;
所述普通节点不加入分组,独立存储所有区块数据,参与区块链事务。
进一步地:所述步骤S2中进行编码的具体步骤为:
由领导节点的地址通过伪随机数生成器生成一个柯西矩阵,作为本组的编码矩阵,所述柯西矩阵具体为:
Figure GDA0003175310250000061
上式中,xm和yn均为随机序列生成器生成的元素,m为柯西矩形的行数,n为柯西矩阵的列数;
每一个区块都需要单独编码,当一个节点要编码块Bi时,首先把编码块Bi切分成k个块数据切片后,经过编码后构成r个编码数据切片,不同的节点根据本地存储能力大小随机删除部分切片,所述编码数据的计算公式为:
Figure GDA0003175310250000062
上式中,
Figure GDA0003175310250000063
为序号为i的块数据中某一编码数据切片u,
Figure GDA0003175310250000064
为对应的编码矩阵第k×u个元素,
Figure GDA0003175310250000065
为序号为i的块数据中的第一个原始块数据切片,
Figure GDA0003175310250000066
为对应的编码矩阵第k×u+1元素个元素,
Figure GDA0003175310250000067
为序号为i的块数据中的第二个原始块数据切片,
Figure GDA0003175310250000068
为应的编码矩阵第k×u+-1元素,
Figure GDA0003175310250000069
为序号为i的块数据中的第k个原始块数据切片。
进一步地:所述m×n柯西矩阵的行数m大于列数n。
进一步地:所述步骤S3中数据重构的具体步骤为:
将与块数据切片数k相同数目的编码数据切片构成截取的编码矩阵,对截取的编码矩阵求逆矩阵,得出k个块数据切片,即可得到完整的块数据i,所述重构数据的计算公式为:
Figure GDA00031753102500000610
上式中,Di为重构出序号为i的完整块数据,
Figure GDA0003175310250000071
为序号为i的块中选取的第一个编码切片,
Figure GDA0003175310250000072
为选取的逆编码矩阵第一行,
Figure GDA0003175310250000073
为序号为i的块中选取的第二个编码切片,
Figure GDA0003175310250000074
为选取的逆编码矩阵第二行,
Figure GDA0003175310250000075
为序号为i的块中选取的第k个编码切片,
Figure GDA0003175310250000076
为选取的逆编码矩阵第k行。
进一步地:所述区块链系统为监管机构参与的系统架构或不需要监管机构参与的系统架构。
本发明的有益效果为:
(1)优化性。本发明中,轻量型节点不再存储区块数据,而是存储编码数据切片。
(2)完整性。本发明中,区块链系统拥有完整的功能,保持了区块链系统架构,没有降低系统的安全性。
(3)兼容性。本发明中所提出的可重构分组,可部署于普通的区块链系统中,不影响系统的架构和功能。
附图说明
图1为背景技术中区块链数据结构示意图;
图2为背景技术中SPV用户本地的数据结构示意图;
图3为本发明流程图;
图4为监管机构参与的架构流程图;
图5位不需要监管机构参与的系统架构流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图3所示,一种基于纠删码的分组可重构区块链建立方法,包括以下步骤:
S1、将新节点加入区块链系统,并选择是否成为轻量型节点,若是进入步骤S2,否则进入步骤S4;
在普通区块链,在一个新节点加入区块链网络时,节点初始化时必须从全网下载完整的区块数据,这对节点的网络和存储提出了很大要求,加载历史区块往往会耗费大量时间,节点的本地存储空间也不一定能容纳完整的数据。
在本发明中,拥有分组的新节点并不需要下载完整的历史区块,较老的组内节点保存着区块数据的大量切片,新节点从组内节点下载历史区块的切片,这切切片帮助节点在必要的时候可以解码重构出完整的区块数据,而不需要完全依赖于第三方节点。至于下载切片的数量,可以根据新节点的本地存储性能来设定,更多的切片存储量意味着节点在遇到需要复原区块,查询数据时可以节省网络带宽和时间。
S2、将新节点加入分组并产生新的区块,通过纠删码对新的区块进行编码,并令新节点成为轻量型节点;
本发明提出的架构中的节点拥有完整节点的所有功能,他们也能发起交易、验证交易和接收区块,每当系统产生新的区块,节点必须接受这个区块,之后利用纠删码对其编码,删除部分切片和原区块,保留部分切片,达到节约存储的目的。
在传统的纠删码中,编码目的是为了防止存储失效而对存储介质进行冗余备份,所以编码后,服务器存储的数据Z=D+C,其中D表示原始数据,C表示冗余数据。而在这里,我们需要降低存储,并不需要保存原始块数据,当需要切片重构块数据时,由于是P2P系统,节点可向组内其他节点下载所需切片。故在本架构中编码时,需对编码矩阵作出改进,删除编码矩阵中的n×n的单位矩阵部分。
这里可以选择基于柯西矩阵的里德-所罗门码,他在传统的基于范德蒙矩阵的RS码上做出了改进:用柯西矩阵代替范德蒙矩阵,矩阵逆运算的复杂的由O(n^3)降低为O(n^2);采用了有限域二进制矩阵的方式来提高运算效率,直接将乘法运算转换成XOR逻辑运算,大大降低运算复杂度。m×n的柯西矩阵为:
Figure GDA0003175310250000091
上式中,xm和yn均为随机序列生成器生成的元素,m为柯西矩形的行数,n为柯西矩阵的列数;
区块链系统采用非对称加密,每个节点的地址唯一,区块链地址作为节点的唯一显性标示,是节点通信和交易传递的标识。我们规定,在每一个分组中必须拥有一个不经过编码切片的完整的普通区块链节点(成为领导节点),该分组内所有节点的编码矩阵为同一个,是基于领导节点的地址伪随机序列生成器生成的唯一的编码矩阵,供组内节点使用(所以不同分组的编码矩阵不相同)。节点只需获取领导节点地址,就可本地计算出编码矩阵。
每一个区块都需要单独编码,当一个节点要编码块Bi时,首先把编码块Bi切分成k个块数据切片后,经过编码后构成r个编码数据切片,不同的节点根据本地存储能力大小随机删除部分切片,所述编码数据的计算公式为:
Figure GDA0003175310250000101
上式中,
Figure GDA0003175310250000102
为序号为i的块数据中某一编码数据切片u,
Figure GDA0003175310250000103
为对应的编码矩阵第k×u个元素,
Figure GDA0003175310250000104
为序号为i的块数据中的第一个原始块数据切片,
Figure GDA0003175310250000105
为对应的编码矩阵第k×u+1元素个元素,D1 i为序号为i的块数据中的第二个原始块数据切片,
Figure GDA0003175310250000106
为应的编码矩阵第k×u+-1元素,
Figure GDA0003175310250000107
为序号为i的块数据中的第k个原始块数据切片。
m×n柯西矩阵的行数m大于列数n。这样才能保证编码数据C切片总数r大于原始数据D切片数k,当需要解码重构时候使用k个编码数据切片C,就可以有足够的等式完全重构出k个原始数据D。
在得到r个可编码数据切片后,不同的节点可以根据本地存储能力大小,随机删除部分切片。删除数量可大可小,删除越多的编码数据切片,意味着节点对某个块i付出的存储成本越低,但解码重构时需要向同组节点获取更多的编码数据切片。设节点保留p个编码切片,则节点为保存该个块付出的存储成本为完整存储的p/k。
经过每一个块的编码与删除,节点存储了每一个块的切片数据,每一个块的切片保留数量可以不相等。切片保留的多少可根据节点本地存储性能决定。
S3、当需要完整区块数据时,对轻量型节点进行数据重构,建立区块链,并结束本方法;
当节点需要验证交易或查询历史数据时,就必须对块数据进行重构。当节点锁定所需块i之后,就对i区块进行重构。
块数据重构时候,我们需要与原块数据切片k相同数目的编码数据切片以构成编码等式。从本地存储和组内节点随机获取k个不相同的编码切片作为输入。需要注意的是,这里编码矩阵的逆矩阵需要截取与编码切片对应的列即可,不能用完整的编码矩阵。对截取的编码矩阵求逆矩阵(柯西矩阵的子矩阵一定是非奇异矩阵),构成k个等式,即可求出k个块数据切片,即得到完整的块数据i。重构数据的计算公式为:
Figure GDA0003175310250000111
上式中,Di为重构出序号为i的完整块数据,
Figure GDA0003175310250000112
为序号为i的块中选取的第一个编码切片,
Figure GDA0003175310250000113
为选取的逆编码矩阵第一行,
Figure GDA0003175310250000114
为序号为i的块中选取的第二个编码切片,
Figure GDA0003175310250000115
为选取的逆编码矩阵第二行,
Figure GDA0003175310250000116
为序号为i的块中选取的第k个编码切片,
Figure GDA0003175310250000117
为选取的逆编码矩阵第k行。
根据本地存储性能,节点在将接收到的块数据编码后,会随机删除一定数量的随机切片。而在重构时,必须在组内获取到k个切片才能将块数据重构,这就要求一个分组中的节点数目必须达到一定规模才行。为了保持系统稳定可重构,这里规定每个分组中必须有一个完整节点。当重构数据切片不够时,也可获取到相应的块数据。
S4、令新节点成为普通节点,建立区块链,并结束本方法。
在本发明的一个实施例中,所述分组的架构成员包括领导节点、轻量型节点和普通节点;
领导节点作为分组内的领导者,本组的编码矩阵是由领导节点的地址通过伪随机数生成器生成的一个柯西矩阵,组内节点在获得领导节点地址后可在本地生成编码矩阵。
在发明提出的架构中,要求领导节点必须为完整节点。即领导节点拥有较强本地存储性能,不需要依靠切片编码来节约存储。由于组内节点需要删除编码切片,极端情况下可能会出现组内所有节点存储的某块编码数据之和小于k,该分组节点就无法重构这个块。在这种情况,组内节点可以通过领导节点获取块数据。
领导节点的作用仅仅在于一个分组内。在全局系统中,领导节点也和所有普通的区块链节点一样参与区块链事物。
轻量型节点是本架构中主要的服务对象,他们是某个分组内的节点,轻量型节点本地存储性能有限,通过加入一个分组,轻量型节点无需存储所有区块数据,也可以执行区块链节点的所有功能。在数据层之外,轻量型节点的功能与普通区块链节点无区别。
本架构也允许普通区块链节点的存在,普通节点不加入分组,独立存储所有的区块数据,参与区块链事物。
在本发明的一个实施例中,所述区块链系统为监管机构参与的系统架构或不需要监管机构参与的系统架构。
第三方监管机构:本架构中,每个分组需要有一定数量的节点才能快速稳定地运行,可以选择一个第三方监管机构对分组进行管理。
首先,当一批节点加入区块链网络时,其中存储能力较强的节点可以申请分组并成为分组的领导节点,第三方监管机构可以对该该节点地址登记备份,以防篡改伪装,供组内节点使用。当某个单独用户加入区块链网络时,无法获得分组信息,无法加入分组,新节点可以想第三方监管机构发起申请,申请加入分组。在第三方监管机构这边,就类似于有了匹配机制,帮助落单的新节点匹配到合适的分组。第三方监管机构并不参与区块链事物,仅仅对分组情况做管理和监督,帮助用户匹配分组,并可以定期对领导节点进行数据校验,保证领导节点的完整性。
智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约在区块链中得到了广泛应用。在区块链系统中,智能合约表现为链上代码,在节点的交易中,可以不经过第三方的触发合约,丰富区块链的功能。在以太坊中,区块链账户分为外部拥有账户和合约账户。一个外部拥有账户可以通过创建和用自己的私钥来对交易进行签名,来发送消息给另一个外部拥有账户或合约账户。在两个外部拥有账户之间传送的消息只是一个简单的价值转移。但是从外部拥有账户到合约账户的消息会激活合约账户的代码,允许它执行各种动作。(比如转移代币,写入内部存储,挖出一个新代币,执行一些运算,创建一个新的合约等等)。外部拥有账户就是普通节点账户,而合约账户就是一个智能合约。合约账户不能发起交易,只能接收外部拥有账户发出的交易,触发智能合约。
在本架构中,第三方监管机构可以是一个实体,一个不参与区块链事物的真正的第三方监管机构;借助以太坊的思想,架构中的第三方监管机构也可以是抽象的,仅仅是一个拥有智能合约代码的合约账户,在收到节点的请求后出发智能合约,由代码完成第三方的监管工作。
监管机构参与的系统架构:区块链技术提出时作为分布式存储账本,饱含着完全去中心化的思想,摆脱对第三方的依赖。随着区块链技术的发展,弱中心化的概念被越来越多的提出(特别是在联盟链中)。在此概念中,区块链系统不再是完全的去中心化,与节点没有利益冲突的第三方机构加入到区块链中,可以解决完全去中心化带来的问题,增加系统的稳定性和安全性,给区块链系统带来更多的功能,更好地融入到实际应用中。在本架构中,我们引入一个第三方监管机构,该机构为区块链节点服务,提供分组匹配和分组监管功能,维护系统的问题。注意,这里的监管机构第三方,并不需要是实体机构,可以是智能合约代码。
如图4所示为监管机构参与的系统架构流程,其中A表示刚加入区块链想寻找分组的新节点,B表示想要成为领导节点的普通节点,N表示系统中的普通节点,L为某分组的领导节点,F为某分组中的轻量型节点。图中箭头上方数字表示箭头向左,箭头下方数字表示箭头向右)。
刚加入区块链的节点A寻找分组流程如下:
(1)节点A首先并不需要同步历史区块,而是通过网络向分组监管机构发出加入分组的申请。
(2)收到A的加入分组请求,监管机构会根据组员招募列表,为节点A匹配一个分组。匹配的分组分为已经运行的分组(节点可以马上加入的,正在运行中的分组)和匹配中的分组(需等到一定数量节点申请,分组才创建成功的新分组)。
(3)监管机构根据匹配情况,核实该组领导者L1信息,并向领导者L1发送A节点地址和请求信息。
(4)L1收到请求信息,作出判断是否准许入组。
(5)L1根据地址,向A发送准入信息和组员地址。
(6)节点A收到准入信息后,就可以根据L1的地址,本地计算出编码矩阵,就可以完成编码和重构等组内事物。
普通节点B申请成为领导者的流程如下:
(7)节点B想监管机构发出申请。
(8)收到节点B的申请后,监管机构会对B节点区块信息作出认证,判断其区块数据完整性。认证通过后,监管机构将节点B记入组员招募列表,为节点B匹配组员。
(9)当匹配到一定数量的组员后,分组匹配才算成功,监管机构才向领导节点发送回复。
(10)节点B收到分组创建成功回复,成为领导者,有权接受组内成员。
当一个节点成为领导者后,还会收到监管机构的监管,定期会检查领导者区块数据存储情况。
不需要监管机构参与的系统架构:本系统对象为批量成群的用户,在区块链以外他们已是线下可信的伙伴,节点间可以脱离于区块链系统之外线下通信,可以自建可信分组。
如图5所示为不需要监管机构参与的系统架构流程,其中A表示需要加分组的节点,B表示某个分组的领导者。
流程如下:
(1)节点A申请加入分组,领导者B可在线下对A身份进行核实,核实通过后回复准入消息和成员信息。
(2)接收到成员信息,根据B的地址,本地计算出编码矩阵。
(3)节点A用户组内成员的地址信息,意味着A成功加入分组。
在这个架构中,节点成员之间线下就有着信任关系,不需要第三方进行监督管理。只有是值得信任的伙伴,领导者才会允许加入分组,准入核实和节点之间信任问题在线下解决。

Claims (5)

1.一种基于纠删码的分组可重构区块链建立方法,其特征在于,包括以下步骤:
S1、将新节点加入区块链系统,并选择是否成为轻量型节点,若是进入步骤S2,否则进入步骤S4;
所述区块链系统为监管机构参与的系统架构或不需要监管机构参与的系统架构;
监管机构参与的系统架构:其中A表示刚加入区块链想寻找分组的新节点,B表示想要成为领导节点的普通节点,N表示系统中的普通节点,L为某分组的领导节点,F为某分组中的轻量型节点,刚加入区块链系统的新节点A寻找分组流程如下:
A1、节点A不需同步历史区块,其通过网络向分组监管机构发出加入分组的申请;
A2、收到A的加入分组请求,监管机构根据组员招募列表,为节点A匹配一个分组,匹配的分组分为已经运行的分组和匹配中的分组;
A3、监管机构根据匹配情况,核实该组领导者L信息,并向领导者L发送A节点地址和请求信息;
A4、L收到请求信息,作出判断是否准许入组;
A5、L根据地址,向A发送准入信息和组员地址;
A6、节点A收到准入信息后,根据L的地址本地计算出编码矩阵,完成编码和重构组内事物;
普通节点B申请成为领导者的流程如下:
B1、节点B申请监管机构发出申请;
B2、收到节点B的申请后,监管机构对B节点区块信息作出认证,判断其区块数据完整性,认证通过后,监管机构将节点B记入组员招募列表,为节点B匹配组员;
B3、当匹配到一定数量的组员后,分组匹配成功,监管机构向领导节点L发送回复;
B4、节点B收到分组创建成功回复,成为领导者,有权接受组内成员;
不需要监管机构参与的系统架构,其中,C表示需要加分组的节点,D表示某分组的领导者;
C1、节点C申请加入分组,领导者D在线下对C身份进行核实,核实通过后回复准入消息和成员信息;
C2、接收到成员信息,根据D的地址,本地计算出编码矩阵;
C3、节点C用户组内成员的地址信息,成功加入分组;S2、将新节点加入分组并产生新的区块,通过纠删码对新的区块进行编码,并令新节点成为轻量型节点;
S3、当需要完整区块数据时,对轻量型节点进行数据重构,建立区块链,并结束本方法;
所述步骤S3中数据重构的具体步骤为:
将与块数据切片数k相同数目的编码数据切片构成截取的编码矩阵,对截取的编码矩阵求逆矩阵,得出k个块数据切片,即可得到完整的块数据i,所述数据重构的计算公式为:
Figure FDA0003175310240000021
上式中,Di为重构出序号为i的完整块数据,
Figure FDA0003175310240000022
为序号为i的块中选取的第一个编码切片,
Figure FDA0003175310240000023
为选取的逆编码矩阵第一行,
Figure FDA0003175310240000024
为序号为i的块中选取的第二个编码切片,
Figure FDA0003175310240000025
为选取的逆编码矩阵第二行,
Figure FDA0003175310240000026
为序号为i的块中选取的第k个编码切片,
Figure FDA0003175310240000031
为选取的逆编码矩阵第k行;
S4、令新节点成为普通节点,建立区块链,并结束本方法。
2.根据权利要求1所述的基于纠删码的分组可重构区块链建立方法,其特征在于,所述步骤S1中将新节点加入区块链系统具体为:
所述新节点从组内下载历史区块的切片,通过切片帮助新节点解码重构出完整的区块数据,下载切片的数量根据新节点的本地存储性能设定。
3.根据权利要求1所述的基于纠删码的分组可重构区块链建立方法,其特征在于,所述步骤S2中分组的架构成员包括领导节点、轻量型节点和普通节点;
所述领导节点作为分组内的领导者,为完整节点,拥有强的本地存储性能,不需要依靠切片编码来节约存储,在全局系统中,领导节点和所有普通的区块链节点一样参与区块链事务;
所述轻量型节点本架构中主要的服务对象,所述轻量型节点本地存储性能有限,通过加入一个分组,轻量型节点无需存储所有区块数据,也可执行区块链节点的所有功能;
所述普通节点不加入分组,独立存储所有区块数据,参与区块链事务。
4.根据权利要求1所述的基于纠删码的分组可重构区块链建立方法,其特征在于,所述步骤S2中进行编码的具体步骤为:
由领导节点的地址通过伪随机数生成器生成一个柯西矩阵,作为本组的编码矩阵,所述柯西矩阵具体为:
Figure FDA0003175310240000041
上式中,xm和yn均为随机序列生成器生成的元素,m为柯西矩形的行数,n为柯西矩阵的列数;
对每一个区块进行单独编码,当一个节点要编码块Bi时,将编码块Bi切分成k个块数据切片后,经过编码后构成r个编码数据切片,不同的节点根据本地存储能力大小随机删除部分切片,所述编码数据的计算公式为:
Figure FDA0003175310240000042
上式中,
Figure FDA0003175310240000043
为序号为i的块数据中某一编码数据切片u,
Figure FDA0003175310240000044
为对应的编码矩阵第k×u个元素,
Figure FDA0003175310240000045
为序号为i的块数据中的第一个原始块数据切片,
Figure FDA0003175310240000046
为对应的编码矩阵第k×u+1元素个元素,
Figure FDA0003175310240000047
为序号为i的块数据中的第二个原始块数据切片,
Figure FDA0003175310240000048
为应的编码矩阵第k×u+k-1元素,
Figure FDA0003175310240000049
为序号为i的块数据中的第k个原始块数据切片。
5.根据权利要求4所述的基于纠删码的分组可重构区块链建立方法,其特征在于,所述柯西矩阵的行数m大于列数n。
CN201910319269.9A 2019-04-19 2019-04-19 一种基于纠删码的分组可重构区块链建立方法 Active CN110046894B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910319269.9A CN110046894B (zh) 2019-04-19 2019-04-19 一种基于纠删码的分组可重构区块链建立方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910319269.9A CN110046894B (zh) 2019-04-19 2019-04-19 一种基于纠删码的分组可重构区块链建立方法

Publications (2)

Publication Number Publication Date
CN110046894A CN110046894A (zh) 2019-07-23
CN110046894B true CN110046894B (zh) 2021-11-09

Family

ID=67278079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910319269.9A Active CN110046894B (zh) 2019-04-19 2019-04-19 一种基于纠删码的分组可重构区块链建立方法

Country Status (1)

Country Link
CN (1) CN110046894B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11202002814UA (en) 2019-08-01 2021-03-30 Advanced New Technologies Co Ltd Shared blockchain data storage based on error correction code
EP3791538B1 (en) 2019-08-01 2023-04-12 Advanced New Technologies Co., Ltd. Shared blockchain data storage based on error correction code
EP3923546B1 (en) 2019-08-01 2022-05-18 Advanced New Technologies Co., Ltd. Shared blockchain data storage based on error correction code
CN111902817B (zh) 2019-08-20 2024-04-09 创新先进技术有限公司 基于共享节点和纠错编码的区块链数据存储
KR102412024B1 (ko) 2019-10-15 2022-06-22 알리페이 (항저우) 인포메이션 테크놀로지 씨오., 엘티디. 인코딩된 블록체인 데이터의 인덱싱 및 복구
CN110958300B (zh) * 2019-10-30 2022-06-07 京东科技信息技术有限公司 一种数据的上传方法、系统、装置、电子设备和计算机可读介质
CN111444042B (zh) * 2020-03-24 2023-10-27 哈尔滨工程大学 一种基于纠删码的区块链数据存储方法
CN112130772A (zh) * 2020-09-29 2020-12-25 合肥城市云数据中心股份有限公司 一种基于稀疏随机纠删码技术的区块链安全存储方法
CN114006906B (zh) * 2020-11-23 2023-11-07 北京八分量信息科技有限公司 一种通过优化节点通讯来降低内存消耗的方法
CN112995340B (zh) * 2021-04-21 2021-08-13 湖南天河国云科技有限公司 一种基于区块链的去中心化文件系统再平衡方法
CN113315753A (zh) * 2021-04-25 2021-08-27 国网浙江省电力有限公司电力科学研究院 基于编码技术的区块数据可信恢复方法
CN115766616B (zh) * 2022-10-16 2024-04-26 昆明理工大学 一种基于HoneyBadgerBFT共识算法的数据共享方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345386A (zh) * 2018-08-31 2019-02-15 阿里巴巴集团控股有限公司 基于区块链的交易共识处理方法及装置、电子设备
CN109359223A (zh) * 2018-09-17 2019-02-19 重庆邮电大学 基于纠删码实现的区块链账本分布式存储技术

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110024357B (zh) * 2016-09-21 2022-01-21 锐思拓公司 使用分布式分类帐进行数据处理的系统和方法
CN109379397B (zh) * 2018-08-31 2019-12-06 阿里巴巴集团控股有限公司 基于区块链的交易共识处理方法及装置、电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345386A (zh) * 2018-08-31 2019-02-15 阿里巴巴集团控股有限公司 基于区块链的交易共识处理方法及装置、电子设备
CN109359223A (zh) * 2018-09-17 2019-02-19 重庆邮电大学 基于纠删码实现的区块链账本分布式存储技术

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向纠删码的低成本多节点失效修复方法;郑力明;《面向纠删码的低成本多节点失效修复方法》;20170715;第110-123页 *

Also Published As

Publication number Publication date
CN110046894A (zh) 2019-07-23

Similar Documents

Publication Publication Date Title
CN110046894B (zh) 一种基于纠删码的分组可重构区块链建立方法
KR102315473B1 (ko) 병렬-처리 블록체인 트랜잭션을 위한 시스템 및 방법
US20210295321A1 (en) Methods for decentralized digital asset transfer and smart contract state transition
Xie et al. zkbridge: Trustless cross-chain bridges made practical
US11799660B2 (en) Optimizations for verification of interactions system and method
US20190354518A1 (en) Chain mesh network for decentralized transaction systems
EP4209980A1 (en) Computer-implemented system and method for managing a large distributed memory pool in a blockchain network
CN110741372A (zh) 用于管理区块链网络上的交易的计算机实现的系统和方法
Yadav et al. A comparative study on consensus mechanism with security threats and future scopes: Blockchain
Francati et al. Audita: A blockchain-based auditing framework for off-chain storage
Sohrabi et al. ZyConChain: A scalable blockchain for general applications
AU2019101607A4 (en) System and method for parallel-processing blockchain transactions
Kruglik et al. Challenges beyond blockchain: scaling, oracles and privacy preserving
Yao et al. Sok: A taxonomy for critical analysis of consensus mechanisms in consortium blockchain
TWM586416U (zh) 基於區塊鏈技術實現交易的多中心分散驗證系統
KR102349014B1 (ko) 고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 시스템
Benedetti et al. A pow-less bitcoin with certified byzantine consensus
Wels Guaranteed-TX: The exploration of a guaranteed cross-shard transaction execution protocol for Ethereum 2.0.
Bu et al. Cross hyperledger fabric transactions
Ren et al. Vapor: A value-centric blockchain that is scale-out, decentralized, and flexible by design
Yin Scaling the Infrastructure of Practical Blockchain Systems
Nygaard Distributed Storage with Strong Data Integrity based on Blockchain Mechanisms
Cong A blockchain consensus protocol with horizontal scalability
Diallo et al. Efficient Block replication to optimize the blockchain resources
Chen et al. An Efficient Permissioned Blockchain with Provable Reputation Mechanism

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant