首页> 中国专利> 基于账户链和守护链的DAG区块链结构的系统及方法

基于账户链和守护链的DAG区块链结构的系统及方法

摘要

本发明属于区块链技术领域,公开了一种基于账户链和守护链的DAG区块链结构的系统及方法。本发明中,账户链及守护链均为单一链,而账户链与账户链之间交易的收发和合约交易的部署则通过对应的交易区块完成,守护链通过打包对应的交易区块完成交易守护,将交易确定与区块共识分开,交易可以异步进行共识,使得交易性能大幅度提升,并减少了交易确认时间。

著录项

  • 公开/公告号CN113837754A

    专利类型发明专利

  • 公开/公告日2021-12-24

    原文格式PDF

  • 申请/专利权人 安徽中科晶格技术有限公司;

    申请/专利号CN202111086285.1

  • 发明设计人 李晓风;许金林;

    申请日2021-09-16

  • 分类号G06Q20/38(20120101);G06Q20/40(20120101);G06Q40/04(20120101);

  • 代理机构34148 合肥兴东知识产权代理有限公司;

  • 代理人王伟

  • 地址 230022 安徽省合肥市高新区长江西路2221号安徽工业技术创新研究院B座501

  • 入库时间 2023-06-19 13:49:36

说明书

技术领域

本发明涉及区块链技术领域,尤其涉及一种基于账户链和守护链的DAG区块链结构的系统及方法。

背景技术

区块链是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”、“全程留痕”、“可以追溯”、“公开透明”、“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的信任基础,创造了可靠的合作机制,具有广阔的运用前景。但传统的单链式区块链结构,由账户之间收发交易,单链式区块链结构中交易受限于链上区块确认、交易确认时间长、交易性能低的缺陷。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

发明内容

本发明的主要目的在于提供一种基于账户链和守护链的DAG区块链结构的系统及方法,旨在解决现有技术单链式区块链结构中交易受限于链上区块确认、交易确认时间长、交易性能低的技术问题。

为实现上述目的,本发明提供了一种基于账户链和守护链的DAG区块链结构的系统,所述基于账户链和守护链的DAG区块链结构的系统包括:发送方账户链、接收方账户链以及守护链;

所述发送方账户链,用于在需要发起交易时,创建交易发送区块,对所述交易发送区块进行私钥签名,得到签名交易发送区块,并广播所述签名发送交易区块;

所述接收方账户链,用于当所述签名交易发送区块在账户链见证者网络中被见证后,用于创建交易接收区块,并在所述交易接收区块与所述交易发送区块之间建立第一区块键;

所述发送方账户链,还用于基于所述交易发送区块发送转账交易;

所述接收方账户链,还用于基于所述交易接收区块接收所述转账交易;

所述守护链,用于获取所述交易发送区块的第一当前状态信息以及所述交易接收区块的第二当前状态信息,打包所述第一当前状态信息以及所述第二当前状态信息,并存储打包后的所述第一当前状态信息以及所述第二当前状态信息,以守护转账交易。

可选地,所述发送方账户链,还用于在需要部署合约时,创建合约部署区块,并通过所述合约部署区块发布合约交易;

所述守护链,还用于根据所述合约部署区块进行合约部署;

所述接收方账户链,还用于在需要执行合约时,创建合约执行区块,在所述合约部署区块与所述合约执行区块之间建立第二区块键,并通过所述合约执行区块调用所述合约交易;

所述守护链,还用于根据所述合约执行区块进行合约执行,并获取所述合约部署区块的第三当前状态信息以及所述合约执行区块的第四当前状态信息,打包所述第三当前状态信息以及所述第四当前状态信息,并存储打包后的所述第三当前状态信息以及所述第四当前状态信息,以完成合约调用流程。

可选地,所述守护链包括:创世区块以及守护区块;

所述创世区块,用于启动所述守护链,并存储所述守护链的配置信息;

