CN111080298B - 一种适用于能源区块链的区块生成与交易验证方法 - Google Patents

一种适用于能源区块链的区块生成与交易验证方法 Download PDF

Info

Publication number
CN111080298B
CN111080298B CN201911362058.XA CN201911362058A CN111080298B CN 111080298 B CN111080298 B CN 111080298B CN 201911362058 A CN201911362058 A CN 201911362058A CN 111080298 B CN111080298 B CN 111080298B
Authority
CN
China
Prior art keywords
transaction
tree
block
node
account
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
CN201911362058.XA
Other languages
English (en)
Other versions
CN111080298A (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.)
Sichuan Can Trust Polytron Technologies Inc
University of Electronic Science and Technology of China
Original Assignee
Sichuan Can Trust Polytron Technologies Inc
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 Sichuan Can Trust Polytron Technologies Inc, University of Electronic Science and Technology of China filed Critical Sichuan Can Trust Polytron Technologies Inc
Priority to CN201911362058.XA priority Critical patent/CN111080298B/zh
Publication of CN111080298A publication Critical patent/CN111080298A/zh
Application granted granted Critical
Publication of CN111080298B publication Critical patent/CN111080298B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/06Energy or water supply

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Databases & Information Systems (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Development Economics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Public Health (AREA)
  • Water Supply & Treatment (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Tourism & Hospitality (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及能源区块链领域,具体为一种适用于能源区块链的区块生成与交易验证方法。针对电能源交易有明显的热点账户,原有的区块生成方式使得区块链验证交易是否合法对于每个账户都需要相同的计算与存储成本,本发明通过对电能源交易场景进行针对性优化,通过改造merkle树组织形式,使得优先级高的账户在形成区块时距查询的根结点最接近,能够更快速地查找到,相较于现有技术,能够达到降低计算成本的目的,具有灵活简单,高实用性的特点。

Description

一种适用于能源区块链的区块生成与交易验证方法
技术领域
本发明涉及能源区块链技术,尤其涉及非对等的区块链数据交易验证技术。
背景技术
能源行业中的交易与传统去中心化的交易***相比,有着大量交易集中发生在少数用户之间的特点,加之能源行业对安全性的严格要求,每一笔交易都需要足够信赖的用户背书,提供信用背书的用户被访问的频率远远大于普通用户。传统的区块链交易***中,每一个用户都是完全对等的,验证每一笔交易都需要同样的验证路径,这种结构难以适应能源行业交易集中化的特点。并且,传统区块链交易***难以快速合并交易,一旦交易发生错误,难以定位,从而导致运维困难。
发明内容
本发明所要解决的技术问题是,提供一种适用于能源***的区块链的,在分布式交易***中,体现关键角色的地位,在保证***稳定的前提下,提高交易的验证效率以及减少存储资源的浪费的区块生成与交易验证方法。
本发明为解决上述技术问题所采用的技术方案是,一种适用于能源区块链的区块生成方法,包括以下步骤:
步骤1:在所有参与能源交易的节点中在各选举周期内选举出唯一一个的记账节点;
步骤2:记账节点在记账周期到达时,统计当前待打包的区块所涉及的所有交易的账户状态,通过查找之前区块中的状态树对交易的合法性进行验证,剔除所有不合法交易后,将合法交易的账户的状态进行更新,将当前区块所涉及的账户的当前状态以各账户的公钥为键以梅克尔帕特里夏树的形式生成状态树,并将各账户的当前状态存储至数据库;所述状态包括交易的优先级、账户的余额、记录上一次该账户状态变动的区块的高度;
步骤3:记账节点对当前待打包的合法交易以交易接收方分组,每组内的交易按照优先级由高到低排序,将交易信息存储至当前区块,并更新状态树中的账户状态为交易后的账户状态;
步骤4:记账节点对每组内的交易按照优先级由低到高排序生成各交易接收方的交易链表:对组内优先级最低的交易计算第一个哈希Hash值,之后将后一个优先级的交易与最新已计算出的Hash值一起再计算Hash值,直至组合所有交易均参与完成hash值的计算;
步骤5:记账节点生成交易树:
5-1)记账节点取出所有交易链表中最后一个Hash值作为森林中的一个根结点,每一个根结点为一颗树;
5-2)在森林中选出优先级最小的两个根结点更新为一棵新树的左、右子树的子结点生成新树,且新树的根结点优先级为其左、右子树的子结点优先级之和,新树的根结点的Hash值为左、右子树的Hash值拼接后再计算Hash值;
5-3)判断当前森林中是否仅有一个根结点,如否,返回步骤5-2),如是,将最终生成的树与各交易链表来共同形成交易树;
步骤6:将状态树的根结点Hash值、交易树的根结点Hash值、当前区块的区块头哈希值、上一区块的区块头哈希值、时间戳写入当前区块的区块头,并将本地生成的完整的交易树和状态树写入到本区块,完成此次记账周期的区块生成。
一种基于上述区块生成的交易验证方法,包括以下步骤:
步骤1:客户端从记账节点处获取交易所在区块的区块头,并根据区块头从数据库中获取账户的状态,获取需要验证的接收方账户的所有涉及交易;
步骤2:根据账户状态中的优先级找到交易树的验证路径,并获取交易树中所涉及的Hash值,从叶子结点到根结点进行验证,当有结点被篡改,则重新获取该结点所对应的交易信息及其之后的交易信息。
本发明相较于传统区块链数据结构和访问方式,其有益效果是:
验证速度更快,在本发明提供的访问方法中,如果区块上有M笔交易,一个账户需要验证自己的N笔交易,则传统的访问方式需要做N次验证,每次验证平均需要logM次访问,总计需要N*logM次访问。而本发明只需要验证树一次,平均访问logM次,验证交易链表N次。总共需要N+logM次。可见在交易量大的时候能够极大减少验证次数。
重要交易验证成功率高,由于链式验证的特点,优先级越高的交易,所需要验证路径越少,对于优先级越高的账户之间的交易,越容易一次验证通过。
更少的储存空间占用,传统merkle树验证中,需要多层哈希数据支持验证,如果区块上有M笔交易,分属于K个账户,则传统验证中需要M个交易Hash值,M个验证Hash值,空间占用为2M。本发明中的验证方式,需要存储M个交易树的Hash,K个状态树的Hash,空间占用为M+K。在电力交易中,交易M>>账户K,这种方式能够极大减少存储空间浪费。
更少交易确认时间,传统验证方案中,验证双方必须遍历所有区块,得到所有账户的余额。在本方案中,只需要逐个遍历上一区块,根据交易的局部性,大概率在临近区块中找到上次交易后账户余额,减少了交易确认时间。
更方便优化,区块涉及账户状态信息保存在数据库中,方便采用缓存等优化查询效率。
附图说明
图1为实施例交易树数据结构;
图2为本发明所述交易验证过程;
图3 为实施例所述验证路径。
实施方式
本发明涉及的区块链组织结构,主要包括以下两方面:
1、状态树:是一个特殊的merkle树——梅克尔帕特里夏树。梅克尔帕特里夏树为特殊的哈希树,以公钥为键,存储的内容应该至少包括优先级,余额等状态。本实施例中,优先级与近期交易次数有关。也可以选用多种方式计算优先级,但应该保证优先级高的交易被查询概率越高或者地位越重要。余额为区块中所有涉及到用户上一区块余额交易后剩余余额。状态树用于验证状态,除此之外还应有存储公钥和状态对应关系的数据库,用于加快查找速度。状态树最主要的用处是在更短的时间内找到账户状态。状态树是在区块生成的时候使用的,区块生成的时候不能以本地的数据库为准,需要以链上参与节点达成共识的数据为准,这就需要从区块链中获取状态信息。
状态树还可以让新节点加入的时候通过状态树可以快速的将本地数据库构建完。新加入的节点从头开始从其他参与节点中获取到当前的所有区块,如果区块没有获取完成,则不参与共识。获取完成之后,从最后的区块开始向前迭代,遍历区块中的状态树,每找到一个新的账户就加入到本地数据库中,这样子就能够构建本地数据库。这是一个典型的本地状态数据库构建过程,由于有状态树的帮助,账户状态只与最后的状态有关,就不需要在遍历每一个区块的交易通过加减运算进行构建了。
2、交易树:是一个特殊的哈希树,最底层是在这一区块中每一交易接收方所有交易中优先级最大者的Hash值,其中验证路径的长度与交易双方,特别是交易接受方优先级密切相关,交易两方优先级越高,距离Hash Root 越近,这样可以保证优先级越高,验证路径越短。
状态树与交易树均保存在区块中,是要参与节点全局达成共识的。
本地数据库保存账户状态是为了方便节点查询。因为区块链只能保证链上的数据一致,不能保证数据库也是一致的,直接从区块链中查找账户状态成本比较高。比如一个新的交易请求到达,节点可以通过状态数据库快速的获取当前账户状态,如果有问题可以快速的返回失败。这个在客户端获取账户数据的时候也可以用到。相当于是一个缓存,但是区块打包的时候需要重新对交易合法性进行验证,这个时候就不能使用数据库的数据了,因为数据库的数据不保证一致性。
区块生成的方法如下:
步骤1:在所有参与能源交易的节点中在各选举周期内通过工作量证明POW机制选举出唯一一个的记账节点;
步骤2:交易池中的交易需要打包到区块中,记账节点在记账周期到达时,打包区块之前需要验证交易合法性:统计当前待打包的区块所涉及的所有交易的账户状态,通过查找之前区块中的状态树对交易的合法性进行验证。每一个区块都有一个状态树,状态树里记录了所有在本区块打包交易涉及的账户在本区块时候的状态。合法性进行验证主要目的是检验交易账户余额是否充足,另再检验签名是否合法。比如A账户最近一次交易的区块中的状态树显示只有10 token,但是他在本周期的所有的交易相加显示他需要转出20token,这样他只会有10token的交易成功,其他的不会打包到区块中。
记账节点剔除所有不合法交易后,将合法交易的账户的状态进行更新,将当前区块所涉及的账户的当前状态以各账户的公钥为键以梅克尔帕特里夏树的形式生成状态树,并将各账户的当前状态存储至数据库;所述状态包括交易的优先级、账户的余额、记录上一次该账户状态变动的区块的高度。
交易的合法性验证方法为:通过首先从上一区块的状态树中找涉及的交易发送方和接收方状态,如果上一区块没有找到,则从更上一级区块中的状态树中找,直到找到记录上次变动的状态树的区块,从中获取变动之后的状态信息,当交易双方的账户余额满足本次交易要求则判断为合法交易,否则为不合法交易。
步骤3:记账节点对当前待打包的合法交易以交易接收方分组,每组内的交易按照优先级由高到低排序,将交易信息存储至当前区块,并更新状态树中的账户状态为交易后的账户状态;
步骤4:记账节点对每组内的交易按照优先级由低到高排序生成各交易接收方的交易链表:对组内优先级最低的交易计算第一个哈希Hash值,之后将后一个优先级的交易与最新已计算出的Hash值一起再计算Hash值,直至组合所有交易均参与完成hash值的计算;
步骤5:记账节点生成交易树:
5-1)记账节点取出所有交易链表中最后一个Hash值作为森林中的一个根结点,每一个根结点为一颗树;
5-2)在森林中选出优先级最小的两个根结点更新为一棵新树的左、右子树的子结点生成新树,且新树的根结点优先级为其左、右子树的子结点优先级之和,新树的根结点的Hash值为左、右子树的Hash值拼接后再计算Hash值;
5-3)判断当前森林中是否仅有一个根结点,如否,返回步骤5-2),如是,将最终生成的树与各交易链表来共同形成交易树;
步骤6:将状态树的根结点Hash值、交易树的根结点Hash值、当前区块的区块头哈希值、上一区块的区块头哈希值、时间戳写入当前区块的区块头,并将本地生成的完整的交易树和状态树写入到本区块,完成此次记账周期的区块生成。
本实施例假设在一个能源交易场景的一个区块生成周期中,有三个记账节点p1、p2、p3,有5个账户u1-u5之间发生了交易,->表示资金流向,交易分别为:U2->u1:100、U3->u1:90、U4->u1:80、U5->u1:50、U1->u2:90、U3->u2:70、U4->u2:50、U1->u3:80、U2->u3:40。
1. p1、p2、p3分别计算一个数学难题,解决出来之后立刻全网广播,假设此时p1解决了出来,p2,p3接受到了这一结果后,知道此次应该由p1记账,p2、p3停止计算;
2. p1获取全网在本次记账周期中发生的所有交易,计算所涉及的账户,从上一区块中获取账户状态,如果上一区块中无此账户状态,则到更上一个区块中获取,以此类推。本例中获取了u1-u5的账户状态;
3. 计算u1-u5的账户状态,剔除交易金额大于余额的交易,本例中假设所有交易合法。计算了u1-u5所有接受到的交易额:u1:320,u2:210,u3:120,生成优先级u1>u2>u3,存入数据库中;
4. 将所有交易之后状态的Hash值作为Value,以账户公钥为Key组成梅克尔帕特里夏树,同时将账户的状态存入数据库;
5. 对所有交易按照接收方交易额排序:u1->u2->u3,同一接收方按照发起方优先级从高到低排序U2->u1:100、U3->u1:90、U4->u1:80、U5->u1:50、U1->u2:90;
6. 对本记账周期内每一个接收方涉及的账户,按照发起方优先级从高到低执行如下操作形成该接收方账户的交易链表:
6.1 如果没有前一交易,计算本交易Hash值;
6.2 如果有前一交易,将前一交易的Hash值记录到数据结构中,并计算整个数据结构的Hash值,以此类推;
7. 对所有涉及的接收方,执行执行以下操作:
7.1 取出所有交易链表中第一个Hash值作为森林中的一个根结点,每一个根结点为一颗树,取出所有Hash值看做森林;
7.2 在森林中选出优先级最小的两个根结点更新为一棵新树的左、右子树的子结点生成新树,且新树的根结点优先级为其左、右子树的子结点优先级之和,新树的根结点的Hash值为左、右子树的Hash值拼接后再计算Hash值;
7.3 判断当前森林中是否仅有一个根结点,如否,返回步骤7.2,如是,将最终生成的树与各交易链表来共同形成交易树,如图1所示;
8. 将状态树的根结点Hash值、交易树的根结点Hash值、当前区块的区块头哈希值、上一区块的区块头哈希值、时间戳写入当前区块的区块头,并将本地生成的完整的交易树和状态树写入到本区块,完成此次记账周期的区块生成。之后通过共识机制,将该区块在各参与节点间形成共识。
对交易进行验证方法,如图2所示:
步骤1:客户端从记账节点处获取交易所在区块的区块头,并根据区块头从数据库中获取账户的状态,获取需要验证的接收方账户的所有涉及交易;
步骤2:根据账户状态中的优先级找到交易树的验证路径,并获取交易树中所涉及的Hash值,从叶子结点到根结点进行验证,当有结点被篡改,则重新获取该结点所对应的交易信息及其之后的交易信息。
从叶子结点到根结点进行验证的具体方法是:首先拉取交易,然后从叶子结点生成hash,和兄弟结点的hash重新计算hash,生成父结点hash,然后和父结点的兄弟结点hash生成父结点的父结点的hash,一直持续这个过程,知道生成最终的交易merkle树根,通过将根与区块中的根对比得到交易是否被篡改。这个过程是一个典型的merkle树验证过程。
本实施例假设在一个能源交易场景的一个区块生成周期中,上一个周期打包了5个账户u1-u5之间的交易,->表示资金流向,交易分别为:U2->u1:100、U3->u1:90、U4->u1:80、U5->u1:50、U1->u2:90、U3->u2:70、U4->u2:50、U1->u3:80、U2->u3:40。在上一次的记账结束之后,u2需要验证在上一个周期中达成的全部交易。
1.u2通过客户端向p1、p2、p3要求获取所有区块头,p1、p2、p3在接受到请求之后,将所有区块头依次发送到客户端中。客户端通过将大多数节点返回的区块头按照顺序记录到本地。
2.客户端向任一节点获取上一周期区块中保存的交易树,同时向另一节点获取u2上一周期打包的所有交易。
3.客户端开始验证交易
3.1首先按照交易优先级对u2上一周期涉及的交易进行排序,由优先级大小从小到大,进行以下操作:
3.2组装数据结构,记录更小优先级hash值和交易,对整个结构进行hash运算,得到本hash;
3.3依次进行3.2操作,直到计算得到整个u2交易的hash h7;
3.4从交易树中获取得到h9,和h7联合进行hash运算,得到h10;
3.5从交易数中获取h4,和h10联合进行hash运算,得到hash root;
3.6将hash root与区块头中的进行对比,验证通过。
整个过程如图3所示,虚线为验证路径。
本实施例假设在一个记账周期内,将要打包的区块高度为20,有u1 u2 u3 u4 u55个用户参与了交易,其中,u1账户上一次交易为高度10的区块,u3上一次交易为高度为15的区块,u4上一次交易为高度为18的区块,u2,u5上一次交易高度为19,节点p1打包区块,将对账户状态进行验证,步骤如下:
1.找到上一区块,为高度19的区块,找到了u2,u5的状态,发现没有u1、u3、u4的状态;
2.继续向前迭代,直到高度为10的区块,这时候本交易所涉及的所有账户状态均已经获取;
3.P1对u1-u5进行验证,验证通过则开始进行记账:
3.1 将所有的交易打包为交易树记录到区块中;
3.2 将本周期涉及的交易账户u1-u5状态更新,并保存为状态树,记录到区块中;
3.3 将交易树和状态树根记录到区块头,并将整个区块广播;
3.4其他节点接收到广播之后,验证交易状态,通过则记录到本地。
本实施例假设在高度为30的区块链中,账户u1需要获取所有交易记录,u1分别在高度20、10、8、6、5、3的区块中发生了交易。
1.首先从高度30的区块向前遍历,找到最后发生交易的区块,在这里是高度为20的区块;
2.从最后一个发生交易的区块开始,进行以下操作:
2.1 获取本区块中所有涉及到u1的交易;
2.2 从状态树中获取上一次交易的区块高度;
2.3 跳转到上一区块高度重复2.1,直到获取账户最早的交易;
3.将所有的交易按照时间顺序串联,得到整个账户的变动日志。

