区块链交易方法和装置
技术领域
本说明书涉及网络通信和数据处理技术领域,尤其涉及一种区块链交易方法和装置。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种区块链交易方法,用于发起方用户向接收方用户转移目标对象;所述发起方的区块链账户包括所述发起方可转移的目标对象的识别码,所述识别码是与所述目标对象对应的唯一性识别码;所述方法包括:
接收所述目标对象的转移交易,所述转移交易包括所述发起方的区块链账户地址、所述目标对象的识别码、和所述接收方的区块链账户地址;
在所述转移交易被所述区块链节点设备共识验证后,在所述区块链的分布式数据库中,将所述目标对象的识别码从所述发起方的区块链账户转移到所述接收方的区块链账户中。
在又一示出的实施方式中,所述转移交易用以调用第一智能合约;所述将所述目标对象的识别码从所述发起方的区块链账户转移到所述接收方的区块链账户中,包括:
调用第一智能合约,执行所述第一智能合约声明的对所述目标对象的识别码的转移逻辑,将所述目标对象的识别码从所述发起方的区块链账户转移到所述接收方的区块链账户中。
在又一示出的实施方式中,所述发起方的区块链账户还包括所述目标对象的流转码,所述流转码用于标识所述目标对象在区块链用户中的流转;所述第一智能合约还声明有对所述目标对象的流转码的更新逻辑;所述方法还包括:
调用第一智能合约,执行所述第一智能合约声明的对所述目标对象的流转码的更新逻辑,删除所述发起方的区块链账户中的所述目标对象的流转码,在所述接收方的区块链账户中生成所述目标对象的新的流转码。
在又一示出的实施方式中,所述发起方的区块链账户中的所述目标对象的流转码被所述发起方的公钥加密;所述接收方的区块链账户中的所述目标对象的新的流转码被所述接收方的公钥加密。
在又一示出的实施方式中,所述发起方的区块链账户获取所述目标对象的识别码的过程,包括:
接收所述发起方节点设备发起的绑定交易,所述绑定交易包括所述发起方的身份识别码和所述目标对象识别码,其中,所述目标对象识别码是所述发起方节点设备根据预设的对象识别码获取规则,基于所述目标对象而获取的唯一性识别码;
调用第二智能合约,执行所述第二智能合约声明的对目标对象识别码的绑定逻辑,将所述目标对象的识别码添加至所述发起方的区块链账户中。
在又一示出的实施方式中,所述绑定交易还包括目标对象的特征信息。
在又一示出的实施方式中,所述第二智能合约还声明有对所述目标对象的流转码的创建逻辑;所述流转码用于标识所述目标对象在区块链用户中的流转;所述过程还包括:
调用第二智能合约,执行所述第二智能合约声明的对目标对象的流转码的创建逻辑,基于所述目标对象的识别码创建所述目标对象的流转码,并将所述目标对象的流转码添加至所述发起方的区块链账户中。
相应地,本说明书的一个或多个实施例还提供了一种基于区块链的查询方法,用于对目标对象的转移进行查询;所述方法包括:
所述区块链的节点设备接收查询请求,所述查询请求包括目标对象的识别码,其中,所述目标对象的识别码是与所述目标对象对应的唯一性识别码;
基于所述目标对象的识别码,从所述区块链的分布式数据库中查询与所述目标对象识别码相关的至少一个转移交易;其中,所述转移交易包括发起方的区块链账户地址、所述目标对象的识别码、和接收方的区块链账户地址;在所述转移交易被所述区块链节点设备共识验证后,在所述区块链的分布式数据库中,所述目标对象的识别码从所述发起方的区块链账户被转移到所述接收方的区块链账户中;
基于所述至少一个转移交易生成查询结果。
在又一示出的实施方式中,所述查询结果包括所述目标对象最新持有方的身份信息,或所述目标对象源头方的身份信息,或所述目标对象的全程流转信息。
在又一示出的实施方式中,所述查询请求由查询客户端发送;所述目标对象的识别码由所述查询客户端基于所述目标对象的实体标识而获取;
所述方法还包括向所述查询客户端发送所述查询结果。
相应地,本说明书还提供了一种区块链交易装置,用于发起方用户向接收方用户转移目标对象;所述发起方的区块链账户包括所述发起方可转移的目标对象的识别码,所述识别码是与所述目标对象对应的唯一性识别码;所述装置包括:
接收单元,用于接收所述目标对象的转移交易,所述转移交易包括所述发起方的区块链账户地址、所述目标对象的识别码、和所述接收方的区块链账户地址;
转移单元,用于在所述转移交易被所述区块链节点设备共识验证后,在所述区块链的分布式数据库中,将所述目标对象的识别码从所述发起方的区块链账户转移到所述接收方的区块链账户中。
在又一示出的实施方式中,所述转移交易用以调用第一智能合约;所述转移单元进一步用于:
调用第一智能合约,执行所述第一智能合约声明的对所述目标对象的识别码的转移逻辑,将所述目标对象的识别码从所述发起方的区块链账户转移到所述接收方的区块链账户中。
在又一示出的实施方式中,所述发起方的区块链账户还包括所述目标对象的流转码,所述流转码用于标识所述目标对象在区块链用户中的流转;所述第一智能合约还声明有对所述目标对象的流转码的更新逻辑;
所述转移单元进一步用于调用第一智能合约,执行所述第一智能合约声明的对所述目标对象的流转码的更新逻辑,删除所述发起方的区块链账户中的所述目标对象的流转码,在所述接收方的区块链账户中生成所述目标对象的新的流转码。
在又一示出的实施方式中,所述发起方的区块链账户中的所述目标对象的流转码被所述发起方的公钥加密;所述接收方的区块链账户中的所述目标对象的新的流转码被所述接收方的公钥加密。
在又一示出的实施方式中,所述接收单元进一步用于,接收所述发起方节点设备发起的绑定交易,所述绑定交易包括所述发起方的身份识别码和所述目标对象识别码,其中,所述目标对象识别码是所述发起方节点设备根据预设的对象识别码获取规则,基于所述目标对象而获取的唯一性识别码;
所述转移单元进一步用于,调用第二智能合约,执行所述第二智能合约声明的对目标对象识别码的绑定逻辑,将所述目标对象的识别码添加至所述发起方的区块链账户中。
在又一示出的实施方式中,所述绑定交易还包括目标对象的特征信息。
在又一示出的实施方式中,所述第二智能合约还声明有对所述目标对象的流转码的创建逻辑;所述流转码用于标识所述目标对象在区块链用户中的流转;所述转移单元,进一步用于调用第二智能合约,执行所述第二智能合约声明的对目标对象的流转码的创建逻辑,基于所述目标对象的识别码创建所述目标对象的流转码,并将所述目标对象的流转码添加至所述发起方的区块链账户中。
相应地,本说明书还提供了一种基于区块链的查询装置,用于对目标对象的转移进行查询;所述装置包括:
接收单元,用于接收查询请求,所述查询请求包括目标对象的识别码,其中,所述目标对象的识别码是与所述目标对象对应的唯一性识别码;
查询单元,用于基于所述目标对象的识别码,从所述区块链的分布式数据库中查询与所述目标对象识别码相关的至少一个转移交易;其中,所述转移交易包括发起方的区块链账户地址、所述目标对象的识别码、和接收方的区块链账户地址;在所述转移交易被所述区块链节点设备共识验证后,在所述区块链的分布式数据库中,所述目标对象的识别码从所述发起方的区块链账户被转移到所述接收方的区块链账户中;
生成单元,用于基于所述至少一个转移交易生成查询结果。
在又一示出的实施方式中,所述查询结果包括所述目标对象最新持有方的身份信息,或所述目标对象源头方的身份信息,或所述目标对象的全程流转信息。
在又一示出的实施方式中,所述查询请求由查询客户端发送;所述目标对象的识别码由所述查询客户端基于所述目标对象的实体标识而获取;
所述装置还包括发送单元,用于向所述查询客户端发送所述查询结果。
相应地,本说明书还提出了一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述一个或多个实施例所述的区块链的交易方法步骤。
相应地,本说明书还提出了一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述一个或多个实施例所述的基于区块链的查询方法步骤。
应用本说明书所提供的区块链交易方法和装置,在用户的区块链账户中设置与用户可转移的目标对象的识别码,随着目标对象在区块链用户中流转,上述目标对象识别码会相应被收录在获得该目标对象的用户的区块链账户状态中;而且,用于目标对象转移的交易(亦即转移交易)也会被收录在区块链的分布式数据库中。基于区块链的共识机制和防篡改机制,关于目标对象在区块链用户中的流转便被真实无异议地记录下来,从而方便用户对目标对象的流转历史进行查询、或基于上述流转历史而进行的真伪性查询提供真实有效的数据基础。
附图说明
图1为本说明书一示例性实施例提供的区块链交易方法的流程图;
图2为本说明书一示例性实施例提供的基于本说明书所提供的区块链交易方法而开展的基于区块链的查询方法的示意图;
图3为本说明书一示例性实施例提供的区块链交易装置示意图;
图4为本说明书一示例性实施例提供的基于本说明书所提供的区块链交易方法而开展的基于区块链的查询装置的示意图;
图5为运行本说明书所提供的区块链交易装置、或基于区块链的查询装置实施例的一种硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
本说明书所述的区块链,具体可指一个各节点设备通过共识机制达成的、具有分布式数据存储结构的P2P网络系统,该区块链内的数据分布在时间上相连的一个个“区块(block)”之内,后一区块包含前一区块的数据摘要,且根据具体的共识机制(如POW、POS、DPOS或PBFT等)的不同,达成全部或部分节点的数据全备份。本领域的技术人员熟知,由于区块链系统在相应共识机制下运行,已收录至区块链数据库内的数据很难被任意的节点篡改,例如采用Pow共识的区块链,至少需要全网51%算力的攻击才有可能篡改已有数据,因此区块链系统有着其他中心化数据库系统所无法比拟的保证数据安全、防攻击篡改的特性。由此可知,被收录至区块链的分布式数据库中的数据不会被攻击或篡改,从而保证了存证入区块链的分布式数据库的数据信息的真实可靠性。
在本说明书中所描述的交易(transfer),是指通过区块链的节点设备创建,并需要最终发布至区块链的分布式数据库中的一笔数据。其中,区块链中的交易,存在狭义的交易以及广义的交易之分。狭义的交易是指用户向区块链发布的一笔价值转移;例如,在传统的比特币区块链网络中,交易可以是用户在区块链中发起的一笔转账。而广义的交易是指用户通过节点设备向区块链发布的一笔具有业务意图的业务数据,如在物品流转过程中为物品及其持有方存证的数据信息。
目前可见的区块链溯源方案,都是通过将物品的原产地信息或后续的交易信息(即物品流转信息)以交易的形式登记入区块链,由于任何节点设备均有权利发布关于物品的交易信息,难以保证节点设备登记入链的行为的真实性,因此,即使基于区块链的防篡改机制,也难以确保区块链的分布式数据库内存储的信息的真实性,致使上述区块链并不具备真伪辨识或跟踪能力。
基于以上提出的问题,本说明书中一示例性实施例提供了一种区块链交易方法,用于发起方用户向接收方用户转移目标对象。本说明书各实施例所述的目标对象可以为发起方用户具有转让(有偿或无偿)或转移处置权,或代理转让或转移处置权的实体物品或虚拟物品。在实际的应用中,上述目标对象可以为贵重商品(如珠宝钻石等奢侈品)、或食品等对溯源要求较为严格的物品,在本说明书中不作具体限定。
本领域的技术人员应知,以太坊是一个以账户为基础的区块链应用平台,用户的账户状态都是以“状态数据”的形式存储在以太坊区块链的节点设备中。以太坊用户的区块链账户可分为外部账户和合约账户两种类型,其中,外部账户以地址为索引,其账户的内容可包括交易次数值(Nonce)、账户目前的以太币余额等内容;合约账户的内容除上述外部账户包括的内容外,还可包括合约代码散列值(Code hash)、及其他存储内容。通过以太坊区块链上进行的各种转账交易、及合约发布或调用交易,在达成共识后,各个节点设备存储的用户的账户状态(或称账户内容)发生相应的改变。
在本实施例提供的区块链交易方法中,用户的区块链账户可包括一内容对象,用于记录该用户可转移的目标对象的识别码,所述识别码是与所述目标对象对应的唯一性识别码,可以理解为目标对象的“身份证”。例如,当上述目标对象为钻石或珠宝时,上述识别码可以为钻石或珠宝的GIA编码;当上述目标对象为食品时,上述识别码可以为基于食品的品类、产地、生产日期、加工工艺等参数计算而得的可用于识别该食品(或该批次食品)的唯一性编码。
如图1所示,对应于本说明书所提供的区块链内的任一可执行节点设备,本实施例所提供的区块链交易方法包括:
步骤102,接收所述目标对象的转移交易,所述转移交易包括所述发起方的区块链账户地址、所述目标对象的识别码、和所述接收方的区块链账户地址。
如前所述,本说明书中各实施例所述的交易为用户通过节点设备向区块链发布的一笔具有业务意图的业务数据。上述实施例所述的转移交易亦即该区块链的节点设备向区块链的分布式数据库发布的、用以将目标对象转移至接收方用户的一笔业务数据。
值得注意的是,上述转移交易的发布并不限定为由上述发起方的节点设备直接发布,也可由其他智能合约在满足触发条件后向区块链发布,或者由上述发起方用户授权的其他用户的节点设备直接发布;等等。
本实施例所述的发起方或接收方的区块链账户地址可以为发起方或接收方的外部账户地址或合约账户地址,或该区块链协议所设定的其他可收录目标对象的识别码的账户地址。本领域的技术人员熟知,账户地址是用于识别账户身份的编码,通常可基于用户的公钥、根据区块链协议预设的规则而得来,在本说明书中不作限定。
步骤104,在所述转移交易被所述区块链节点设备共识验证后,在所述区块链的分布式数据库中,将所述目标对象的识别码从所述发起方的区块链账户转移到所述接收方的区块链账户中。
关于将转移交易收录到所述区块链的分布式数据库中的详细过程,可依据所述区块链的共识机制及交易规则而具体设定。在一示出的实施例中,所述将转移交易收录到所述区块链的分布式数据库中,包括:
在对所述转移交易的合法性验证通过后,所述区块链中具有记账权限的节点将所述转移交易加入到候选区块;
从所述具有记账权限的节点中确定满足所述区块链共识机制的共识记账节点;
所述共识记账节点向所述区块链的节点广播所述候选区块;
在所述候选区块通过所述区块链符合预设数量的节点的验证认可后,所述候选区块被视为最新区块,收录到所述区块链的分布式数据库中;
广播所述最新区块,其他节点设备验证所述最新区块后,将所述最新区块同步收录到自己的区块链数据库中。
在上述的实施例中,具有记账权限的节点是指具有生成候选区块权限的节点,根据所述区块链的共识机制,可从上述对所述候选区块具有记账权限的节点中确定共识记账节点,上述共识机制可以包括工作量证明机制(PoW)、或权利证明机制(PoS)、或股份授权证明机制(DPoS)、或联盟链通常采取的PBFT机制等,在本说明书中不作限定。
本领域的技术人员应知,在以账户为基础的区块链应用中,各个用户的账户状态应随着被区块链收录的新的交易发生相应的改变。因此在本实施例中,作为执行主体的区块链的节点设备随着该转移交易被共识且收录至区块链的分布式数据库中,会在该节点设备的本地存储中将目标对象的识别码从所述发起方的区块链账户转移到所述接收方的区块链账户中,相应地,通过各节点设备均在本地存储的数据库中完成上述转移,即可完成在区块链的分布式数据库中,将目标对象的识别码从所述发起方的区块链账户转移到所述接收方的区块链账户中;从而保证了只有目标对象的识别码所在的区块链账户,才持有该目标对象,或者具有该目标对象的转移处置权。
上述将目标对象的识别码从所述发起方的区块链账户转移到所述接收方的区块链账户中,可包括从所述发起方的区块链账户删除所述目标对象的识别码,相应地,在所述接收方的区块链账户中添加所述目标对象的识别码。
在实际的物品转移或交易过程中,物品接收方可以将上述转移交易被区块链的分布式数据库确认(例如,可约定该转让交易所在的区块被收录后又有预设数量的新区块被确认,即可表示该转移交易被确认)作为物品所有权或转让处置权等法律权属的正式转移,保证接收方所接收到的物品的真实可信性,和司法可追溯性。如果物品持有方无法在区块链上完成将物品对应的识别码转移至物品接收方,则表明持有方所持物品与链上的识别码不相互对应,该物品为假货,或者物品持有方不具备转移该物品的权利,那接收方可以停止交易,避免损失。
在又一示出的实施方式中,上述目标对象的识别码的转移可以由运行在所述区块链上的第一智能合约来完成。相应地,上述转移交易还可包括如第一智能合约的地址、函数接口等信息,用以调用第一智能合约。上述区块链中的节点设备在接收到用以调用第一智能合约的转移交易后,可在节点设备的EVM中运行调用上述第一智能合约的相应执行逻辑,执行第一智能合约声明的对上述目标对象的识别码的转移逻辑,将所述目标对象的识别码从所述发起方的区块链账户转移到所述接收方的区块链账户。
上述第一智能合约的执行结果也会在区块链的节点设备间进行共识及验证,并在上述执行结果(也可视为上述转移交易)被所述区块链节点设备公式验证后,将所述转移交易收录至所述区块链的分布式数据库,从而在各区块链节点设备中完成目标对象的识别码从所述发起方的区块链账户转移到所述接收方的区块链账户中来。
采用上述实施方式所述的利用第一智能合约的调用来执行目标对象的识别码从发起方的区块链账户转移到接收方的区块链账户,相较于在区块链的底层协议中设置相应的转移逻辑,不仅在代码开发阶段有着更加广泛的便捷性,而且在目标对象的转移方式上有着应用上的灵活性:例如,可将上述第一智能合约与目标对象的转移触发逻辑相关的其他智能合约进行联动,在约定的触发条件满足后,即可执行发送上述转移交易、执行目标对象的识别码的转移的处理逻辑;而且,智能合约内声明的转移逻辑经多方共识达成,节约了线下沟通的时间成本和人力成本,公平公正,提高了目标对象转移的效率。
在又一示出的实施方式中,类似于电商平台的商品交易序列号或交易编码,上述区块链用户的区块链账户中还设置有上述目标对象的流转码,用于标识所述目标对象在区块链用户中的流转。为执行本实施例所述的交易方法,上述发起方的区块链账户应包括所述目标对象的流转码,上述第一智能合约还声明有对所述目标对象的流转码的更新逻辑;相应地,在调用第一智能合约时,还应执行所述第一智能合约声明的对所述目标对象的流转码的更新逻辑,删除所述发起方的区块链账户中的所述目标对象的流转码;在所述接收方的区块链账户中生成所述目标对象的新的流转码。
在区块链账户状态中为用户可转移的目标对象设置流转码,可以更加方便区块链用户对目标对象转移行为的认识。例如,当上述流转码为目标对象的交易次序号时,用户基于该流转码可以直接获知该目标对象在上述区块链中已被转移的次数。
在又一示出的实施方式中,由于目标对象的识别码是与目标对象对应的唯一性标识,属于公共可知的信息,为进一步标识某用户确实为上述目标对象的持有者或可转移者,上述流转码还可以作为持有标识,作为对目标对象持有者或可转移者方可获知的数据。在该种应用模式下,上述流转码在区块链的分布式数据库上课被该目标对象持有者或可转移者的公钥进行加密;在该目标对象持有者或可转移者(亦即发起方用户)向潜在的交易下家出示该流转码的原文数据以证明自身作为持有者或可转移者的身份时,潜在的交易下家可以依据该发起方用户的公钥加密上述流转码的原文,并将加密后的密文与区块链上被加密的流转码对比,从而获知出示该流转码的用户是否可能为上述目标对象的持有者或可转移者。
相应地,为使上述流转码可作为如上所述的持有标识,所述发起方的区块链账户中的所述目标对象的流转码被所述发起方的公钥加密,且上述第一智能合约还应声明有加密逻辑,从而基于所述接收方的公钥将所述接收方的区块链账户中的所述目标对象的新的流转码加密。
以上列举了关于目标对象的流转码的两种应用实例,本领域的技术人员可从实际的应用场景出发为目标对象的流转码设置其他不同的作用和更新规则,以达到其他有效的应用效果,在本说明书中不作限定。
本说明书提供的以上实施例阐述了基于目标对象转移的区块链交易方法,接收方用户在完成上述目标对象的转移后,即可以发起方用户的身份基于该目标对象提起新的区块链交易,以将该目标对象进行下一步地转移。因此,在本说明书提供的交易方法中,上述发起方的区块链账户中所包括的目标对象的识别码,可以是从其上家发起方用户的账户中转移而来的,也可以是该发起方用户初始设置而获得的。
在又一示出的实施方式中,所述发起方的区块链账户获取所述目标对象的识别码的过程,包括:
接收所述发起方节点设备发起的绑定交易,所述绑定交易包括所述发起方的区块链账户地址和所述目标对象的识别码,其中,所述目标对象的识别码是所述发起方节点设备根据预设的对象识别码获取规则,基于所述目标对象而获取的唯一性识别码;调用第二智能合约,执行所述第二智能合约声明的对目标对象识别码的绑定逻辑,以在所述绑定交易的执行被所述区块链的节点设备共识验证后,在区块链的分布式数据库内将所述目标对象识别码添加至所述发起方的区块链账户中。在区块链的节点设备基于上述绑定交易对上述第二智能合约的调用结果达成共识后,随着上述绑定交易被收录至区块链的分布式数据库,上述目标对象的识别码也即初始化地被添加至所述发起方的区块链账户中。
在又一示出的实施方式中,上述绑定交易还包括目标对象的特征信息,如目标对象的工商信息、产地信息、生产批次信息等,通过将上述绑定交易收录于区块链的分布式数据库,上述目标对象的特征信息也被收录至区块链的分布式数据库中,从而方便区块链用户在区块链的分布式数据库中获取该目标对象的特征信息。
在又一示出的实施方式中,上述第二智能合约还声明有对所述目标对象的流转码的创建逻辑,所述流转码用于标识所述目标对象在区块链用户中的流转;相应地,上述发起方的区块链账户获取所述目标对象的识别码的过程,还包括:调用第二智能合约,执行所述第二智能合约声明的对目标对象的流转码的创建逻辑,基于所述目标对象的识别码创建所述目标对象的流转码,以在所述绑定交易被所述区块链的节点设备共识验证后,将所述目标对象的流转码添加至所述发起方的区块链账户中。
当然,本领域的技术人员应知,上述多个实施例所述的用户区块链账户初始化地获取目标对象的识别码或流转码的过程,也可以不基于第二智能合约,而通过上述区块链的底层协议,通过在区块链的分布式数据库内收录上述绑定交易后,实现上述区块链账户的状态改变。
应用本说明书上述各实施例所提供的区块链交易方法,在用户的区块链账户中设置与用户可转移的目标对象的识别码内容,随着目标对象在区块链用户中流转,上述目标对象的识别码会相应被收录在获得该目标对象的用户的区块链账户状态中;而且,用于目标对象转移的交易(亦即转移交易)也会被收录在区块链的分布式数据库中。基于区块链的共识机制和防篡改机制,关于目标对象在区块链用户中的流转便被真实无异议地记录下来,从而方便用户对目标对象的流转历史进行查询、或基于上述流转历史而进行的真伪性查询提供真实有效的数据基础。
如图2所示,基于上述各实施例所提供的区块链交易方法,本说明书还提供了一种基于区块链的查询方法,用于对目标对象的转移进行查询;所述方法包括:
步骤202,所述区块链的节点设备接收查询请求,所述查询请求包括目标对象的识别码,其中,所述目标对象的识别码是与所述目标对象对应的唯一性识别码;
步骤204,基于所述目标对象的识别码,从所述区块链的分布式数据库中查询与所述目标对象识别码相关的至少一个转移交易;其中,所述转移交易包括所述发起方的区块链账户地址、所述目标对象的识别码、和所述接收方的区块链账户地址;在所述转移交易被所述区块链节点设备共识验证后,在所述区块链的分布式数据库中,所述目标对象的识别码从所述发起方的区块链账户被转移到所述接收方的区块链账户中;
步骤206,基于所述至少一个转移交易生成查询结果。
基于本说明书上述多个实施例提供的区块链交易方法,基于区块链的分布式数据库上收录的、关于该目标对象的识别码的最早的转移交易,可生成关于上述目标对象的初始转出方(或称为源头方)的身份信息查询结果,以帮助辨别上述目标对象的真伪;基于区块链的分布式数据库上收录的、关于该目标对象的识别码的所有转移交易,可生成上述目标对象的所有交易记录,及目标对象的全程流转信息等查询结果;基于区块链的分布式数据库上收录的、关于该目标对象的识别码的最新转移交易,可生成上述目标对象最新持有方(即最新转移交易所指示的接收方)的身份信息等查询结果,以帮助用户辨别目标对象的真伪、或提出交易的目标对象持有方的身份真伪。
在实际的应用中,提起查询请求的终端设备可以为上述区块链的节点设备,也可以为与上述区块链的节点设备通信连接的查询客户端,上述查询客户端可以不作为上述区块链的节点设备,而通过与上述区块链的节点设备的通信完成查询操作。
例如,上述实施例所述的查询请求由查询客户端发送至区块链的节点设备,在区块链的节点设备完成查询、生成查询结果后,再将上述查询结果发送回上述查询客户端。
上述查询请求包含的目标对象的识别码可以由所述查询客户端基于所述目标对象的实体标识而获得。本说明书并不限定上述查询客户端基于所述目标对象的实体标识而获得该目标对象的识别码的具体方式,比如,上述目标对象的实体标识可以为基于目标对象的识别码而生成的二维码或条形码图标,上述查询客户端采用扫码的方式即可获得该目标对象的识别码;又如,上述目标对象的实体标识可以为基于目标对象的工商信息(可包括品名、品类、配料、生产地、生成批号等内容)而生成的二维码或条形码图标,上述查询客户端采用扫码的方式即可获得该目标对象的工商信息,且依据上述区块链认可的基于工商信息而生成识别码的规则,生成上述目标对象的识别码;该种目标对象的识别码的获取方式尤其适用于目标对象为同批次的多个数量的情况下,该同批次的多个目标对象在上述区块链上对应相同的识别码。
与上述区块链交易方法的流程实现对应,本说明书的实施例还提供了一种区块链交易装置。上述装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图5所示的CPU、内存以及存储器之外,该数据处理装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
图3所示为本说明书所提供的一种区块链交易装置30,用于发起方用户向接收方用户转移目标对象;所述发起方的区块链账户包括所述发起方可转移的目标对象的识别码,所述识别码是与所述目标对象对应的唯一性识别码;所述装置30包括:
接收单元302,用于接收所述目标对象的转移交易,所述转移交易包括所述发起方的区块链账户地址、所述目标对象的识别码、和所述接收方的区块链账户地址;
转移单元304,用于在所述转移交易被所述区块链节点设备共识验证后,在所述区块链的分布式数据库中,将所述目标对象的识别码从所述发起方的区块链账户转移到所述接收方的区块链账户中。
在又一示出的实施方式中,所述转移交易用以调用第一智能合约;所述转移单元304进一步用于:
调用第一智能合约,执行所述第一智能合约声明的对所述目标对象的识别码的转移逻辑,将所述目标对象的识别码从所述发起方的区块链账户转移到所述接收方的区块链账户中。
在又一示出的实施方式中,所述发起方的区块链账户还包括所述目标对象的流转码,所述流转码用于标识所述目标对象在区块链用户中的流转;所述第一智能合约还声明有对所述目标对象的流转码的更新逻辑;
所述转移单元304进一步用于调用第一智能合约,执行所述第一智能合约声明的对所述目标对象的流转码的更新逻辑,删除所述发起方的区块链账户中的所述目标对象的流转码,在所述接收方的区块链账户中生成所述目标对象的新的流转码。
在又一示出的实施方式中,所述发起方的区块链账户中的所述目标对象的流转码被所述发起方的公钥加密;所述接收方的区块链账户中的所述目标对象的新的流转码被所述接收方的公钥加密。
在又一示出的实施方式中,所述接收单元302进一步用于,接收所述发起方节点设备发起的绑定交易,所述绑定交易包括所述发起方的身份识别码和所述目标对象识别码,其中,所述目标对象识别码是所述发起方节点设备根据预设的对象识别码获取规则,基于所述目标对象而获取的唯一性识别码;
所述转移单元304进一步用于,调用第二智能合约,执行所述第二智能合约声明的对目标对象识别码的绑定逻辑,将所述目标对象的识别码添加至所述发起方的区块链账户中。
在又一示出的实施方式中,所述绑定交易还包括目标对象的特征信息。
在又一示出的实施方式中,所述第二智能合约还声明有对所述目标对象的流转码的创建逻辑;所述流转码用于标识所述目标对象在区块链用户中的流转;所述转移单元304,进一步用于调用第二智能合约,执行所述第二智能合约声明的对目标对象的流转码的创建逻辑,基于所述目标对象的识别码创建所述目标对象的流转码,并将所述目标对象的流转码添加至所述发起方的区块链账户中。
与上述基于区块链的查询方法的流程实现对应,本说明书的实施例还提供了一种基于区块链的查询装置。上述装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的CPU(CentralProcess Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图5所示的CPU、内存以及存储器之外,该数据处理装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
如图4所示,本说明书还提供了一种基于区块链的查询装置40,用于对目标对象的转移进行查询;所述装置40包括:
接收单元402,用于接收查询请求,所述查询请求包括目标对象的识别码,其中,所述目标对象的识别码是与所述目标对象对应的唯一性识别码;
查询单元404,用于基于所述目标对象的识别码,从所述区块链的分布式数据库中查询与所述目标对象识别码相关的至少一个转移交易;其中,所述转移交易包括发起方的区块链账户地址、所述目标对象的识别码、和接收方的区块链账户地址;在所述转移交易被所述区块链节点设备共识验证后,在所述区块链的分布式数据库中,所述目标对象的识别码从所述发起方的区块链账户被转移到所述接收方的区块链账户中;
生成单元406,用于基于所述至少一个转移交易生成查询结果。
在又一示出的实施方式中,所述查询结果包括所述目标对象最新持有方的身份信息,或所述目标对象源头方的身份信息,或所述目标对象的全程流转信息。
在又一示出的实施方式中,所述查询请求由查询客户端发送;所述目标对象的识别码由所述查询客户端基于所述目标对象的实体标识而获取;
所述装置还包括发送单元408,用于向所述查询客户端发送所述查询结果。
上述装置30或40中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,相关之处参见方法实施例的部分说明即可,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置、单元、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述区块链交易方法实施例相对应,本说明书的实施例还提供了一种计算机设备,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施例中区块链的节点设备执行的区块链交易方法的各个步骤。对区块链的节点设备执行的区块链交易方法的各个步骤的详细描述请参见之前的内容,不再重复。
与上述基于区块链的查询方法实施例相对应,本说明书的实施例还提供了一种计算机设备,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施例中区块链的节点设备执行的基于区块链的查询方法的各个步骤。对区块链的节点设备执行的基于区块链的查询方法的各个步骤的详细描述请参见之前的内容,不再重复。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。