所述守护区块,用于获取所述合约部署区块的第三当前状态信息以及所述合约执行区块的第四当前状态信息,打包第三当前状态信息以及所述第四当前状态信息,并存储打包后的所述第三当前状态信息以及所述第四当前状态信息,以完成账户链的守护。

可选地,所述发送方账户链,还用于在创建交易发送区块时,建立基于所述交易发送区块指向所述守护区块的第一交联键,在创建合约部署区块时,建立基于所述合约部署区块指向所述守护区块的第二交联键;

所述接收方账户链,还用于在创建交易接收区块时,建立基于所述交易接收区块指向所述守护区块的第三交联键,在创建合约执行区块时,建立基于所述合约执行区块指向所述守护区块的第四交联键;

所述守护链,还用于基于所述第一交联键获取所述第一当前状态信息,基于所述第二交联键获取所述第二当前状态信息,基于所述第三交联键获取所述第三当前状态信息,基于所述第四交联键获取所述第四当前状态信息,以完成所述交易发送区块、所述交易接收区块、所述合约部署区块以及所述合约执行区块的共识守护。

可选地,所述发送方账户链、所述接收方账户链以及所述守护链基于所述第一区块键、所述第二区块键、所述第一交联键、所述第二交联键、所述第三交联键以及所述第四交联键形成有向无环图式链结构。

此外,为实现上述目的,本发明还提出一种基于账户链和守护链的DAG区块链结构的方法,所述基于账户链和守护链的DAG区块链结构的方法应用于基于账户链和守护链的DAG区块链结构的系统,所述基于账户链和守护链的DAG区块链结构的系统包括:发送方账户链、接收方账户链以及守护链;

所述方法包括:

所述发送方账户链在需要发起交易时,创建交易发送区块,对所述交易发送区块进行私钥签名,得到签名交易发送区块,并广播所述签名发送交易区块;

所述接收方账户链当所述签名交易发送区块在账户链见证者网络中被见证后,用于创建交易接收区块,并在所述交易接收区块与所述交易发送区块之间建立第一区块键;

所述发送方账户链基于所述交易发送区块发送转账交易;

所述接收方账户链基于所述交易接收区块接收所述转账交易;

所述守护链获取所述交易发送区块的第一当前状态信息以及所述交易接收区块的第二当前状态信息,打包所述第一当前状态信息以及所述第二当前状态信息,并存储打包后的所述第一当前状态信息以及所述第二当前状态信息,以守护转账交易。

可选地,所述守护链获取所述交易发送区块的第一当前状态信息以及所述交易接收区块的第二当前状态信息,打包所述第一当前状态信息以及所述第二当前状态信息,并存储打包后的所述第一当前状态信息以及所述第二当前状态信息,以守护转账交易的步骤之后,还包括:

所述发送方账户链在需要部署合约时,创建合约部署区块,并通过所述合约部署区块发布合约交易;

所述守护链根据所述合约部署区块进行合约部署;

所述接收方账户链在需要执行合约时,创建合约执行区块,在所述合约部署区块与所述合约执行区块之间建立第二区块键,并通过所述合约执行区块调用所述合约交易;

所述守护链根据所述合约执行区块进行合约执行,并获取所述合约部署区块的第三当前状态信息以及所述合约执行区块的第四当前状态信息,打包所述第三当前状态信息以及所述第四当前状态信息,并存储打包后的所述第三当前状态信息以及所述第四当前状态信息,以完成合约调用流程。

可选地,所述守护链包括:创世区块以及守护区块;

所述守护链根据所述合约执行区块进行合约执行,并获取所述合约部署区块的第三当前状态信息以及所述合约执行区块的第四当前状态信息,打包所述第三当前状态信息以及所述第四当前状态信息,并存储打包后的所述第三当前状态信息以及所述第四当前状态信息的步骤,包括:

所述创世区块启动所述守护链,并存储所述守护链的配置信息;

所述守护区块获取所述合约部署区块的第三当前状态信息以及所述合约执行区块的第四当前状态信息,打包第三当前状态信息以及所述第四当前状态信息,并存储打包后的所述第三当前状态信息以及所述第四当前状态信息,以完成账户链的守护。

