一种基于区块链的账本建立及查询方法、电子设备与流程

文档序号:18872441发布日期:2019-10-14 19:51阅读:152来源:国知局
一种基于区块链的账本建立及查询方法、电子设备与流程

本发明涉及区块链技术领域,尤其涉及一种基于区块链的账本建立及查询方法、电子设备。



背景技术:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造,具有去中心化、开放性、信息不可篡改等特征,可广泛应用于多种场景。

现有技术中,银行记账存在数据被篡改和被伪造的风险,业务流程及记录可追溯性差、可审计差,对账时间较长,运营成本,而且现有的记账模式对账繁琐,账本数据容易出错。

因此,现有技术还有待于改进和发展。



技术实现要素:

鉴于上述现有技术的不足,本发明的目的在于提供一种基于区块链的账本建立及查询方法、电子设备,旨在解决现有技术中记账模式对账繁琐,账本数据容易出错的问题。

本发明的技术方案如下:

一种基于区块链的账本建立方法,所述方法包括:

建立第一区块链网络,根据共识机制,在第一区块链网络的最底层加入具有记账权的记账节点;

记账节点获取所述第一区块链网络的至少一个待记账任务,其中所述待记账任务包括待记账的业务数据;

记账节点获取第一区块链共识过的第一区块的区块哈希值,根据待记账任务、第一区块的区块哈希值以及预设区块生成规则,生成新增区块;

记账节点将所述新增区块增加至第一区块链上,并将所述增加区块发送至第一区块链网络供其它节点共识;

共识通过后,标记所述待记账任务完成,生成账本。

可选地,所述在第一区块链网络的最底层加入具有记账权的记账节点,包括:

通过共识机制进行投票选举,在确定选举结果并生效后,所有上层的节点将所加入的记账节点的地址、公钥以及所在层参数加入到节点列表中,并向该记账节点发起握手请求信息;

记账节点上线并连接网络后,获取最新的上层列表,并向所有上层进行广播,回复握手确认信息至所有上层的节点;

所有上层确认握手信息并记录后,分别向最上层的节点发出通告;

上层节点周期性的向随机若干个最底层中除该记账节点以外的其余节点发起确认请求,判断该记账节点的通告是否属实,如果超过50%节点确认属实,则将该记账节点加入到相应的最底层中,反之,则不加入;

当记账节点加入后,同步该记账节点所在最底层的相关账本。

可选地,所述记账任务还包括第一区块的区块哈希值。

可选地,所述共识通过后,标记所述待记账任务完成,生成账本后,还包括:

通过所述第一区块链的链内或链外向所述记账节点支付激励。

可选地,所述通过所述第一区块链的链内或链外向所述记账节点支付激励,包括:

通过第一区块链网络向记账节点发送官方发送的第一数字法币;

和/或在第一区块链网络外向所述记账节点对应的银行卡账户或用户支付激励。

可选地,所述第一区块链还设置有监管节点,

所述共识通过后,标记所述待记账任务完成,生成账本,还包括:

监管节点对所发布的记账任务以及所述记账节点的记账行为进行记录和监管。

可选地,所述根据待记账任务、第一区块的区块哈希值以及预设区块生成规则,生成新增区块,包括:

根据所述记账节点、第一区块的哈希值、随机数,生成区块哈希值;其中区块哈希值随所述随机数的调整而发生变化;

确定使所述区块哈希值满足预设条件的所述随机数,生成新增区块;其中,所述新增区块包括所述待记账任务的业务数据、所述第一区块的哈希值、随机数。

本发明又一实施例还提供了一种所述基于区块链的账本的查询方法,所述方法包括:

向记账节点发送查询请求,所述查询请求包括目标用户的标识信息,所述查询请求用于查询获取所述记账节点存储的所述目标用户的交易信息;

接收所述记账节点发送的包括所述目标用户的交易信息的第二区块;

获取所述第二区块的关联信息,所述第二区块的关联信息包括第二区块标识和第二哈希值;

从除了所述记账节点之外的其他节点获取第三区块的关联信息,所述第三区块是其他节点存储的包括所述目标用户的交易信息的区块,所述第三区块的关联信息包括第三区块标识和第三哈希值中的至少一个;

通过比较所述第二区块的关联信息和所述第三区块的关联信息,确定所述第二区块是否为合法的区块。

本发明的另一实施例提供了一种电子设备,所述电子设备包括至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的基于区块链的账本建立方法及上述的基于区块链的账本查询方法。

本发明的另一实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的基于区块链的账本建立方法及上述的基于区块链的账本查询方法。

有益效果:本发明公开了一种基于区块链的账本建立及查询方法、电子设备,相比于现有技术,本发明实施例解放了传统的人工记账,提高了记账的对账可信度,提高了记账效率,减轻了记账成本。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为本发明一种基于区块链的账本建立方法较佳实施例的流程图;