Claims (4)

1.一种适用于能源区块链的区块生成方法,其特征在于,包括以下步骤:
步骤1:在所有参与能源交易的节点中在各选举周期内选举出唯一一个的记账节点;
步骤2:记账节点在记账周期到达时,统计当前待打包的区块所涉及的所有交易的账户状态,通过查找之前区块中的状态树对交易的合法性进行验证,剔除所有不合法交易后,将合法交易的账户的状态进行更新,将当前区块所涉及的账户的当前状态以各账户的公钥为键以梅克尔帕特里夏树的形式生成状态树,并将各账户的当前状态存储至数据库;所述状态包括交易的优先级、账户的余额、记录上一次该账户状态变动的区块的高度;优先级与近期交易次数有关;
步骤3:记账节点对当前待打包的合法交易以交易接收方分组,每组内的交易按照优先级由高到低排序,将交易信息存储至当前区块,并更新状态树中的账户状态为交易后的账户状态;
步骤4:记账节点对每组内的交易按照优先级由低到高排序生成各交易接收方的交易链表:对组内优先级最低的交易计算第一个哈希Hash值,之后将后一个优先级的交易与最新已计算出的Hash值一起再计算Hash值,直至组合所有交易均参与完成hash值的计算;
步骤5:记账节点生成交易树:
5-1)记账节点取出所有交易链表中最后一个Hash值作为森林中的一个根结点,每一个根结点为一颗树;
5-2)在森林中选出优先级最小的两个根结点更新为一棵新树的左、右子树的子结点生成新树,且新树的根结点优先级为其左、右子树的子结点优先级之和,新树的根结点的Hash值为左、右子树的Hash值拼接后再计算Hash值;
5-3)判断当前森林中是否仅有一个根结点,如否,返回步骤5-2),如是,将最终生成的树与各交易链表来共同形成交易树;
步骤6:将状态树的根结点Hash值、交易树的根结点Hash值、当前区块的区块头哈希值、上一区块的区块头哈希值、时间戳写入当前区块的区块头,并将本地生成的完整的交易树和状态树写入到本区块,完成此次记账周期的区块生成。
2.如权利要求1所述方法,其特征在于,步骤1中通过工作量证明POW机制选出记账节点。
3.如权利要求1所述方法,其特征在于,步骤2中记账节点通过查找之前区块中的状态树对交易的合法性进行验证,具体的验证方法为,通过首先从上一区块的状态树中找涉及的交易发送方和接收方状态,如果上一区块没有找到,则从更上一级区块中的状态树中找,直到找到记录上次变动的状态树的区块,从中获取变动之后的状态信息,当交易双方的账户余额满足本次交易要求则判断为合法交易,否则为不合法交易。
4.基于如权利要求1所述方法生成的区块的交易验证方法,其特征在于,包括以下步骤:
步骤1:客户端从记账节点处获取交易所在区块的区块头,并根据区块头从数据库中获取账户的状态,获取需要验证的接收方账户的所有涉及交易;
步骤2:根据账户状态中的优先级找到交易树的验证路径,并获取交易树中所涉及的Hash值,从叶子结点到根结点进行验证,当有结点被篡改,则重新获取该结点所对应的交易信息及其之后的交易信息。
CN201911362058.XA 2019-12-26 2019-12-26 一种适用于能源区块链的区块生成与交易验证方法 Active CN111080298B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911362058.XA CN111080298B (zh) 2019-12-26 2019-12-26 一种适用于能源区块链的区块生成与交易验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911362058.XA CN111080298B (zh) 2019-12-26 2019-12-26 一种适用于能源区块链的区块生成与交易验证方法