可选地,所述发送方账户链在需要发起交易时,创建交易发送区块,对所述交易发送区块进行私钥签名,得到签名交易发送区块,并广播所述签名发送交易区块的步骤之后,还包括:

所述发送方账户链在创建交易发送区块时,建立基于所述交易发送区块指向所述守护区块的第一交联键,在创建合约部署区块时,建立基于所述合约部署区块指向所述守护区块的第二交联键;

所述接收方账户链在创建交易接收区块时,建立基于所述交易接收区块指向所述守护区块的第三交联键,在创建合约执行区块时,建立基于所述合约执行区块指向所述守护区块的第四交联键;

所述守护链基于所述第一交联键获取所述第一当前状态信息,基于所述第二交联键获取所述第二当前状态信息,基于所述第三交联键获取所述第三当前状态信息,基于所述第四交联键获取所述第四当前状态信息,以完成所述交易发送区块、所述交易接收区块、所述合约部署区块以及所述合约执行区块的共识守护。

可选地,所述发送方账户链、所述接收方账户链以及所述守护链基于所述第一区块键、所述第二区块键、所述第一交联键、所述第二交联键、所述第三交联键以及所述第四交联键形成有向无环图式链结构。

本发明中,所述发送方账户链,用于在需要发起交易时,创建交易发送区块,对所述交易发送区块进行私钥签名,得到签名交易发送区块,并广播所述签名发送交易区块;所述接收方账户链,用于当所述签名交易发送区块在账户链见证者网络中被见证后,用于创建交易接收区块,并在所述交易接收区块与所述交易发送区块之间建立第一区块键;所述发送方账户链,还用于基于所述交易发送区块发送转账交易;所述接收方账户链,还用于基于所述交易接收区块接收所述转账交易;所述守护链,用于获取所述交易发送区块的第一当前状态信息以及所述交易接收区块的第二当前状态信息,打包所述第一当前状态信息以及所述第二当前状态信息,并存储打包后的所述第一当前状态信息以及所述第二当前状态信息,以守护转账交易。账户链及守护链均为单一链,而账户链与账户链之间交易的收发和合约交易的部署则通过对应的交易区块完成,守护链通过打包对应的交易区块完成交易守护,将交易确定与区块共识分开,交易可以异步进行共识,使得交易性能大幅度提升,并减少了交易确认时间。

附图说明

图1为本发明基于账户链和守护链的DAG区块链结构的系统第一实施例的结构示意图;

图2为本发明基于账户链和守护链的DAG区块链结构的系统第二、三实施例的结构示意图;

图3为本发明基于账户链和守护链的DAG区块链结构的系统即方法一实施例的账户链结构图;

图4为本发明基于账户链和守护链的DAG区块链结构的系统即方法一实施例的交联键示意图;

图5为本发明基于账户链和守护链的DAG区块链结构的系统即方法一实施例的整体区块链结构图;

图6为本发明基于账户链和守护链的DAG区块链结构的方法第一实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明基于账户链和守护链的DAG区块链结构的系统第一实施例的结构示意图。

在本实施例中,基于账户链和守护链的DAG区块链结构的系统包括:发送方账户链10、接收方账户链20以及守护链30。

需要说明的是,账户链上有四种交易区块,分别是交易发送区块、交易接收区块、合约部署区块、合约执行区块。同一条账户链的交易区块为单链结构,按照区块创建的先后顺序形成的链式结构。同一条守护链也为单链结构。

进一步地,所述发送方账户链10,用于在需要发起交易时,创建交易发送区块,对所述交易发送区块进行私钥签名,得到签名交易发送区块,并广播所述签名发送交易区块。

在具体实现中,发送方账户链10需要发起交易时,创建交易发送区块,经私钥签名后,将签名后的交易发送区块广播(即签名交易发送区块)出去。

进一步地,所述接收方账户链20,用于当所述签名交易发送区块在账户链见证者网络中被见证后,用于创建交易接收区块,并在所述交易接收区块与所述交易发送区块之间建立第一区块键。

