基于区块链系统的交易方法、装置以及存储介质
文献发布时间:2023-06-19 12:14:58
技术领域
本申请涉及区块链系统领域,特别是涉及一种基于区块链系统的交易方法、装置以及存储介质。
背景技术
区块链是一个分布式的共享账本和数据库,其具有去中心化、不可篡改、全程留痕、可以追溯、集体维护和公开透明的特点。这些特点保证了区块链的“诚实”与“透明”,这使得区块链具有广泛而丰富的应用场景。尤其是在金融领域,金融市场中交易双方的信息不对称导致无法建立有效的信用机制,产业链条中存在大量中心化的信用中介和信息中介,减缓了系统运转效率,增加了资金往来成本。所以凭借区块链与金融市场的天然契合性,将区块链技术应用于金融资产系统是大势所趋。
传统数字货币产品架构都是参与者抵押自身的计算机资源来获得利润,从表面上看能让参与者投入大量的资源从而换来性能提升。但从其架构上来说节点之间是竞争的,节点之间无法协同,只能独立处理重复的任务,使得资源不能得到充分的利用。可以说系统的总体效率与拥有最多计算机资源的参与者息息相关。另一方面,参与者使用的官方统一开发的全量节点程序,难以根据自身占有的计算机资源优势进行节点功能按需分配或进行模块化,导致微服务等分布式架构的优化方案无法运用。其原因在于,数字货币的开发和维护是由官方发行商进行的,网络的更新和修复都由官方统一发布到公版程序当中,若进行二次开发将会极具增加建设成本,还需要自行解决安全性和兼容性问题。最后,在本就限制了性能的系统中,用户为了能够让自己的交易获得优先处理,就需要支付更多的手续费,这与法定数字货币所需的社会公平性和服务于用户的设计理念不符。同时,参与者为了获得更多的利润,纷纷考虑从硬件角度来优化节点,开发出各种各样的矿机,将整个网络变成了算力的竞争,手续费高的任务被无意义地重复处理浪费了资源,尤其是在使用POW等算法作为共识机制的数字货币中,算力甚至被浪费在了和交易毫无相关的计算之上。
针对上述的现有技术中存在的传统区块链数字货币架构的运行效率不足以及资源消耗过高的技术问题,目前尚未提出有效的解决方案。
发明内容
本申请的实施例提供了一种基于区块链系统的交易方法、装置以及存储介质,以至少解决现有技术中存在的传统区块链数字货币架构的运行效率不足以及资源消耗过高的技术问题。
根据本申请实施例的一个方面,提供了一种基于区块链系统的交易方法。其中区块链系统包括用于产生数据区块的一级节点以及隶属于一级节点的二级节点,包括:通过所确定的二级节点作为目标二级节点来获取用户关于第一交易的第一交易处理请求;将与第一交易相关的第一交易信息传输至目标二级节点的相应一级节点;以及通过相应一级节点按照预设的共识机制,根据第一交易信息生成数据区块,并将数据区块上链至区块链系统的区块链。
根据本申请实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项的方法。
根据本申请实施例的另一个方面,还提供了一种基于区块链系统的交易装置。其中区块链系统包括用于产生数据区块的一级节点以及隶属于一级节点的二级节点,包括:交易处理请求获取模块,用于通过所确定的二级节点作为目标二级节点来获取用户关于第一交易的第一交易处理请求;交易信息传输模块,用于将与第一交易相关的第一交易信息传输至目标二级节点的相应一级节点;以及数据区块生成模块,用于通过相应一级节点按照预设的共识机制,根据第一交易信息生成数据区块,并将数据区块上链至区块链系统的区块链。
根据本申请实施例的另一个方面,还提供了一种基于区块链系统的交易装置。其中区块链系统包括用于产生数据区块的一级节点以及隶属于一级节点的二级节点,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:通过所确定的二级节点作为目标二级节点来获取用户关于第一交易的第一交易处理请求;将与第一交易相关的第一交易信息传输至目标二级节点的相应一级节点;以及通过相应一级节点按照预设的共识机制,根据第一交易信息生成数据区块,并将数据区块上链至区块链系统的区块链。
在本申请实施例中,当用户通过各自的终端设备进行交易时,用户的交易处理请求会分发至区块链系统的二级节点,并由二级节点进行处理。并且二级节点会将处理该业务相关的交易的交易记录传输至与二级节点对应的一级节点,从而由一级节点按照预定的共识机制产生区块并进行上链操作。从而通过这种方式,区块链的生成以及共识例如可以由监管部门设备直接指派的记账节点(即一级节点)完成。不需要用户设置区块链系统的节点来进行共识操作,从而不需要用户抵押自身的计算机资源来获得利润,也不需要用户使用官方统一开发的全量节点程序,因此不会将算力浪费在与交易不相关的计算上。从而通过这种方式,减少了用户的资源消耗。从而解决了现有技术中存在的传统区块链数字货币架构的运行效率不足以及资源消耗过高的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是用于实现根据本申请实施例1所述的方法的计算设备的硬件结构框图;
图2是根据本申请实施例1所述的基于区块链系统的交易系统的示意图;
图3是根据本申请实施例1的第一个方面所述的基于区块链系统的交易方法的流程示意图;
图4是根据本申请实施例1所述的基于委托股权证明和拜占庭容错共识机制的流程示意图;
图5是根据本申请实施例1所述的跳块机制的流程示意图;
图6是根据本申请实施例2的第一个方面所述的基于区块链系统的交易装置的示意图;
图7是根据本申请实施例3的第一个方面所述的基于区块链系统的交易装置的示意图;以及
具体实施方式
为了使本技术领域的人员更好地理解本申请的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本实施例,提供了一种基于区块链系统的交易方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现基于区块链系统的交易方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的交易处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器可用于存储应用软件的软件程序以及模块,如本申请实施例中的基于区块链系统的交易方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的基于区块链系统的交易方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
图2是根据本实施例所述的基于区块链系统的交易系统的示意图。参照图2所示,该系统包括五个层级,分别是:应用层、入口层、二级节点、一级节点以及监管部门设备。
应用层本质上是运行于智能电话、电脑或可穿戴的电子设备上的金融数字资产交易应用软件。应用层在区块链中常常被称为钱包,实际上钱包只是构成应用层的最小部分,主要用于最基础的密钥管理、签名、交易生成和发送等功能。在本技术方案中,应用层分为官方钱包和第三方钱包两种。官方钱包可实现密钥管理和加密功能,第三方钱包中涉及到的签名和验签等都需要调用私钥或用户身份信息,这些行为都必须二次调用官方钱包中的接口。从而,应用层用于为用户提供服务接口,用户101可以通过终端设备241向入口层发送交易处理请求。此外,用户102可以通过终端设备242向入口层发送交易处理请求。
入口层设置有入口设备231和232,用户101通过终端设备241向入口设备231发送交易处理请求,并且用户102通过终端设备242向入口设备发送交易处理请求。入口设备231和232对接收到的交易处理请求进行分流操作,向多个二级节点分配交易处理请求。
并且,图2所示的交易系统中的区块链系统包括一级节点221~214等以及二级节点221a~224b等。
二级节点221a~224b等是用于对用户的交易处理请求进行操作处理的核心,二级节点221a~224b等分布式存储了所有的账户数据及相关交易数据,不同的二级节点(例如二级节点221a和二级节点222a)之间的交易处理范围不重合,一条交易只有一个二级节点有处理权限。进一步地,二级节点221a~224b等可以不用于产生区块链系统的区块,并且二级节点221a~224b等也可以不保存整个区块链系统的区块链数据(即区块链系统的账本数据)。相反,二级节点221a~224b等各自仅仅记录保存自身所处理的交易的信息。
一级节点211~214等为区块链系统的记账节点,主要用于业务交易最终的合法性校验以及数据区块的生产和共识。具体地一级节点211~214等分别从各自的二级节点接收交易信息,对该交易信息进行合法性校验,产生相应的数据区块并按照预定的共识机制进行上链。一级节点211~214等保存着完整的区块链账本数据,包括所有的账户、资产和交易信息,一级节点211~214间的账本必须是一致的,若因为非法入侵或其他不可抗力出现分叉,可以通过监管部门的介入以少数一级节点服从多数一级节点的方式进行修正。每个一级节点下都隶属有大量的二级节点,这种分级管理的模式能够将网络压力分散,提高整体性能。此外二级节点只能同步自己直属一级节点的数据,防止产生一级节点因网络延迟而出现和下属节点数据不一致的现象。
监管部门设备201例如可以是设置于中央银行等权威部门的设备,其可以任免指派一级节点(即记账节点)。这样一方面省去了需要数字货币和数字资产的参与者随时准备投票的操作,记账节点的身份也更为稳定,拥有了监管部门的合法性担保;另一方面,不需要有其他候选人节点也部署相应的记账设施,时时刻刻开机准备着替换记账节点,从而减少了建设成本。
需要说明的是,系统中的监管部门设备201、入口层设备231~232以及应用层设备241~242均可适用上面所述的硬件结构。
在上述运行环境下,根据本实施例的第一个方面,提供了一种基于区块链系统的交易方法,其中区块链系统包括用于产生数据区块的一级节点以及隶属于一级节点的二级节点,该方法由图2中所示的二级节点实现。图3示出了该方法的流程示意图,参考图3所示,该方法包括:
S302:通过所确定的二级节点作为目标二级节点来获取用户关于第一交易的第一交易处理请求;
S304:将与第一交易相关的第一交易信息传输至目标二级节点的相应一级节点;以及
S306:通过相应一级节点按照预设的共识机制,根据第一交易信息生成数据区块,并将数据区块上链至区块链系统的区块链。
具体地,参考图2所示,用户101通过终端设备241向入口层发送与第一交易相关的交易处理请求(即第一交易处理请求),入口层设置的入口设备231接收到该交易处理请求后,在二级节点221a~222b中确定二级节点221a作为目标二级节点,并向目标二级节点221a发送第一交易处理请求,从而二级节点221a获取了用户101的第一交易处理请求(S302)。
然后,二级节点221a在获取该第一交易处理请求之后,会根据该交易处理请求处理第一交易。其中,二级节点221a在处理该第一交易的过程中,会将处理该交易的第一交易信息传输至与二级节点221a对应的一级节点211(即相应一级节点)(S304)。
然后一级节点211按照预设的共识机制,根据接收到的第一交易信息生成数据区块,并将数据区块上链至区块链系统的区块链中(S306)。例如一级节点211会与其他的一级节点212~214等一起按照拜占庭容错共识机制,根据从二级节点221a接收的第一交易信息,生成数据区块并上链至区块链系统的区块链。更具体地,参考图4所示,节点211~214可以从监管部门设备201接收指派信息,其中监管部门设备201通过该指派信息指派节点211~214成为区块链系统的一级节点。然后一级节点211例如从通信连接的二级节点221a获取交易数据,并将交易数据打包成交易组。然后,一级节点211根据交易组生成一个目标区块。此时的目标区块只是一个预区块,仅在一级节点211本地保存,尚未得到其他一级节点的验证。一级节点211对该目标区块进行签名后广播给其他一级节点,一级节点212、一级节点213和一级节点214会先将目标区块存入自己的缓存中,然后对目标区块的合法性进行校验,若校验通过将返回自己对目标区块的验证签名。一级节点211在收集到2/3的一级节点的签名后,目标区块便达到了不可逆状态。之后一级节点211会生成一个签名集,并再次广播给其他一级节点,然后将预区块连同签名一起写入区块链。此时区块链系统已经开始进行下一个区块周期了,即使其他一级节点没来得及将区块放入区块链,由于一级节点211生成的目标区块已经得到2/3的一级节点的验证,所以该目标区块是合法的。一级节点212、一级节点213和一级节点214收到签名集后,对签名集进行校验,并将缓存中的目标区块取出写入本地的区块链中。
正如背景技术中所述的,传统数字货币产品架构都是参与者抵押自身的计算机资源来获得利润,从表面上看能让参与者投入大量的资源从而换来性能提升。但从其架构上来说节点之间是竞争的,节点之间无法协同,只能独立处理重复的任务,使得资源不能得到充分的利用。另一方面,参与者使用的官方统一开发的全量节点程序,难以根据自身占有的计算机资源优势进行节点功能按需分配或进行模块化,导致微服务等分布式架构的优化方案无法运用。
从而在本申请的技术方案中,当用户101通过终端设备241进行交易时,用户的交易处理请求会分发至区块链系统的二级节点,并由二级节点进行处理。并且二级节点会将处理该交易的交易信息传输至与二级节点对应的一级节点,从而由一级节点按照预定的共识机制产生区块并进行上链操作。从而通过这种方式,区块链的生成以及共识例如可以由监管部门设备201直接指派的记账节点(即一级节点)完成。不需要用户设置区块链系统的节点来进行共识操作,从而不需要用户抵押自身的计算机资源来获得利润,也不需要用户使用官方统一开发的全量节点程序,因此不会将算力浪费在与交易不相关的计算上。从而通过这种方式,减少了用户的资源消耗。从而解决了现有技术中存在的传统区块链数字货币架构的运行效率不足以及资源消耗过高的技术问题。
可选地,方法还包括:通过目标二级节点从相应一级节点接收与区块链相关的账本更新信息,其中账本更新信息记载第一交易信息;以及通过目标二级节点根据账本更新信息对第一账本进行更新,其中第一账本设置于目标二级节点,用于记载与目标二级节点所处理的交易相关的交易信息。
具体地,参考图2所示,一级节点211在生成与第一交易信息相关的数据区块并上链至区块链系统的区块链之后,会将与上链该数据区块相关的账本更新信息发送至二级节点221a(即目标二级节点),其中该账本更新信息例如可以是区块链更新后的账本信息。
其中,二级节点221a上设置有主账本(即第一账本),用于记录二级节点221a所处理的交易的交易信息。其中该主账本可以看作是区块链系统的区块链所记载的账本信息的一个子集,其记录了二级节点221a所处理的交易的交易信息。
然后,二级节点221a在接收到该账本更新信息后,根据账本更新信息对主账本进行更新。从而通过这种方式,将第一交易信息记载到主账本中。
从而根据本申请的技术方案,二级节点221a在处理完交易后,不能直接通过对主账本进行修改的方式将与该交易相关的交易信息写入到主账本中,而是通过根据从一级节点接收的账本更新信息更新主账本的方式来记录二级节点221a所处理的交易。由于二级节点不能对主账本进行直接修改,因此只能根据相应的一级节点基于区块链更新的数据发送的账本更新信息对主账本进行更新,从而保证了二级节点账本数据的准确性和安全性。
可选地,方法还包括:在第一交易为从用户的账户划扣预定费用的情况下,通过目标二级节点根据第一交易处理请求,从用户的账户划扣预定费用;和/或在第一交易为向用户的账户转入预定费用的情况下,通过目标二级节点根据账本更新信息,向用户的账户转入预定费用。
具体地,参考图2所示,在第一交易为从用户101的账户划扣预定费用的情况下,二级节点221a(即目标二级节点)在接收到第一交易处理请求后,会根据该第一交易处理请求直接进行交易,即直接从用户101的账户划扣预定费用。
此外,在第一交易为向用户101的账户转入预定费用的情况下,二级节点221a在接收到第一交易处理请求后,并不会直接根据第一交易处理请求向用户101的账户转入该预定费用。相反,二级节点221a首先将该交易的交易信息发送至相应的一级节点211,一级节点211将根据该交易信息生成的数据区块上链至区块链后,会向二级节点221a发送相应的账本更新信息。从而二级节点221a会根据该账本更新信息向用户101的账户转入该预定费用。
从而根据本实施例的技术方案,二级节点221a在处理交易的过程中需要向用户的账户转入费用时,并不是先在该账户中转入费用然后再将交易信息发送至一级节点211生成数据区块,而是先将交易信息发送至一级节点211进行校验。并且在一级节点211生成数据区块之后,再根据一级节点211发送的账本更新信息在该账户中转入预定费用。
从而在这种情况下,由于二级节点221a是从一级节点211接收到相应的账户更新信息之后,再根据接收的账户更新信息对主账本进行更新并完成交易,因此可以有效防止用户101利用网络延迟进行类似于双花交易的欺诈操作。例如当用户101进行类似于双花交易的欺诈操作时,二级节点221a不会立刻向该用户101的账户中转入金额,从而该用户101不能从该账户中提走该金额。并且,一级节点211会与其他一级节点通过相应共识操作,取消向该用户101的账户转入费用的交易,并将相应的账本更新信息传输至二级节点221a。从而二级节点221a在根据接收的账本更新信息对主账本(即第一账本)进行更新时,也不会向用户101的账户转入该预定费用。从而通过这种方式,有效避免了双花交易等欺诈操作。
可选地,方法包括:通过目标二级节点响应于第一交易处理请求在第二账本中写入第一交易信息,其中第二账本设置于目标二级节点;以及在从相应一级节点接收账本更新信息之前,通过目标二级节点根据后续接收的关于第二交易的第二交易处理请求,在第二账本中写入与第二交易相关的第二交易信息。
具体地,参考图2所示,区块链系统的二级节点221a~224b等除主账本(即第一账本)外还设置有一个预账本(即第二账本)。
从而二级节点221a在接收到用户101的第一交易处理请求之后,会在预账本中写入第一交易的交易信息(即第一交易信息)。并且,在从一级节点211接收到账本更新信息从而对主账本进行更新之前,二级节点221a可以接收后续交易(例如第二交易)的交易处理请求(即第二交易处理请求),并根据第二交易处理请求,在预账本中写入与该第二交易相关的交易信息(即第二交易信息)。
从而通过这种方式,可以确保二级节点处理的交易的交易信息在一级节点上链被最终确认之前,二级节点仍能对后续的交易进行处理,从而提高了二级节点的交易处理能力。
可选地,方法还包括:在从相应一级节点接收到账本更新信息的情况下,通过目标二级节点根据所接收的账本更新信息,对第二账本进行更新。
具体地,在二级节点将第一交易信息写入预账本后,当二级节点从相应一级节点接收到相应的账本更新信息后,会根据账本更新信息对第二账本中记载的交易信息进行修正(即对第二账本进行更新)。
例如,当第一交易是从用户101的账户划扣预定金额的情况下,一级节点211(即相应一级节点)根据第一交易信息生成数据区块并上链至区块链后,会将划扣费用的账本更新信息发送至二级节点221a。从而二级节点221a(即目标二级节点)会接收到一级节点211返回的账本更新信息。然后二级节点会根据所接收的账本更新信息,对预账本(即第二账本)进行更新修正,例如二级节点221a可以在接收到该账本更新信息后,将划扣费用更新到主账本中,并且将预账本的划扣费用抵消。
再例如,当第一交易是向用户101的账户转入预定金额的情况下,在一级节点211(即相应一级节点)根据第一交易信息生成数据区块后,会将向用户101的账户转入费用的账本更新信息发送至二级节点221a。从而二级节点221a(即目标二级节点)会接收到一级节点211返回的该账本更新信息。然后二级节点221a会根据所接收的账本更新信息,对预账本(即第二账本)进行更新修正,例如二级节点221a可以在接收到该账本更新信息后,将转入的费用更新到主账本中,并且将预账本的转入费用抵消。
从而通过这种方式,保证数据完整性和一致性,提高了交易处理能力。
可选地,方法还包括:通过预设的入口设备从用户的终端设备接收第一交易处理请求;通过入口设备确定处理第一交易的目标二级节点;以及将第一交易处理请求发送至目标二级节点。
具体地,参考图2所示,用户101可以通过终端设备241向入口设备231发送关于第一交易的交易处理请求(即第一交易处理请求),从而入口设备231从终端设备241接收该交易处理请求。然后,入口设备231对接收到的交易处理请求进行分流操作,从而根据该交易处理请求,确定二级节点221a作为处理该交易的目标节点。然后,入口设备向二级节点221a发送该交易处理请求。
从而通过入口设备对交易处理请求的分流操作,对大量到来的交易进行了缓冲,使多个节点的资源得到充分的利用,提高了区块链系统的运行效率。
可选地,通过入口设备确定处理第一交易的目标二级节点,包括:通过入口设备根据第一交易的交易类型,确定与第一交易匹配的目标二级节点。
具体地,参考图2所示,入口设备231接收到第一交易处理请求后,判断其交易类型,并将第一交易处理请求发送至与其交易类型相匹配的目标二级节点221a。
其中交易类型例如可以包括:数字货币交易业务类型和数字资产交易业务类型。其中数字货币交易业务主要是针对数字货币的交易业务,例如可以包括数字货币的支付交易或转账交易等与数字货币的转出或转入直接相关的交易。数字资产交易业务通常是针对电子凭证类型的资产的业务。通常数字资产定义是一种权利的电子凭证,这种权利要求其他人支付数字货币。其可作为储蓄、证券和基金等使用,拥有由金融监管机构进行背书的可转让性和可交易性。
从而通过入口设备确定交易的交易类型,并将交易按类型分配至相应二级节点的方式,减少了系统存储的消耗,提高了区块链系统的运行效率。
可选地,根据第一交易的交易类型,确定与第一交易匹配的目标二级节点的操作,包括:在第一交易为数字货币交易业务的情况下,确定用于处理数字货币交易的第一类二级节点为目标二级节点,其中第一类二级节点以账户的形式进行记账操作;和/或在第一交易为数字资产交易业务的情况下,确定用于处理数字资产交易的第二类二级节点为目标二级节点,其中第二类二级节点以未花费的交易输出(UTXO)的形式进行记账操作。
具体地,参考图2所示,设置于二级节点层的二级节点221a~224b等包括两种不同类型的二级节点,分别用于处理不同类型的交易业务。其中,二级节点221a、222a、223a以及224a等为处理数字货币交易业务的第一类二级节点,并且二级节点221b、222b、223b以及224b等为处理数字资产交易业务的第二类二级节点。
当入口设备231判定第一交易的交易类型为数字货币交易业务类型的时候,则将第一交易处理请求发送至第一类二级节点221a作为目标二级节点。其中二级节点221a以账户形式进行记账操作。由于数字货币有流通频繁的特点,因此可以通过记录用户账户的转出金额、转入金额和/或账户余额的方式来进行记账操作。从而可以拥有更加适应数字货币流通频繁的特点。
相反,数字资产通常是指一种权利的电子凭证,这种权利要求其他人支付数字货币。其可作为储蓄、证券和基金等使用。因此数字资产的交易业务相对于数字货币而言具有流通不频繁的特点,因此本方案以未花费的交易输出(UTXO)形式进行记账操作。尽管UTXO特殊的转移机制使其在操作效率上弱于账户系统,但其数字货币功能的扩展性、灵活性和应用性上却远强于账户系统。所以使用UTXO的形式记录流动性较弱的数字资产型交易业务,能够更好地适应数字资产型交易业务类型的需求。
因此当第一交易的交易类型被入口设备231判断为数字资产交易业务类型的时候,则将第一交易的交易处理请求发送至第二类二级节点221b作为目标二级节点。其中二级节点221b以未花费的交易输出(UTXO)形式进行记账操作。
从而通过这种方式,入口设备能够根据第一交易的交易类型,将交易处理请求发送至适宜的二级节点,从而能够提高区块链系统整体的处理效率。
此外,尽管前面内容都是以二级节点221a作为目标二级节点进行的描述,但是当目标二级节点为二级节点221b时,也同样可以适用前面所述的内容。
此外,当第二类二级节点221b在处理数字资产交易的过程中,如果涉及到数字货币交易时,会将与数字货币交易相关的交易信息发送至第一类二级节点(例如二级节点221a)进行验证,并且从二级节点221a得到相应的验证信息后,再完成相应的交易。
可选地,通过入口设备确定处理第一交易的目标二级节点,包括以负载均衡的形式确定目标二级节点。
具体地,参考图2所示,当入口设备231在向二级节点221a~222b分发交易处理请求时,以及当入口设备232在向二级节点223a~224b分发交易处理请求时,可以通过负载均衡的方式分发交易处理请求,并对大规模到来的交易处理请求进行缓冲。从而入口设备231在分发交易处理请求时,需要向二级节点均匀分配交易处理请求。从而减少了系统存储的消耗,提高了区块链系统的运行效率。
可选地,在将第一交易处理请求发送至目标二级节点之前,方法还包括:通过入口设备对第一交易处理请求进行预处理。
具体地,入口设备231~232在接收到交易的第一交易处理请求后,需要对第一交易处理请求进行预处理,包括进行预校验,修复通信中的损失,保证格式和协议的正确,对用户的交易处理请求做初步统计,对重复的业务进行记录、缓存和限流,对可疑和非法的交易进行甄别。从而通过这种方式,增强了数据的安全性,提高了区块链系统的运行效率。
此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
此外,尽管本实施例中以用户101的终端设备241为例进行了说明,但是以上内容对于用户102以及终端设备242也同样适用。
下文中说明本技术方案中一级节点的共识过程:
具体地,参考图4所示,一级节点211例如从通信连接的二级节点获取交易数据(即第一交易数据),并将交易数据打包成交易组。然后,一级节点211根据交易组生产出一个新区块(即第一区块,对应于图中所述的预区块)。此时的区块只是一个预区块,仅在一级节点211本地保存,尚未得到其他一级节点的验证。一级节点211将该区块签名后广播给其他一级节点,一级节点212、一级节点213和一级节点214会先将区块存入自己的缓存中,然后对区块的合法性进行校验,若校验通过将返回自己对该区块的验证签名。一级节点211在收集到2/3的一级节点的签名后,该区块便达到了不可逆状态。之后一级节点211会生成一个签名集,并再次广播给其他一级节点,然后将预区块连同签名一起写入区块链。此时区块链系统已经开始进行下一个区块周期了,即使其他一级节点没来得及将区块放入区块链,由于一级节点211的区块已经得到2/3的一级节点的验证,所以该区块是合法的。一级节点212、一级节点213和一级节点214收到签名集后,对签名集进行校验,并将缓存中的区块取出写入本地的区块链中。从而通过这样的方式,缩小了共识的范围,限制了广播的次数,大幅度提高了交易的处理速度。
此外,参考图4以及图5所示,一级节点211可以从监管部门设备201接收到块号信息,并且根据块号信息确定待生成的区块的区块号。例如一级节点211可以根据块号信息确定待生成的区块的区块号为“3”。
在这种情况下,如果一级节点211根据区块链已生成的区块的区块号确定待生成的区块的区块号也为“3”,由于根据块号信息和已生成的区块的区块号所确定的待生成的区块的区块号均为“3”,因此一级节点211从隶属的二级节点中获取交易数据,并以序号“3”作为新生成的区块的区块号生成新的区块。
如果一级节点211根据区块链已生成的区块的区块号确定待生成的区块的区块号不是“3”,例如是“2”。由于根据区块链已生成的区块的区块号所确定的区块号与根据块号信息所确定的区块号不一致,因此意味着一级节点211可能存在宕机或网络延迟,导致一级节点211所产生的区块号为“2”的区块未能到达一级节点211。在这种情况下,一级节点211不生成区块号为“2”的区块,而是仍然以序号“3”作为新生成的区块的区块号,并生成区块号为“3”的区块。从而,避免区块链系统出现两个区块号为“2”的区块。
也就是说,在本实施例中,区块链系统的记账节点(即一级节点)不是按照区块链块号自由增长的方式来确定新生成的区块的区块号,而是根据从监管部门设备201所接收的块号信息来确定新生成的区块的区块号。在这种情况下,即便是因为网络延迟或者由于其他记账节点(即一级节点)宕机,导致出块的记账节点(即一级节点)未能及时接收到其他记账节点(即一级节点)生成的区块,记账节点(即一级节点)也可以跳过该区块的区块号并按照所接收的块号信息确定新生成的区块的区块号,从而通过这种方式,避免了由于网络延迟或者其他节点宕机导致的分叉。并且还可以在避免区块链产生分叉的同时,减少共识的轮次,将拜占庭共识算法的两轮共识缩短为一轮。
进一步地,参考图4以及图5所示,一级节点211根据接收到的块号信息,确定一级节点的出块顺序为:一级节点212、一级节点213、一级节点211和一级节点214。根据该顺序,在第一个出块周期内,一级节点212将要生成的区块为区块1,一级节点213将要生成的区块为区块2,一级节点211将要生成的区块为区块3,一级节点214将要生成的区块为区块4。在第二个出块周期内,一级节点212将要生成的区块为区块5,一级节点213将要生成的区块为区块6,一级节点211将要生成的区块为区块7,一级节点214将要生成的区块为区块8,并以次类推。
此外,如果在第一个出块周期内,一级节点中有出现宕机的节点,例如节点213出现宕机,则监管部门设备201会更新该块号信息,重新确定在后续周期中剩余的一级节点的出块顺序。例如,一级节点211根据更新的块号信息,重新确定剩余的一级节点的出块顺序为:一级节点212、一级节点211和一级节点214。从而在第二个出块周期内,一级节点212将要生成的区块为区块5,一级节点211将要生成的区块为区块6,一级节点214将要生成的区块为区块7,并以此类推。
从而一级节点211可以根据块号信息所包含的出块顺序,确定待生成的区块的区块号。从而避免了由于网络延迟或者其他节点宕机导致的分叉。并且还可以在避免区块链产生分叉的同时,减少共识的轮次,将拜占庭共识算法的两轮共识缩短为一轮。
进一步地,参考图5所示,如果一级节点213在产生区块2时发生宕机,并无法通知其他一级节点。监管部门设备201在同步区块2的过程中会发现区块2的缺失,此时将主动去检测一级节点213和其他一级节点的状态。当监管部门设备201检测到一级节点213发生宕机的情况下,就会向其他一级节点广播宕机信息,将一级节点213发生宕机的情况通知其他一级节点。从而,一级节点211会根据预先设置的指令,代替一级节点213执行与一级节点213相关的验证签名操作。例如,在后续的产生区块的过程中,当一级节点212生成区块5,并将区块5进行广播时,一级节点211不仅代表自己对区块5进行验证和签名,还代替一级节点213对区块5进行验证和签名。并且,一级节点211会替代一级节点213执行记账操作,以便一级节点213恢复正常工作后,将替代一级节点213进行验证和签名的区块同步至一级节点213。
从而通过这种方式,在区块链系统中,当有一级节点出现宕机等故障时,可以由其他一级节点代为实现除了产生区块之外的其他功能。因此本实施例的技术方案不必再针对一级节点指派或确认候补节点。从而不需要有其他候补节点也部署相应的记账设施,时时刻刻开机准备着替换记账节点(即一级节点),从而减少了建设成本。
进一步的,参考图5所示,一级节点的出块顺序为:一级节点212、一级节点213、一级节点211和一级节点214。如果一级节点213在生产区块2时,出现了宕机。监管部门设备201在同步区块2的过程中会发现区块2的缺失,此时将主动去检测一级节点213和其他一级节点的状态。当监管部门设备201检测到一级节点213发生宕机的情况下,会向其他的一级节点212、一级节点211和一级节点214发送跳块信息,指示其他一级节点跳过区块2的区块号。从而一级节点211在接收到该跳块信息后,会跳过一级节点213的区块号“2”,将区块号“3”作为生成的区块的区块号,并将该区块写入区块链。从而通过这种方式,本实施例可以在避免区块链产生分叉的同时,减少共识的轮次,将拜占庭共识算法的两轮共识缩短为一轮。
此外需要说明的是,由于一级节点213是在生产区块2的过程中发生宕机,因此一级节点211在生成区块3时,不会拉取一级节点213为产生区块2而拉取的交易数据来打包生成区块,而仅仅拉取后续交易数据并写入区块3中。从而通过这种方式,避免了交易数据的重复记录。
进一步地,如果有一级节点在出块过程中发生故障,暂时无法正常工作,其他一级节点则需要重新确定应该由自己生成的后续区块的区块号。参考图5所示,一级节点的出块顺序为:一级节点212、一级节点213、一级节点211和一级节点214。由此可知,由一级节点212生产区块1,一级节点213生产区块2,一级节点211生产区块3,一级节点214生产区块4,以此类推。如果一级节点213在生产区块2时发生宕机,监管部门设备201向一级节点212、一级节点211和一级节点214发送宕机信息,指示一级节点跳过区块2的区块号。从而一级节点212、一级节点211和一级节点214会根据宕机信息重新确定后续生成的区块的区块后。例如之后一级节点214生产完成区块4后,又轮到一级节点212生产区块5,因为一级节点213发生故障还未恢复正常工作,并不参与生产区块。所以由一级节点211生产区块6,一级节点214生产区块7,一级节点212生产区块8。
此外,如果,一级节点213恢复正常重新加入时,首先必须对区块2进行共识操作,所以一级节点213继续生产区块2,并且其他一级节点212、一级节点211和一级节点214在接收区块2后会将区块2补充写入到区块链中。之后一级节点重新确定彼此出块的顺序从而重新确定各自生成的后续区块的区块号。例如,一级节点211生产区块9,一级节点214生产区块10。然后由一级节点212生产区块11,一级节点213生产区块12,一级节点211生产区块13,一级节点214生产区块14。从而通过这种方式,本技术方案可以在避免区块链产生分叉的同时,减少共识的轮次,提高共识速率。
进一步地,参考图5所示,一级节点213发生宕机后恢复正常工作后,需要先对未完成出块操作的区块2进行出块。例如一级节点213从通信连接的二级节点获取交易数据,并将交易数据打包成交易组。然后,一级节点213根据交易组生产出一个预区块,仅在一级节点213本地保存,尚未得到其他一级节点的验证。一级节点213将该区块签名后广播给其他一级节点,一级节点212、一级节点213和一级节点211会先将区块存入自己的缓存中,然后对区块的合法性进行校验,若校验通过将返回自己对该区块的验证签名。一级节点213在收集到2/3的一级节点的签名后,该区块便达到了不可逆状态。之后一级节点213会生成一个签名集,并再次广播给其他一级节点,然后将预区块连同签名一起写入区块链。一级节点212、一级节点211和一级节点214收到签名集后,对签名集进行校验,并将缓存中的区块取出放在本地的区块链中。从而通过这样的方式,在发生宕机的一级节点恢复后,其他一级节点可以及时地对恢复正常的一级节点在发生宕机时所生成的区块进行保存,从而保障了区块链系统数据的完整。
进一步地,参考图5所示,当一级节点213宕机时,一级节点211则代替一级节点213继续工作。例如,当一级节点212生成区块5,并将区块5进行广播时,一级节点211不仅代表自己对区块5进行验证和签名,还代替一级节点213对区块5进行验证和签名。一级节点213恢复正常工作后,一级节点211将替代一级节点213进行验证和签名的数据区块同步至一级节点213。从而通过这种方式,本技术方案可以在一级节点从宕机中恢复后,将区块链系统在该一级节点宕机期间生成的数据同步到该一级节点,从而保证了区块链系统中的节点即便是发生过宕机也不会影响其数据的完整性。
从而根据本实施例,当用户通过各自的终端设备进行交易时,用户的交易处理请求会分发至区块链系统的二级节点,并由二级节点进行处理。并且二级节点会将处理该交易的交易信息传输至与二级节点对应的一级节点,从而由一级节点按照预定的共识机制产生区块并进行上链操作。从而通过这种方式,区块链的生成以及共识例如可以由监管部门设备直接指派的记账节点(即一级节点)完成。不需要用户设置区块链系统的节点来进行共识操作,从而不需要用户抵押自身的计算机资源来获得利润,也不需要用户使用官方统一开发的全量节点程序,因此不会将算力浪费在与交易不相关的计算上。从而通过这种方式,减少了用户的资源消耗。从而解决了现有技术中存在的传统区块链数字货币架构的运行效率不足以及资源消耗过高的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
图6示出了根据本实施例的第一个方面所述的基于区块链系统的交易方法装置600,该装置600与根据实施例1的第一个方面所述的方法相对应。参考图6所示,该装置600包括:交易处理请求获取模块610,用于通过所确定的二级节点作为目标二级节点来获取用户关于第一交易的第一交易处理请求;交易信息传输模块620,用于将与第一交易相关的第一交易信息传输至目标二级节点的相应一级节点;以及数据区块生成模块630,用于通过相应一级节点按照预设的共识机制,根据第一交易信息生成数据区块,并将数据区块上链至区块链系统的区块链。
可选地,装置600还包括:接收子模块,用于通过目标二级节点从相应一级节点接收与区块链相关的账本更新信息,其中账本更新信息记载第一交易信息;以及更新子模块,用于通过目标二级节点根据账本更新信息对第一账本进行更新,其中第一账本设置于目标二级节点,用于记载与目标二级节点所处理的交易相关的交易信息。
可选地,装置600还包括:划扣子模块,用于在第一交易为从用户的账户划扣预定费用的情况下,通过目标二级节点根据第一交易处理请求,从用户的账户划扣预定费用;和/或转入子模块,用于在第一交易为向用户的账户转入预定费用的情况下,通过目标二级节点根据账本更新信息,向用户的账户转入预定费用。
可选地,装置600还包括:写入子模块,用于通过目标二级节点响应于第一交易处理请求在第二账本中写入第一交易信息,其中第二账本设置于目标二级节点;以及接收子模块,用于在从相应一级节点接收账本更新信息之前,通过目标二级节点根据后续接收的关于第二交易的第二交易处理请求,在第二账本中写入与第二交易相关的第二交易信息。
可选地,装置600还包括:更新子模块,用于在从相应一级节点接收到账本更新信息的情况下,通过目标二级节点根据所接收的账本更新信息,对第二账本进行更新。
可选地,装置600还包括:接收子模块,用于通过预设的入口设备从用户的终端设备接收第一交易处理请求;确定子模块,用于通过入口设备确定处理第一交易的目标二级节点;以及发送子模块,用于将第一交易处理请求发送至目标二级节点。
可选地,确定子模块包括:第一二级节点确定单元,用于通过入口设备根据第一交易的交易类型,确定与第一交易匹配的目标二级节点。
可选地,第一二级节点确定单元包括:在第一交易为数字货币交易业务的情况下,确定用于处理数字货币交易的第一类二级节点为目标二级节点,其中第一类二级节点以账户的形式进行记账操作;和/或在第一交易为数字资产交易业务的情况下,确定用于处理数字资产交易的第二类二级节点为目标二级节点,其中第二类二级节点以未花费的交易输出(UTXO)的形式进行记账操作。
可选地,确定子模块包括:第二二级节点确定单元,用于通过入口设备确定处理第一交易的目标二级节点,包括以负载均衡的形式确定目标二级节点。
可选地,在将第一交易处理请求发送至目标二级节点之前,装置600还包括:通过入口设备对第一交易处理请求进行预处理。
从而根据本实施例,当用户通过各自的终端设备进行交易时,用户的交易处理请求会分发至区块链系统的二级节点,并由二级节点进行处理。并且二级节点会将处理该业务相关的交易的交易记录传输至与二级节点对应的一级节点,从而由一级节点按照预定的共识机制产生区块并进行上链操作。从而通过这种方式,区块链的生成以及共识例如可以由监管部门设备直接指派的记账节点(即一级节点)完成。不需要用户设置区块链系统的节点来进行共识操作,从而不需要用户抵押自身的计算机资源来获得利润,也不需要用户使用官方统一开发的全量节点程序,因此不会将算力浪费在与交易不相关的计算上。从而通过这种方式,减少了用户的资源消耗。从而解决了现有技术中存在的传统区块链数字货币架构的运行效率不足以及资源消耗过高的技术问题。
实施例3
图7示出了根据本实施例的第一个方面所述的基于区块链系统的交易装置700,该装置700与根据实施例1的第一个方面所述的方法相对应。参考图7所示,该装置700包括:处理器710;以及存储器720,与处理器710连接,用于为处理器710提供处理以下处理步骤的指令:通过所确定的二级节点作为目标二级节点来获取用户关于第一交易的第一交易处理请求;将与第一交易相关的第一交易信息传输至目标二级节点的相应一级节点;以及通过相应一级节点按照预设的共识机制,根据第一交易信息生成数据区块,并将数据区块上链至区块链系统的区块链。
可选地,存储器720还用于为处理器710提供处理以下处理步骤的指令:通过目标二级节点从相应一级节点接收与区块链相关的账本更新信息,其中账本更新信息记载第一交易信息;以及通过目标二级节点根据账本更新信息对第一账本进行更新,其中第一账本设置于目标二级节点,用于记载与目标二级节点所处理的交易相关的交易信息。
可选地,存储器720还用于为处理器710提供处理以下处理步骤的指令:在第一交易为从用户的账户划扣预定费用的情况下,通过目标二级节点根据第一交易处理请求,从用户的账户划扣预定费用;和/或在第一交易为向用户的账户转入预定费用的情况下,通过目标二级节点根据账本更新信息,向用户的账户转入预定费用。
可选地,存储器720还用于为处理器710提供处理以下处理步骤的指令:通过目标二级节点响应于第一交易处理请求在第二账本中写入第一交易信息,其中第二账本设置于目标二级节点;以及在从相应一级节点接收账本更新信息之前,通过目标二级节点根据后续接收的关于第二交易的第二交易处理请求,在第二账本中写入与第二交易相关的第二交易信息。
可选地,存储器720还用于为处理器710提供处理以下处理步骤的指令:在从相应一级节点接收到账本更新信息的情况下,通过目标二级节点根据所接收的账本更新信息,对第二账本进行更新。
可选地,存储器720还用于为处理器710提供处理以下处理步骤的指令:通过预设的入口设备从用户的终端设备接收第一交易处理请求;通过入口设备确定处理第一交易的目标二级节点;以及将第一交易处理请求发送至目标二级节点。
可选地,通过入口设备确定处理第一交易的目标二级节点,包括:通过入口设备根据第一交易的交易类型,确定与第一交易匹配的目标二级节点。
可选地,根据第一交易的交易类型,确定与第一交易匹配的目标二级节点的操作,包括:在第一交易为数字货币交易业务的情况下,确定用于处理数字货币交易的第一类二级节点为目标二级节点,其中第一类二级节点以账户的形式进行记账操作;和/或在第一交易为数字资产交易业务的情况下,确定用于处理数字资产交易的第二类二级节点为目标二级节点,其中第二类二级节点以未花费的交易输出(UTXO)的形式进行记账操作。
可选地,通过入口设备确定处理第一交易的目标二级节点,包括以负载均衡的形式确定目标二级节点。
可选地,在将第一交易处理请求发送至目标二级节点之前,存储器720还用于为处理器710提供处理以下处理步骤的指令:通过入口设备对第一交易处理请求进行预处理。
从而根据本实施例,当用户通过各自的终端设备进行交易时,用户的交易处理请求会分发至区块链系统的二级节点,并由二级节点进行处理。并且二级节点会将处理该业务相关的交易的交易记录传输至与二级节点对应的一级节点,从而由一级节点按照预定的共识机制产生区块并进行上链操作。从而通过这种方式,区块链的生成以及共识例如可以由监管部门设备直接指派的记账节点(即一级节点)完成。不需要用户设置区块链系统的节点来进行共识操作,从而不需要用户抵押自身的计算机资源来获得利润,也不需要用户使用官方统一开发的全量节点程序,因此不会将算力浪费在与交易不相关的计算上。从而通过这种方式,减少了用户的资源消耗。从而解决了现有技术中存在的传统区块链数字货币架构的运行效率不足以及资源消耗过高的技术问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
- 区块链系统和基于区块链系统实现的交易方法和交易系统
- 区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统