Publications (2)

Publication Number Publication Date
CN111080298A CN111080298A (zh) 2020-04-28
CN111080298B true CN111080298B (zh) 2023-12-29

Family

ID=70317865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911362058.XA Active CN111080298B (zh) 2019-12-26 2019-12-26 一种适用于能源区块链的区块生成与交易验证方法

Country Status (1)

Country Link
CN (1) CN111080298B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112015734B (zh) * 2020-08-06 2021-05-07 华东师范大学 一种面向区块链的紧凑Merkle多值证明并行生成及验证方法
CN112131235A (zh) * 2020-09-21 2020-12-25 中国电子科技网络信息安全有限公司 一种区块链***内交易可信校验实现方法
CN113362062B (zh) * 2021-05-21 2024-01-05 山东大学 一种区块链交易排序方法、存储介质及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107341041A (zh) * 2017-06-27 2017-11-10 南京邮电大学 基于优先队列的云任务多维约束回填调度方法
CN109165224A (zh) * 2018-08-24 2019-01-08 东北大学 一种在区块链数据库上针对关键字key的索引方法
CN109300032A (zh) * 2018-08-20 2019-02-01 北京京东尚科信息技术有限公司 区块生成方法、装置、设备及计算机可读存储介质
CN110188112A (zh) * 2019-05-31 2019-08-30 深圳前海微众银行股份有限公司 一种区块链智能合约的变更记录的追溯方法及装置
CN110392888A (zh) * 2017-01-16 2019-10-29 E·马伊姆 用于在安全环境中执行智能合约的方法和***
CN110599169A (zh) * 2019-09-16 2019-12-20 腾讯科技(深圳)有限公司 数据处理方法、装置、终端及介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10204341B2 (en) * 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
CN111917864B (zh) * 2017-02-22 2023-08-22 创新先进技术有限公司 一种业务校验的方法及装置
US11095432B2 (en) * 2017-04-05 2021-08-17 Samsung Sds Co., Ltd. System for processing data based on blockchain and operating method thereof
US10255342B2 (en) * 2017-04-12 2019-04-09 Vijay K. Madisetti Method and system for tuning blockchain scalability, decentralization, and security for fast and low-cost payment and transaction processing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110392888A (zh) * 2017-01-16 2019-10-29 E·马伊姆 用于在安全环境中执行智能合约的方法和***
CN107341041A (zh) * 2017-06-27 2017-11-10 南京邮电大学 基于优先队列的云任务多维约束回填调度方法
CN109300032A (zh) * 2018-08-20 2019-02-01 北京京东尚科信息技术有限公司 区块生成方法、装置、设备及计算机可读存储介质
CN109165224A (zh) * 2018-08-24 2019-01-08 东北大学 一种在区块链数据库上针对关键字key的索引方法
CN110188112A (zh) * 2019-05-31 2019-08-30 深圳前海微众银行股份有限公司 一种区块链智能合约的变更记录的追溯方法及装置
CN110599169A (zh) * 2019-09-16 2019-12-20 腾讯科技(深圳)有限公司 数据处理方法、装置、终端及介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
一种支持区块链交易溯源的混合索引机制;尤瑶;孔兰菊;肖宗水;郑永清;李庆忠;;计算机集成制造***(第04期);192-198 *
基于区块链的分布式能源市场化交易架构及应用机制;沈巍;王丹;;华北电力大学学报(社会科学版)(第02期);33-43 *
尤瑶 ; 孔兰菊 ; 肖宗水 ; 郑永清 ; 李庆忠 ; .一种支持区块链交易溯源的混合索引机制.计算机集成制造***.2019,(第04期),978-984. *

