CN111787034B - 区块生成方法、同步方法、装置、区块链系统和存储介质 - Google Patents

区块生成方法、同步方法、装置、区块链系统和存储介质 Download PDF

Info

Publication number
CN111787034B
CN111787034B CN201910266665.XA CN201910266665A CN111787034B CN 111787034 B CN111787034 B CN 111787034B CN 201910266665 A CN201910266665 A CN 201910266665A CN 111787034 B CN111787034 B CN 111787034B
Authority
CN
China
Prior art keywords
block
node
calculation result
outsourcing
service node
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
CN201910266665.XA
Other languages
English (en)
Other versions
CN111787034A (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.)
Beijing Baustem Information Technology Co ltd
Original Assignee
Beijing Baustem Information Technology Co ltd
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 Beijing Baustem Information Technology Co ltd filed Critical Beijing Baustem Information Technology Co ltd
Priority to CN201910266665.XA priority Critical patent/CN111787034B/zh
Publication of CN111787034A publication Critical patent/CN111787034A/zh
Application granted granted Critical
Publication of CN111787034B publication Critical patent/CN111787034B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S10/00Systems supporting electrical power generation, transmission or distribution
    • Y04S10/50Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种区块生成与共识方法、同步方法、装置、区块链系统和存储介质,所述区块生成方法包括第一节点从区块链网络接收未打包到区块链上的增量交易数据;将增量交易数据发送至第一外包计算服务节点,以用于第一外包计算服务节点进行第一计算;接收第一外包计算服务节点的第一计算结果,对第一计算结果进行验证,如果验证通过,对第一计算结果进行签名并根据第一计算结果构造备选区块;向区块链网络发布所述备选区块。本申请通过将第一计算外包至第一外包计算服务节点,降低了第一节点的硬件要求,使得参与区块链网络共识不再单纯的依赖算力、网络以及存储资源,提高了低算力节点的挖矿民众概率,保证了挖矿记账的平权公平性。

Description