可以理解的是,账户链见证者网络用于见证账户链创建的区块,从而更能保证账户链之间交易的可信度。在接收方账户链20需要与发送方账户链10进行转账交易时,则创建交易接受区块,并建立指向交易发送区块的第一区块键。

需要说明的时,发送方账户链10同时也可以为接收方账户链,发送方账户链10也可以在接收其他账户链的转账交易时创建多个交易接收区块,已完成多笔交易的接收,同理,接收方账户链20同时也可以为发送方账户链。例外的,每条账户链的第一个交易区块为接收区块,通过接收其他账户对该账户的第一笔发送交易,完成账户链的创建。

进一步地,所述发送方账户链10,还用于基于所述交易发送区块发送转账交易。

在具体实现中,由于交易发送区块与交易接收区块之间存在第一区块键,从而确定交易发送区块与交易接收区块之间存在链接关系,则发送方账户链10基于第一区块键将转账交易发送至交易接收区块。

进一步地,所述接收方账户链20,还用于基于所述交易接收区块接收所述转账交易。

同理,交易接收区块则接收基于第一区块键发送的转账交易。

进一步地,所述守护链30,用于获取所述交易发送区块的第一当前状态信息以及所述交易接收区块的第二当前状态信息,打包所述第一当前状态信息以及所述第二当前状态信息,并存储打包后的所述第一当前状态信息以及所述第二当前状态信息,以守护转账交易。

可以理解的是,账户链中不同类型的交易区块其生命周期是不同的。交易发送区块在被发送出去后,由已发送sent状态进入待定pending状态,当其对应的交易接收区块被见证后进入接收方账户链上后,该交易发送区块由待定pending状态进入已接收received状态。交易接收区块在被发送出去后,状态为已发送sent状态。当交易接收区块被见证网络见证后,由已发送sent状态转为已见证witnessed状态。若交易发送区块、交易接收区块没有被发送出去,则状态为发送失败failure状态。其中,第一当前状态信息中包含了交易发送区块的状态改变过程等信息,同样第二当前状态信息中包含了交易接收区块的状态改变过程等信息。

在具体实现中,守护链30通过记录交易发送区块以及交易接收区块的状态信息,并打包存储,从而完成对此次交易的共识守护。

在本实施例中,所述发送方账户链,用于在需要发起交易时,创建交易发送区块,对所述交易发送区块进行私钥签名,得到签名交易发送区块,并广播所述签名发送交易区块;所述接收方账户链,用于当所述签名交易发送区块在账户链见证者网络中被见证后,用于创建交易接收区块,并在所述交易接收区块与所述交易发送区块之间建立第一区块键;所述发送方账户链,还用于基于所述交易发送区块发送转账交易;所述接收方账户链,还用于基于所述交易接收区块接收所述转账交易;所述守护链,用于获取所述交易发送区块的第一当前状态信息以及所述交易接收区块的第二当前状态信息,打包所述第一当前状态信息以及所述第二当前状态信息,并存储打包后的所述第一当前状态信息以及所述第二当前状态信息,以守护转账交易。账户链及守护链均为单一链,而账户链与账户链之间交易的收发和合约交易的部署则通过对应的交易区块完成,守护链通过打包对应的交易区块完成交易守护,将交易确定与区块共识分开,交易可以异步进行共识,使得交易性能大幅度提升,并减少了交易确认时间。

参照图2,图2为本发明基于账户链和守护链的DAG区块链结构的系统第二实施例的结构示意图。

在本实施例中,所述发送方账户链10,还用于在需要部署合约时,创建合约部署区块,并通过所述合约部署区块发布合约交易。

可以理解的是,当发送方账户链10需要部署合约时,需要创建一个合约部署区块,并通过合约部署区块发布合约交易。此时,用户通过区块链客户端控制发送方账户链10创建合约部署区块。

进一步地,所述守护链30,还用于根据所述合约部署区块进行合约部署。