Also Published As

Publication number Publication date
CN111080298A (zh) 2020-04-28

Similar Documents

Publication Publication Date Title
CN110602148B (zh) 一种区块的状态树的生成和链上数据验证的方法及装置
CN111080298B (zh) 一种适用于能源区块链的区块生成与交易验证方法
CN109471744B (zh) 基于区块链的主链加并行多子链***架构
WO2021032138A1 (zh) 一种基于区块链***的共识方法、装置及***
CN110868434B (zh) 一种多层分片架构的区块链共识方法及***
CN109391645B (zh) 区块链轻量化处理方法、区块链节点及存储介质
EP3688701A1 (en) Scalable distributed ledger system
CN111177277B (zh) 数据存储方法、交易存储方法及装置
CN107423961B (zh) 一种基于随机相关性分析的优化共识方法
CN111047439B (zh) 一种基于区块链的交易处理方法
CN110738472B (zh) 区块链的存储方法和区块链的节点
CN111047445B (zh) 一种完全去中心化的侧链跨链方法
CN113438084A (zh) 一种基于r-pbft共识算法和时间戳的绿电溯源方法及***
CN113448694B (zh) 一种提高事务处理能力的区块链共识方法
CN112651724A (zh) 跨链交互方法、装置和***
CN109859044B (zh) 一种区块链构造方法
US20210073796A1 (en) Method of selective authentication of a blockchain user with a smart contract
JPWO2019038839A1 (ja) ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム
CN112862311A (zh) 一种基于双层区块链的车联网信任管理方法
CN109685657B (zh) 在区块链网络中处理交易的方法和节点设备以及存储介质
Xu et al. Efficient public blockchain client for lightweight users
CN111640018A (zh) 一种区块链交易存在性验证方法及装置
CN109391643B (zh) 区块链轻量化处理方法、区块链节点及存储介质
CN111414417A (zh) 一种基于区块链的视频版权管理方法
CN113535803B (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