区块生成方法、同步方法、装置、区块链系统和存储介质
技术领域
本申请涉及但不限于区块链技术领域,尤其涉及一种区块生成方法、同步方法、装置、区块链系统和存储介质。
背景技术
区块链技术(Blockchain technology,BT),也称为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。在现有的区块链技术中,存在以下几个方面的问题:
1)采用工作量证明(Proof of Work,PoW)共识算法的区块链为增加挖矿的能力不断地增加单机算力,同时采用集群技术组成矿场不断地增加整个矿场的算力,这需要大量的资金进行投资,而对于普通的参与者而言通过个人少量投资无法显著提高挖矿算力。
2)采用股权证明(Proof of Stake,POS)共识算法的区块链,现实中采用股份授权证明机制(Delegated Proof-of-Stake,DPOS)方式,通过资金抵押来增加挖矿概率,而对于另一些靠人工选举的区块链,比如EOS(Enterprise Operation System),则通过投资达到一定门限的要求后才有资格竞选作为挖矿节点。如此种种的变种,背后潜藏着各种对自由参与节点的不公平。
3)在区块链的可扩展性方面,不断追求高TPS(Transaction Per Second)、大规模节点参与的目标下,对挖矿节点的交易处理能力也越来越高,区块体量越来越大对存储的要求也越来越高。这些都导致大规模参与的节点的要求会很高,而那些无法跟上其他节点投资的普通大众将无法参与,实际上也导致了不公平。
以上种种不平权导致少部分人获得机会去控制整个区块链的记账,整体上导致区块链的安全性降低。
发明内容
本申请提供了一种区块生成方法、同步方法、装置、区块链系统和存储介质,能够降低参与区块链网络共识的节点的硬件要求。
本发明实施例提供了一种区块生成方法,包括:
第一节点从区块链网络接收未打包到区块链上的增量交易数据;
第一节点将所述增量交易数据发送至第一外包计算服务节点,以用于所述第一外包计算服务节点进行第一计算;
第一节点接收第一外包计算服务节点的第一计算结果,对第一计算结果进行验证,如果验证通过,则对第一计算结果进行签名并根据第一计算结果构造备选区块;
第一节点向区块链网络发布所述备选区块。
在一示例性实施例中,在所述第一节点接收第一外包计算服务节点的第一计算结果之前,所述方法还包括:所述第一节点将当前区块的数据集信息及共识算法发送至所述第一外包计算服务节点;
所述第一计算包括:根据所述增量交易数据、当前区块的数据集信息及共识算法计算备选区块的账户集合信息。
在一示例性实施例中,所述对第一计算结果进行验证,包括:
通过验证算法验证所述第一计算结果是否正确;
如果所述第一计算结果正确,验证所述第一计算使用的增量交易数据是否合法且所述第一计算结果中的账户集合信息是否正确;
如果所述第一计算使用的增量交易数据合法且所述第一计算结果中的账户集合信息正确,则验证通过。
本发明实施例还提供了一种区块生成方法,包括:
第二节点从区块链网络接收备选区块;
第二节点将所述备选区块发送至第二外包计算服务节点,或者,抽取所述备选区块中的增量交易数据和账户集合信息并发送至第二外包计算服务节点,以用于所述第二外包计算服务节点进行第二计算;
第二节点接收所述第二外包计算服务节点的第二计算结果,对第二计算结果进行验证,如果验证通过,则根据共识算法判定是否能够接受所述备选区块为生成的新区块。
在一示例性实施例中,所述第二计算包括:验证所述备选区块中的增量交易数据是否合法且所述备选区块中的账户集合信息是否正确;
所述对第二计算结果进行验证,包括:
通过验证算法验证所述第二计算结果是否正确;
如果所述第二计算结果正确,验证所述第二计算结果中的所述增量交易数据是否合法且所述账户集合信息是否正确;
如果所述第二计算结果中的所述增量交易数据合法且所述账户集合信息正确,则验证通过。
在一示例性实施例中,所述根据共识算法判定是否能够接受所述备选区块为生成的新区块,包括:
如果所述共识算法为非交互型共识算法,则接受所述备选区块为生成的新区块;
如果所述共识算法为交互型共识算法,则按照交互型共识算法的步骤对所述备选区块继续进行共识过程,并在达到共识后,接受所述备选区块为生成的新区块。
在一示例性实施例中,在所述根据共识算法判定能够接受所述备选区块为生成的新区块之后,所述方法还包括:
向外包存储服务节点申请外包存储服务,将所述生成的新区块保存至所述外包存储服务节点中。
本发明实施例还提供了一种存储介质,所述存储介质上存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一所述的区块生成方法的步骤。
本发明实施例还提供了一种区块生成装置,包括处理器及存储器,所述处理器用于执行所述存储器中存储的程序,以实现如以上任一所述的区块生成方法的步骤。
本发明实施例还提供了一种区块同步方法,包括:
第三节点从区块链网络接收未同步的区块;
第三节点将所述未同步的区块发送至第三外包计算服务节点,以用于所述第三外包计算服务节点进行第三计算;
第三节点接收第三外包计算服务节点的第三计算结果,并对所述第三计算结果进行验证,如果验证通过,则同步所述未同步的区块。
在一示例性实施例中,所述同步所述未同步的区块,包括:
所述第三节点向外包存储服务节点申请外包存储服务,将所述未同步的区块同步保存至所述外包存储服务节点中。
在一示例性实施例中,所述第三计算包括以下至少之一:
验证所述未同步的区块包括的交易数据的有效性;
验证所述未同步的区块的正确性;
验证所述未同步的区块签名的有效性。
本发明实施例还提供了一种存储介质,所述存储介质上存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一所述的区块同步方法的步骤。
本发明实施例还提供了一种区块同步装置,包括处理器及存储器,所述处理器用于执行所述存储器中存储的程序,以实现如以上任一所述的区块同步方法的步骤。
本发明实施例还提供了一种区块链系统,包括第一节点和第二节点,其中:
第一节点,用于从区块链网络接收未打包到区块链上的增量交易数据;将所述增量交易数据发送至第一外包计算服务节点,以用于所述第一外包计算服务节点进行第一计算;接收第一外包计算服务节点的第一计算结果,并对第一计算结果进行验证,如果验证通过,则对第一计算结果进行签名并根据第一计算结果构造备选区块;向区块链网络发布所述备选区块;
第二节点,用于从区块链网络接收备选区块,验证所述备选区块并根据共识算法进行处理。
在一示例性实施例中,所述第二节点,具体用于:
从区块链网络接收备选区块,将所述备选区块发送至第二外包计算服务节点,或者,抽取所述备选区块中的增量交易数据和账户集合信息并发送至第二外包计算服务节点,以用于所述第二外包计算服务节点进行第二计算;接收所述第二外包计算服务节点的第二计算结果,对第二计算结果进行验证,如果验证通过,则根据共识算法判定是否能够接受所述备选区块为生成的新区块。
在一示例性实施例中,所述的区块链系统还包括第三节点,其中:
所述第三节点,用于从区块链网络接收未同步的区块;将所述未同步的区块发送至第三外包计算服务节点,以用于所述第三外包计算服务节点进行第三计算,所述第三计算为验证所述未同步的区块的正确性和有效性;接收第三外包计算服务节点的第三计算结果,并对所述第三计算结果进行验证,如果验证通过,则同步所述未同步的区块。
与相关技术相比,本申请的一种区块生成方法、同步方法、装置、区块链系统和存储介质,通过将第一计算外包至第一外包计算服务节点,降低了对第一节点的硬件要求,使得参与区块链网络共识不再单纯的依赖算力、网络以及存储资源,普通大众也可以使用网络边缘的资源较少的节点参与区块链网络,提高了低算力节点的挖矿民众概率,保证了挖矿记账的平权公平性,进而能够真正地实现高安全性的区块链网络。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本发明实施例的一种区块生成方法的流程示意图;
图2为本发明实施例的另一种区块生成方法的流程示意图;
图3为本发明实施例的一种区块同步方法的流程示意图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
区块链本质上是一个基于交易的状态机(transaction-based state machine)。其以初始状态(genesis state)为起点,通过执行交易来到达新的状态,这个过程涉及以下参与计算的数据:
1)账户信息集合的当前状态(worldstate):区块链对应的全部的账户信息(称为账户信息集合),常见的说法就是worldstates。由于这个集合信息量非常大,为保证该信息集合不被篡改,通过密码学算法得到的不可更改的远小于账户信息集合的短加密串,称为worldstate哈希,第i+1高度的worldstate哈希记为Si+1;区块链的数学表述就是:Si+1=C(F(Ai,Ti+1)),其中Si+1是第i+1高度worldstate的哈希,Ti+1是第i+1高度新增合法交易集合;C是共识算法函数,它根据不同的共识算法进行设置;F是worldstate计算函数,它的参数是前一高度的账号信息集合Ai、这一高度新增的交易集合Ti+1,根据新增交易计算出这一高度的账号信息集合Ai+1,再在Ai+1上计算出Si+1
2)增量交易数据Ti+1:区块链上要记录的当前块里的的交易数据实际上是针对前一区块区块的新增的合法交易数据集合,记为增量交易数据Ti+1
区块链是一个单向指示的链表结构,后一个区块指向前一个区块,抛开签名信息,数学上表述为Si+1=C(F(Ai,Ti+1))。(对区块的签名和交易的签名在此不影响对区块产生和验证算法的讨论,因此可以忽略它),产生第i+1区块至少要记录这一高度更新后的Ai+1哈希计算结果值即Si+1和新增合法交易集Ti+1,而算法要求的另一个输入Ai可由从创世块开始到第i区块的T0到Ti计算而来。验证第i+1高度的区块时,从收到的区块信息中得到Si+1和Ti+1,再根据前i个区块信息可计算出Ai,利用Ai、Ti+1可计算出Si+1,将该信息和收到的区块里的Si+1进行比较,如果相等则验证成功。(合法交易指的是:交易集中的交易需根据该区块链的策略验证交易的合法性,比如签名合法性、交易规则合法性、账号状态和交易之间的关联合法性等)
区块链的共识算法是指参与共识的节点如何判断一个新增区块是共识意义上完成的。从共识完成的过程分可分为交互式和非交互式共识算法。交互式算法通过多个步骤的交互完成共识;而非交互式算法通过单步或多步的无交互方式完成;例如,PoW算法就是一个典型的非交互式,节点寻找到符合条件的区块就发出给其他节点,等待共识算法判决,其中PoW值最高难度的备选区块最后将被共识算法确认。而拜占庭容错(Byzantine FaultTolerance,BFT)算法则是典型的交互式,一个备选区块需要得到一定数量的共识节点的赞同投票后才能完成,而这个过程可能持续好几轮才能完成。但不论哪种算法,第一步都是要对该备选区块的正确性进行验证。抽象来说,共识算法可表述为不同的算法过程。例如,PoW算法表示为Max in Pow(B(i+1)),其中B(i+1)表示节点发出的备选区块集合。Pos和BFT类共识算法可简要表述为:Votej(Bi+1)>th,其中Bi+1是第i+1区块高度的备选区块,Votej(Bi+1)是第j轮共识对Bi+1备块的投票。通过把共识算法转化为可验证的外包计算,同时节点又保持有节点私钥公钥等等密码学独立角色,因此,一个节点的角色独立性和可信度得到保证,通过外包技术降低了节点的初始投资要求又不降低整个区块链的算力和存储,因为这些算力和存储可以由外包计算来支撑。当采用PoW时,PoW算法的算力要求很高,同时为增加TPS,生成和验证区块时的Si+1计算和Ti+1集合验证的算力和存储要求也很高。而对于POS以及BTF这类算法,PoW的算力可以节省但Si+1和Ti+1的计算和验证一样要求很高的算力。这就是本申请要解决的的可扩展性面临的主要难点,本申请将这些高算力高存储要求部分外包,同时又不影响低算力节点的挖矿民众概率,这样既突破了区块链的三角限制,又保证挖矿记账的平权公平性。
需要说明的是,在本申请中涉及三种参与角色:
1)外包服务客户:请求外包计算服务和/或外包存储服务的节点(可以是外包计算服务的请求者,也可以是外包存储服务的请求者,也可以两者都是)。
2)外包服务节点:提供外包计算服务和/或外包存储服务的节点(可以是外包计算服务节点,也可以是外包存储服务节点,也可以两者都是)。
3)外包服务验证者:验证外包计算和/或外包存储的返回结果是否正确的节点。外包服务客户往往也是外包服务验证者,但不排除第三方也可以作为外包服务验证者。
需要说明的是:这三种角色都可以同时是参与区块链网络的节点,而外包服务节点和外包服务验证者也可以是提供服务的其他设施或设备。
实施例一区块生成方法一
如图1所示,根据本发明实施例的一种区块生成方法,包括如下步骤:
步骤101:第一节点从区块链网络接收未打包到区块链上的增量交易数据;
具体地,假设当前的区块高度为i,i为自然数,接收的增量交易数据为第i+1区块的增量交易数据Ti+1
步骤102:第一节点将所述增量交易数据发送至第一外包计算服务节点,以用于所述第一外包计算服务节点进行第一计算;
在一种示例性的实施例中,在步骤103之前,所述方法还包括:所述第一节点将当前区块的数据集信息及共识算法发送至所述第一外包计算服务节点;
所述第一计算包括:根据所述增量交易数据、当前区块的数据集信息及共识算法计算备选区块的账户集合信息(在本申请中,所述备选区块的账户集合信息即备选区块的账户信息集合的当前状态)。
在该实施例的一示例中,所述当前区块的数据集通过外包存储服务,存储在外包存储服务节点中;
所述第一节点将当前区块的数据集信息发送至第一外包计算服务节点,具体为:所述第一节点将当前区块的数据集的数据地址发送至第一外包计算服务节点。
第一节点作为外包服务客户通过可验证的外包计算技术把新收到的合适数量的增量交易数据Ti+1外包给第一外包计算服务节点,并同时给出共识算法和数据集,数据集至少包含增量交易数据Ti+1和第i区块的数据集,所述第i区块的数据集至少包括第i区块的账户集合Ai,当第i区块的数据集外包存储至外包存储服务节点时,第一节点提供外包存储的第i区块的数据集的数据地址且保证外包存储服务的正确性。第一外包计算服务节点按照第一节点请求外包计算服务时提供的共识算法和数据集,计算出第i+1备选区块的对应的账户信息集合的当前状态(worldstate)Si+1
本申请将可验证的外包计算技术运用到区块链的共识算法的计算外包中。需要说明的是,本申请强调的是通过采用可验证的外包计算技术来计算共识条件是否达成,以解决区块链网络参与计算的节点的资源依赖问题,可验证的外包计算技术可以通过现有技术中的算法实现,本申请对此并不做限制。
可验证的外包计算技术是当今密码学、群论、云计算等综合学科的研究的热点技术之一,它的优势在于,计算能力较弱的设备可以将复杂的计算(比如图像处理、复杂的函数求值、密码学相关的计算等)外包至计算能力较强的设备来进行计算,然后获取计算结果。一般说来,计算外包需要满足秘密性和可验证性,秘密性指的是输入和输出只能由发起查询一方知道,可验证性指的是发起查询一方有着可以验证返回结果的正确性的能力。需要说明的是,本申请可以采用任何一种可验证计算外包技术,该技术只需要实现通用的外包计算和结果验证功能,并且需要保证验证复杂度要远低于计算方的计算复杂度,确保外包计算是划算的,比如常见的双线性配对技术。同样,数据存储也可以通过可验证计算技术实现数据集外包并可验证。这些技术降低区块链节点对存储资源依赖,即通过可验证的方法把数据集外包到外包存储服务节点,充分利用外包存储服务节点的大存储能力和高速查询能力,可支持第三方的查询。
步骤103:第一节点接收第一外包计算服务节点的第一计算结果,对第一计算结果进行验证,如果验证通过,则对第一计算结果进行签名并根据第一计算结果构造备选区块;
需要说明的是,所述第一节点可以通过自身对第一计算结果进行验证,也可以通过除自身和所述第一外包计算服务节点之外的第三方节点对第一计算结果进行验证。
在一种示例性的实施例中,所述对第一计算结果进行验证,包括:
通过验证算法验证第一计算结果是否正确;
如果第一计算结果正确,验证所述第一计算使用的增量交易数据是否合法且所述第一计算结果中的账户集合信息是否正确;
如果所述第一计算使用的增量交易数据合法且所述第一计算结果中的账户集合信息正确,则验证通过。
在该实施例中,所述第一节点对第一外包计算服务节点的第一计算结果采用可验证外包计算的验证算法进行验证,如果第一计算结果不正确则丢弃,丢弃后也可以再外包到其他的外包计算服务节点继续计算,如果第一计算结果正确、备选区块中的增量交易数据合法且账户集合信息(即账户信息集合的当前状态)正确,则对第一计算结果进行签名,并根据第一计算结果构造第i+1备选区块Bi+1
步骤104:第一节点向区块链网络发布所述备选区块。
在步骤104之后,其它节点从区块链网络接收备选区块,验证所述备选区块并根据共识算法进行处理。
需要说明的是,其它节点可以通过自身去验证所述备选区块,也可以通过第二外包计算服务节点去验证所述备选区块。
实施例二区块生成方法二
如图2所示,根据本发明实施例的一种区块生成方法,包括如下步骤:
步骤201:第二节点从区块链网络接收备选区块;
在一种示例性的实施例中,在第二节点从区块链网络接收备选区块的步骤之后,所述步骤201还包括:第二节点验证所述备选区块的签名是否有效,如果所述备选区块的签名有效,则继续执行步骤202。
在本实施例的一示例中,如果共识算法为交互型共识算法,在验证所述备选区块的签名有效的步骤之后且继续执行步骤202之前,所述步骤201还包括:第二节点验证所述备选区块的签名节点是否合法(即验证所述签名节点是不是合法的打包者),如果合法,则继续执行步骤202。
具体地,假设接收到的备选区块为Bi+1,第二节点接收到备选区块Bi+1后,首先需要验证第i+1备选区块Bi+1中的签名校验区块签名的有效性。
步骤202:第二节点将所述备选区块发送至第二外包计算服务节点,或者,抽取所述备选区块中的增量交易数据和账户集合信息并发送至第二外包计算服务节点,以用于所述第二外包计算服务节点进行第二计算;
本申请将可验证的外包计算技术运用到区块链的共识算法的计算外包中。需要说明的是,本申请强调的是通过采用可验证的外包计算技术来计算共识条件是否达成,以解决区块链网络参与计算的节点的资源依赖问题,可验证的外包计算技术可以通过现有技术中的算法实现,本申请对此并不做限制。
在一种示例性的实施例中,所述第二计算包括:验证所述备选区块中的增量交易数据是否合法且所述备选区块中的账户集合信息是否正确。
需要说明的是,上述验证备选区块的签名是否有效的步骤也可以外包至第二外包计算服务节点上执行。因此,在另一种示例性的实施例中,所述第二计算还可以包括:验证备选区块的签名是否有效。
在该实施例的一示例中,如果共识算法为非交互型共识算法,第二节点针对新收到的区块信息提取增量交易Ti+1以及账户信息集合的当前状态(worldstate)Si+1,然后把这些信息和对应的算法发给外包计算服务节点进行计算。
在该实施例的另一示例中,如果共识算法为交互型共识算法,例如BFT共识算法,则第二节点需要先判定收到的备选区块中的签名节点的合法性(是不是合法的区块打包者,一般称为leader),如果判定签名节点合法,第二节点再抽取增量交易Ti+1和账户信息集合的当前状态(worldstate)Si+1,然后再发给外包计算服务节点进行计算。
需要说明的是,上述验证备选区块的签名节点是否合法的步骤也可以外包至第二外包计算服务节点上执行。因此,在又一种示例性的实施例中,所述第二计算还可以包括:验证备选区块的签名节点是否合法。
步骤203:第二节点接收所述第二外包计算服务节点的第二计算结果,对第二计算结果进行验证,如果验证通过,则根据共识算法判定是否能够接受所述备选区块为生成的新区块。
需要说明的是,所述第二节点可以通过自身对第二计算结果进行验证,也可以通过除自身和所述第二外包计算服务节点之外的第三方节点对第二计算结果进行验证。
在一种示例性的实施例中,所述对第二计算结果进行验证,包括:
通过验证算法验证第二计算结果是否正确;
如果第二计算结果正确,验证第二计算结果中增量交易数据是否合法且账户集合信息是否正确;
如果所述第二计算结果中增量交易数据合法且账户集合信息正确,则验证通过。
需要说明的是,当第二节点接收到第二外包计算服务节点返回的第二计算结果后,需要依次进行以下两步验证:
第一步:根据可验证外包计算的验证算法验证第二计算结果正确与否,如果正确,则执行下一步,如果不正确则丢弃,丢弃后也可以再外包到其他的第二外包计算服务节点重新进行计算;
第二步:验证第二计算结果中的计算结论是否正确,即收到的第i+1区块里的增量交易Ti+1是否允许以及账户信息集合的当前状态(worldstate)Si+1是否正确。这里需要解释一下第二步的必要性,可验证外包计算的验证算法只能确保外包计算是正确的,也就是说只能验证外包计算服务提供方按照给定的算法和数据忠实地没有作假地完成了计算,不能保证计算结论本身的正确性,所以必须执行第二步。具体地说,第二节点必须能验证增量交易Ti+1的合法性以及账户信息集合的当前状态(worldstate)Si+1的正确性,第二节点在请求外包计算服务时,也必须附带上验证增量交易Ti+1合法性和账户信息集合的当前状态(worldstate)哈希Si+1的正确性方法,以便外包计算服务返还的结果可以进一步被第二节点用于验证增量交易Ti+1本身的合法性和Si+1的正确性。
在一种示例性的实施例中,所述根据共识算法判定是否能够接受所述备选区块为生成的新区块,包括:
如果所述共识算法为非交互型共识算法,则接受所述备选区块为生成的新区块;
如果所述共识算法为交互型共识算法,则按照交互型共识算法的步骤对所述备选区块继续进行共识过程,并在达到共识后,接受所述备选区块为生成的新区块。
需要说明的是,如果共识算法是非交互型共识算法,则第二节点根据验证结果直接判定是否接受这个第i+1备选区块Bi+1,如果上述两步验证都通过则接受,反之则丢弃,接受后第i+1高度的新区块就产生了,第二节点将这个第i+1高度的新区块/>在区块链网络中广播并进入下一个区块周期。
如果共识算法是交互型共识算法,则第二节点需要按照交互型共识算法的步骤继续进行共识过程,比如,在典型的基于BFT的共识算法中,则由第二节点再次对该区块的哈希进行签名,然后发出对该区块的投票。其它参与共识的节点将收到这个投票。其它参与共识的节点收到投票后根据共识算法的要求提取信息,典型的基于BFT的共识算法需要对投票进行计数,当超出一定投票计数阈值后则认为达成共识即可停止这个循环,否则将继续进行该第i+1区块的产生和投票的过程,直至一个候选区块达到共识要求的投票计数阈值后达成共识,参与共识的节点即可接受备选区块Bi+1为第i+1高度的新区块将这个第i+1高度的新区块/>在区块链网络中广播并进入下一个区块周期;或者采用一种强制结束的方法,基于BFT的共识算法在限定几次无法达成共识情况下放弃对该区块的共识过程,一种常见的做法是将该区块记为0后将这个标记为0的区块在区块链网络中广播并进入下一个区块产生循环过程。
在一种示例性的实施例中,在所述根据共识算法判定能够接受所述备选区块为生成的新区块之后,所述方法还包括:
向外包存储服务节点申请外包存储服务,将所述生成的新区块保存至所述外包存储服务节点中。
需要说明的是,第二节点在接受第i+1区块后,可以通过自身存储所述第i+1区块/>也可以通过外包存储服务节点存储所述第i+1区块/>如果通过外包存储服务节点存储所述第i+1区块/>第二节点向外包存储服务节点申请外包存储服务,外包存储服务节点按要求安全地保存区块,并返回第二节点可以验证的存储凭证。
实施例三存储介质
本发明实施例还提供了一种存储介质,所述存储介质上存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一所述的区块生成方法的步骤。
实施例四区块生成装置
本发明实施例还提供了一种区块生成装置,包括处理器及存储器,所述处理器用于执行所述存储器中存储的程序,以实现如以上任一所述的区块生成方法的步骤。
实施例五区块同步方法
节点在同步区块的过程中,也可以使用外包计算服务节点提供计算服务以验证未同步的区块的正确性和有效性,并可以使用外包存储服务节点存储要同步的区块。
如图3所示,根据本发明实施例的一种区块同步方法,包括如下步骤:
步骤301:第三节点从区块链网络接收未同步的区块;
具体地,假设未同步的区块为第i+1区块Bi+1
步骤302:第三节点将所述未同步的区块发送至第三外包计算服务节点,以用于所述第三外包计算服务节点进行第三计算;
本申请将可验证的外包计算技术运用到区块链的共识算法的计算外包中。需要说明的是,本申请强调的是通过采用可验证的外包计算技术来计算共识条件是否达成,以解决区块链网络参与计算的节点的资源依赖问题,可验证的外包计算技术可以通过现有技术中的算法实现,本申请对此并不做限制。
在该实施例中,第三节点作为外包服务客户,通过可验证的外包计算技术把新收到的区块数据Bi+1提交给第三外包计算服务节点,并同时给出第三计算的验证算法和数据集,此处的数据集至少包括第i区块的数据集,所述第i区块的数据集至少包括第i区块的账户集合Ai,当第i区块的数据集外包存储至外包存储服务节点时,第三节点提供外包存储的第i区块的数据集的数据地址且保证外包存储服务的正确性。
在一种示例性的实施例中,所述第三计算包括:验证所述未同步的区块的正确性和有效性。
在该实施例的一示例中,验证所述未同步的区块的正确性和有效性包括以下至少之一:
验证所述未同步的区块包括的交易数据的有效性;
验证所述未同步的区块的正确性;
验证所述未同步的区块签名的有效性。
第三外包计算服务节点按照第三节点请求外包计算服务时提供的第三算法要求和数据集,验证未同步的区块的正确性和有效性,具体的验证过程包括:
1)验证未同步的区块包括的交易数据的有效性,第三外包计算服务节点读取第i区块Bi+1对应的账号集合Ai,通过Ai验证第三节点提交的第i+1区块Bi+1中包括的交易数据Ti+1的有效性。第i区块对应的账号状态Ai可以从第i区块的区块链数据中获得。
2)验证未同步的区块的正确性,第三外包计算服务节点通过重新计算出第i+1高度对应的账户信息集合的当前状态(worldstate)哈希Si+1,同节点提供的第i+1区块中对应的Si+1'进行比较,以验证该第i+1区块的正确性。
3)验证未同步的区块签名的有效性,第三外包计算服务节点验证第i+1区块中的签名校验区块签名的有效性。
需要说明的是,上述验证未同步的区块签名的有效性的步骤也可以不外包至第三外包计算服务节点,直接由第三节点进行验证。此时,具体的验证过程包括:验证未同步的区块包括的交易数据的有效性,以及验证未同步的区块的正确性。
步骤303:第三节点接收第三外包计算服务节点的第三计算结果,并对所述第三计算结果进行验证,如果验证通过,则同步所述未同步的区块。
在该实施例中,第三节点对第三外包计算服务节点的第三计算结果采用可验证外包计算的验证算法进行验证,如果验证不通过则丢弃,如果验证通过则第三节点接受所述未同步的区块Bi+1为要同步的区块
在一种示例性的实施例中,所述同步所述未同步的区块,包括:
所述第三节点向外包存储服务节点申请外包存储服务,将所述未同步的区块同步至所述外包存储服务节点中。
需要说明的是,第三节点接受未同步的区块Bi+1为要同步的区块后,第三节点可以通过自身存储所述要同步的区块/>也可以通过外包存储服务节点存储所述要同步的区块/>如果第三节点通过外包存储服务节点存储所述要同步的区块/>第三节点向外包存储服务节点申请外包存储服务,外包存储服务节点按要求安全地保存区块,并返回可以验证的存储凭证给第三节点。
实施例六存储介质
本发明实施例还提供了一种存储介质,所述存储介质上存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一所述的区块同步方法的步骤。
实施例七区块同步装置
本发明实施例还提供了一种区块同步装置,包括处理器及存储器,所述处理器用于执行所述存储器中存储的程序,以实现如以上任一所述的区块同步方法的步骤。
实施例八区块链系统
本发明实施例还提供了一种区块链系统,包括第一节点和第二节点,其中:
第一节点,用于从区块链网络接收未打包到区块链上的增量交易数据;将所述增量交易数据发送至第一外包计算服务节点,以用于所述第一外包计算服务节点进行第一计算;接收第一外包计算服务节点的第一计算结果,并对第一计算结果进行验证,如果验证通过,则对第一计算结果进行签名并根据第一计算结果构造备选区块;向区块链网络发布所述备选区块;
第二节点,用于从区块链网络接收备选区块,验证所述备选区块并根据共识算法进行处理。
具体地,假设当前的区块高度为i,i为自然数,第一节点接收的增量交易数据为第i+1区块的增量交易数据Ti+1
在一种示例性的实施例中,所述第一节点还用于:将当前区块的数据集信息及共识算法发送至所述第一外包计算服务节点;
所述第一计算包括:根据所述增量交易数据、当前区块的数据集信息及共识算法计算备选区块的账户集合信息。
在该实施例的一示例中,所述第一节点将当前区块的数据集通过外包存储服务,存储在外包存储服务节点中;
所述第一节点的将当前区块的数据集信息发送至第一外包计算服务节点,具体为:将当前区块的数据集的数据地址发送至第一外包计算服务节点。
第一节点作为外包服务客户通过可验证的外包计算技术把新收到的合适数量的增量交易数据Ti+1外包给第一外包计算服务节点,并同时给出共识算法和数据集,数据集至少包含增量交易数据Ti+1和第i区块的数据集,所述第i区块的数据集至少包括第i区块的账户集合Ai,当第i区块的数据集外包存储至外包存储服务节点时,第一节点提供外包存储的第i区块的数据集的数据地址且保证外包存储服务的正确性。第一外包计算服务节点按照第一节点请求外包计算服务时提供的共识算法和数据集,计算出第i+1备选区块的对应的账户信息集合的当前状态(worldstate)Si+1
本申请将可验证的外包计算技术运用到区块链的共识算法的计算外包中。需要说明的是,本申请强调的是通过采用可验证的外包计算技术来计算共识条件是否达成,以解决区块链网络参与计算的节点的资源依赖问题,可验证的外包计算技术可以通过现有技术中的算法实现,本申请对此并不做限制。
需要说明的是,所述第一节点可以通过自身对第一计算结果进行验证,也可以通过除自身和所述第一外包计算服务节点之外的第三方节点对第一计算结果进行验证。第二节点可以通过自身去验证所述备选区块,也可以通过第二外包计算服务节点去验证所述备选区块。
在一种示例性的实施例中,所述第一节点的对第一计算结果进行验证,包括:
通过验证算法验证第一计算结果是否正确;
如果第一计算结果正确,验证所述第一计算使用的增量交易数据是否合法且所述第一计算结果中的账户集合信息是否正确;
如果所述第一计算使用的增量交易数据合法且所述第一计算结果中的账户集合信息正确,则验证通过。
在该实施例中,所述第一节点对第一外包计算服务节点的第一计算结果采用可验证外包计算的验证算法进行验证,如果第一计算结果不正确则丢弃,丢弃后也可以再外包到其他的外包计算服务节点继续计算,如果第一计算结果正确、备选区块中的增量交易数据合法且账户集合信息(即账户信息集合的当前状态)正确,则对第一计算结果进行签名,并根据第一计算结果构造第i+1备选区块Bi+1
在一种示例性的实施例中,所述第二节点,具体用于:
从区块链网络接收备选区块,将所述备选区块发送至第二外包计算服务节点,或者,抽取所述备选区块中的增量交易数据和账户集合信息并发送至第二外包计算服务节点,以用于所述第二外包计算服务节点进行第二计算;接收所述第二外包计算服务节点的第二计算结果,对第二计算结果进行验证,如果验证通过,则根据共识算法判定是否能够接受所述备选区块为生成的新区块。
在一种示例性的实施例中,在从区块链网络接收备选区块的步骤之后且在将所述备选区块发送至第二外包计算服务节点,或者,抽取所述备选区块中的增量交易数据和账户集合信息并发送至第二外包计算服务节点的步骤之前,所述第二节点还用于:验证所述备选区块的签名是否有效,如果所述备选区块的签名有效,则将所述备选区块发送至第二外包计算服务节点,或者,抽取所述备选区块中的增量交易数据和账户集合信息并发送至第二外包计算服务节点。
具体地,假设接收到的备选区块为Bi+1,第二节点接收到备选区块Bi+1后,首先需要验证第i+1备选区块Bi+1中的签名校验区块签名的有效性。
在一种示例性的实施例中,所述第二计算包括:验证所述备选区块中的增量交易数据是否合法且所述备选区块中的账户集合信息是否正确。
在该实施例的一示例中,如果共识算法为非交互型共识算法,第二节点针对新收到的区块信息提取增量交易Ti+1以及账户信息集合的当前状态(worldstate)Si+1,然后把这些信息和对应的算法发给第二外包计算服务节点进行计算。
在本实施例的另一示例中,如果共识算法为交互型共识算法,在验证所述备选区块的签名有效的步骤之后且在将所述备选区块发送至第二外包计算服务节点,或者,抽取所述备选区块中的增量交易数据和账户集合信息并发送至第二外包计算服务节点的步骤之前,所述第二节点还用于:验证所述备选区块的签名节点是否合法(即验证所述签名节点是不是合法的打包者),如果合法,则将所述备选区块发送至第二外包计算服务节点,或者,抽取所述备选区块中的增量交易数据和账户集合信息并发送至第二外包计算服务节点。
在该示例中,如果共识算法为交互型共识算法,例如BFT共识算法,则第二节点需要先判定收到的备选区块中的签名节点的合法性(是不是合法的区块打包者,一般称为leader),如果判定签名节点合法,第二节点再抽取增量交易Ti+1和账户信息集合的当前状态(worldstate)Si+1,然后再发给外包计算服务节点进行计算。
需要说明的是,上述验证备选区块的签名是否有效和/或验证备选区块的签名节点是否合法的步骤也可以外包至第二外包计算服务节点上执行。因此,在另一种示例性的实施例中,所述第二计算还可以包括:验证备选区块的签名是否有效,和/或,验证备选区块的签名节点是否合法。
在一种示例性的实施例中,所述第二节点的对第二计算结果进行验证,包括:
通过验证算法验证第二计算结果是否正确;
如果第二计算结果正确,验证第二计算结果中增量交易数据是否合法且账户集合信息是否正确;
如果所述第二计算结果中增量交易数据合法且账户集合信息正确,则验证通过。
需要说明的是,当第二节点接收到第二外包计算服务节点返回的第二计算结果后,需要依次进行以下两步验证:
第一步:根据可验证外包计算的验证算法验证第二计算结果正确与否,如果正确,则执行下一步,如果不正确则丢弃,丢弃后也可以再外包到其他的第二外包计算服务节点重新进行计算;
第二步:验证第二计算结果中的计算结论是否正确,即收到的第i+1区块里的增量交易Ti+1是否允许以及账户信息集合的当前状态(worldstate)Si+1是否正确。这里需要解释一下第二步的必要性,可验证外包计算的验证算法只能确保外包计算是正确的,也就是说只能验证外包计算服务提供方按照给定的算法和数据忠实地没有作假地完成了计算,不能保证计算结论本身的正确性,所以必须执行第二步。具体地说,第二节点必须能验证增量交易Ti+1的合法性以及账户信息集合的当前状态(worldstate)Si+1的正确性,第二节点在请求外包计算服务时,也必须附带上验证增量交易Ti+1合法性和账户信息集合的当前状态(worldstate)哈希Si+1的正确性方法,以便外包计算服务返还的结果可以进一步被第二节点用于验证增量交易Ti+1本身的合法性和Si+1的正确性。
在一种示例性的实施例中,所述第二节点的根据共识算法判定是否能够接受所述备选区块为生成的新区块,包括:
如果所述共识算法为非交互型共识算法,则接受所述备选区块为生成的新区块;
如果所述共识算法为交互型共识算法,则按照交互型共识算法的步骤对所述备选区块继续进行共识过程,并在达到共识后,接受所述备选区块为生成的新区块。
需要说明的是,如果共识算法是非交互型共识算法,则第二节点根据验证结果直接判定是否接受这个第i+1备选区块Bi+1,如果上述两步验证都通过则接受,反之则丢弃,接受后第i+1高度的新区块就产生了,第二节点将这个第i+1高度的新区块/>在区块链网络中广播并进入下一个区块周期。
如果共识算法是交互型共识算法,则第二节点需要按照交互型共识算法的步骤继续进行共识过程,比如,在典型的基于BFT的共识算法中,则由第二节点再次对该区块的哈希进行签名,然后发出对该区块的投票。其它参与共识的节点将收到这个投票。其它参与共识的节点收到投票后根据共识算法的要求提取信息,典型的基于BFT的共识算法需要对投票进行计数,当超出一定投票计数阈值后则认为达成共识即可停止这个循环,否则将继续进行该第i+1区块的产生和投票的过程,直至一个候选区块达到共识要求的投票计数阈值后达成共识,参与共识的节点即可接受备选区块Bi+1为第i+1高度的新区块将这个第i+1高度的新区块/>在区块链网络中广播并进入下一个区块周期;或者采用一种强制结束的方法,基于BFT的共识算法在限定几次无法达成共识情况下放弃对该区块的共识过程,一种常见的做法是将该区块记为0后将这个标记为0的区块在区块链网络中广播并进入下一个区块产生循环过程。
在一种示例性的实施例中,在所述根据共识算法判定能够接受所述备选区块为生成的新区块之后,所述第二节点还用于:
向外包存储服务节点申请外包存储服务,将所述生成的新区块保存至所述外包存储服务节点中。
在该实施例中,第二节点在接受第i+1区块后,即可以向外包存储服务节点申请外包存储服务,外包存储服务节点按要求安全地保存区块,并返回第二节点可以验证的存储凭证。
在一种示例性的实施例中,所述区块链系统还包括第三节点,其中:
所述第三节点,用于从区块链网络接收未同步的区块;将所述未同步的区块发送至第三外包计算服务节点,以用于所述第三外包计算服务节点进行第三计算;第三节点接收第三外包计算服务节点的第三计算结果,并对所述第三计算结果进行验证,如果验证通过,则同步所述未同步的区块。
在一种示例性的实施例中,所述第三计算包括:验证所述未同步的区块的正确性和有效性。
在该实施例的一示例中,所述第三计算包括以下至少之一:
验证所述未同步的区块包括的交易数据的有效性;
验证所述未同步的区块的正确性;
验证所述未同步的区块签名的有效性。
在该实施例中,假设未同步的区块为第i+1区块Bi+1,第三节点作为外包服务客户,通过可验证的外包计算技术把新收到的区块数据Bi+1提交给第三外包计算服务节点,并同时给出第三计算的验证算法和数据集,此处的数据集至少包括第i区块的数据集,所述第i区块的数据集至少包括第i区块的账户集合Ai,当第i区块的数据集外包存储至外包存储服务节点时,第三节点提供外包存储的第i区块的数据集的数据地址且保证外包存储服务的正确性。
第三外包计算服务节点按照第三节点请求外包计算服务时提供的第三算法要求和数据集,验证未同步的区块的正确性和有效性,具体的验证过程包括:
1)验证未同步的区块包括的交易数据的有效性,第三外包计算服务节点读取第i区块Bi+1对应的账号集合Ai,通过Ai验证第三节点提交的第i+1区块Bi+1中包括的交易数据Ti+1的有效性。第i区块对应的账号状态Ai可以从第i区块的区块链数据中获得。
2)验证未同步的区块的正确性,第三外包计算服务节点通过重新计算出第i+1高度对应的账户信息集合的当前状态(worldstate)哈希Si+1,同节点提供的第i+1区块中对应的Si+1'进行比较,以验证该第i+1区块的正确性。
3)验证未同步的区块签名的有效性,第三外包计算服务节点验证第i+1区块中的签名校验区块签名的有效性。
需要说明的是,验证所述未同步的区块签名的有效性的步骤也可以不外包至第三外包计算服务节点,直接由第三节点进行验证。此时,具体的验证过程包括:验证未同步的区块包括的交易数据的有效性,以及验证未同步的区块的正确性。
第三节点对第三外包计算服务节点的第三计算结果采用可验证外包计算的验证算法进行验证,如果验证不通过则丢弃,如果验证通过则第三节点接受所述未同步的区块Bi+1为要同步的区块
在一种示例性的实施例中,所述第三节点的同步所述未同步的区块,包括:
所述第三节点向外包存储服务节点申请外包存储服务,将所述未同步的区块同步至所述外包存储服务节点中。
需要说明的是,第三节点接受未同步的区块Bi+1为要同步的区块后,第三节点可以通过自身存储所述要同步的区块/>也可以通过外包存储服务节点存储所述要同步的区块/>如果第三节点通过外包存储服务节点存储所述要同步的区块/>第三节点向外包存储服务节点申请外包存储服务,外包存储服务节点按要求安全地保存区块,并返回可以验证的存储凭证给第三节点。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (13)