在具体实现中,当守护链30打包并存储合约部署区块后,则完成合约的部署。

进一步地,所述接收方账户链20,还用于在需要执行合约时,创建合约执行区块,在所述合约部署区块与所述合约执行区块之间建立第二区块键,并通过所述合约执行区块调用所述合约交易。

需要说明的是,接收方账户链20可为多条,合约交易可以支持多条账户链的执行调用。当接收方账户链20需要执行合约时,创建合约执行区块,并在合约执行区块与合约部署区块之前创建指向合约部署区块的区块键,并通过区块键调用合约部署区块发布的合约交易。同样的,接收方账户链20也可以创建合约部署区块用于发布合约交易,发送方账户链10也可以创建合约执行区块用于执行合约交易。

所述守护链30,还用于根据所述合约执行区块进行合约执行,并获取所述合约部署区块的第三当前状态信息以及所述合约执行区块的第四当前状态信息,打包所述第三当前状态信息以及所述第四当前状态信息,并存储打包后的所述第三当前状态信息以及所述第四当前状态信息,以完成合约调用流程。

在具体实现中,合约部署区块经客户端发送成功后,由已发送sent状态转化为部署中deploying状态,当守护链30中守护区块打包了该部署合约区块后,其状态变为已部署deployed状态。类似地,合约执行区块经客户端发送成功后,由已发送sent状态转化为执行中executing状态,当守护链30中守护区块打包了合约执行区块后,其状态变为已执行executed状态。第三当前状态信息中包含合约部署区块的状态改变过程等信息,第四当前状态信息中包含合约执行区块状态改变过程等信息。

进一步地,如图3所示为账户链之间的区块链结构,Account Chain A、B、C、D、E均可为发送方账户链或接收方账户链,S为交易发送区块,R为交易接收区块,C为合约部署区块,E为合约执行区块,Block Bond为区块键,通过区块键,各交易区块形成有向无环图(Directed acyclic graph,DAG)式链结构的区块链。

参照图2,图2为本发明基于账户链和守护链的DAG区块链结构的系统第三实施例的结构示意图。

在本实施例中,所述守护链30包括:创世区块31以及守护区块32;

进一步地,所述创世区块31,用于启动所述守护链,并存储所述守护链的配置信息;

可以理解的是,创世区块31是守护链的第一个区块,承载这守护链的初始共识机制、密码机制等配置信息,用于启动守护链30。

所述守护区块32,用于获取所述合约部署区块的第三当前状态信息以及所述合约执行区块的第四当前状态信息,打包第三当前状态信息以及所述第四当前状态信息,并存储打包后的所述第三当前状态信息以及所述第四当前状态信息,以完成账户链的守护。

在具体实现中,守护区块32是以epoch为单位收集账户链当前状态信息,定时打包账户链状态等。守护区块32是创世区块31后链延伸形成的所有区块类型。

同样的,在交易发送区块以及交易接收区块进行转账交易时,守护区块32,用于获取所述交易发送区块的第一当前状态信息以及所述交易接收区块的第二当前状态信息,打包第一当前状态信息以及所述第二当前状态信息,并存储打包后的所述第一当前状态信息以及所述第二当前状态信息。

可以理解的是,由于账户链在创建交易区块时,守护链30上的守护区块32会打包交易区块的同时,还会打包交易区块的当前状态信息,从而完成整条账户链的信息存储。

在具体实现中,守护链30上区块状态都需要经过守护链共识网络进行共识见证。创世区块31和守护区块32从客户端构造到上链主要状态为已发送sent状态到已见证witnessed状态。若创世区块31和守护区块32从客户端没有成功发送到区块链网络,则进入发送失败failure状态。

