CN110264350A - 基于区块链的有背书签名的记账方法、装置和计算机设备 - Google Patents

基于区块链的有背书签名的记账方法、装置和计算机设备 Download PDF

Info

Publication number
CN110264350A
CN110264350A CN201910389862.0A CN201910389862A CN110264350A CN 110264350 A CN110264350 A CN 110264350A CN 201910389862 A CN201910389862 A CN 201910389862A CN 110264350 A CN110264350 A CN 110264350A
Authority
CN
China
Prior art keywords
transaction
endorsement signature
block chain
endorsement
son
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.)
Pending
Application number
CN201910389862.0A
Other languages
English (en)
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.)
Chongqing Financial Assets Exchange LLC
Original Assignee
Chongqing Financial Assets Exchange LLC
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 Chongqing Financial Assets Exchange LLC filed Critical Chongqing Financial Assets Exchange LLC
Priority to CN201910389862.0A priority Critical patent/CN110264350A/zh
Publication of CN110264350A publication Critical patent/CN110264350A/zh
Pending legal-status Critical Current

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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Abstract

本申请揭示了一种基于区块链的有背书签名的记账方法、装置、计算机设备和存储介质,所述方法包括:接收对指定交易的记账指令;根据所述记账指令,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名;要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给将发起第二子交易的第二区块链节点;接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易;若所述n个子交易均具有背书签名;若n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在区块链的公共账本中记录所述指定交易。从而减少交易流程耗时,实现了流程自动化。

Description