1.一种区块生成方法,其特征在于,包括:
第一节点从区块链网络接收未打包到区块链上的第i+1高度区块的增量交易数据,i为自然数;
第一节点将所述第i+1高度区块的增量交易数据、第i高度区块的数据集信息及共识算法发送至第一外包计算服务节点,所述第i高度区块的数据集信息通过外包存储服务,存储在外包存储服务节点中;
所述第一外包计算服务节点检验第一节点提供的第i高度区块的数据集信息中的账户集合Ai的当前状态是否可以合法的执行交易,将合法的交易打包形成增量交易数据Ti+1,根据第i高度区块账户集合的当前状态和增量交易数据计算i+1高度对应的账户集合的当前状态 Si+1,将Si+1作为第一计算结果发送至第一节点;
第一节点接收第一外包计算服务节点的第一计算结果,对第一计算结果进行验证,如果验证通过,则对第一计算结果进行签名并根据第一计算结果构造第i+1高度备选区块;
第一节点向区块链网络发布所述第i+1高度备选区块。
2.根据权利要求1所述的区块生成方法,其特征在于,所述对第一计算结果进行验证,包括:
通过验证算法验证所述第一计算结果是否正确;
如果所述第一计算结果正确,验证所述第一计算使用的增量交易数据是否合法且所述第一计算结果中的账户集合信息是否正确;
如果所述第一计算使用的增量交易数据合法且所述第一计算结果中的账户集合信息正确,则验证通过。
3.一种区块生成方法,其特征在于,包括:
第二节点从区块链网络接收备选区块,验证所述备选区块的签名是否有效;
若所述备选区块的签名有效,第二节点将所述备选区块发送至第二外包计算服务节点,或者,抽取所述备选区块中的增量交易数据和账户集合信息并发送至第二外包计算服务节点,以用于所述第二外包计算服务节点进行第二计算;所述第二计算包括:验证所述备选区块中的增量交易数据是否合法且所述备选区块中的账户集合信息是否正确;
第二节点接收所述第二外包计算服务节点的第二计算结果,对第二计算结果进行验证,如果验证通过,则根据共识算法判定是否能够接受所述备选区块为生成的新区块;所述对第二计算结果进行验证,包括:通过验证算法验证所述第二计算结果是否正确;如果所述第二计算结果正确,验证所述第二计算结果中的所述增量交易数据是否合法且所述账户集合信息是否正确;如果所述第二计算结果中的所述增量交易数据合法且所述账户集合信息正确,则验证通过。
4.根据权利要求3所述的区块生成方法,其特征在于,所述根据共识算法判定是否能够接受所述备选区块为生成的新区块,包括:
如果所述共识算法为非交互型共识算法,则接受所述备选区块为生成的新区块;
如果所述共识算法为交互型共识算法,则按照交互型共识算法的步骤对所述备选区块继续进行共识过程,并在达到共识后,接受所述备选区块为生成的新区块。
5.根据权利要求3所述的区块生成方法,其特征在于,在所述根据共识算法判定能够接受所述备选区块为生成的新区块之后,所述方法还包括:
向外包存储服务节点申请外包存储服务,将所述生成的新区块保存至所述外包存储服务节点中。
6.一种存储介质,其特征在于,所述存储介质上存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至权利要求5任一所述的区块生成方法的步骤。
7.一种区块生成装置,其特征在于,包括处理器及存储器,所述处理器用于执行所述存储器中存储的程序,以实现如权利要求1至权利要求5任一所述的区块生成方法的步骤。
8.一种区块同步方法,其特征在于,包括:
第三节点从区块链网络接收未同步的区块;
第三节点将所述未同步的区块发送至第三外包计算服务节点,以用于所述第三外包计算服务节点进行第三计算,其中,所述第三计算包括:验证所述未同步的区块的正确性和有效性;所述验证所述未同步的区块的正确性和有效性包括以下至少之一:验证所述未同步的区块包括的交易数据的有效性、验证所述未同步的区块的正确性、验证所述未同步的区块签名的有效性;
第三节点接收第三外包计算服务节点的第三计算结果,并对所述第三计算结果进行验证,如果验证通过,则同步所述未同步的区块,所述同步所述未同步的区块,包括:所述第三节点向外包存储服务节点申请外包存储服务,将所述未同步的区块同步保存至所述外包存储服务节点中。
9.一种存储介质,其特征在于,所述存储介质上存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求8所述的区块同步方法的步骤。
10.一种区块同步装置,其特征在于,包括处理器及存储器,所述处理器用于执行所述存储器中存储的程序,以实现如权利要求8所述的区块同步方法的步骤。
11.一种区块链系统,其特征在于,包括第一节点和第二节点,其中:
第一节点,用于从区块链网络接收未打包到区块链上的第i+1高度区块的增量交易数据,i为自然数;将所述第i+1高度区块的增量交易数据、第i高度区块的数据集信息及共识算法发送至第一外包计算服务节点,以用于所述第一外包计算服务节点进行第一计算,所述第一计算包括:检验第一节点提供的第i高度区块的数据集信息中的账户集合Ai的当前状态是否可以合法的执行交易,将合法的交易打包形成增量交易数据Ti+1,根据第i高度区块账户集合的当前状态和增量交易数据计算i+1高度对应的账户集合的当前状态Si+1,将Si+1作为第一计算结果发送至第一节点,所述第i高度区块的数据集通过外包存储服务,存储在外包存储服务节点中;接收第一外包计算服务节点的第一计算结果,并对第一计算结果进行验证,如果验证通过,则对第一计算结果进行签名并根据第一计算结果构造第i+1高度备选区块;向区块链网络发布所述备选区块;
第二节点,用于从区块链网络接收备选区块,验证所述备选区块并根据共识算法进行处理。
12.根据权利要求11所述的区块链系统,其特征在于,所述第二节点,具体用于:
从区块链网络接收备选区块,将所述备选区块发送至第二外包计算服务节点,或者,抽取所述备选区块中的增量交易数据和账户集合信息并发送至第二外包计算服务节点,以用于所述第二外包计算服务节点进行第二计算;接收所述第二外包计算服务节点的第二计算结果,对第二计算结果进行验证,如果验证通过,则根据共识算法判定是否能够接受所述备选区块为生成的新区块。
13.根据权利要求11所述的区块链系统,其特征在于,还包括第三节点,其中:
所述第三节点,用于从区块链网络接收未同步的区块;将所述未同步的区块发送至第三外包计算服务节点,以用于所述第三外包计算服务节点进行第三计算,所述第三计算为验证所述未同步的区块的正确性和有效性;接收第三外包计算服务节点的第三计算结果,并对所述第三计算结果进行验证,如果验证通过,则同步所述未同步的区块。
CN201910266665.XA 2019-04-03 2019-04-03 区块生成方法、同步方法、装置、区块链系统和存储介质 Active CN111787034B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910266665.XA CN111787034B (zh) 2019-04-03 2019-04-03 区块生成方法、同步方法、装置、区块链系统和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910266665.XA CN111787034B (zh) 2019-04-03 2019-04-03 区块生成方法、同步方法、装置、区块链系统和存储介质