进一步地,所述发送方账户链10,还用于在创建交易发送区块时,建立基于所述交易发送区块指向所述守护区块32的第一交联键,在创建合约部署区块时,建立基于所述合约部署区块指向所述守护区块32的第二交联键。所述接收方账户链20,还用于在创建交易接收区块时,建立基于所述交易接收区块指向所述守护区块32的第三交联键,在创建合约执行区块时,建立基于所述合约执行区块指向所述守护区块32的第四交联键;所述守护链30,还用于基于所述第一交联键获取所述第一当前状态信息,基于所述第二交联键获取所述第二当前状态信息,基于所述第三交联键获取所述第三当前状态信息,基于所述第四交联键获取所述第四当前状态信息,以完成所述交易发送区块、所述交易接收区块、所述合约部署区块以及所述合约执行区块的共识守护。如图4所示,Daemon Chain为守护链,G为创世区块,D为守护区块,交易区块R、S、E、C与G、D之间存在交联键,从而账户链与守护链形成有向无环图式链结构的区块链。

在具体实现中,当发送方账户链10创建交易发送区块或合约部署区块时,会生成指向守护链30上当前最末尾(即最新)守护区块30的交联键(即第一交联键、第二交联键),当接收方账户链10创建交易接收区块或合约执行区块时,也会生成指向守护链30上当前最末尾(即最新)守护区块30的交联键(即第三交联键、第四交联键),守护区块30则根据交联键打包对应的交易区块以及交易区块的当前状态信息,从而完成对账户链的守护。

进一步地,所述发送方账户链10、所述接收方账户链20以及所述守护链30基于所述第一区块键、所述第二区块键、所述第一交联键、所述第二交联键、所述第三交联键以及所述第四交联键形成有向无环图式链结构。

需要说明的是,有向无环图指的是一个无回路的有向图,而第一区块键、第二区块键、第一交联键、第二交联键、第三交联键以及第四交联键均是有向键,因此,可以形成有向无环图式链结构。有向无环图式链结构使得账户链上交易异步共识,性能大幅度提升,账户链与守护链相互交联,保证链的安全性与稳定性。

进一步地,如图5所示,根据账户链与账户链之间的区块键以及账户链与守护链之间的关联键,从而形成有向无环图式链结构的整体区块链结构。

本发明实施例提供了一种基于账户链和守护链的DAG区块链结构的方法,参照图6,图6为本发明一种基于账户链和守护链的DAG区块链结构的方法第一实施例的流程示意图。

本实施例中,所述基于账户链和守护链的DAG区块链结构的方法应用于基于账户链和守护链的DAG区块链结构的系统,所述基于账户链和守护链的DAG区块链结构的系统包括:发送方账户链、接收方账户链以及守护链;所述基于账户链和守护链的DAG区块链结构的方法包括以下步骤:

步骤S10:所述发送方账户链在需要发起交易时,创建交易发送区块,对所述交易发送区块进行私钥签名,得到签名交易发送区块,并广播所述签名发送交易区块。

需要说明的是,账户链上有四种交易区块,分别是交易发送区块、交易接收区块、合约部署区块、合约执行区块。同一条账户联的交易区块为单链结构,按照区块创建的先后顺序形成的链式结构。同一条守护链也为单链结构。

在具体实现中,发送方账户链需要发起交易时,创建交易发送区块,经私钥签名后,将签名后的交易发送区块广播(即签名交易发送区块)出去。

步骤S20:所述接收方账户链当所述签名交易发送区块在账户链见证者网络中被见证后,用于创建交易接收区块,并在所述交易接收区块与所述交易发送区块之间建立第一区块键。

需要说明的时,发送方账户链同时也可以为接收方账户链,发送方账户链也可以在接收其他账户链的转账交易时创建多个交易接收区块,已完成多笔交易的接收,同理,接收方账户链同时也可以为发送方账户链。例外的,每条账户链的第一个交易区块为接收区块,通过接收其他账户对该账户的第一笔发送交易,完成账户链的创建。

步骤S30:所述发送方账户链基于所述交易发送区块发送转账交易。

在具体实现中,由于交易发送区块与交易接收区块之间存在第一区块键,从而确定交易发送区块与交易接收区块之间存在链接关系,则发送方账户链基于第一区块键将转账交易发送至交易接收区块。