基于区块链的有背书签名的记账方法、装置和计算机设备
技术领域
本申请涉及到计算机领域,特别是涉及到一种基于区块链的有背书签名的记账方法、装置、计算机设备和存储介质。
背景技术
区块链网络在发生交易后,需要某些区块链节点对这个交易进行背书签名,其中,这些区块链节点具有背书签名权限。而当这个交易包括多个子交易的情况下,现有技术的区块链网络中对该交易进行背书签名的过程耗时长、难以流程化。具体地,在某些涉及多方共同参与的业务流程中(即包括多个子交易的交易)应用区块链技术,需要按照业务流程由参与方分别进行对某个子交易进行交易并而交易后进行背书签名,再根据子交易返回的结果再进行由下一流程(另一个子交易)的执行者发起下一流程的交易。这种情况下,任一一个子交易对应的区块链节点都需要主动发起交易,并且主动要求背书签名节点进行签名,这导致交易流程长,无法实现流程自动化,而且多次的间断性的交易申请、背书签名及记账的数据传输网络开销也比较大。因此现有技术在区块链网络中对于具有多个子交易的交易进行背书签名时无法避免上述缺陷。
发明内容
本申请的主要目的为提供一种基于区块链的有背书签名的记账方法、装置、计算机设备和存储介质,旨在减少交易流程耗时,实现了流程自动化。
为了实现上述发明目的,本申请提出一种基于区块链的有背书签名的记账方法,应用于第一区块链节点,包括以下步骤:
接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数;
根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名;
要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给将发起第二子交易的第二区块链节点;
接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名;
若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序;
若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易。
进一步地,所述根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名的步骤之前,包括:
安装预设的智能合约,所述智能合约指定了所述指定交易的至少包括背书签名顺序的背书签名规则;
将所述智能合约指定的至少包括背书签名顺序的背书签名规则记载入与所述指定交易对应的配置文件中;
在第一子交易完成之后,根据所述配置文件确定第一背书签名区块链节点,并生成要求背书签名指令,所述要求背书签名指令用于指示将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名。
进一步地,所述接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名的步骤,包括:
接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易;
判断所述n个子交易的数量是否大于预设的子交易数量阈值;
若所述n个子交易的数量不大于预设的子交易数量阈值,则依次判断所述n个子交易是否均具有背书签名。
进一步地,所述判断所述n个子交易的数量是否大于预设的子交易数量阈值的步骤之后,包括:
若所述n个子交易的数量大于预设的子交易数量阈值,则判断第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名;
若第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名均具有背书签名,则判定所述n个子交易均具有背书签名。
进一步地,所述若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序的步骤,包括:
若所述n个子交易均具有背书签名,则从所述配置文件中提取所述指定交易的背书签名顺序;
判断所述n个子交易的背书签名的顺序是否与从所述配置文件中提取的所述指定交易的背书签名顺序相同;
若所述n个子交易的背书签名的顺序与从所述配置文件中提取的所述指定交易的背书签名顺序相同,则判定所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序。
进一步地,所述若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序的步骤之后,包括:
若所述n个子交易的背书签名的顺序不符合预先设置的背书签名顺序,则不允许对指定交易进行记账;
获取所述n个子交易的背书签名的顺序与预先设置的背书签名顺序不一致之处,并生成包括所述不一致之处的错误提醒指令。
进一步地,所述接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数的步骤之前,包括:
采用指定语言在所述第一区块链节点中创建区块链类;
将所述区块链类实例化后获得创世区块,所述创世区块中将前一区块的哈希值设置为0,基于所述创世区块,生成其他区块,其中所述其他区块记载有所述其他区块的前一区块的哈希值;
以同意所述区块链的预设共识机制的终端作为区块链节点,从而建立区块链。
本申请提供一种基于区块链的有背书签名的记账装置,应用于第一区块链节点,包括:
记账指令接收单元,用于接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数;
要求背书签名单元,用于根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名;
要求发送单元,用于要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给将发起第二子交易的第二区块链节点;
具有背书签名判断单元,用于接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名;
背书签名顺序判断单元,用于若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序;
记录单元,用于若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易。
本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的基于区块链的有背书签名的记账方法、装置、计算机设备和存储介质,通过第一区块链节点接收对指定交易的记账指令,所述指定交易包括n个子交易,将第一子交易发送给第一背书签名区块链节点,并要求进行背书签名,接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,若所述n个子交易均具有背书签名,且所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易,从而减少交易流程耗时,实现了流程自动化。
附图说明
图1为本申请一实施例的基于区块链的有背书签名的记账方法的流程示意图;
图2为本申请一实施例的基于区块链的有背书签名的记账装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例提供一种基于区块链的有背书签名的记账方法,应用于第一区块链节点,包括以下步骤:
S1、接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数;
S2、根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名;
S3、要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给将发起第二子交易的第二区块链节点;
S4、接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名;
S5、若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序;
S6、若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易。
如上述步骤S1所述,接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数。预先搭建的区块链可以是任意类型的区块链,例如采用例如工作量证明机制、权益证明机制、股份授权证明机制和Pool验证池的共识机制搭建的区块链。其中,所述区块链可以为公有链、联盟链或者私有链,优选联盟链或者私有链。所述预先搭建的区块链网络的搭建过程包括:以任一可行语言创建一个Blockchain类(区块链类),在构造函数中创建用于储存区块链的列表;将所述Blockchain实例化后,建立创世块(没有区块前的第一个区块);确定区块链的共识机制(例如工作量证明机制、权益证明机制、股份授权证明机制和Pool验证池);接收同意所述共识机制的终端作为所述区块链网络的节点,从而获得所述预先搭建的区块链网络。对指定交易的记账指令是指要求区块链对所述指定交易进行记账,其中,所述指定交易包括n个子交易,第一区块链节点是接收记账指令的区块链节点,由第一区块链节点发起所述指定交易中的第一子交易。其中,所述交易是指对所述区块链的公共账本的数据进行修改,例如比特币区块链中的比特币交易。
如上述步骤S2所述,根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名。现有技术对于包括多个子交易的指定交易,必须由多个区块链节点分段且间断地发起交易,无法做到流程自动化,造成交易流程长。本申请根据所述记账指令,依据预先设置的背书签名顺序,将所述指定交易的各个子流程以及相应的背书签名流程预先设置好,从而实现流程自动化,加快交易速度。其中,预先设置的背书签名顺序可以记载于预先设置的配制文件中,通过调取相应的配制文件即可获知背书签名顺序。其中,背书签名的过程包括:第一背书签名区块链节点验证所述第一子交易无误后,采用第一背书签名区块链节点的私钥对第一背书签名区块链节点的签名信息进行加密,在第一子交易中加入加密后的签名信息,从而实现了背书签名。相应地,任一区块链节点利用第一背书签名区块链节点的公钥对加密后的签名信息进行解密,即可获知背书签名信息。所述背书签名规则至少包括背书签名顺序,进一步地,还可以包括背书签名分支、背书签名合并、背书签名判断或者背书签名循环。背书签名分支,指所述指定交易的所有子交易的背书签名的枝杈状背书签名结构(例如第m个子交易需要多个背书签名,同样的第m+1个子交易需要多个背书签名,从而形成的枝权状或者分支状的背书签名结构);背书签名合并,指第m个子交易是否进行背书签名以及向哪个区块链节点发送背书签名要求,由所述第m个子交易之前的多个前提子交易的背书签名(例如背书签名是否成功)决定;背书签名判断,指根据上一个背书签名的结果(失败或者成功),决定本次子交易是否进行背书签名以及向哪个区块链节点发送背书签名要求;背书签名循环,指当向某个区块链节点要求背书签名时失败(例如该区块链节点不在线导致的失败),则循环预定次数向该区块链节点再次要求背书签名。其中,所述背书签名规则可以预先记载于配置文件中,也可以通过流程编辑器生成配置文件。进一步地,还可以通过智能合约的形式,通过指定配置文件,从而指定背书签名规则。
如上述步骤S3所述,要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给将发起第二子交易的第二区块链节点。其中,第二区块链节点可以与第一背书签名区块链节点相同,也可以不同。当第二区块链节点与第一背书签名区块链节点相同时,要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给将发起第二子交易的第二区块链节点,即是要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给所述第一背书签名区块链节点本身,而所述第一背书签名区块链节点即发起第二子交易。当第二区块链节点与第一背书签名区块链节点不同时,由第一背书签名区块链节点把具有背书签名的第一子交易发送给第二区块链节点,由第二区块链节点发起在第一子交易之后的第二子交易。
如上述步骤S4所述,接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名。所述指定交易包括n个子交易,理论上每个子交易均需要有背书签名。若有任意一个子交易不具有背书签名,则表明所述指定交易的背书签名不完整,因此所述指定交易得不到保证,即不应将所述指定交易进行记账处理。
如上述步骤S5所述,若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序。若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,表明所述指定交易中的子交易是按照预定顺序完成,并且具有相应的背书签名保证的,因此所述指定交易可信。若所述n个子交易的背书签名的顺序不符合预先设置的背书签名顺序,则所述指定交易可信,应拒绝记账要求。
如上述步骤S6所述,若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易。若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,表明所述指定交易中的子交易是按照预定顺序完成,并且具有相应的背书签名保证的,因此所述指定交易可信。据此在所述区块链的公共账本中记录所述指定交易。其中,在所述区块链的公共账本中记录所述指定交易的过程包括:以所述指定交易作为新的区块,并在所述新的区块中记载所述区块链的最后一个区块的哈希值,将所述新的区块加入所述区块链中。进一步地,所述在所述区块链的公共账本中记录所述指定交易之前,还包括:判断所述n个子交易的背书签名是否符合除所述背书签名顺序之外的其他所述背书签名规则,其中所述其他所述背书签名规则包括背书签名分支、背书签名合并、背书签名判断或者背书签名循环中的至少一项;若所述n个子交易的背书签名符合除所述背书签名顺序之外的其他所述背书签名规则,则生成“在所述区块链的公共账本中记录所述指定交易”的指令。
在一个实施方式中,所述根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名的步骤S2之前,包括:
S11、安装预设的智能合约,所述智能合约指定了所述指定交易的至少包括背书签名顺序的背书签名规则;
S12、将所述智能合约指定的至少包括背书签名顺序的背书签名规则记载入与所述指定交易对应的配置文件中;
S13、在第一子交易完成之后,根据所述配置文件确定第一背书签名区块链节点,并生成要求背书签名指令,所述要求背书签名指令用于指示将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名。
如上所述,实现了利用智能合约、配制文件进行指定至少包括背书签名顺序的背书签名规则,以达到流程自动化的目的。其中,所述智能合约指定了所述指定交易的至少包括背书签名顺序的背书签名规则,指在智能合约中至少规定了所述指定交易的子交易应由哪些区块链节点按照背书签名顺序进行背书签名。其中,在第一子交易完成之后,是指所述第一区块链节点完成对交易信息的修改,但是还未得到区块链的认可(即区块链节点的背书签名,记载入公共账本中)。所述配置文件指执行所述指定交易时的配置文件,包括具体的配制参数,存在于与所述指定交易相关的所有区块链节点中。由于第一区块链节点已经安装了预设的智能合约,因此根据所述智能合约能够确定对应的配置文件,根据配置文件从而确定第一背书签名区块链节点,再生成要求背书签名指令。所述智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
在一个实施方式中,所述接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名的步骤S4,包括:
S401、接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易;
S402、判断所述n个子交易的数量是否大于预设的子交易数量阈值;
S403、若所述n个子交易的数量不大于预设的子交易数量阈值,则依次判断所述n个子交易是否均具有背书签名。
如上所述,实现了判断所述n个子交易是否均具有背书签名。当所述指定交易的子交易总数量过大时,判断所有的子交易总数是否均具有背书签名会大大增加计算量。据此,采用预设的子交易数量阈值的方式,先判断所述n个子交易的数量是否大于预设的子交易数量阈值,若所述n个子交易的数量不大于预设的子交易数量阈值,则依次判断所述n个子交易是否均具有背书签名,若大于预设的子交易数量阈值,出于节省计算量的目的,可以选择抽取部分子交易判断是否具有背书签名,从而判断所述n个子交易是否均具有背书签名。
在一个实施方式中,所述判断所述n个子交易的数量是否大于预设的子交易数量阈值的步骤S402之后,包括:
S4021、若所述n个子交易的数量大于预设的子交易数量阈值,则判断第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名;
S4022、若第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名均具有背书签名,则判定所述n个子交易均具有背书签名。
如上所述,实现了判定所述n个子交易均具有背书签名。若所述n个子交易的数量大于预设的子交易数量阈值,表明所述指定交易的子交易总数量过大时,此时可以选择抽取部分子交易判断是否具有背书签名,从而判断所述n个子交易是否均具有背书签名。具体地,由于第一子交易与第n个子交易具有代表性,再随机抽取至少一个子交易,用来代表所有的子交易。若第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名均具有背书签名,则判定所述n个子交易均具有背书签名。从而在保证一定的判断准确性的基础上,节省了算力。
在一个实施方式中,所述若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序的步骤S5,包括:
S501、若所述n个子交易均具有背书签名,则从所述配置文件中提取所述指定交易的背书签名顺序;
S502、判断所述n个子交易的背书签名的顺序是否与从所述配置文件中提取的所述指定交易的背书签名顺序相同;
S503、若所述n个子交易的背书签名的顺序与从所述配置文件中提取的所述指定交易的背书签名顺序相同,则判定所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序。
如上所述,实现了判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序。为了确保所述指定交易是正确的,需要确定所述指定交易的背书签名顺序与预设的顺序相同。具体地,从所述配置文件中提取所述指定交易的背书签名顺序,判断所述n个子交易的背书签名的顺序是否与从所述配置文件中提取所述指定交易的背书签名顺序相同,若所述n个子交易的背书签名的顺序与从所述配置文件中提取所述指定交易的背书签名顺序相同,则判定所述n个子交易的背书签名的顺序符合所述预先设置的背书签名顺序。
在一个实施方式中,所述若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序的步骤S5之后,包括:
S51、若所述n个子交易的背书签名的顺序不符合预先设置的背书签名顺序,则不允许对指定交易进行记账;
S52、获取所述n个子交易的背书签名的顺序与预先设置的背书签名顺序不一致之处,并生成包括所述不一致之处的错误提醒指令。
如上所述,实现了不允许对指定交易进行记账。若所述n个子交易的背书签名的顺序不符合所述预先设置的背书签名顺序,表明背书签名不正确,即所述指定交易中至少有一个子交易未得到背书签名,因此交易不可信。据此,不允许对指定交易进行记账。再获取所述n个子交易的背书签名的顺序与所述预先设置的背书签名顺序不一致之处,并生成包括所述不一致之处的错误提醒指令,以提醒工作人员需要对错误之处进行修正。
在一个实施方式中,所述接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数的步骤S1之前,包括:
S001、采用指定语言在所述第一区块链节点中创建区块链类;
S002、将所述区块链类实例化后获得创世区块,所述创世区块中将前一区块的哈希值设置为0,基于所述创世区块,生成其他区块,其中所述其他区块记载有所述其他区块的前一区块的哈希值;
S003、以同意所述区块链的预设共识机制的终端作为区块链节点,从而建立区块链。
如上所述,实现了设置区块链。其中创建区块链类的语言可以为任意可行语言,本实施方式优选Go语言,以优化区块链类。其中区块链类(class)是对区块链的定义,将所述区块链类实例化即是确定区块链的具体参数,从而获得第一个区块(创世区块),从而作为其他区块的生成依据。由于创世区块是第一个区块,实际上没有之前的区块,因此在创世区块中将前一区块的哈希值设置为0。其中所述区块链的预设共识机制可为任意共识机制,优选拜占庭容错机制。其中拜占庭容错机制也称授权拜占庭容错算法,是基于持有权益比例来选出专门的记账人(记账节点),然后记账人之间通过拜占庭容错算法(即少数服从多数的投票机制)来达成共识,决定动态参与节点。
本申请的基于区块链的有背书签名的记账方法,通过第一区块链节点接收对指定交易的记账指令,所述指定交易包括n个子交易,将第一子交易发送给第一背书签名区块链节点,并要求进行背书签名,接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,若所述n个子交易均具有背书签名,且所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易,从而减少交易流程耗时,实现了流程自动化。
参照图2,本申请实施例提供一种基于区块链的有背书签名的记账装置,应用于第一区块链节点,包括:
记账指令接收单元10,用于接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数;
要求背书签名单元20,用于根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名;
要求发送单元30,用于要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给将发起第二子交易的第二区块链节点;
具有背书签名判断单元40,用于接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名;
背书签名顺序判断单元50,用于若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序;
记录单元60,用于若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易。
如上述单元10所述,接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数。预先搭建的区块链可以是任意类型的区块链,例如采用例如工作量证明机制、权益证明机制、股份授权证明机制和Pool验证池的共识机制搭建的区块链。其中,所述区块链可以为公有链、联盟链或者私有链,优选联盟链或者私有链。所述预先搭建的区块链网络的搭建过程包括:以任一可行语言创建一个Blockchain类(区块链类),在构造函数中创建用于储存区块链的列表;将所述Blockchain实例化后,建立创世块(没有区块前的第一个区块);确定区块链的共识机制(例如工作量证明机制、权益证明机制、股份授权证明机制和Pool验证池);接收同意所述共识机制的终端作为所述区块链网络的节点,从而获得所述预先搭建的区块链网络。对指定交易的记账指令是指要求区块链对所述指定交易进行记账,其中,所述指定交易包括n个子交易,第一区块链节点是接收记账指令的区块链节点,由第一区块链节点发起所述指定交易中的第一子交易。其中,所述交易是指对所述区块链的公共账本的数据进行修改,例如比特币区块链中的比特币交易。
如上述单元20所述,根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名。现有技术对于包括多个子交易的指定交易,必须由多个区块链节点分段且间断地发起交易,无法做到流程自动化,造成交易流程长。本申请根据所述记账指令,依据预先设置的背书签名顺序,将所述指定交易的各个子流程以及相应的背书签名流程预先设置好,从而实现流程自动化,加快交易速度。其中,预先设置的背书签名顺序可以记载于预先设置的配制文件中,通过调取相应的配制文件即可获知背书签名顺序。其中,背书签名的过程包括:第一背书签名区块链节点验证所述第一子交易无误后,采用第一背书签名区块链节点的私钥对第一背书签名区块链节点的签名信息进行加密,在第一子交易中加入加密后的签名信息,从而实现了背书签名。相应地,任一区块链节点利用第一背书签名区块链节点的公钥对加密后的签名信息进行解密,即可获知背书签名信息。所述背书签名规则至少包括背书签名顺序,进一步地,还可以包括背书签名分支、背书签名合并、背书签名判断或者背书签名循环。背书签名分支,指所述指定交易的所有子交易的背书签名的枝杈状背书签名结构(例如第m个子交易需要多个背书签名,同样的第m+1个子交易需要多个背书签名,从而形成的枝权状或者分支状的背书签名结构);背书签名合并,指第m个子交易是否进行背书签名以及向哪个区块链节点发送背书签名要求,由所述第m个子交易之前的多个前提子交易的背书签名(例如背书签名是否成功)决定;背书签名判断,指根据上一个背书签名的结果(失败或者成功),决定本次子交易是否进行背书签名以及向哪个区块链节点发送背书签名要求;背书签名循环,指当向某个区块链节点要求背书签名时失败(例如该区块链节点不在线导致的失败),则循环预定次数向该区块链节点再次要求背书签名。其中,所述背书签名规则可以预先记载于配置文件中,也可以通过流程编辑器生成配置文件。进一步地,还可以通过智能合约的形式,通过指定配置文件,从而指定背书签名规则。
如上述单元30所述,要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给将发起第二子交易的第二区块链节点。其中,第二区块链节点可以与第一背书签名区块链节点相同,也可以不同。当第二区块链节点与第一背书签名区块链节点相同时,要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给将发起第二子交易的第二区块链节点,即是要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给所述第一背书签名区块链节点本身,而所述第一背书签名区块链节点即发起第二子交易。当第二区块链节点与第一背书签名区块链节点不同时,由第一背书签名区块链节点把具有背书签名的第一子交易发送给第二区块链节点,由第二区块链节点发起在第一子交易之后的第二子交易。
如上述单元40所述,接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名。所述指定交易包括n个子交易,理论上每个子交易均需要有背书签名。若有任意一个子交易不具有背书签名,则表明所述指定交易的背书签名不完整,因此所述指定交易得不到保证,即不应将所述指定交易进行记账处理。
如上述单元50所述,若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序。若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,表明所述指定交易中的子交易是按照预定顺序完成,并且具有相应的背书签名保证的,因此所述指定交易可信。若所述n个子交易的背书签名的顺序不符合预先设置的背书签名顺序,则所述指定交易可信,应拒绝记账要求。
如上述单元60所述,若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易。若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,表明所述指定交易中的子交易是按照预定顺序完成,并且具有相应的背书签名保证的,因此所述指定交易可信。据此在所述区块链的公共账本中记录所述指定交易。其中,在所述区块链的公共账本中记录所述指定交易的过程包括:以所述指定交易作为新的区块,并在所述新的区块中记载所述区块链的最后一个区块的哈希值,将所述新的区块加入所述区块链中。进一步地,所述在所述区块链的公共账本中记录所述指定交易之前,还包括:判断所述n个子交易的背书签名是否符合除所述背书签名顺序之外的其他所述背书签名规则,其中所述其他所述背书签名规则包括背书签名分支、背书签名合并、背书签名判断或者背书签名循环中的至少一项;若所述n个子交易的背书签名符合除所述背书签名顺序之外的其他所述背书签名规则,则生成“在所述区块链的公共账本中记录所述指定交易”的指令。
在一个实施方式中,所述装置,包括:
智能合约安装单元,用于安装预设的智能合约,所述智能合约指定了所述指定交易的至少包括背书签名顺序的背书签名规则;
配置文件记载单元,用于将所述智能合约指定的至少包括背书签名顺序的背书签名规则记载入与所述指定交易对应的配置文件中;
背书签名指令生成单元,用于在第一子交易完成之后,根据所述配置文件确定第一背书签名区块链节点,并生成要求背书签名指令,所述要求背书签名指令用于指示将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名。
如上所述,实现了利用智能合约、配制文件进行指定至少包括背书签名顺序的背书签名规则,以达到流程自动化的目的。其中,所述智能合约指定了所述指定交易的至少包括背书签名顺序的背书签名规则,指在智能合约中至少规定了所述指定交易的子交易应由哪些区块链节点按照背书签名顺序进行背书签名。其中,在第一子交易完成之后,是指所述第一区块链节点完成对交易信息的修改,但是还未得到区块链的认可(即区块链节点的背书签名,记载入公共账本中)。所述配置文件指执行所述指定交易时的配置文件,包括具体的配制参数,存在于与所述指定交易相关的所有区块链节点中。由于第一区块链节点已经安装了预设的智能合约,因此根据所述智能合约能够确定对应的配置文件,根据配置文件从而确定第一背书签名区块链节点,再生成要求背书签名指令。所述智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
在一个实施方式中,所述具有背书签名判断单元40,包括:
指定交易接收子单元,用于接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易;
子交易数量阈值判断子单元,用于判断所述n个子交易的数量是否大于预设的子交易数量阈值;
背书签名判断子单元,用于若所述n个子交易的数量不大于预设的子交易数量阈值,则依次判断所述n个子交易是否均具有背书签名。
如上所述,实现了判断所述n个子交易是否均具有背书签名。当所述指定交易的子交易总数量过大时,判断所有的子交易总数是否均具有背书签名会大大增加计算量。据此,采用预设的子交易数量阈值的方式,先判断所述n个子交易的数量是否大于预设的子交易数量阈值,若所述n个子交易的数量不大于预设的子交易数量阈值,则依次判断所述n个子交易是否均具有背书签名,若大于预设的子交易数量阈值,出于节省计算量的目的,可以选择抽取部分子交易判断是否具有背书签名,从而判断所述n个子交易是否均具有背书签名。
在一个实施方式中,所述具有背书签名判断单元40,包括:
子交易判断子单元,用于若所述n个子交易的数量大于预设的子交易数量阈值,则判断第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名;
具有背书签名判定子单元,用于若第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名均具有背书签名,则判定所述n个子交易均具有背书签名。
如上所述,实现了判定所述n个子交易均具有背书签名。若所述n个子交易的数量大于预设的子交易数量阈值,表明所述指定交易的子交易总数量过大时,此时可以选择抽取部分子交易判断是否具有背书签名,从而判断所述n个子交易是否均具有背书签名。具体地,由于第一子交易与第n个子交易具有代表性,再随机抽取至少一个子交易,用来代表所有的子交易。若第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名均具有背书签名,则判定所述n个子交易均具有背书签名。从而在保证一定的判断准确性的基础上,节省了算力。
在一个实施方式中,所述背书签名顺序判断单元50,包括:
背书签名顺序提取子单元,用于若所述n个子交易均具有背书签名,则从所述配置文件中提取所述指定交易的背书签名顺序;
背书签名顺序判断子单元,用于判断所述n个子交易的背书签名的顺序是否与从所述配置文件中提取的所述指定交易的背书签名顺序相同;
背书签名顺序判定子单元,用于若所述n个子交易的背书签名的顺序与从所述配置文件中提取的所述指定交易的背书签名顺序相同,则判定所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序。
如上所述,实现了判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序。为了确保所述指定交易是正确的,需要确定所述指定交易的背书签名顺序与预设的顺序相同。具体地,从所述配置文件中提取所述指定交易的背书签名顺序,判断所述n个子交易的背书签名的顺序是否与从所述配置文件中提取所述指定交易的背书签名顺序相同,若所述n个子交易的背书签名的顺序与从所述配置文件中提取所述指定交易的背书签名顺序相同,则判定所述n个子交易的背书签名的顺序符合所述预先设置的背书签名顺序。
在一个实施方式中,所述装置,包括:
不允许记账单元,用于若所述n个子交易的背书签名的顺序不符合预先设置的背书签名顺序,则不允许对指定交易进行记账;
错误提醒指令生成单元,用于获取所述n个子交易的背书签名的顺序与预先设置的背书签名顺序不一致之处,并生成包括所述不一致之处的错误提醒指令。
如上所述,实现了不允许对指定交易进行记账。若所述n个子交易的背书签名的顺序不符合所述预先设置的背书签名顺序,表明背书签名不正确,即所述指定交易中至少有一个子交易未得到背书签名,因此交易不可信。据此,不允许对指定交易进行记账。再获取所述n个子交易的背书签名的顺序与所述预先设置的背书签名顺序不一致之处,并生成包括所述不一致之处的错误提醒指令,以提醒工作人员需要对错误之处进行修正。
在一个实施方式中,所述装置,包括:
区块链类创建单元,用于采用指定语言在所述第一区块链节点中创建区块链类;
创世区块生成单元,用于将所述区块链类实例化后获得创世区块,所述创世区块中将前一区块的哈希值设置为0,基于所述创世区块,生成其他区块,其中所述其他区块记载有所述其他区块的前一区块的哈希值;
区块链建立单元,用于以同意所述区块链的预设共识机制的终端作为区块链节点,从而建立区块链。
如上所述,实现了设置区块链。其中创建区块链类的语言可以为任意可行语言,本实施方式优选Go语言,以优化区块链类。其中区块链类(class)是对区块链的定义,将所述区块链类实例化即是确定区块链的具体参数,从而获得第一个区块(创世区块),从而作为其他区块的生成依据。由于创世区块是第一个区块,实际上没有之前的区块,因此在创世区块中将前一区块的哈希值设置为0。其中所述区块链的预设共识机制可为任意共识机制,优选拜占庭容错机制。其中拜占庭容错机制也称授权拜占庭容错算法,是基于持有权益比例来选出专门的记账人(记账节点),然后记账人之间通过拜占庭容错算法(即少数服从多数的投票机制)来达成共识,决定动态参与节点。
本申请的基于区块链的有背书签名的记账装置,通过第一区块链节点接收对指定交易的记账指令,所述指定交易包括n个子交易,将第一子交易发送给第一背书签名区块链节点,并要求进行背书签名,接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,若所述n个子交易均具有背书签名,且所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易,从而减少交易流程耗时,实现了流程自动化。
参照图3,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于区块链的有背书签名的记账方法所用数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链的有背书签名的记账方法。
上述处理器执行上述基于区块链的有背书签名的记账方法,包括以下步骤:接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数;根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名;要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给将发起第二子交易的第二区块链节点;接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名;若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序;若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易。
在一个实施方式中,所述根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名的步骤之前,包括:安装预设的智能合约,所述智能合约指定了所述指定交易的至少包括背书签名顺序的背书签名规则;将所述智能合约指定的至少包括背书签名顺序的背书签名规则记载入与所述指定交易对应的配置文件中;在第一子交易完成之后,根据所述配置文件确定第一背书签名区块链节点,并生成要求背书签名指令,所述要求背书签名指令用于指示将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名。
在一个实施方式中,所述接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名的步骤,包括:接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易;判断所述n个子交易的数量是否大于预设的子交易数量阈值;若所述n个子交易的数量不大于预设的子交易数量阈值,则依次判断所述n个子交易是否均具有背书签名。
在一个实施方式中,所述判断所述n个子交易的数量是否大于预设的子交易数量阈值的步骤之后,包括:若所述n个子交易的数量大于预设的子交易数量阈值,则判断第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名;若第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名均具有背书签名,则判定所述n个子交易均具有背书签名。
在一个实施方式中,所述若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序的步骤,包括:若所述n个子交易均具有背书签名,则从所述配置文件中提取所述指定交易的背书签名顺序;判断所述n个子交易的背书签名的顺序是否与从所述配置文件中提取的所述指定交易的背书签名顺序相同;若所述n个子交易的背书签名的顺序与从所述配置文件中提取的所述指定交易的背书签名顺序相同,则判定所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序。
在一个实施方式中,所述若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序的步骤之后,包括:若所述n个子交易的背书签名的顺序不符合预先设置的背书签名顺序,则不允许对指定交易进行记账;获取所述n个子交易的背书签名的顺序与预先设置的背书签名顺序不一致之处,并生成包括所述不一致之处的错误提醒指令。
在一个实施方式中,所述接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数的步骤之前,包括:采用指定语言在所述第一区块链节点中创建区块链类;将所述区块链类实例化后获得创世区块,所述创世区块中将前一区块的哈希值设置为0,基于所述创世区块,生成其他区块,其中所述其他区块记载有所述其他区块的前一区块的哈希值;以同意所述区块链的预设共识机制的终端作为区块链节点,从而建立区块链。
本领域技术人员可以理解,图中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请的计算机设备,通过第一区块链节点接收对指定交易的记账指令,所述指定交易包括n个子交易,将第一子交易发送给第一背书签名区块链节点,并要求进行背书签名,接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,若所述n个子交易均具有背书签名,且所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易,从而减少交易流程耗时,实现了流程自动化。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现基于区块链的有背书签名的记账方法,包括以下步骤:接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数;根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名;要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给将发起第二子交易的第二区块链节点;接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名;若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序;若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易。
在一个实施方式中,所述根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名的步骤之前,包括:安装预设的智能合约,所述智能合约指定了所述指定交易的至少包括背书签名顺序的背书签名规则;将所述智能合约指定的至少包括背书签名顺序的背书签名规则记载入与所述指定交易对应的配置文件中;在第一子交易完成之后,根据所述配置文件确定第一背书签名区块链节点,并生成要求背书签名指令,所述要求背书签名指令用于指示将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名。
在一个实施方式中,所述接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名的步骤,包括:接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易;判断所述n个子交易的数量是否大于预设的子交易数量阈值;若所述n个子交易的数量不大于预设的子交易数量阈值,则依次判断所述n个子交易是否均具有背书签名。
在一个实施方式中,所述判断所述n个子交易的数量是否大于预设的子交易数量阈值的步骤之后,包括:若所述n个子交易的数量大于预设的子交易数量阈值,则判断第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名;若第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名均具有背书签名,则判定所述n个子交易均具有背书签名。
在一个实施方式中,所述若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序的步骤,包括:若所述n个子交易均具有背书签名,则从所述配置文件中提取所述指定交易的背书签名顺序;判断所述n个子交易的背书签名的顺序是否与从所述配置文件中提取的所述指定交易的背书签名顺序相同;若所述n个子交易的背书签名的顺序与从所述配置文件中提取的所述指定交易的背书签名顺序相同,则判定所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序。
在一个实施方式中,所述若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序的步骤之后,包括:若所述n个子交易的背书签名的顺序不符合预先设置的背书签名顺序,则不允许对指定交易进行记账;获取所述n个子交易的背书签名的顺序与预先设置的背书签名顺序不一致之处,并生成包括所述不一致之处的错误提醒指令。
在一个实施方式中,所述接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数的步骤之前,包括:采用指定语言在所述第一区块链节点中创建区块链类;将所述区块链类实例化后获得创世区块,所述创世区块中将前一区块的哈希值设置为0,基于所述创世区块,生成其他区块,其中所述其他区块记载有所述其他区块的前一区块的哈希值;以同意所述区块链的预设共识机制的终端作为区块链节点,从而建立区块链。
本申请的计算机可读存储介质,通过第一区块链节点接收对指定交易的记账指令,所述指定交易包括n个子交易,将第一子交易发送给第一背书签名区块链节点,并要求进行背书签名,接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,若所述n个子交易均具有背书签名,且所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易,从而减少交易流程耗时,实现了流程自动化。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种基于区块链的有背书签名的记账方法,应用于第一区块链节点,其特征在于,包括:
接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数;
根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名;
要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给将发起第二子交易的第二区块链节点;
接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名;
若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序;
若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易。
2.根据权利要求1所述的基于区块链的有背书签名的记账方法,其特征在于,所述根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名的步骤之前,包括:
安装预设的智能合约,所述智能合约指定了所述指定交易的至少包括背书签名顺序的背书签名规则;
将所述智能合约指定的至少包括背书签名顺序的背书签名规则记载入与所述指定交易对应的配置文件中;
在第一子交易完成之后,根据所述配置文件确定第一背书签名区块链节点,并生成要求背书签名指令,所述要求背书签名指令用于指示将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名。
3.根据权利要求1所述的基于区块链的有背书签名的记账方法,其特征在于,所述接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名的步骤,包括:
接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易;
判断所述n个子交易的数量是否大于预设的子交易数量阈值;
若所述n个子交易的数量不大于预设的子交易数量阈值,则依次判断所述n个子交易是否均具有背书签名。
4.根据权利要求3所述的基于区块链的有背书签名的记账方法,其特征在于,所述判断所述n个子交易的数量是否大于预设的子交易数量阈值的步骤之后,包括:
若所述n个子交易的数量大于预设的子交易数量阈值,则判断第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名;
若第一子交易、第n个子交易与随机抽取的至少一个子交易是否均具有背书签名均具有背书签名,则判定所述n个子交易均具有背书签名。
5.根据权利要求2所述的基于区块链的有背书签名的记账方法,其特征在于,所述若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序的步骤,包括:
若所述n个子交易均具有背书签名,则从所述配置文件中提取所述指定交易的背书签名顺序;
判断所述n个子交易的背书签名的顺序是否与从所述配置文件中提取的所述指定交易的背书签名顺序相同;
若所述n个子交易的背书签名的顺序与从所述配置文件中提取的所述指定交易的背书签名顺序相同,则判定所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序。
6.根据权利要求1所述的基于区块链的有背书签名的记账方法,其特征在于,所述若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序的步骤之后,包括:
若所述n个子交易的背书签名的顺序不符合预先设置的背书签名顺序,则不允许对指定交易进行记账;
获取所述n个子交易的背书签名的顺序与预先设置的背书签名顺序不一致之处,并生成包括所述不一致之处的错误提醒指令。
7.根据权利要求1所述的基于区块链的有背书签名的记账方法,其特征在于,所述接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数的步骤之前,包括:
采用指定语言在所述第一区块链节点中创建区块链类;
将所述区块链类实例化后获得创世区块,所述创世区块中将前一区块的哈希值设置为0,基于所述创世区块,生成其他区块,其中所述其他区块记载有所述其他区块的前一区块的哈希值;
以同意所述区块链的预设共识机制的终端作为区块链节点,从而建立区块链。
8.一种基于区块链的有背书签名的记账装置,应用于第一区块链节点,其特征在于,包括:
记账指令接收单元,用于接收对指定交易的记账指令,其中,所述指定交易包括n个子交易,所述第一区块链节点是预先搭建的区块链中的一个区块链节点,n为大于1的整数;
要求背书签名单元,用于根据所述记账指令,依据预先设置的至少包括背书签名顺序的背书签名规则,将第一子交易发送给第一背书签名区块链节点,并要求所述第一背书签名区块链节点对所述第一子交易进行背书签名;
要求发送单元,用于要求所述第一背书签名区块链节点将具有背书签名的第一子交易发送给将发起第二子交易的第二区块链节点;
具有背书签名判断单元,用于接收第n个背书签名区块链节点发送的包括具有背书签名的n个子交易的指定交易,并判断所述n个子交易是否均具有背书签名;
背书签名顺序判断单元,用于若所述n个子交易均具有背书签名,则判断所述n个子交易的背书签名的顺序是否符合预先设置的背书签名顺序;
记录单元,用于若所述n个子交易的背书签名的顺序符合预先设置的背书签名顺序,则在所述区块链的公共账本中记录所述指定交易。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201910389862.0A 2019-05-10 2019-05-10 基于区块链的有背书签名的记账方法、装置和计算机设备 Pending CN110264350A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910389862.0A CN110264350A (zh) 2019-05-10 2019-05-10 基于区块链的有背书签名的记账方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910389862.0A CN110264350A (zh) 2019-05-10 2019-05-10 基于区块链的有背书签名的记账方法、装置和计算机设备