Publications (2)

Publication Number Publication Date
CN111787034A CN111787034A (zh) 2020-10-16
CN111787034B true CN111787034B (zh) 2024-01-16

Family

ID=72755289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910266665.XA Active CN111787034B (zh) 2019-04-03 2019-04-03 区块生成方法、同步方法、装置、区块链系统和存储介质

Country Status (1)

Country Link
CN (1) CN111787034B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949672B (zh) * 2020-07-30 2021-11-30 杭州电子科技大学 一种支持物联网数据增量更新的区块链存储方法
CN112486518B (zh) * 2020-12-01 2024-03-12 北京微芯区块链与边缘计算研究院 共识算法装配方法及装置
CN114723564B (zh) * 2022-06-01 2022-10-28 杭州天谷信息科技有限公司 一种区块链生成方法以及区块链结构

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529932A (zh) * 2016-11-01 2017-03-22 西安电子科技大学 一种基于比特币的外包计算公平支付方法
CN108667614A (zh) * 2018-04-19 2018-10-16 上海分布信息科技有限公司 一种拜占庭容错方法及其实现系统
CN108923932A (zh) * 2018-07-10 2018-11-30 东北大学 一种去中心化协同验证模型及验证算法
WO2018224943A1 (en) * 2017-06-09 2018-12-13 nChain Holdings Limited Blockchain for general computation
CN109064329A (zh) * 2018-07-10 2018-12-21 矩阵元技术(深圳)有限公司 一种算力交易方法及计算通道
GB201820267D0 (en) * 2018-12-12 2019-01-30 Univ York Proof-of-work for blockchain applications
CN109302405A (zh) * 2018-10-31 2019-02-01 北京邮电大学 基于边缘计算的工业数据检测区块链网络架构及检测方法
CN109447803A (zh) * 2018-10-26 2019-03-08 全链通有限公司 联盟链的记账方法、设备、联盟链及存储介质
US10250708B1 (en) * 2017-12-26 2019-04-02 Akamai Technologies, Inc. High performance distributed system of record

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10832247B2 (en) * 2016-09-15 2020-11-10 American Express Travel Related Services Company, Inc. Systems and methods for blockchain based payment networks
US10587628B2 (en) * 2016-09-29 2020-03-10 Microsoft Technology Licensing, Llc Verifiable outsourced ledgers
US10984134B2 (en) * 2017-07-14 2021-04-20 Microsoft Technology Licensing, Llc Blockchain system for leveraging member nodes to achieve consensus
US20190050854A1 (en) * 2018-09-28 2019-02-14 Intel Corporation Blockchain-based digital data exchange

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529932A (zh) * 2016-11-01 2017-03-22 西安电子科技大学 一种基于比特币的外包计算公平支付方法
WO2018224943A1 (en) * 2017-06-09 2018-12-13 nChain Holdings Limited Blockchain for general computation
US10250708B1 (en) * 2017-12-26 2019-04-02 Akamai Technologies, Inc. High performance distributed system of record
CN108667614A (zh) * 2018-04-19 2018-10-16 上海分布信息科技有限公司 一种拜占庭容错方法及其实现系统
CN108923932A (zh) * 2018-07-10 2018-11-30 东北大学 一种去中心化协同验证模型及验证算法
CN109064329A (zh) * 2018-07-10 2018-12-21 矩阵元技术(深圳)有限公司 一种算力交易方法及计算通道
CN109447803A (zh) * 2018-10-26 2019-03-08 全链通有限公司 联盟链的记账方法、设备、联盟链及存储介质
CN109302405A (zh) * 2018-10-31 2019-02-01 北京邮电大学 基于边缘计算的工业数据检测区块链网络架构及检测方法
GB201820267D0 (en) * 2018-12-12 2019-01-30 Univ York Proof-of-work for blockchain applications

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Outsourcing Service Fair Payment Based on Blockchain and Its Applications in Cloud Computing;Yinghui Zhang et al.;IEEE Transaction on Services Computing;全文 *
基于聚合签名的共识算法优化方案;苑超;徐蜜雪;斯雪明;;计算机科学(第02期);全文 *

