基于区块链的业务协作处理方法和系统与流程

文档序号:21647098发布日期:2020-07-29 03:00阅读:390来源:国知局
基于区块链的业务协作处理方法和系统与流程

本文件涉及区块链技术领域,尤其涉及一种基于区块链的业务协作处理方法和系统。



背景技术:

区块链,是利用分布式账本技术解决多方信任问题的去中心化创新性的解决方案,是当前社会的前沿技术。目前,区块链技术越来越广泛地被尝试或应用于各行各业的应用中,其中有很多应用场景涉及到多个机构或主体之间的协同业务流程。

然而,传统的业务协同处理,由于是中心化的信息系统,存在系统维护成本大,数据易被篡改、泄露等风险,而且,业务数据、进度不公开透明,不易查询;再者,业务流程涉及多个操作方,流程推进较为困难,用户体验较差。



技术实现要素:

本说明书一个或多个实施例的目的是提供一种基于区块链的业务协作处理方法和系统,以保证协作逻辑的防篡改以及公开透明性,各操作自动推进执行,提升用户体验。

为解决上述技术问题,本说明书一个或多个实施例是这样实现的:

第一方面,提出了一种基于区块链的业务协作处理方法,应用于包含至少一个第一操作方和至少一个第二操作方的区块链网络中,所述区块链中部署的智能合约包含:用于规范执行业务操作的所述至少一个第一操作方和至少一个第二操作方之间的操作顺序的协作逻辑,以及,表征当前操作状态的状态位;所述方法包括:

第一操作方在完成当前操作后,调用所述智能合约中的协作逻辑,确定执行下一操作的第二操作方的标识和下一操作的状态位;

如果所述下一操作的状态位为空,则业务在当前操作后结束;

否则,所述第一操作方更新所述智能合约中的操作状态;所述第二操作方在监听到所述智能合约中的操作状态为自身对应操作的状态位时,执行自身对应操作,或者,所述第二操作方在接收到第一操作方的业务操作通知后,执行自身对应操作。

第二方面,提出了一种基于区块链的业务协作处理系统,包含至少一个第一操作方和至少一个第二操作方的区块链网络,所述区块链中部署的智能合约包含:用于规范执行业务操作的所述至少一个第一操作方和至少一个第二操作方之间的操作顺序的协作逻辑,以及,表征当前操作状态的状态位;

第一操作方,用于在完成当前操作后,调用所述智能合约中的协作逻辑,确定执行下一操作的第二操作方的标识和下一操作的状态位;

如果所述下一操作的状态位为空,则业务在当前操作后结束;

否则,所述第一操作方还用于更新所述智能合约中的操作状态;所述第二操作方,用于在监听到所述智能合约中的操作状态为自身对应操作的状态位时,执行自身对应操作,或者,所述第二操作方用于在接收到第一操作方的业务操作通知后,执行自身对应操作。

第三方面,提出了一种电子设备,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行第一方面所述方法的部分步骤。

第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行第一方面所述方法的部分步骤。

由以上本说明书一个或多个实施例提供的技术方案可见,在包含至少一个第一操作方和至少一个第二操作方的区块链网络,部署有包含协作逻辑和状态位的智能合约;这样,在执行业务时,相互协作的操作方之间可以通过调用协作逻辑确定下一操作的操作方和状态位,不需要中心化的系统来统一控制,即可实现多方协作处理业务的功能,且可以保证协作逻辑的防篡改以及公开透明性,且不需要业务发起方推进,各操作自动推进执行,提升用户体验。

附图说明

为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对一个或多个实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本说明书实施例提供的一种基于区块链的业务协作处理方法的步骤示意图。

图2是本说明书实施例提供的智能合约的示意图。

图3是本说明书的一个实施例提供的户口迁移业务的协作处理示意图。

图4是本说明书的一个实施例提供的基于区块链的业务协作处理系统的结构示意图。

图5是本说明书的一个实施例提供的电子设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的一个或多个实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。

实施例一

参照图1所示,为本说明书实施例提供的一种基于区块链的业务协作处理方法的步骤示意图,应理解,该方法应用在包含至少一个第一操作方和至少一个第二操作方的区块链网络中,所述区块链中部署的智能合约包含:用于规范执行业务操作的所述至少一个第一操作方和至少一个第二操作方之间的操作顺序的协作逻辑,表征当前操作状态的状态位,以及协作所用公共数据。其中,协作所用公共数据包括:业务协作所涉及的各个操作方在执行操作步骤时都需要使用的数据。所述第一操作方和第二操作方仅表示不同的操作方,在业务协作处理时,涉及到多个交互过程,如果第一交互过程中,第一操作方执行当前操作,第二操作方执行下一个操作;那么,相应地,在第二交互过程中,第二操作方作为本次的第一操作方再次与另一个第二操作方进行交互,以此类推,直至完成本次业务。

