[发明专利]一种适用于能源区块链的区块生成与交易验证方法在审
申请号: | 201911362058.X | 申请日: | 2019-12-26 |
公开(公告)号: | CN111080298A | 公开(公告)日: | 2020-04-28 |
发明(设计)人: | 何涛;桂勋;李卫阳;陈建新 | 申请(专利权)人: | 电子科技大学;四川能信科技股份有限公司 |
主分类号: | G06Q20/38 | 分类号: | G06Q20/38;G06F16/22;G06F16/27;G06Q40/04;G06Q50/06 |
代理公司: | 电子科技大学专利中心 51203 | 代理人: | 邹裕蓉 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 适用于 能源 区块 生成 交易 验证 方法 | ||
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值,从叶子结点到根节点进行验证,当有结点被篡改,则重新获取该结点所对应的交易信息及其之后的交易信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学;四川能信科技股份有限公司,未经电子科技大学;四川能信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911362058.X/1.html,转载请声明来源钻瓜专利网。