Publications (1)

Publication Number Publication Date
CN110264350A true CN110264350A (zh) 2019-09-20

Family

ID=67913039

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910389862.0A Pending CN110264350A (zh) 2019-05-10 2019-05-10 基于区块链的有背书签名的记账方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN110264350A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110705240A (zh) * 2019-09-29 2020-01-17 深圳前海环融联易信息科技服务有限公司 合同生成方法、装置、计算机设备及存储介质
CN111445334A (zh) * 2020-03-30 2020-07-24 北京数字认证股份有限公司 一种区块链系统的聚合签名方法、装置及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170213209A1 (en) * 2016-01-21 2017-07-27 International Business Machines Corporation Enterprise blockchains and transactional systems
CN108269090A (zh) * 2018-01-19 2018-07-10 中国科学院软件研究所 基于无协商随机抽签的用于区块链系统的共识方法和装置
CN108830599A (zh) * 2018-06-19 2018-11-16 众安信息技术服务有限公司 处理区块链中的交易的方法、系统及装置
CN109064324A (zh) * 2018-06-15 2018-12-21 重庆金融资产交易所有限责任公司 基于联盟链的交易方法、电子装置及可读存储介质
CN109325854A (zh) * 2018-08-16 2019-02-12 北京京东尚科信息技术有限公司 区块链网络、部署方法及存储介质
CN109493204A (zh) * 2018-10-16 2019-03-19 平安科技(深圳)有限公司 基于区块链的业务记账方法及终端设备
CN109598616A (zh) * 2018-12-09 2019-04-09 大连飞创信息技术有限公司 一种引入仲裁机制的区块链数据隐私保护的方法
CN109636599A (zh) * 2018-11-07 2019-04-16 广西师范大学 基于群签名的许可区块链隐私保护和监管方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170213209A1 (en) * 2016-01-21 2017-07-27 International Business Machines Corporation Enterprise blockchains and transactional systems
CN108269090A (zh) * 2018-01-19 2018-07-10 中国科学院软件研究所 基于无协商随机抽签的用于区块链系统的共识方法和装置
CN109064324A (zh) * 2018-06-15 2018-12-21 重庆金融资产交易所有限责任公司 基于联盟链的交易方法、电子装置及可读存储介质
CN108830599A (zh) * 2018-06-19 2018-11-16 众安信息技术服务有限公司 处理区块链中的交易的方法、系统及装置
CN109325854A (zh) * 2018-08-16 2019-02-12 北京京东尚科信息技术有限公司 区块链网络、部署方法及存储介质
CN109493204A (zh) * 2018-10-16 2019-03-19 平安科技(深圳)有限公司 基于区块链的业务记账方法及终端设备
CN109636599A (zh) * 2018-11-07 2019-04-16 广西师范大学 基于群签名的许可区块链隐私保护和监管方法
CN109598616A (zh) * 2018-12-09 2019-04-09 大连飞创信息技术有限公司 一种引入仲裁机制的区块链数据隐私保护的方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110705240A (zh) * 2019-09-29 2020-01-17 深圳前海环融联易信息科技服务有限公司 合同生成方法、装置、计算机设备及存储介质
CN111445334A (zh) * 2020-03-30 2020-07-24 北京数字认证股份有限公司 一种区块链系统的聚合签名方法、装置及存储介质
CN111445334B (zh) * 2020-03-30 2023-09-05 北京数字认证股份有限公司 一种区块链系统的聚合签名方法、装置及存储介质