所述方法可以包括以下步骤:

步骤102:第一操作方在完成当前操作后,调用所述智能合约中的协作逻辑,确定执行下一操作的第二操作方的标识和下一操作的状态位;如果所述下一操作的状态位为空或为表征业务结束的状态值,则业务在当前操作后结束;否则,执行步骤104。

其中,状态位为空表示该字段无值,状态位为表征业务结束的状态值,例如,定义状态位的字段取值为0时表征业务结束,或是定义状态位的字段取值为“end”时表征业务结束。

其中,如果第一操作方为业务发起方,则当前操作可以是基于业务产生的业务请求、业务申请等,具体可以根据具体的业务类型以及业务发起方的需求进行灵活设定。

如果第一操作方为中间交互过程中的业务执行方,则当前操作可以是该业务执行方对业务具体的执行操作,例如,对业务发起方进行身份核验,对业务内容进行审核等。

应理解,在本说明书实施例中,参照图2所示,部署在区块链上的所述智能合约,至少包含有协作逻辑,该协作逻辑可以具体规范有执行本类业务所需要的各个操作之间的顺序,以及执行各个操作的操作方标识。例如,当一个操作方仅执行一种操作时,可以简单表示为:操作方a(操作a)→操作方b(操作b)→操作方c(操作c)→操作方d(操作d)→结束。也就是说,先执行操作方a对应的操作,再依次执行操作方bcd的对应的操作。再如,当一个操作方可以执行多种操作时,可以简单表示为操作方a(操作1)→操作方b(操作2)→操作方a(操作3)→操作方c(操作4)→结束。无论是哪种表示,其实质都是按照操作顺序来执行。

在该步骤中,其实每个操作都携带有状态位,例如,可以操作a中字母作为状态位,也可以操作1中数字作为状态位。根据协作逻辑中的业务流程顺序,匹配出执行下一操作的操作方,并确定下一操作的状态位。

可选地,所述第一操作方在调用所述智能合约中的协作逻辑,确定执行下一操作的第二操作方的标识和下一操作的状态位时,可具体调用所述智能合约中的协作逻辑,对当前操作的属性参数进行校验,其中,所述属性参数至少包括:操作方标识;如果校验通过,则从所述协作逻辑中确定执行下一操作的第二操作方的标识和下一操作的状态位,否则,结束业务。其实,所述属性参数还可以包括操作状态和/或提交的数据等属性参数。应理解,在不同的操作步骤中,所需校验的属性参数可能有差异,但是,对当前操作的操作方标识进行校验是必要步骤,同时,可以根据需求对操作状态,或,提交的数据,或,操作状态和提交的数据进行校验。其中,提交的数据可以是提交的前一操作的结果数据,或是其它操作产生的中间数据。

应理解,校验主要目的是判断当前操作的第一操作方是否为智能合约的操作状态中表示的当前执行操作的操作方,或第一操作方的当前操作状态是否符合智能合约中的状态位。另外,如果有提交的数据,还可以对提交的数据是否符合协作逻辑中的既定规则进行校验。比如,目前操作结束后智能合约预期是:操作方a带着1个整数结果和当前状态值(状态1)来校验。此时如果操作方b来校验,不能通过;或者操作方a传入一个非整数来校验,不通过;或操作方a传入的“状态2”来校验,则校验不通过。

举例说明,第一操作方可以先根据协作逻辑,对自己的标识进行校验,校验时,还可以对当前操作状态的状态位和/或提交的数据进行校验,确定当前操作是否为协作逻辑中业务流程顺序中的某一操作。如果确定与协作逻辑匹配,那么校验通过,可以从协作逻辑中直接确定当前操作的下一操作操作方的标识和下一操作的状态位,否则,结束业务。

步骤104:所述第一操作方更新所述智能合约中的操作状态。

继上述图2所示,协作逻辑中还包含有一种状态更新方法,该方法会先判断当前操作的状态值,及当前操作的操作方,只有操作方符合协作逻辑中规范的顺序中相应操作的操作方,才可以将状态值进行更新,且更新后的状态值也必须满足业务流程顺序的下一操作状态。

在本说明书实施例中,所述第一操作方在更新所述智能合约中的操作状态时,可具体将所述智能合约中的操作状态的状态位加1,或者,按照业务流程顺序,将操作状态更新到下一个操作对应的状态,例如将操作状态的状态位由a更新为b。

假设,在智能合约中,当前状态为state6,有一操作方调用该方法,并传入新状态值state7,该方法会先判断调用该方法的主体是否为县级公安机关,然后判断下一步state7是否属于当前流程图上state6的下一步状态。如果都满足,就可以完成状态更新。