Also Published As

Publication number Publication date
CN111787034A (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
KR102652551B1 (ko) 분산 조정을 사용한 스마트 계약 실행
JP7285840B2 (ja) プルーフ検証に基づいてオフ・チェーン・データを認証するシステム及び方法
CN110089069B (zh) 用于信息保护的系统和方法
CN111316615B (zh) 使用调解器计算机系统确保计算机程序正确执行的系统和方法
US20200344070A1 (en) Methods and devices for validating transaction in blockchain system
CA3037833C (en) System and method for information protection
US10867299B2 (en) Methods and devices for providing transaction data to blockchain system for processing
CN111787034B (zh) 区块生成方法、同步方法、装置、区块链系统和存储介质
Au et al. PERM: Practical reputation-based blacklisting without TTPs
Yadav et al. A comparative study on consensus mechanism with security threats and future scopes: Blockchain
KR102537774B1 (ko) 기밀 지식의 특화된 증명을 제공하는 시스템들 및 방법들
US20200259663A1 (en) One-Time Data Signature System and Method with Untrusted Server Assistance
KR102326460B1 (ko) 원장 시스템에서의 신뢰 포인트 관리
CN110990790B (zh) 一种数据处理方法及设备
CN111865595A (zh) 一种区块链的共识方法及装置
US20220278854A1 (en) Unity Protocol Consensus
CN110276693B (zh) 保险理赔方法及系统
CN111353780A (zh) 授权验证方法、装置及存储介质
CN112116461A (zh) 区块链及其共识方法
CN115118436B (zh) 区块链共识方法及装置、存储介质及电子设备
CN111106938A (zh) 信息处理方法、系统及设备
CN112633890B (zh) 一种基于区块链的隐匿权益证明的验证方法及装置
CN116938604B (zh) 一种基于多方的电子签章系统及方法
Jeong et al. A General and Robust Blockchain Storage System based on External Storage Service
Xie et al. A Raft Algorithm with Byzantine Fault-Tolerant Performance

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