步骤S40:所述接收方账户链基于所述交易接收区块接收所述转账交易。

同理,交易接收区块则接收基于第一区块键发送的转账交易。

步骤S50:所述守护链获取所述交易发送区块的第一当前状态信息以及所述交易接收区块的第二当前状态信息,打包所述第一当前状态信息以及所述第二当前状态信息,并存储打包后的所述第一当前状态信息以及所述第二当前状态信息,以守护转账交易。

可以理解的是,账户链中不同类型的交易区块其生命周期是不同的。交易发送区块在被发送出去后,由已发送sent状态进入待定pending状态,当其对应的交易接收区块被见证后进入接收方账户链上后,该交易发送区块由待定pending状态进入已接收received状态。交易接收区块在被发送出去后,状态为已发送sent状态。当交易接收区块被见证网络见证后,由已发送sent状态转为已见证witnessed状态。若交易发送区块、交易接收区块没有被发送出去,则状态为发送失败failure状态。其中,第一当前状态信息中包含了交易发送区块的状态改变过程等信息,同样第二当前状态信息中包含了交易接收区块的状态改变过程等信息。

在具体实现中,守护链通过记录交易发送区块以及交易接收区块的状态信息,并打包存储,从而完成对此次交易的共识守护。

进一步地,步骤S50之后,还包括:所述发送方账户链在需要部署合约时,创建合约部署区块,并通过所述合约部署区块发布合约交易;所述守护链根据所述合约部署区块进行合约部署;所述接收方账户链在需要执行合约时,创建合约执行区块,在所述合约部署区块与所述合约执行区块之间建立第二区块键,并通过所述合约执行区块调用所述合约交易;所述守护链根据所述合约执行区块进行合约执行,并获取所述合约部署区块的第三当前状态信息以及所述合约执行区块的第四当前状态信息,打包所述第三当前状态信息以及所述第四当前状态信息,并存储打包后的所述第三当前状态信息以及所述第四当前状态信息,以完成合约调用流程。

可以理解的是,当发送方账户链需要部署合约时,需要创建一个合约部署区块,并通过合约部署区块发布合约交易。此时,用户通过区块链客户端控制发送方账户链创建合约部署区块。

在具体实现中,当守护链打包并存储合约部署区块后,则完成合约的部署。

需要说明的是,接收方账户链可为多条,合约交易可以支持多条账户链的执行调用。当接收方账户链需要执行合约时,创建合约执行区块,并在合约执行区块与合约部署区块之前创建指向合约部署区块的区块键,并通过区块键调用合约部署区块发布的合约交易。同样的,接收方账户链也可以创建合约部署区块用于发布合约交易,发送方账户链也可以创建合约执行区块用于执行合约交易。

在具体实现中,合约部署区块经客户端发送成功后,由已发送sent状态转化为部署中deploying状态,当守护链中守护区块打包了该部署合约区块后,其状态变为已部署deployed状态。类似地,合约执行区块经客户端发送成功后,由已发送sent状态转化为执行中executing状态,当守护链中守护区块打包了合约执行区块后,其状态变为已执行executed状态。第三当前状态信息中包含合约部署区块的状态改变过程等信息,第四当前状态信息中包含合约执行区块状态改变过程等信息。

进一步地,所述守护链包括:创世区块以及守护区块;所述守护链根据所述合约执行区块进行合约执行,并获取所述合约部署区块的第三当前状态信息以及所述合约执行区块的第四当前状态信息,打包所述第三当前状态信息以及所述第四当前状态信息,并存储打包后的所述第三当前状态信息以及所述第四当前状态信息的步骤,包括:所述创世区块启动所述守护链,并存储所述守护链的配置信息;所述守护区块获取所述合约部署区块的第三当前状态信息以及所述合约执行区块的第四当前状态信息,打包第三当前状态信息以及所述第四当前状态信息,并存储打包后的所述第三当前状态信息以及所述第四当前状态信息,以完成账户链的守护。