步骤106:所述第二操作方在监听到所述智能合约中的操作状态为自身对应操作的状态位时,根据所述协作所用公共数据执行自身对应操作。

其实,还可以由第一操作方向第二操作方发送业务操作通知,所述第二操作方在接收到业务操作通知后,从区块链的智能合约中查询状态位,如果查询到的状态位是自己的,那么,根据所述协作所用公共数据执行自身对应操作。

在本说明书实施例中,所述智能合约还包含表征所述多个第一操作方和第二操作方的操作内容和数据的方法逻辑;也就是说,每个操作方的具体操作,也可以部署在区块链上,以便从链上调用智能合约执行操作。相应地,第二操作方根据所述协作所用公共数据执行自身对应操作时,具体可以调用所述智能合约中的方法逻辑,根据所述协作所用公共数据执行自身对应操作。

进一步,所述第一操作方在完成当前操作后,可以将当前操作的结果数据上传至区块链;和/或

所述第二操作方在执行自身对应操作后,可以将执行自身对应操作的结果数据上传至区块链。

从而,将业务执行过程中各个操作产生的中间数据上传至区块链进行存证,避免数据篡改造成的业务损失。

再进一步,在所述第一操作方将当前操作的结果数据上传至区块链之后,所述第二操作方在执行自身对应操作时,至少根据所述第一操作方上传的结果数据,执行自身对应操作;或者,可以调用所述智能合约中的方法逻辑,至少根据所述第一操作方上传的结果数据,执行自身对应操作。其实,第二操作方执行自身对应操作时所基于的结果数据,不止包含第一操作方上传的结果数据,还可以包含第一操作方之前的一个或多个操作方所上传至区块链的结果数据,也就是中间数据。此外,还可以包含执行操作所需的其它数据。

需要解释的是,在一个完整的业务流程中,上述步骤102-步骤106是循环执行的,直至下一操作的状态位为空或为表征业务结束的状态值。应理解,这里的状态位为空,可以是没有状态值,或是状态值表示为空值,例如,为0。

另外,在本说明书实施例中,执行该业务的各个操作的操作方均可以通过查询链上流程的当前状态判断当前的业务进度。

通过上述技术方案,在包含至少一个第一操作方和至少一个第二操作方的区块链网络,部署有包含协作逻辑、状态位以及协作所用公共数据的智能合约;这样,在执行业务时,相互协作的操作方之间可以通过调用协作逻辑确定下一操作的操作方和状态位,不需要中心化的系统来统一控制,即可实现多方协作处理业务的功能,且可以保证协作逻辑的防篡改以及公开透明性,且不需要业务发起方推进,各操作自动推进执行,提升用户体验。

下面通过具体的实例对本说明书所涉及的业务协作处理方案进行详述。

参照图3所示,为本说明书实施例提供的一个户口迁移业务的实例。

图3中每个操作都标记有状态位state0,state1,state2,…,state11,该流程中涉及4个操作方:申请人,办证中心,县级公安机关,市级公安机关。其实质是各个主体所使用的终端设备。区块链上部署智能合约模板,用于实现市外户口迁移业务的协作逻辑,该协作逻辑可以有一个变量用于存储用户提交的材料,也可以不设计这个变量,而直接让申请人在链下将材料传给办证中心。如果要防止纠纷,可以将关键过程数据保存在链上。另外,有一个变量用于存储当前的状态值(state0~state11);有一个方法用于更新状态值,该方法会先判断当前的状态值,及当前方法的调用方,只有调用方符合流程图中相应步骤的主体,才可以将状态值进行更新,且更新后的状态值也必须满足流程图的下一步状态设计。

当某申请人发起户口迁移申请时,步骤如下:

第一步,申请人在链上依据上述合约模板生成一个新的协作合约。

其中,初始状态为state0。

第二步,申请人向办证中心提交材料(这个提交材料的操作可以在区块链上进行,也可以在链下,甚至可以是线下完成),办证中心调用上述合约中的更新状态值的方法,并将状态更新为state1。

第三步,办证中心进行材料审查(这一操作可以在改造之前办证中心内部的信息系统中完成)。

第四步,办证中心根据步骤3结果,向区块链发送交易,该交易调用协作合约中的状态更新方法,将状态更新为state2。

第五步,办证中心的步骤3的结果也可以放入到合约中的某个变量中,以便其它协作的操作方查看,也可以线下发给该操作方。

其实,主要看这个结果是否可能引起纠纷,如果是,将此类业务中间过程的数据放入链上可以减少纠纷。

第六步,同样的方法一直进行到state10或state11,流程结束。