图2为本发明一种基于区块链的账本查询的较佳实施例的流程图;

图3为本发明一种电子设备的较佳实施例的硬件结构示意图。

具体实施方式

为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合附图对本发明实施例进行介绍。

区块链技术亦称为分布式账本,是一种分布式互联网数据库技术。基于区块链技术构建的网络可以称之为区块链网络,区块链网络包含多个区块链节点,每个节点对应至少一个区块链,每个区块链上至少包含一个区块。区块链技术具备去中心化、公开透明、不可篡改,可信任等特点,因此,区块链技术应用领域越来越广泛。

基于此,本发明实施例提供了一种基于区块链的账本建立方法。请参阅图1,图1为本发明一种基于区块链的账本建立方法较佳实施例的流程图。如图1所示,其包括步骤:

步骤s100、建立第一区块链网络,根据共识机制,在第一区块链网络的最底层加入具有记账权的记账节点;

步骤s200、记账节点获取所述第一区块链网络的至少一个待记账任务,其中所述待记账任务包括待记账的业务数据;

步骤s300、记账节点获取第一区块链共识过的第一区块的区块哈希值,根据待记账任务、第一区块的区块哈希值以及预设区块生成规则,生成新增区块;

步骤s400、记账节点将所述新增区块增加至第一区块链上,并将所述增加区块发送至第一区块链网络供其它节点共识;

步骤s500、共识通过后,标记所述待记账任务完成,生成账本。

具体实施时,本发明实施例中的区块链结构是一个层次结构模型,每层都是网状互通的葡萄藤结构,每层包含若干个不同级别的节点。通过轮盘的方式确认有效的区块的加入。上层是下层向上传递形成的一个更大的账本,最上层拥有全部账户的账本。记账任务还包括第一区块的区块哈希值。

建立第一区块链网络后,加入记账节点,获取至少一个待记账任务,待记账任务包括但不限于待记账的业务数据。记账节点获取共识过的第一区块哈希值,根据待记账任务、第一区块的区块哈希值及预设的区块的生成规则,生成新增区块,其中预设区块生成规则根据pow工作量证明、pos权益证明、dpos股份授权证明机制而设置成不同的规则。典型的pow工作量证明,例如比特币网络,是对区块头中的字段求整体哈希值,通过调整随机数使得区块哈希值前n位为0,最终获得满足条件的区块。

将新增区块添加到第一区块链上,并将增加区块发送至第一区块网络中除记账节点外的其他节点进行共识,共识通过后,标记待记账任务完成,生成新的记账账本。

在进一步地实施例中,在第一区块链网络的最底层加入具有记账权的记账节点,包括:

通过共识机制进行投票选举,在确定选举结果并生效后,所有上层的节点将所加入的记账节点的地址、公钥以及所在层参数加入到节点列表中,并向该记账节点发起握手请求信息;

记账节点上线并连接网络后,获取最新的上层列表,并向所有上层进行广播,回复握手确认信息至所有上层的节点;

所有上层确认握手信息并记录后,分别向最上层的节点发出通告;

上层节点周期性的向随机若干个最底层中除该记账节点以外的其余节点发起确认请求,判断该记账节点的通告是否属实,如果超过50%节点确认属实,则将该记账节点加入到相应的最底层中,反之,则不加入;

当记账节点加入后,同步该记账节点所在最底层的相关账本。

具体实施时,本发明实施例是基于联合区块链的模型,因此记账节点的产生是通过授权以合约的方式产生。只有满足一定的规则并有超过50%的有效节点通过共识机制共同决定其能够加入记账权,此节点才能参与记账。新加入的节点在启动并连接网络后,自动向全网票选系统(类似于区块链中的超级节点)发起请求,确认这个新节点的通告是否属实,如果超过50%的有效节点确认新节点有效,则属实;如果在72个周期内没有得到确认,则不属实,放弃该新节点的加入,并等待下一个新节点的加入通告;同时,新节点所在层在更新非新节点所在的层的节点列表时,会对失效的节点发起验证请求,通过即记录,不通过再次循环4次后丢弃这条记录;新节点加入后,同步新节点所在层的相关账本,保证了新加入的新节点的可靠性,同时使账本记录更方便、快速、安全。

进一步地,共识通过后,标记所述待记账任务完成,生成账本后,还包括:

通过所述第一区块链的链内或链外向所述记账节点支付激励。

具体实施时,通过第一区块链网络向记账节点发送官方发送的第一数字法币;和/或在第一区块链网络外向所述记账节点对应的银行卡账户或用户支付激励。为通过将记账功能或记账义务交给矿工,并为矿工支付一定的激励,减少了银行记账成本。

进一步地,第一区块链还设置有监管节点,

所述共识通过后,标记所述待记账任务完成,生成账本,还包括:

监管节点对所发布的记账任务以及所述记账节点的记账行为进行记录和监管。

具体实施时,为了防止记账任务中出现错误,区块链中还设置有监管节点,监管节点对发布的记账任务及记账节点的记账行为进行记录和监管,方面后续的对账。

进一步地,根据待记账任务、第一区块的区块哈希值以及预设区块生成规则,生成新增区块,包括:

根据所述记账节点、第一区块的哈希值、随机数,生成区块哈希值;其中区块哈希值随所述随机数的调整而发生变化;

确定使所述区块哈希值满足预设条件的所述随机数,生成新增区块;其中,所述新增区块包括所述待记账任务的业务数据、所述第一区块的哈希值、随机数。

具体实施时,在本实施例中区块包括时间戳、业务数据、哈希值、区块号、第一区块哈希值、随机数、难度值,难度值用于调整确定随机数的难度,区块哈希值随着随机数的调整而发生变化,根据时间戳、业务数据、哈希值、区块号、第一区块哈希值、随机数、难度值生成新增区块。

本发明另一实施例提供一种基于区块链的账本查询方法,如图2所示,方法包括:

步骤s1000、向记账节点发送查询请求,所述查询请求包括目标用户的标识信息,所述查询请求用于查询获取所述记账节点存储的所述目标用户的交易信息;

步骤s2000、接收所述记账节点发送的包括所述目标用户的交易信息的第二区块;

步骤s3000、获取所述第二区块的关联信息,所述第二区块的关联信息包括第二区块标识和第二哈希值;

步骤s4000、从除了所述记账节点之外的其他节点获取第三区块的关联信息,所述第三区块是其他节点存储的包括所述目标用户的交易信息的区块,所述第三区块的关联信息包括第三区块标识和第三哈希值中的至少一个;

步骤s5000、通过比较所述第二区块的关联信息和所述第三区块的关联信息,确定所述第二区块是否为合法的区块。

具体实施时,本发明实施例中的的查询账本时,通过查询入口查询账本,具体地查询入口需要从其他节点获取目标用户的交易信息。例如向记账节点发送查询请求,查询请求包括目标用户的标识信息,目标用户的标识信息可以是目标用户的公钥。

记账节点接收到查询请求后,查询本地账本,获取本地存储的目标用户的交易信息的第二区块,并将第二区块返回查询入口;

查询入口接收到第二区块后,获取第二区块的第二区块标识例如,区块号1和第二哈希值。将区块号1和第二哈希值记为第二区块的关联信息;

由于目标用户的交易信息不仅存储在记账节点,还有可能存储在其他节点,如果代理节点被黑客攻击,则查询入口接收到的第二区块中记录的交易信息可能是被修改过的交易信息。因此查询入口需要验证第二区块是否为合法的区块。具体的验证方法为:查询入口从除了代理节点外的其他节点获取第三区块的关联信息,第三区块是其他节点存储的包括目标用户的交易信息的区块,第三区块的关联信息包括第三区块标识和第三哈希值中的至少一个。

查询入口通过比较第二区块的关联信息和第二区块的关联信息,确定第二确定是否为合法的区块。如果第二区块的关联信息和第三区块的关联信息一致,则第二区块是合法的区块,如果第二区块的关联信息和第三区块的关联信息一致,则第二区块不是合法的区块。

需要说明的是,在上述各个实施例中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,变可以交换执行等等。

本发明另一实施例提供一种电子设备,如图3所示,电子设备10包括:

一个或多个处理器110以及存储器120,图3中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图3中以通过总线连接为例。

处理器110用于完成,电子设备10的各种控制逻辑,其可以为通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、单片机、arm(acornriscmachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp核、或任何其它这种配置。

存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的基于区块链的账本建立方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行电子设备10的各种功能应用以及数据处理,即实现上述方法实施例中的基于区块链的账本建立方法。

存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作电子设备、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至电子设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的基于区块链的账本建立方法,例如,执行以上描述的图1中的方法步骤s100至步骤s500。

本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤s100至步骤s500。

作为示例,非易失性存储介质能够包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦rom(eeprom)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(ram)。通过说明丽非限制,ram可以以诸如同步ram(sram)、动态ram、(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强型sdram(esdram)、synchlinkdram(sldram)以及直接rambus(兰巴斯)ram(drram)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。

本发明的另一种实施例提供了一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行上述方法实施例的基于区块链的账本建立方法。例如,执行以上描述的图1中的方法步骤s100至步骤s500。

以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机电子设备(可以是个人计算机,服务器,或者网络电子设备等)执行各个实施例或者实施例的某些部分的方法。

除了其他之外,诸如"能够'、"能"、"可能"或"可以"之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地不旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有学生输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。

已经在本文中在本说明书和附图中描述的内容包括能够提供基于区块链的账本建立及查询方法、电子设备的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1