可以理解的是,创世区块是守护链的第一个区块,承载这守护链的初始共识机制、密码机制等配置信息,用于启动守护链。

在具体实现中,守护区块是以epoch为单位收集账户链当前状态信息,定时打包账户链状态等。守护区块是创世区块后链延伸形成的所有区块类型。

同样的,在交易发送区块以及交易接收区块进行转账交易时,守护区块,用于获取所述交易发送区块的第一当前状态信息以及所述交易接收区块的第二当前状态信息,打包第一当前状态信息以及所述第二当前状态信息,并存储打包后的所述第一当前状态信息以及所述第二当前状态信息。

可以理解的是,由于账户链在创建交易区块时,守护链上的守护区块会打包交易区块的同时,还会打包交易区块的当前状态信息,从而完成整条账户链的信息存储。

进一步地,所述发送方账户链在需要发起交易时,创建交易发送区块,对所述交易发送区块进行私钥签名,得到签名交易发送区块,并广播所述签名发送交易区块的步骤之后,还包括:所述发送方账户链在创建交易发送区块时,建立基于所述交易发送区块指向所述守护区块的第一交联键,在创建合约部署区块时,建立基于所述合约部署区块指向所述守护区块的第二交联键;所述接收方账户链在创建交易接收区块时,建立基于所述交易接收区块指向所述守护区块的第三交联键,在创建合约执行区块时,建立基于所述合约执行区块指向所述守护区块的第四交联键;所述守护链基于所述第一交联键获取所述第一当前状态信息,基于所述第二交联键获取所述第二当前状态信息,基于所述第三交联键获取所述第三当前状态信息,基于所述第四交联键获取所述第四当前状态信息,以完成所述交易发送区块、所述交易接收区块、所述合约部署区块以及所述合约执行区块的共识守护。

在具体实现中,当发送方账户链创建交易发送区块或合约部署区块时,会生成指向守护链上当前最末尾(即最新)守护区块的交联键(即第一交联键、第二交联键),当接收方账户链创建交易接收区块或合约执行区块时,也会生成指向守护链上当前最末尾(即最新)守护区块的交联键(即第三交联键、第四交联键),守护区块则根据交联键打包对应的交易区块以及交易区块的当前状态信息,从而完成对账户链的共识守护。

进一步地,所述发送方账户链、所述接收方账户链以及所述守护链基于所述第一区块键、所述第二区块键、所述第一交联键、所述第二交联键、所述第三交联键以及所述第四交联键形成有向无环图式链结构。

需要说明的是,有向无环图指的是一个无回路的有向图,而第一区块键、第二区块键、第一交联键、第二交联键、第三交联键以及第四交联键均是有向键,因此,可以形成有向无环图式链结构。有向无环图式链结构使得账户链上交易异步共识,性能大幅度提升,账户链与守护链相互交联,保证链的安全性与稳定性。

本实施例中,所述发送方账户链在需要发起交易时,创建交易发送区块,对所述交易发送区块进行私钥签名,得到签名交易发送区块,并广播所述签名发送交易区块;所述接收方账户链当所述签名交易发送区块在账户链见证者网络中被见证后,用于创建交易接收区块,并在所述交易接收区块与所述交易发送区块之间建立第一区块键;所述发送方账户链基于所述交易发送区块发送转账交易;所述接收方账户链基于所述交易接收区块接收所述转账交易;所述守护链获取所述交易发送区块的第一当前状态信息以及所述交易接收区块的第二当前状态信息,打包所述第一当前状态信息以及所述第二当前状态信息,并存储打包后的所述第一当前状态信息以及所述第二当前状态信息,以守护转账交易。账户链及守护链均为单一链,而账户链与账户链之间交易的收发和合约交易的部署则通过对应的交易区块完成,守护链通过打包对应的交易区块完成交易守护,将交易确定与区块共识分开,交易可以异步进行共识,使得交易性能大幅度提升,并减少了交易确认时间。

需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。

另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的基于账户链和守护链的DAG区块链结构的方法,此处不再赘述。

此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read OnlyMemory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号