CN110738472A - 区块链的存储方法和区块链的节点 - Google Patents
区块链的存储方法和区块链的节点 Download PDFInfo
- Publication number
- CN110738472A CN110738472A CN201810804118.8A CN201810804118A CN110738472A CN 110738472 A CN110738472 A CN 110738472A CN 201810804118 A CN201810804118 A CN 201810804118A CN 110738472 A CN110738472 A CN 110738472A
- Authority
- CN
- China
- Prior art keywords
- block
- node
- transaction state
- reserved
- transaction
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Development Economics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种区块链的存储方法和区块链的节点。所述存储方法包括:存储完整区块链的区块头;以及存储根据规律规则对完整区块链的区块体进行降采样得到的区块体。根据本申请,克服了现有技术对区块链架构认识的局限,提出了一种区块链的存储方法和新型的节点,不仅能够降低全节点存储冗余,而且具有验证和广播能力。
Description
技术领域
本申请涉及一种区块链的存储方法和区块链的节点。
背景技术
随着分布式***的广泛应用,区块链技术由于其具有分布式高冗余存储、时序数据、不可篡改和伪造、去中心化信用、智能合约、安全和隐私保护等显著的特点,因而在经济、金融和社会***领域的应用高速发展,其中代表性的有数字货币、数据存储、数据鉴证、金融交易、资产管理和选举投票等。
随着区块链技术的进步和发展,区块膨胀问题已经成为制约区块链效率和应用范围的主要问题之一。区块链要求每个全节点都备份一份完整的区块链数据,然而随着区块链的广泛应用和交易量的高速增长,对于每个节点而言,存储日益增长的大量数据是极为困难的。
尤其是对于移动终端,随着智能设备的增多,海量数据不断产生,重要数据的传输消耗了大量的带宽、时间和能量,因此大量设备之间需要通过分布式自组织的模式管理。区块链自身分布式和抗攻击的特点可以很好的使用到这一场景中。而减少单个节点需要存储的区块链数据对于区块链在智能设备上的自由使用有极为重要的意义。
发明内容
本申请的目的是提供一种区块链的存储方法和区块链的节点。
根据本申请的一个方面,公开了一种区块链的存储方法,包括:存储完整区块链的区块头;以及存储根据规律规则对完整区块链的区块体进行降采样得到的区块体。
根据本申请的一个方面,公开了一种区块链的节点,包括区块头和区块体,所述区块头包括完整区块链的区块头,以及所述区块体包括根据规律规则对完整区块链的区块体进行降采样得到的区块体。
根据本申请,克服了现有技术对区块链架构认识的局限,提出了一种区块链的存储方法和新型的节点,不仅能够降低全节点存储冗余,而且具有验证和广播能力。
附图说明
图1示出了一种分布式记账***的区块链结构。
图2示出了一种区块体的示意图。
图3示出了区块体中存储的交易的示意图。
图4示出了根据本申请的一种实施方式的区块链的存储方法的示意图。
图5示出了根据本申请的一种实施方式的区块链的节点的示意图。
图6示出了根据规律规则确定保留集合的一种实施方式。
图7示出了根据本申请的一种实施方式的生存区块的概率密度函数的示意图。
图8示出了根据本申请的一种实施方式的每个区块被新交易使用的概率分布的示意图。
图9示出了根据本申请的一种实施方式的区块链的节点的示意图。
具体实施方式
下面参照附图对本申请公开的区块链的存储方法和区块链的节点进行详细说明。为简明起见,本申请各实施方式的说明中,相同或类似的装置使用相同或相似的附图标记。
区块链是一种按照时间顺序将数据区块以链条的方式组合成特定数据结构,并以密码学方式保证的不可篡改和不可伪造的去中心化共享总账(Decentralized sharedledger),能够安全存储简单的、有先后关系的、能在***内验证的数据。广义的区块链技术则是利用加密链式区块结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码(智能合约)来编程和操作数据的一种全新的去中心化基础架构与分布式计算范式。
由于区块链使用加密链式区块结构来验证与存储数据,因此区块链的存储具有高度的冗余性,每个全节点都必须独立存储一份完整的区块链数据。
例如,分布式记账***是通过区块链网络提供一个公共可见的记账本,用来记录发生过的历史交易状态。图1显示了一种分布式记账***的区块链结构。如图1所示,一个完整的区块链由从区块1到区块N顺序存储的N个区块组成。每个区块包括区块体和区块头两个部分。每一个区块的区块体中包含了交易以及由这些交易生成的merkle树。每一个区块的区块头存储有该区块的前一个区块的区块头的哈希值和该区块的区块体中merkle树的Merkle根等数据。通过在区块的区块头中存储前一个区块头的哈希值,将不同区块顺序的链接在一起。通过在区块头中存储区块Merkle根将区块体和区块头紧密链接在一起。由此构成一个完整的区块链。
merkle树的生成方式为生成交易的哈希标识符,将这些交易标识符通过配对、哈希,得到配对后数据的哈希值,不断重复配对、哈希的过程,直到剩下唯一一个哈希值,这个哈希值是一个merkle树的merkle根。
图2示出了一种区块体的示意图。其中,包含有四笔交易(T1,T2,T3,T4)和由这些交易生成的merkle树。生成区块体时先分别对T1,T2,T3,T4进行哈希运算,得到它们的哈希标识符哈希0-0,哈希0-1,哈希1-0,哈希1-1。再对这些交易标识符两两配对,进行哈希运算。其中哈希标识符哈希0-0和哈希0-1共同进行哈希运算,得到哈希0,哈希1-0和哈希1-1共同进行哈希运算得到哈希1。再重复如上配对哈希过程,对哈希0和哈希1配对哈希,得到merkle根,将除merkle根以外的哈希值和交易数据打包,就构成了一个区块体。
图3示出了区块体中存储的交易的示意图。交易包括输入和输出。以比特币网络为例,交易的输出包括已经使用的交易的输出和未经使用的交易的输出(UnspentTransaction Outputs,UTXOs)。一笔合法的新交易,即引用某些已存在交易的UTXOs,作为交易的输入,并生成新的输出。只有铸币交易作为产生新比特币的特殊交易不需要输入。图3给出了7笔交易(交易0-6)的生成和使用示意图,一比特聪等于0.00000001比特币。交易0引用之前某笔交易的UTXOs作为输入0,输入0包含100k比特聪。交易0同时生成了输出0和输出1两个输出,这两个输出分别包含40k和50k比特聪,输入和输出之间的差值为交易付出的记账费,交易0包含10k记账费。交易1引用交易0产生的输出0作为自己的输入0,并生成自已的输出0,交易1的输出0包含30k比特聪,同时也有10k比特聪没有作为输出,而是作为记账费。交易2-6分别引用之前交易的输出作为自己的输入,并生成自己的输出。当前示意中,交易3的输出0和交易6的输出0没有被其他交易引用为输入,因此交易3和交易6当前有20k和10k的UTXOs,可以被之后产生的交易引用为输入。可以看出,UTXOs是作为可以被使用的余额而存在的。
当用户向网络发送了一笔新交易,网络中的节点收到新交易信息后,将检查新交易是否合法。具体地,检查交易引用的输入是否是UTXOs,即最新的交易状态。此外,还可以检查地址是否合法、发起交易者是输入地址的合法拥有者等。还将检查交易是否已经处理过以及输入之和是否大于输出之和。如果新交易检查通过,则将新交易标记为合法的未确认新交易,并在网络内进行广播。
当网络中的节点验证并广播上述新交易后,需要有交易记录者将新交易写到区块链中,也就是使新交易成为新的区块中的一部分。这些交易记录者用新交易生成merkle树,添加区块头的相应参数,将新交易打包成区块,并通过计算等操作,使新打包的区块满足共识机制,并将新的区块广播出去。
网络中的节点收到新区块(区块N+1)后,将检查区块的内容也就是区块内的新交易的合法性。此外,节点还可以检查区块的格式,包括数据结构语法、共识机制、时间、区块大小和铸币交易是否是第一个交易等。
如果新区块检查通过,则将新区块N+1标记为合法的新区块,并尝试将新区块N+1连接到现存的区块链。如果连接成功,就将区块N+1作为当前区块链的一部分,并在网络内对区块N+1进行广播。
在区块链架构下,现有技术认为若要支持所有新交易的验证和广播,节点必须存储区块链所有历史交易状态,即全节点。因为全节点下载和验证了从创世区块到最近发现的区块,因此可以通过每个区块中前一个区块头的哈希值和merkle根将这些区块严格的组成完整的区块链,确保区块链的有效性。全节点存储了一个真实区块链的所有历史交易状态,可以验证所有新交易的合法性,具有高度的安全性。
但保证高度安全性的同时也带来了存储的高度冗余。根据目前的交易量,比特币网络的区块数据每年增加50GB左右,而已经累积的区块数据近140GB。例如,比特币的数据量从2009年的不到1GB快速增长到2017年的近140GB。
这些数据不仅需要下载、存储,还需要耗费大量资源进行验证、索引和状态更新,增加了节点的存储开销,降低了处理交易的效率。
还存在一种轻节点,轻节点中只存储区块头。但是,轻节点不能够进行交易和区块广播,轻节点仅能够在可靠全节点的支持下验证某笔交易的有效性和安全性。轻节点虽然降低了存储量,但付出的代价是轻节点的工作能力依赖于全节点,增加了全节点的工作负担,导致带宽资源的占用,同时也降低了使用轻节点的智能设备的安全性。
根据本申请,克服了现有技术对区块链架构认识的局限,提出了一种区块链存储方法和新型的区块链节点,不仅能够降低全节点存储冗余,而且具有验证和广播能力。
根据本申请的一种实施方式,公开了一种区块链的存储方法。如图4所示,在S100中,存储完整区块链的区块头。在S200中,存储根据规律规则对完整区块链的区块体进行降采样得到的区块体。
根据本申请的另一种实施方式,公开了一种区块链的存储方法,包括:存储完整区块链的区块头;以及存储保留集合的区块体,其中,根据区块链中每个区块被新交易使用的概率分布确定对完整区块链的区块体进行降采样得到的区块体的保留集合。这里,规律规则可以包括区块链中每个区块被新交易使用的概率分布。
根据本申请的一种实施方式,还公开了一种区块链的节点。该节点包括区块头和区块体。该节点的区块头包括完整区块链的区块头。该节点的区块体包括根据规律规则对完整区块链的区块体进行降采样得到的区块体。
根据本申请的另一种实施方式,还公开了一种区块链的节点。如图5所示,该节点包括区块头和区块体。该节点的区块头包括完整区块链的区块头。该节点的区块体包括保留集合的区块体,其中,保留集合是根据区块链中每个区块被新交易使用的概率分布对完整区块链的区块体进行降采样得到的区块体的保留集合。
在区块链中,所有历史交易状态都存储在区块体中,最新交易状态(most recentstate)是历史交易状态的一部分。具有最新交易状态的区块是在未来进行交易验证和广播所需要用到的区块。最新交易状态例如可以是前述未经使用的交易的输出UTXOs、或者账户余额等。区块链中每个区块被新交易使用的概率分布由最新交易状态的分布规律确定。
为了表示新交易状态的分布规律(即,每个区块被新交易使用的概率),在本申请中,定义“生存区块”,其表示区块链中的某个交易状态从产生时的最新交易状态到之后被交易变更(即,成为非最新交易状态)为止所经历的区块的数目。交易状态的生存区块反映了交易状态的固有规律规则。对于某个确定网络来说,虽然最新交易状态的分布会随着区块高度的增加而改变,但是交易状态生存区块的分布并不会改变,这意味着交易状态生存区块更具有普遍意义。因而,每个区块被新交易使用的概率可以通过交易状态的生存区块的概率密度函数获得。
图6示出了根据规律规则确定保留集合的一种实施方式。
如图所示,在S210中,根据交易状态的生存区块x的统计分布概率获得交易状态的生存区块的概率密度函数f(x)。可以统计每个交易状态的生存区块x以获得交易状态的生存区块的统计分布概率。
在S220中,根据交易状态的生存区块x的概率密度函数f(x)计算各区块包含最新交易状态的概率分布u(d)。
在S230中,根据所述各区块包含最新交易状态的概率分布u(d)和预设降采样阈值确定保留集合。
交易状态的生存区块x的统计分布概率获得交易状态的生存区块的概率密度函数f(x),根据交易状态的生存区块x的概率密度函数f(x)计算各区块包含最新交易状态的概率分布u(d)。例如,当每个区块中的交易数量是均匀的时候,u(d):
其中d表示区块深度,如图5所示,区块深度是从最新区块算起某个区块所处的位置,其中最新的区块深度为1。
根据本申请的一种实施方式,预设降采样阈值可以是预设信息熵阈值Ht。可以根据各区块包含最新交易状态的概率分布u(d)获得区块基于区块深度的信息熵函数;以及根据信息熵函数和预设信息熵阈值Ht计算保留区块深度的范围,以确定所述保留集合。
为了反映每个区块中为验证和广播新交易提供信息量的多少,可以使用信息熵,其定义为H(A)=E[-log P(A)],A是不确定事件区块被新交易使用,P(A)是A的概率。区块中包含最新交易状态的概率越高,A的概率越高,信息熵也就越大。
独立观察每个区块,则当前时刻区块深度d的区块的信息熵如下:
H(A)=E[-log P(A)]=E[-log u(d)]=-u(d)log u(d)=H(d)。
根据本申请的一种实施方式,保留集合可以通过以下方式获得:根据所述每个区块被新交易使用的概率分布获得区块基于区块深度d的信息熵函数H(d);根据信息熵函数H(d)和预设信息熵阈值Ht计算保留区块深度的范围以确定保留集合,即所有满足H(d)≥Ht的保留区块深度的范围,根据该范围确定保留集合D;存储完整区块链的全部区块头和保留集合D的区块体。这样,就能够获得根据本申请的新型降采样节点(DS节点)。
根据本申请的一种实施方式,DS节点根据所存储的保留集合的区块体生成最新交易状态池。DS节点可以根据所生成最新交易状态池,进行新交易和新区块的验证和广播。
当DS节点工作时,例如当DS节点收到新的交易时,DS节点检查输入是否在DS节点生成的最新交易状态池中。此外,可以理解,DS节点还可以检查交易地址是否有效、发送人是输入地址的合法所有者等。DS节点还可以检查交易是否已处理完毕,交易的输入是否大于输出的总和等。如果检查通过,则DS节点将新交易标记为未处理的合法交易进行广播。
对于新区块验证和广播也是相似的。当DS节点收到一个新生成的区块时,它将检查验证区块内的所有交易的合法性。如果检查通过,则DS节点将新区块标记为合法区块进行广播。
在使本申请提出的DS节点具有独立的验证和广播能力基础上,为了提高节点的存储效率,适应多变的应用环境,根据本申请每个DS节点存储的数据可以根据应用环境的要求进行降采样。在满足区块链性能和安全的基础上,减少存储开销,提高***的资源利用率。
为了说明本申请的性能,假设Nt是完整区块链的历史交易状态的数量,Nu是完整区块链的最新交易状态的数量,Nst和Nsu是DS节点的历史交易状态的数量和最新交易状态的数量。那么DS节点验证和广播新交易的正确率为Nsu/Nu。如果每个区块中的历史交易状态的数量是一样的,那么,
根据本申请的一种实施方式,可以通过广播正确率与存储量的比R来表征节点的存储效率:
降采样块链存储方法中区块的选择是一次性工作,因为虽然区块深度不断变化,保留集合D是稳定的。因此,降采样块链存储方法的复杂度取决于下载区块体的数量。具有适当Ht的DS节点只有完整节点需要下载区块体中的δ个。
对于比特币网络而言,UTXOs代表最新交易状态,节点使用UTXOs池验证新交易。通过对UTXOs的研究,可以发现UTXOs的分布符合一定的规律,可以统计每个UTXOs的生存区块x以获得UTXOs的生存区块的统计分布概率,根据UTXOs的生存区块x的统计分布概率获得UTXOs的生存区块的概率密度函数f(x):
(当x<0时,f(x)=0)
其中x是生存区块。
如果认为每个区块中的交易的输出数量是均匀的,根据UTXOs的生存区块x的概率密度函数f(x)计算各区块包含UTXOs的概率分布u(d):
独立观察每个区块,则当前时刻区块深度d的区块的信息熵如下:
H(d)=E[-log u(d)]=-u(d)log u(d)
在这里,我们可以采用以下步骤对区块链进行降采样:
所述待降采样存储的区块体的保留集合通过以下方式获得:根据所述每个区块被新交易使用的概率分布获得区块基于区块深度的信息熵函数H(d);根据所述信息熵函数H(d)和预设信息熵阈值Ht计算保留区块深度的范围以确定保留集合,即解H(d)≥Ht得到深度d范围,深度d范围组成的集合为保留集合D;存储完整区块链的全部区块头和保留集合D的区块体。这样,就能够获得根据本申请的降采样节点(DS节点)。
当DS节点收到新的交易时,DS节点检查输入是否在DS节点生成的最新交易状态池中、交易是否合法,包括地址是否有效、发件人是输入地址的合法所有者。除此之外,DS节点还要检查交易是否已处理完毕,交易的输入是否大于输出的总和。如果检查通过,则DS节点将新交易标记为未处理的合法交易进行广播。
对于新生成的区块工作步骤也是相似的。当一个DS节点收到一个新生成的区块时,它将检查验证块内的交易的合法性、数据结构、共识机制、区块时间以及铸币交易。如果检查通过,则DS节点将新区块标记为合法区块进行广播。
为了说明降采样区块链存储方法在比特币上的性能,在表1中,示出了出了全节点、Ht=0.23e-27的DS节点的广播正确率和R。
表1全节点、Ht=0.23e-27的DS节点的广播正确率和R
广播正确率 | R | |
DS节点 | 1.000 | 0.006 |
全节点 | 1 | 6.049e-6 |
可以看出,当降采样率小于1024时,DS节点具有与全节点相似的广播正确率,有比全节点更高的R。
在表2中,示出了全节点和DS节点的平均下载块数。
表2全节点和DS节点的平均下载块数
H<sub>t</sub> | 0 | 0.23e-27 | 0.22e-06 |
DS节点 | 519893 | 508 | 127 |
全节点 | 519893 | - | - |
可以看出,具有适当降采样率的DS节点只有完整节点需要下载块的数量的很少一部分。
根据区块链类型的不同,区块链中每个区块被新交易使用的概率分布可以不同。例如,除了比特币之外,其他区块链网络的交易状态的生存区块x的概率密度函数可能发生变化,从而获得相应的每个区块被新交易使用的概率分布u(d)。不过,可以理解,其降采样区块链存储方法和节点工作方式和上述区块链存储方法是相同的。
例如,对于某种示例性的区块链网络,可以统计每个交易状态的生存区块x以获得交易状态的生存区块的统计分布概率,根据交易状态的生存区块x的统计分布概率获得交易状态的生存区块的概率密度函数f(x):
f(x)=e-x
(当x<0时,f(x)=0)
其中x是生存区块。
根据交易状态的生存区块x的概率密度函数f(x)计算各区块包含最新交易状态的概率分布u(d):
独立观察每个区块,则当前时刻区块深度d的区块的信息熵如下:
H(d)=E[-log u(d)]=-u(d)log u(d)=de-dlog e
在这里,我们可以采用以下步骤对区块链进行降采样:
所述待降采样存储的区块体的保留集合通过以下方式获得:根据所述每个区块被新交易使用的概率分布获得区块基于区块深度的信息熵函数H(d);根据所述信息熵函数H(d)和预设信息熵阈值Ht计算保留区块深度的范围以确定保留集合,即解H(d)≥Ht得到深度d范围,深度d范围组成的集合为保留集合D;存储完整区块链的全部区块头和保留集合D的区块体。这样,就能够获得根据本申请的降采样节点(DS节点)。
根据本申请的另一种实施方式,预设降采样阈值是预设降采样率。可以根据降采样率和总区块数量计算保留集合的基数;根据保留集合的基数和所述各区块包含最新交易状态的概率分布计算保留区块深度的范围,以确定所述保留集合。
例如,可以预设降采样率为M。根据降采样率M和总区块数量计算保留集合的基数δ。根据保留集合的基数δ和每个区块被新交易使用的概率分布u(d)计算保留区块深度的范围以确定保留集合D。存储完整区块链的全部区块头和保留集合D的区块体。这样,就能够获得根据本申请的降采样节点(DS节点)。
根据本申请的另一种实施方式,对于比特币网络而言,UTXOs代表最新交易状态,节点使用UTXOs池验证新交易。可以统计每个UTXOs的生存区块x以获得UTXOs的生存区块的统计分布概率,根据UTXOs的生存区块x的统计分布概率获得UTXOs的生存区块的概率密度函数f(x),如图7:
(当x<0时,f(x)=0)
其中x是生存区块。
如果认为每个区块中的交易的输出数量是均匀的,那么区块深度为d的区块包含全部UTXOs的概率u(d)(即,每个区块被新交易使用的概率分布)如图8所示:
在这里,我们可以采用以下步骤对区块链进行降采样:确定降采样率M;根据降采样率M和总区块数量dmax计算保留集合的基数δ,δ=dmax/M,根据保留集合的基数δ和每个区块被新交易使用的概率分布u(d)计算保留区块深度的范围以确定保留集合D,D为u(d)最大的δ个区块体的集合,由于u(d)是单调递减函数,因此D为完整区块链区块深度的前δ个区块体,以及存储完整区块链的全部区块头和保留集合D的区块体。这样,就能够获得根据本申请的降采样节点(DS节点)。
当DS节点收到新的交易时,DS节点检查输入是否在DS节点生成的最新交易状态池中、交易是否合法,包括地址是否有效、发件人是输入地址的合法所有者。除此之外,DS节点还要检查交易是否已处理完毕,交易的输入是否大于输出的总和。如果检查通过,则DS节点将新交易标记为未处理的合法交易进行广播。
对于新生成的区块工作步骤也是相似的。当一个DS节点收到一个新生成的区块时,它将检查验证块内的交易的合法性、数据结构、共识机制、区块时间以及铸币交易。如果检查通过,则DS节点将新区块标记为合法区块进行广播。
为了说明降采样区块链存储方法在比特币上的性能,在表3中,示出了全节点、降采样率M=1024的DS节点的广播正确率和R。
表3全节点、降采样率M=1024的DS节点的广播正确率和R
广播正确率 | R | |
DS节点 | 1.000 | 0.006 |
全节点 | 1 | 6.049e-6 |
可以看出,当降采样率小于1024时,DS节点具有与全节点相似的广播正确率,有比全节点更高的R。
在表4中,示出了全节点和DS节点的平均下载块数。
表4全节点和DS节点的平均下载块数
M | 1 | 16 | 256 | 1024 | 4096 |
DS节点 | 519893 | 32494 | 2031 | 508 | 127 |
全节点 | 519893 | - | - | - | - |
可以看出,具有适当降采样率的DS节点只有完整节点的下载块的平均数量的1/M。
进一步的,对于每种区块链的降采样区块链存储方法中,还可以引入随机采样,即在前述降采样区块链存储方法的基础上,随机存储L个非保留集合的区块体来抵抗攻击者的猜测。其中,非保留集合是完整区块链的区块体除保留集合外的区块体的集合。根据本申请的一种实施方式,公开了一种区块链的存储方法包括:存储完整区块链的区块头;以及存储保留集合的区块体和根据随机规则而选择的非保留集合的区块体。
根据本申请的一种实施方式,公开了一种区块链的节点。其中,该节点包括区块头和区块体。该节点的区块头包括完整区块链的区块头。该节点的区块体包括根据规律规则对完整区块链的区块体进行降采样得到的区块体,以及根据随机规则而选择的非保留集合的区块体。如图9所示,可以在非保留集合随机生成长度为L的互不重复的随机序列j1、j2、…jL,(j1在图9中示意性示出)DS节点不仅存储保留集合的区块体,还存储区块深度为j1、j2、…jL的非保留集合的区块体。通过引入随机采样,即使攻击者知道了降采样存储方法和降采样的起始区块深度,也不能够完全预测DS节点所存储的区块体。因而有效防止了被成功攻击的可能性。
根据本申请的一种实施方式,可以根据所存储的保留集合的区块体和所存储的由随机规则而选择的非保留集合的区块体,生成最新交易状态池。由此可以验证新交易的合法性,具有独立的验证和广播能力。同时由于具有L个随机存储的非保留集合的区块体,能够有效抵抗攻击者的猜测攻击。
以上参照附图对本申请的示例性的实施方案进行了描述。本领域技术人员应该理解,上述实施方案仅仅是为了说明的目的而所举的示例,而不是用来进行限制,凡在本申请的教导和权利要求保护范围下所作的任何修改、等同替换等,均应包含在本申请要求保护的范围内。
Claims (15)
1.一种区块链的存储方法,包括:存储完整区块链的区块头;以及存储根据规律规则对完整区块链的区块体进行降采样得到的区块体。
2.如权利要求1所述的存储方法,其中,根据区块链中每个区块被新交易使用的概率分布确定对完整区块链的区块体进行降采样得到的区块体的保留集合。
3.如权利要求2所述的存储方法,其中,根据交易状态的生存区块的统计分布概率获得交易状态的生存区块的概率密度函数,根据交易状态的生存区块的概率密度函数计算各区块包含最新交易状态的概率分布;根据所述各区块包含最新交易状态的概率分布和预设降采样阈值确定所述保留集合。
4.如权利要求3所述的存储方法,其中,所述预设降采样阈值是预设信息熵阈值,其中,根据所述各区块包含最新交易状态的概率分布获得区块基于区块深度的信息熵函数;根据所述信息熵函数和预设信息熵阈值计算保留区块深度的范围,以确定所述保留集合。
5.如权利要求4所述的存储方法,还包括:根据所存储的保留集合的区块体生成最新交易状态池。
6.如权利要求2所述的存储方法,其中,所述预设降采样阈值是预设降采样率,其中,根据降采样率和总区块数量计算保留集合的基数;根据保留集合的基数和所述各区块包含最新交易状态的概率分布计算保留区块深度的范围,以确定所述保留集合。
7.如权利要求6所述的存储方法,还包括:根据所存储的保留集合的区块体生成最新交易状态池。
8.如前述任一权利要求所述的存储方法,还包括:存储根据随机规则而选择的非保留集合的区块体。
9.如权利要求8所述的存储方法,还包括:根据所存储的保留集合的区块体和所存储的由随机规则而选择的非保留集合的区块体,生成最新交易状态池。
10.一种区块链的节点,包括区块头和区块体,所述区块头包括完整区块链的区块头,以及所述区块体包括根据规律规则对完整区块链的区块体进行降采样得到的区块体。
11.如权利要求10所述的节点,其中,所述区块体包括保留集合的区块体,所述保留集合是根据区块链中每个区块被新交易使用的概率分布对完整区块链的区块体进行降采样得到的区块体的保留集合。
12.如权利要求11所述的节点,其中,所述区块体包括保留集合的区块体,所述保留集合通过以下方式获得:根据交易状态的生存区块的统计分布概率获得交易状态的生存区块的概率密度函数;根据交易状态的生存区块的概率密度函数计算各区块包含最新交易状态的概率分布;根据所述各区块包含最新交易状态的概率分布和预设降采样阈值确定所述保留集合。
13.如权利要求12所述的节点,其中,所述预设降采样阈值是预设信息熵阈值,其中,根据所述各区块包含最新交易状态的概率分布获得区块基于区块深度的信息熵函数;根据所述信息熵函数和预设信息熵阈值计算保留区块深度的范围,以确定所述保留集合。
14.如权利要求12所述的节点,其中,所述预设降采样阈值是预设降采样率,其中,根据降采样率和总区块数量计算保留集合的基数;根据保留集合的基数和所述各区块包含最新交易状态的概率分布计算保留区块深度的范围,以确定所述保留集合。
15.如权利要求10-14中任一项所述的节点,其中,所述区块体还包括根据随机规则而选择的非保留集合的区块体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810804118.8A CN110738472B (zh) | 2018-07-20 | 2018-07-20 | 区块链的存储方法和区块链的节点 |
PCT/CN2019/096316 WO2020015668A1 (zh) | 2018-07-20 | 2019-07-17 | 区块链的存储方法和区块链的节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810804118.8A CN110738472B (zh) | 2018-07-20 | 2018-07-20 | 区块链的存储方法和区块链的节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110738472A true CN110738472A (zh) | 2020-01-31 |
CN110738472B CN110738472B (zh) | 2023-10-03 |
Family
ID=69164281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810804118.8A Active CN110738472B (zh) | 2018-07-20 | 2018-07-20 | 区块链的存储方法和区块链的节点 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110738472B (zh) |
WO (1) | WO2020015668A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858751A (zh) * | 2020-06-29 | 2020-10-30 | 深圳壹账通智能科技有限公司 | 基于区块链的数据存储方法及装置 |
CN112988893B (zh) * | 2021-03-15 | 2023-05-12 | 中国联合网络通信集团有限公司 | 基于区块链的信息管理方法、***、区块链节点及介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2587541A (en) * | 2018-10-05 | 2021-03-31 | Dragon Infosec Ltd | A consensus method and framework for a blockchain system |
CN111614721B (zh) * | 2020-04-14 | 2022-11-22 | 梁伟 | 一种多维区块链网、多维区块链网的生成方法、装置 |
CN111651525A (zh) * | 2020-06-24 | 2020-09-11 | 北京米弘科技有限公司 | 区块链数据存储方法和装置 |
CN112947868B (zh) * | 2021-04-08 | 2024-05-03 | 辽宁大学 | 四分支链式结构金融区块链存储方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656798A (zh) * | 2016-12-30 | 2017-05-10 | 先锋支付有限公司 | 一种计算决策路径的方法及分布式节点 |
CN107079059A (zh) * | 2016-12-21 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 区块链存储方法、装置及节点设备 |
US20170323392A1 (en) * | 2016-05-05 | 2017-11-09 | Lance Kasper | Consensus system for manipulation resistant digital record keeping |
CN107657438A (zh) * | 2017-09-18 | 2018-02-02 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及*** |
CN107683489A (zh) * | 2015-06-26 | 2018-02-09 | 英特尔公司 | 用于在受信任执行环境中执行加密操作的***、装置和方法 |
CN107766540A (zh) * | 2017-10-31 | 2018-03-06 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区存储的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3095044B1 (en) * | 2013-11-19 | 2020-09-23 | Top Galore Limited | Block mining methods and apparatus |
CN106406896B (zh) * | 2016-09-27 | 2020-03-17 | 北京天德科技有限公司 | 一种并行PipeLine技术的区块链建块方法 |
CN107122477A (zh) * | 2017-05-02 | 2017-09-01 | 成都中远信电子科技有限公司 | 一种区块链存储*** |
CN107276762B (zh) * | 2017-05-08 | 2019-08-30 | 飞天诚信科技股份有限公司 | 一种多协议区块链的工作方法及装置 |
CN107729471A (zh) * | 2017-10-13 | 2018-02-23 | 上海策赢网络科技有限公司 | 一种区块链及其生成方法与设备 |
-
2018
- 2018-07-20 CN CN201810804118.8A patent/CN110738472B/zh active Active
-
2019
- 2019-07-17 WO PCT/CN2019/096316 patent/WO2020015668A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107683489A (zh) * | 2015-06-26 | 2018-02-09 | 英特尔公司 | 用于在受信任执行环境中执行加密操作的***、装置和方法 |
US20170323392A1 (en) * | 2016-05-05 | 2017-11-09 | Lance Kasper | Consensus system for manipulation resistant digital record keeping |
CN107079059A (zh) * | 2016-12-21 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 区块链存储方法、装置及节点设备 |
CN106656798A (zh) * | 2016-12-30 | 2017-05-10 | 先锋支付有限公司 | 一种计算决策路径的方法及分布式节点 |
CN107657438A (zh) * | 2017-09-18 | 2018-02-02 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及*** |
CN107766540A (zh) * | 2017-10-31 | 2018-03-06 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区存储的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858751A (zh) * | 2020-06-29 | 2020-10-30 | 深圳壹账通智能科技有限公司 | 基于区块链的数据存储方法及装置 |
CN112988893B (zh) * | 2021-03-15 | 2023-05-12 | 中国联合网络通信集团有限公司 | 基于区块链的信息管理方法、***、区块链节点及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020015668A1 (zh) | 2020-01-23 |
CN110738472B (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110738472A (zh) | 区块链的存储方法和区块链的节点 | |
CN107169865B (zh) | 基于区块链技术的资产数据处理*** | |
CN109583887B (zh) | 一种区块链的交易方法和装置 | |
US20230153769A1 (en) | Method and system of mining blockchain transactions provided by a validator node | |
Leung et al. | Vault: Fast bootstrapping for the algorand cryptocurrency | |
Sompolinsky et al. | Bitcoin's security model revisited | |
CN109391645B (zh) | 区块链轻量化处理方法、区块链节点及存储介质 | |
KR20190067581A (ko) | 블록체인 트랜잭션 분산 처리 장치 및 방법 | |
CN111047439A (zh) | 一种基于区块链的交易处理方法 | |
CN109691064B (zh) | 可抗量子区块链账户***的扩容方法、装置以及*** | |
CN110213038B (zh) | 一种区块链形成共识的方法及*** | |
CN109410043B (zh) | 一种基于分层树状结构的区块链信息高效存储方法及装置 | |
US20220407728A1 (en) | Systems and methods for processing blockchain transactions | |
US12007972B2 (en) | Systems and methods for processing blockchain transactions | |
Xu et al. | Efficient public blockchain client for lightweight users | |
Xu et al. | Occam: A secure and adaptive scaling scheme for permissionless blockchain | |
CN109685657B (zh) | 在区块链网络中处理交易的方法和节点设备以及存储介质 | |
CN109391643B (zh) | 区块链轻量化处理方法、区块链节点及存储介质 | |
Blum et al. | Superlight–A permissionless, light-client only blockchain with self-contained proofs and BLS signatures | |
van der Linde et al. | Post-quantum blockchain using one-time signature chains | |
CN113256417A (zh) | 一种基于交易共享的共识出块方法及*** | |
CN111611311B (zh) | 去中心化分布式数据库的形成方法及***、电子设备及计算机可读存储介质 | |
CN111177262A (zh) | 一种区块链共识方法、相关装置及*** | |
CN115797088B (zh) | 一种用户转账方法、装置、电子设备及可读存储介质 | |
CN111815329A (zh) | 一种基于跨链技术实现高性能区块链网络的方法 |
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 |