Similar Documents

Publication Publication Date Title
CN110597925B (zh) 一种基于区块链的跨链数据处理方法及装置
CN106960165B (zh) 一种基于区块链智能合约实现电子合同多方会签的方法
CN107147735B (zh) 一种基于分层结构的分布式账本系统
Chauhan et al. Blockchain and scalability
Chase et al. Analysis of the XRP ledger consensus protocol
Pass et al. The sleepy model of consensus
WO2021114929A1 (zh) 基于区块链的模型联合训练方法及装置
Miraz et al. Application of blockchain in booking and registration systems of securities exchanges
CN110245186B (zh) 一种基于区块链的业务处理方法及相关设备
Andrychowicz et al. Modeling bitcoin contracts by timed automata
CN108776929A (zh) 基于区块链数据库的账单处理方法、系统和可读存储介质
CN109726229A (zh) 一种区块链数据存储方法及装置
CN110322352A (zh) 一种基于区块链的账本建立及查询方法、电子设备
Kerber et al. Kachina–foundations of private smart contracts
CN111445247B (zh) 用于防止区块链分叉的方法和设备
CN107526766A (zh) 数据组织方法和开发环境系统
CN110569246B (zh) 区块链节点信息同步方法、装置、计算机设备及存储介质
CN110264350A (zh) 基于区块链的有背书签名的记账方法、装置和计算机设备
WO2021204044A1 (zh) 区块链数据的订正
CN110599175A (zh) 一种区块处理方法及相关设备
Tanaka et al. Faithful implementations of distributed algorithms and control laws
Saad et al. Decentralized directed acyclic graph based dlt network
CN110399704A (zh) 更改账号密码的方法、装置、计算机设备和存储介质
CN114328518A (zh) 基于utxo模型的低存储消耗的方法和系统
CN110442764A (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190920