当申请人想查看该业务的进度时,可以通过查看合约中的状态值,比照流程图,从而了解业务当前的进度。

从而,通过区块链实现各操作方之间的协同合作,且协作逻辑以及大部分数据都存储在链上,防止篡改,且公开透明,方便查询业务进度,不需要申请人人为推进进程,体验较佳。

实施例二

参照图4所示,为本说明书实施例提供的基于区块链的业务协作处理系统400,包含至少一个第一操作方402和至少一个第二操作方404的区块链网络,所述区块链中部署的智能合约包含:用于规范执行业务操作的所述至少一个第一操作方和至少一个第二操作方之间的操作顺序的协作逻辑,以及,表征当前操作状态的状态位;

第一操作方402,用于在完成当前操作后,调用所述智能合约中的协作逻辑,确定执行下一操作的第二操作方404的标识和下一操作的状态位;

如果所述下一操作的状态位为空,则业务在当前操作后结束;

否则,所述第一操作方还用于更新所述智能合约中的操作状态;所述第二操作方404,用于在监听到所述智能合约中的操作状态为自身对应操作的状态位时,执行自身对应操作,或者,所述第二操作方404用于在接收到第一操作方402的业务操作通知后,执行自身对应操作。

可选地,作为一个实施例,所述第一操作方在调用所述智能合约中的协作逻辑,确定执行下一操作的第二操作方的标识和下一操作的状态位时,具体用于:

调用所述智能合约中的协作逻辑,对所述智能合约中的操作状态进行校验;

如果校验通过,则从所述协作逻辑中确定执行下一操作的第二操作方的标识和下一操作的状态位,否则,结束业务。

在本说明书实施例的一种具体实现方式中,所述第一操作方在更新所述智能合约中的操作状态时,具体用于:

将所述智能合约中的操作状态的状态位加1。

在本说明书实施例的再一种具体实现方式中,所述智能合约还包含表征所述多个第一操作方和第二操作方的操作内容和数据的方法逻辑;

则所述第二操作方在执行自身对应操作时,具体用于:

调用所述智能合约中的方法逻辑,执行自身对应操作。

在本说明书实施例的再一种具体实现方式中,所述第一操作方在完成当前操作后,还用于:

将当前操作的结果数据上传至区块链;和/或

所述第二操作方在执行自身对应操作后,还用于:

将执行自身对应操作的结果数据上传至区块链。

在本说明书实施例的再一种具体实现方式中,在所述第一操作方将当前操作的结果数据上传至区块链之后,所述第二操作方在执行自身对应操作时,具体用于:

根据所述第一操作方上传的结果数据,执行自身对应操作;

或者,

调用所述智能合约中的方法逻辑,根据所述第一操作方上传的结果数据,执行自身对应操作。

通过上述技术方案,在包含至少一个第一操作方和至少一个第二操作方的区块链网络,部署有包含协作逻辑和状态位的智能合约;这样,在执行业务时,相互协作的操作方之间可以通过调用协作逻辑确定下一操作的操作方和状态位,不需要中心化的系统来统一控制,即可实现多方协作处理业务的功能,且可以保证协作逻辑的防篡改以及公开透明性,且不需要业务发起方推进,各操作自动推进执行,提升用户体验。

实施例三

图5是本说明书的一个实施例电子设备的结构示意图。请参考图5,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industrystandardarchitecture,工业标准体系结构)总线、pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成各个操作方。处理器,执行存储器所存放的程序,并具体用于执行各操作方所对应的方法步骤。

上述如本说明书图1所示实施例揭示的装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

该电子设备还可执行图1的方法,并实现相应装置在图1所示实施例的功能,本说明书实施例在此不再赘述。

当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

通过上述技术方案,在包含至少一个第一操作方和至少一个第二操作方的区块链网络,部署有包含协作逻辑和状态位的智能合约;这样,在执行业务时,相互协作的操作方之间可以通过调用协作逻辑确定下一操作的操作方和状态位,不需要中心化的系统来统一控制,即可实现多方协作处理业务的功能,且可以保证协作逻辑的防篡改以及公开透明性,且不需要业务发起方推进,各操作自动推进执行,提升用户体验。

实施例四

本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行操作方的方法步骤。

通过上述技术方案,在包含至少一个第一操作方和至少一个第二操作方的区块链网络,部署有包含协作逻辑和状态位的智能合约;这样,在执行业务时,相互协作的操作方之间可以通过调用协作逻辑确定下一操作的操作方和状态位,不需要中心化的系统来统一控制,即可实现多方协作处理业务的功能,且可以保证协作逻辑的防篡改以及公开透明性,且不需要业务发起方推进,各操作自动推进执行,提升用户体验。

总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。

上述一个或多个实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

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

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

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