CN115131022B - 基于区块链的数字资产交易方法、装置、设备及介质 - Google Patents
基于区块链的数字资产交易方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115131022B CN115131022B CN202211029718.4A CN202211029718A CN115131022B CN 115131022 B CN115131022 B CN 115131022B CN 202211029718 A CN202211029718 A CN 202211029718A CN 115131022 B CN115131022 B CN 115131022B
- Authority
- CN
- China
- Prior art keywords
- transaction
- message
- node
- block chain
- accounting
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及金融数据处理技术领域,公开了一种基于区块链的数字资产交易方法、装置、设备及介质,方法包括:当区块链网络中的主节点接收到数据资产购买端发起的交易请求时,主节点对交易请求对应的交易信息进行验证;在验证通过之后,主节点在区块链网络中向各记账节点广播交易请求;若通过记账节点验证的交易请求的数量超过预设阈值,则完成交易请求在区块链网络中共识,并达成数据资产拥有端和数据资产购买端之间数字资产的交易。本发明能够在通过区块链进行数字资产交易时,实现双向交易双方互相信任的线上交易。
Description
技术领域
本发明涉及金融数据处理技术领域,尤其涉及一种基于区块链的数字资产交易方法、装置、设备及介质。
背景技术
目前,随着区块链技术的不断发展,数据上链已经成为一种发展趋势,非货币资产也会出现在区块链中。当一个区块链系统中同时存在多种不同的资产时,在交易双方进行不同数字资产之间的交易时,在传统的模式中,数据资产拥有端通过线上向数据资产购买端提供数据资产,数据资产购买端也同样通过线上给数据资产拥有端提供货币资产。这种模式能够实现交换的前提是交易双方必须相互信任;由于区块链的去中心化和去信任,线上双向的交易过程不被保证,当数据资产购买端提供数据资产之后,数据资产购买端可能会不提供货币资产;或者数据资产购买端提供货币资产之后,数据资产购买端不会提供数据资产。
发明内容
本发明的主要目的在于提供一种基于区块链的数字资产交易方法、装置、设备及介质,旨在解决在通过区块链进行数字资产交易时,交易双方互不信任、难以实现双向的线上交易的技术问题。
为实现上述目的,本发明提供一种基于区块链的数字资产交易方法,所述基于区块链的数字资产交易方法,包括以下步骤:
当区块链网络中的主节点接收到数据资产购买端发起的交易请求时,所述主节点对所述交易请求对应的交易信息进行验证;
在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求;
若通过所述记账节点验证的所述交易请求的数量超过预设阈值,则完成所述交易请求在所述区块链网络中共识,并达成数据资产拥有端和所述数据资产购买端之间数字资产的交易。
进一步地,所述主节点对所述交易请求对应的交易信息进行验证的步骤,包括:
所述主节点查询所述交易请求对应的交易信息中,状态属性值是否为同意交易;
若状态属性值为不同意交易,则所述主节点验证所述交易信息的数字签名是否有效;
若所述交易信息的数字签名有效,则验证通过;
若所述交易信息的数字签名无效,则验证失败。
进一步地,所述主节点查询所述交易请求对应的交易信息中,状态属性值是否为同意交易的步骤之后,还包括:
若状态属性值为同意交易,则所述主节点验证以下条件:所述交易信息中的数字签名是否有效、是否存在对应当前所述交易请求的交易申请、所述数据资产购买端和所述数据资产拥有端的数字资产改变量是否相等、所述数字资产改变量是否与所述交易信息中的交易金额相等;
若所有条件均满足,则验证通过;
若其中一条不满足,则验证失败。
进一步地,所述主节点在所述区块链网络中向各记账节点广播所述交易请求的步骤之后,还包括:
所述主节点对所述交易请求封装并签名得到第一消息,并将所述第一消息向所述区块链网络中进行第一广播;
响应所述第一广播的所述记账节点判断所述第一消息的有效性,在确定所述第一消息有效之后,所述记账节点对所述第一消息封装并签名后得到第二消息,并将所述第二消息向所述区块链网络中进行第二广播;
响应所述第二广播的所述记账节点判断所述第二消息的有效性,在确定所述第二消息的有效性之后,确定所述交易请求通过所述记账节点的验证。
进一步地,所述判断所述第一消息的有效性的步骤,包括:
判断所述第一消息对应的签名是否正确;
判断消息视图与当前所述记账节点是否处于相同视图中;
判断当前所述记账节点在接受到所述第一消息之前是否接收到所述第一消息;
判断区块高度是否在预设阈值范围之内;
若所述第一消息对应的签名正确、消息视图与当前所述记账节点处于相同视图中、当前所述记账节点在接受到所述第一消息之前未接收到所述第一消息、区块高度在预设阈值范围之内,则确定所述第一消息有效。
进一步地,所述主节点对所述交易请求封装并签名得到第一消息,并将所述第一消息向所述区块链网络中进行第一广播的步骤之前,还包括;
以所述区块链网络中的任意节点作为候选节点,所述候选节点之外的节点作为投票节点;
以所述投票节点投票选举出的得票排名前预设数量的候选节点作为所述记账节点。
进一步地,所述在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求的步骤之后,还包括:
若通过所述记账节点验证的所述交易请求的数量未超过预设阈值,则更换主节点重新在所述区块链网络中对所述交易请求进行共识。
此外,为实现上述目的,本发明还提供一种基于区块链的数字资产交易装置,所述装置包括:
验证模块,用于当区块链网络中的主节点接收到数据资产购买端发起的交易请求时,所述主节点对所述交易请求对应的交易信息进行验证;
广播模块,用于在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求;
交易模块,用于若通过所述记账节点验证的所述交易请求的数量超过预设阈值,则完成所述交易请求在所述区块链网络中共识,并达成数据资产拥有端和所述数据资产购买端数字资产的交易。
此外,为实现上述目的,本发明还提供一种基于区块链的数字资产交易设备,所述基于区块链的数字资产交易设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上任一项所述的基于区块链的数字资产交易方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的基于区块链的数字资产交易方法的步骤。
本发明提出一种基于区块链的数字资产交易方法、装置、设备及介质,当区块链网络中的主节点接收到数据资产购买端发起的交易请求时,所述主节点对所述交易请求对应的交易信息进行验证;在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求;若通过所述记账节点验证的所述交易请求的数量超过预设阈值,则完成所述交易请求在所述区块链网络中共识,并达成数据资产拥有端和所述数据资产购买端之间数字资产的交易。
在本实施例中,主要是对PBFT进行改进,从而提出一个新的共识验证方法,再基于该新的共识验证方法提出permissioned systems(联盟链/私有链)中的数字资产交易方法。在区块链去中心化和去信任的前提下,数据资产拥有端和数据资产购买端都可能对数据进行恶意篡改。所以在本实施例中,在数据资产拥有端同意或者拒绝前一个交易请求并将交易请求在区块链网络中向各记账节点进行广播之后,各记账节点对交易请求对应的交易信息进行进一步验证。将通过记账节点验证的交易请求的数量超过预设阈值,视为完成交易请求在区块链网络中的共识,从而达成数据资产拥有端和数据资产购买端之间数字资产的交易。
附图说明
图1是本发明实施例方案涉及终端设备的硬件运行的结构示意图;
图2是本发明一种基于区块链的数字资产交易方法一实施例的流程示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及终端设备的硬件运行环境的结构示意图。
需要说明的是,图1即可为终端设备的硬件运行环境的结构示意图。本发明实施例终端设备可以是针对基于nand flash为存储介质的存储设备,执行本发明提供的基于区块链的数字资产交易方法的设备,该终端设备具体可以是移动终端、数据存储控制终端、PC或者便携计算机等终端。
如图1所示,该终端设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储设备1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储设备1005可以是非易失性存储设备(如,Flash存储设备)、高速RAM存储设备,也可以是稳定的存储设备(non-volatile memory),例如磁盘存储设备。存储设备1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储设备1005中可以包括操作系统、网络通信模块、用户接口模块以及计算机程序。其中,操作系统是管理和控制样本终端设备硬件和软件资源的程序,支持计算机程序以及其它软件或程序的运行。
在图1所示的终端设备中,用户接口1003主要用于与各个终端进行数据通信;网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储设备1005中存储的计算机程序,并执行以下操作:
当区块链网络中的主节点接收到数据资产购买端发起的交易请求时,所述主节点对所述交易请求对应的交易信息进行验证;
在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求;
若通过所述记账节点验证的所述交易请求的数量超过预设阈值,则完成所述交易请求在所述区块链网络中共识,并达成数据资产拥有端和所述数据资产购买端之间数字资产的交易。
进一步地,处理器1001可以调用存储设备1005中存储的计算机程序,还执行以下操作:
所述主节点对所述交易请求对应的交易信息进行验证的步骤,包括:
所述主节点查询所述交易请求对应的交易信息中,状态属性值是否为同意交易;
若状态属性值为不同意交易,则所述主节点验证所述交易信息的数字签名是否有效;
若所述交易信息的数字签名有效,则验证通过;
若所述交易信息的数字签名无效,则验证失败。
进一步地,处理器1001可以调用存储设备1005中存储的计算机程序,还执行以下操作:
所述主节点查询所述交易请求对应的交易信息中,状态属性值是否为同意交易的步骤之后,还包括:
若状态属性值为同意交易,则所述主节点验证以下条件:所述交易信息中的数字签名是否有效、是否存在对应当前所述交易请求的交易申请、所述数据资产购买端和所述数据资产拥有端的数字资产改变量是否相等、所述数字资产改变量是否与所述交易信息中的交易金额相等;
若所有条件均满足,则验证通过;
若其中一条不满足,则验证失败。
进一步地,处理器1001可以调用存储设备1005中存储的计算机程序,还执行以下操作:
所述主节点在所述区块链网络中向各记账节点广播所述交易请求的步骤之后,还包括:
所述主节点对所述交易请求封装并签名得到第一消息,并将所述第一消息向所述区块链网络中进行第一广播;
响应所述第一广播的所述记账节点判断所述第一消息的有效性,在确定所述第一消息有效之后,所述记账节点对所述第一消息封装并签名后得到第二消息,并将所述第二消息向所述区块链网络中进行第二广播;
响应所述第二广播的所述记账节点判断所述第二消息的有效性,在确定所述第二消息的有效性之后,确定所述交易请求通过所述记账节点的验证。
进一步地,处理器1001可以调用存储设备1005中存储的计算机程序,还执行以下操作:
所述判断所述第一消息的有效性的步骤,包括:
判断所述第一消息对应的签名是否正确;
判断消息视图与当前所述记账节点是否处于相同视图中;
判断当前所述记账节点在接受到所述第一消息之前是否接收到所述第一消息;
判断区块高度是否在预设阈值范围之内;
若所述第一消息对应的签名正确、消息视图与当前所述记账节点处于相同视图中、当前所述记账节点在接受到所述第一消息之前未接收到所述第一消息、区块高度在预设阈值范围之内,则确定所述第一消息有效。
进一步地,处理器1001可以调用存储设备1005中存储的计算机程序,还执行以下操作:
所述主节点对所述交易请求封装并签名得到第一消息,并将所述第一消息向所述区块链网络中进行第一广播的步骤之前,还包括;
以所述区块链网络中的任意节点作为候选节点,所述候选节点之外的节点作为投票节点;
以所述投票节点投票选举出的得票排名前预设数量的候选节点作为所述记账节点。
进一步地,处理器1001可以调用存储设备1005中存储的计算机程序,还执行以下操作:
所述在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求的步骤之后,还包括:
若通过所述记账节点验证的所述交易请求的数量未超过预设阈值,则更换主节点重新在所述区块链网络中对所述交易请求进行共识。
基于上述的结构,提出本发明基于区块链的数字资产交易方法的各个实施例。请参照图2,图2是本发明一种基于区块链的数字资产交易方法一实施例的流程示意图。本实施例中,本发明基于区块链的数字资产交易方法包括:
步骤S10,当区块链网络中的主节点接收到数据资产购买端发起的交易请求时,所述主节点对所述交易请求对应的交易信息进行验证。
步骤S20,在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求。
步骤S30,若通过所述记账节点验证的所述交易请求的数量超过预设阈值,则完成所述交易请求在所述区块链网络中共识,并达成数据资产拥有端和所述数据资产购买端之间数字资产的交易。
BFT(Byzantine Generals Problem,拜占庭将军问题),是分布式对等网络通信容错问题。在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策略行动。但有时候,系统中的成员计算机可能出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略得出不同结论,从而破坏系统一致性。拜占庭将军问题被认为是容错性问题中最难的问题类型之一。
其中,PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法)是拜占庭将军问题当中最著名的算法,PBFT在保证可用性和安全性(liveness & safety)的前提下,提供了(n-1)/3的容错性,意思就是如果系统内有n台机器,那么系统最多能容忍的作恶/故障节点为(n-1)/3个。(作恶节点可以不响应或者回应错误的信息)。PBFT解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。
共识节点在参与PBFT共识算法时,每一次共识算法的执行需要实现“request”、“pre-prepare”、“prepare”、“commit”和“reply”的五个操作步骤。在五个操作步骤中,“pre-prepare”阶段会执行BlockVerifier区块执行器,其核心就是共识节点根据当前的验证策略判断是否可以实现一致性,并作出反馈。
在本实施例中,用一个通用的五元组<M,Hash(M),Pre_Hash(M),Sign,Point>来表示所有的数字资产如数据资产和货币资产。其中,M表示资产交易的完整信息,用来记录交易信息或者资产变化;Hash(M)为M的哈希值,用来作为该五元组的索引;Pre_Hash(M)为上一个资产变化的Hash值,用来进行资产的溯源;Sign为本次交易中Hash(M)的数字签名,通过Sign可以验证本次交易的有效性和合法性;Point是一个标记位,可以根据不同的资产和资产状态插入不同的值、可以根据Point值的不同来判断该资产的类型和状态。
当区块链网络中的主节点接收到数据资产购买端发起的交易请求时,主节点对交易请求对应的交易信息进行验证、即对前述的五元组进行验证。在验证通过之后,主节点在区块链网络中向各记账节点广播交易请求,响应到广播的记账节点便会验证交易请求,如果通过记账节点验证的交易请求的数量超过预设阈值,则可以认为完成交易请求在区块链网络中的共识,可以完成数据资产拥有端和数据资产购买端之间数字资产的交易。
在本实施例中,当区块链网络中的主节点接收到数据资产购买端发起的交易请求时,所述主节点对所述交易请求对应的交易信息进行验证;在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求;若通过所述记账节点验证的所述交易请求的数量超过预设阈值,则完成所述交易请求在所述区块链网络中共识,并达成数据资产拥有端和所述数据资产购买端之间数字资产的交易。
在本实施例中,主要是对PBFT进行改进,从而提出一个新的共识验证方法,再基于该新的共识验证方法提出permissioned systems(联盟链/私有链)中的数字资产交易方法。在区块链去中心化和去信任的前提下,数据资产拥有端和数据资产购买端都可能对数据进行恶意篡改。所以在本实施例中,在数据资产拥有端同意或者拒绝前一个交易请求并将交易请求在区块链网络中向各记账节点进行广播之后,各记账节点对交易请求对应的交易信息进行进一步验证。将通过记账节点验证的交易请求的数量超过预设阈值,视为完成交易请求在区块链网络中的共识,从而达成数据资产拥有端和数据资产购买端之间数字资产的交易。
可选地,步骤S20:主节点对所述交易请求对应的交易信息进行验证,包括:
所述主节点查询所述交易请求对应的交易信息中,状态属性值是否为同意交易;
若状态属性值为不同意交易,则所述主节点验证所述交易信息的数字签名是否有效;
若所述交易信息的数字签名有效,则验证通过;
若所述交易信息的数字签名无效,则验证失败。
当主节点(共识节点)接收到数据资产购买端发起的交易请求时,通过查询该交易请求对应的交易信息,得到该交易信息对应的交易五元组,并确定该交易五元组中的标记位Point的状态属性值是否为同意交易。如果当前标记位Point的属性值为不同意交易,比如当前标记位Point的属性值为申请交易和拒绝交易,则意味着本次的交易不会给数据资产拥有端和数据资产购买端带来数字资产的改变,此时主节点只需要验证交易信息对应的交易五元组中的数据签名是否有效。如果有效,则主节点对当前交易请求对应的交易信息验证成功;如果无效,则主节点对当前交易请求对应的交易信息验证失败。
可选地,所述主节点查询所述交易请求对应的交易信息中,状态属性值是否为同意交易的步骤之后,还包括:
若状态属性值为同意交易,则所述主节点验证以下条件:所述交易信息中的数字签名是否有效、是否存在对应当前所述交易请求的交易申请、所述数据资产购买端和所述数据资产拥有端的数字资产改变量是否相等、所述数字资产改变量是否与所述交易信息中的交易金额相等;
若所有条件均满足,则验证通过;
若其中一条不满足,则验证失败。
而如果当前标记位Point的属性值为同意交易,则意味着本次的交易会给数据资产拥有端和数据资产购买端带来数字资产的改变,此时主节点需要从获取到的交易五元组中进一步判断数据资产拥有端和数据资产购买端的数字资产状态。主节点需要判断1:是否存在有效的数字签名、交易信息中的数字签名是否有效,2:是否存在对应当前交易请求的交易申请,3:数据资产购买端和数据资产拥有端的数字资产改变量是否相等,相等则说明双方没有擅自篡改数据金额,4:数字资产的改变量是否等于交易申请中的资产交易金额。如果所有条件均满足,则主节点对当前交易请求对应的交易信息验证成功;如果所有条件中有一条不满足,则主节点对当前交易请求对应的交易信息验证失败。
可选地,步骤S20:主节点对所述交易请求对应的交易信息进行验证之后,还包括
所述主节点对所述交易请求封装并签名得到第一消息,并将所述第一消息向所述区块链网络中进行第一广播;
响应所述第一广播的所述记账节点判断所述第一消息的有效性,在确定所述第一消息有效之后,所述记账节点对所述第一消息封装并签名后得到第二消息,并将所述第二消息向所述区块链网络中进行第二广播;
响应所述第二广播的所述记账节点判断所述第二消息的有效性,在确定所述第二消息的有效性之后,确定所述交易请求通过所述记账节点的验证。
在本实施例中,主节点将需要进行共识的交易请求进行封装并签名,得到的第一消息,主节点再将该封装并签名后的第一消息向区块链网络进行第一广播。
区块链网络中响应第一广播的记账节点在接收第一消息之前需要先进行第一消息有效性的判断,在该记账节点确定第一消息有效之后,同主节点广播第一消息一样,对第一消息封装并签名后得到第二消息,并将第二消息向区块链网络中进行第二广播。
区块链网络中响应第二广播的记账节点在接收第二消息之前同样也需要先进行第二消息有效性的判断,在该记账节点确定第二消息有效之后,便可以确定交易请求通过记账节点的验证,此时响应第二广播的记账节点发出表示验证通过的commit消息,当通过记账节点验证的交易请求的数量、commit消息的数量超过预设阈值,则视为完成交易请求在区块链网络中的共识,从而达成数据资产拥有端和数据资产购买端之间数字资产的交易。
可选地,所述判断所述第一消息的有效性的步骤,包括:
判断所述第一消息对应的签名是否正确;
判断消息视图与当前所述记账节点是否处于相同视图中;
判断当前所述记账节点在接受到所述第一消息之前是否接收到所述第一消息;
判断区块高度是否在预设阈值范围之内;
若所述第一消息对应的签名正确、消息视图与当前所述记账节点处于相同视图中、当前所述记账节点在接受到所述第一消息之前未接收到所述第一消息、区块高度在预设阈值范围之内,则确定所述第一消息有效。
具体的,在判断第一消息的有效性时需要判断第一消息对应的签名是否正确、消息视图与当前记账节点是否处于相同视图中、当前记账节点在接受到第一消息之前是否接收到同样的第一消息,以及区块高度是否在预设阈值范围之内。如果以上条件均满足,则确定第一消息有效,如果以上条件中任一一条不满足,则确定第一消息无效。另外,判断第二消息的有效性和判断第一消息的有效性类似,在此不做赘述。
可选地,所述主节点对所述交易请求封装并签名得到第一消息,并将所述第一消息向所述区块链网络中进行第一广播的步骤之前,还包括;
以所述区块链网络中的任意节点作为候选节点,所述候选节点之外的节点作为投票节点;
以所述投票节点投票选举出的得票排名前预设数量的候选节点作为所述记账节点。
在本实施例中,区块链网络中的任何节点都可以对其他节点进行投票选举,当某任意节点成为候选节点后,候选节点之外的其他节点就可以作为投票节点对该候选节点进行投票,投票选举出的得票排名前预设数量N的候选节点作为记账节点。
从而,当记账节点中的某些节点在共识过程中存在恶意行为或者其他非法行为,区块链网络就可以对该记账节点进行废除投票。当投票通过后则废除该记账节点,同时废除该记账节点之后成为候选节点的可能,甚至处以一定罚款。惩罚机制的引入可以有限提升区块链网络的安全性能,使得节点作恶时需要考虑成本和后果问题。相较于PBFT的区块链,安全能力得到了提升。
可选地,步骤S20:在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求之后,还包括:
若通过所述记账节点验证的所述交易请求的数量未超过预设阈值,则更换主节点重新在所述区块链网络中对所述交易请求进行共识。
由于通过记账节点验证的交易请求的数量未超过预设阈值、或者在规定时间内没有完成共识、或者在当前共识完成之后,都会切换视图,更换主节点重新在区块链网络中对交易请求进行共识。通过增加重发机制,从而可以增加区块链网络中交易请求和消息的到达率,进一步提高了共识效率。
此外,本发明实施例还提出一种基于区块链的数字资产交易装置,所述装置包括:
验证模块,用于当区块链网络中的主节点接收到数据资产购买端发起的交易请求时,所述主节点对所述交易请求对应的交易信息进行验证;
广播模块,用于在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求;
交易模块,用于若通过所述记账节点验证的所述交易请求的数量超过预设阈值,则完成所述交易请求在所述区块链网络中共识,并达成数据资产拥有端和所述数据资产购买端数字资产的交易。
可选地,所述广播模块还包括验证单元,用于所述主节点查询所述交易请求对应的交易信息中,状态属性值是否为同意交易;
若状态属性值为不同意交易,则所述主节点验证所述交易信息的数字签名是否有效;
若所述交易信息的数字签名有效,则验证通过;
若所述交易信息的数字签名无效,则验证失败。
可选地,所述验证单元,还用于若状态属性值为同意交易,则所述主节点验证以下条件:所述交易信息中的数字签名是否有效、是否存在对应当前所述交易请求的交易申请、所述数据资产购买端和所述数据资产拥有端的数字资产改变量是否相等、所述数字资产改变量是否与所述交易信息中的交易金额相等;
若所有条件均满足,则验证通过;
若其中一条不满足,则验证失败。
可选地,所述基于区块链的数字资产交易装置还包括:响应模块,用于所述主节点在所述区块链网络中向各记账节点广播所述交易请求的步骤之后,
所述主节点对所述交易请求封装并签名得到第一消息,并将所述第一消息向所述区块链网络中进行第一广播;
响应所述第一广播的所述记账节点判断所述第一消息的有效性,在确定所述第一消息有效之后,所述记账节点对所述第一消息封装并签名后得到第二消息,并将所述第二消息向所述区块链网络中进行第二广播;
响应所述第二广播的所述记账节点判断所述第二消息的有效性,在确定所述第二消息的有效性之后,确定所述交易请求通过所述记账节点的验证。
可选地,所述响应模块,还用于判断所述第一消息对应的签名是否正确;
判断消息视图与当前所述记账节点是否处于相同视图中;
判断当前所述记账节点在接受到所述第一消息之前是否接收到所述第一消息;
判断区块高度是否在预设阈值范围之内;
若所述第一消息对应的签名正确、消息视图与当前所述记账节点处于相同视图中、当前所述记账节点在接受到所述第一消息之前未接收到所述第一消息、区块高度在预设阈值范围之内,则确定所述第一消息有效。
可选地,所述基于区块链的数字资产交易装置还包括:选举模块,用于所述主节点对所述交易请求封装并签名得到第一消息,并将所述第一消息向所述区块链网络中进行第一广播的步骤之前,
以所述区块链网络中的任意节点作为候选节点,所述候选节点之外的节点作为投票节点;
以所述投票节点投票选举出的得票排名前预设数量的候选节点作为所述记账节点。
可选地,所述基于区块链的数字资产交易装置还包括:更换模块,用于所述在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求的步骤之后,
若通过所述记账节点验证的所述交易请求的数量未超过预设阈值,则更换主节点重新在所述区块链网络中对所述交易请求进行共识。
本发明提供的基于区块链的数字资产交易装置,采用上述实施例中的基于区块链的数字资产交易方法,解决现有技术中在通过区块链进行数字资产交易时,交易双方互不信任、难以实现双向的线上交易的技术问题。与现有技术相比,本发明实施例提供的基于区块链的数字资产交易装置的有益效果与上述实施例提供的基于区块链的数字资产交易方法的有益效果相同,且该基于区块链的数字资产交易装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
此外,本发明实施例还提出一种基于区块链的数字资产交易设备,所述基于区块链的数字资产交易设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上任一项所述的基于区块链的数字资产交易方法的步骤。
此外,本发明实施例还提出一种计算机存储介质,应用于计算机,该计算机存储介质可以为非易失性计算机可读计算机存储介质,该计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的基于区块链的数字资产交易方法的步骤。
其中,在所述处理器上运行的计算机程序被执行时所实现的步骤可参照本发明基于区块链的数字资产交易方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机存储介质(如Flash存储设备、ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)中,用于控制该存储介质进行数据读写操作的控制器执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种基于区块链的数字资产交易方法,其特征在于,所述基于区块链的数字资产交易方法,包括以下步骤:
当区块链网络中的主节点接收到数据资产购买端发起的交易请求时,所述主节点对所述交易请求对应的交易信息进行验证;
在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求;
若通过所述记账节点验证的所述交易请求的数量超过预设阈值,则完成所述交易请求在所述区块链网络中共识,并达成数据资产拥有端和所述数据资产购买端之间数字资产的交易;
所述主节点在所述区块链网络中向各记账节点广播所述交易请求的步骤之后,还包括:
所述主节点对所述交易请求封装并签名得到第一消息,并将所述第一消息向所述区块链网络中进行第一广播;
响应所述第一广播的所述记账节点判断所述第一消息的有效性,在确定所述第一消息有效之后,所述记账节点对所述第一消息封装并签名后得到第二消息,并将所述第二消息向所述区块链网络中进行第二广播;
响应所述第二广播的所述记账节点判断所述第二消息的有效性,在确定所述第二消息的有效性之后,确定所述交易请求通过所述记账节点的验证。
2.如权利要求1所述的基于区块链的数字资产交易方法,其特征在于,所述主节点对所述交易请求对应的交易信息进行验证的步骤,包括:
所述主节点查询所述交易请求对应的交易信息中,状态属性值是否为同意交易;
若状态属性值为不同意交易,则所述主节点验证所述交易信息的数字签名是否有效;
若所述交易信息的数字签名有效,则验证通过;
若所述交易信息的数字签名无效,则验证失败。
3.如权利要求2所述的基于区块链的数字资产交易方法,其特征在于,所述主节点查询所述交易请求对应的交易信息中,状态属性值是否为同意交易的步骤之后,还包括:
若状态属性值为同意交易,则所述主节点验证以下条件:所述交易信息中的数字签名是否有效、是否存在对应当前所述交易请求的交易申请、所述数据资产购买端和所述数据资产拥有端的数字资产改变量是否相等、所述数字资产改变量是否与所述交易信息中的交易金额相等;
若所有条件均满足,则验证通过;
若其中一条不满足,则验证失败。
4.如权利要求3所述的基于区块链的数字资产交易方法,其特征在于,所述判断所述第一消息的有效性的步骤,包括:
判断所述第一消息对应的签名是否正确;
判断消息视图与当前所述记账节点是否处于相同视图中;
判断当前所述记账节点在接受到所述第一消息之前是否接收到所述第一消息;
判断区块高度是否在预设阈值范围之内;
若所述第一消息对应的签名正确、消息视图与当前所述记账节点处于相同视图中、当前所述记账节点在接受到所述第一消息之前未接收到所述第一消息、区块高度在预设阈值范围之内,则确定所述第一消息有效。
5.如权利要求4所述的基于区块链的数字资产交易方法,其特征在于,所述主节点对所述交易请求封装并签名得到第一消息,并将所述第一消息向所述区块链网络中进行第一广播的步骤之前,还包括;
以所述区块链网络中的任意节点作为候选节点,所述候选节点之外的节点作为投票节点;
以所述投票节点投票选举出的得票排名前预设数量的候选节点作为所述记账节点。
6.如权利要求5所述的基于区块链的数字资产交易方法,其特征在于,所述在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求的步骤之后,还包括:
若通过所述记账节点验证的所述交易请求的数量未超过预设阈值,则更换主节点重新在所述区块链网络中对所述交易请求进行共识。
7.一种基于区块链的数字资产交易装置,其特征在于,所述装置包括:
验证模块,用于当区块链网络中的主节点接收到数据资产购买端发起的交易请求时,所述主节点对所述交易请求对应的交易信息进行验证;
广播模块,用于在验证通过之后,所述主节点在所述区块链网络中向各记账节点广播所述交易请求;
交易模块,用于若通过所述记账节点验证的所述交易请求的数量超过预设阈值,则完成所述交易请求在所述区块链网络中共识,并达成数据资产拥有端和所述数据资产购买端数字资产的交易;
广播模块,还用于所述主节点在所述区块链网络中向各记账节点广播所述交易请求的步骤之后:
所述主节点对所述交易请求封装并签名得到第一消息,并将所述第一消息向所述区块链网络中进行第一广播;
响应所述第一广播的所述记账节点判断所述第一消息的有效性,在确定所述第一消息有效之后,所述记账节点对所述第一消息封装并签名后得到第二消息,并将所述第二消息向所述区块链网络中进行第二广播;
响应所述第二广播的所述记账节点判断所述第二消息的有效性,在确定所述第二消息的有效性之后,确定所述交易请求通过所述记账节点的验证。
8.一种基于区块链的数字资产交易设备,其特征在于,所述基于区块链的数字资产交易设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如权利要求1至6中任一项所述的基于区块链的数字资产交易方法的步骤。
9.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的基于区块链的数字资产交易方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211029718.4A CN115131022B (zh) | 2022-08-26 | 2022-08-26 | 基于区块链的数字资产交易方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211029718.4A CN115131022B (zh) | 2022-08-26 | 2022-08-26 | 基于区块链的数字资产交易方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115131022A CN115131022A (zh) | 2022-09-30 |
CN115131022B true CN115131022B (zh) | 2022-11-29 |
Family
ID=83387240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211029718.4A Active CN115131022B (zh) | 2022-08-26 | 2022-08-26 | 基于区块链的数字资产交易方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115131022B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116383875A (zh) * | 2023-03-22 | 2023-07-04 | 深圳市明源云科技有限公司 | 产权交易的数据处理方法、装置、设备及其存储介质 |
CN116797376B (zh) * | 2023-08-26 | 2023-12-01 | 杭州字节方舟科技有限公司 | 基于区块链的资产管理方法、系统、服务器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488665A (zh) * | 2015-11-25 | 2016-04-13 | 布比(北京)网络技术有限公司 | 一种去中心化的交易方法 |
CN111543026A (zh) * | 2018-12-13 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 分布式网络中进行主节点变更的系统 |
CN112488828A (zh) * | 2019-09-11 | 2021-03-12 | 富泰华工业(深圳)有限公司 | 基于区块链系统的商品交易装置、方法及可读存储介质 |
CN114730436A (zh) * | 2019-11-21 | 2022-07-08 | 松下电器(美国)知识产权公司 | 控制方法、装置、以及程序 |
CN114881648A (zh) * | 2021-04-15 | 2022-08-09 | 北京驱云科技有限公司 | 面向跨链资产置换场景的基于预言机的区块链互联方法和设备 |
-
2022
- 2022-08-26 CN CN202211029718.4A patent/CN115131022B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488665A (zh) * | 2015-11-25 | 2016-04-13 | 布比(北京)网络技术有限公司 | 一种去中心化的交易方法 |
CN111543026A (zh) * | 2018-12-13 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 分布式网络中进行主节点变更的系统 |
CN112488828A (zh) * | 2019-09-11 | 2021-03-12 | 富泰华工业(深圳)有限公司 | 基于区块链系统的商品交易装置、方法及可读存储介质 |
CN114730436A (zh) * | 2019-11-21 | 2022-07-08 | 松下电器(美国)知识产权公司 | 控制方法、装置、以及程序 |
CN114881648A (zh) * | 2021-04-15 | 2022-08-09 | 北京驱云科技有限公司 | 面向跨链资产置换场景的基于预言机的区块链互联方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115131022A (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109981679B (zh) | 在区块链网络中执行事务的方法和装置 | |
CN111343142B (zh) | 一种基于区块链网络的数据处理方法、装置及存储介质 | |
CN106453415B (zh) | 基于区块链的设备认证方法、认证服务器及用户设备 | |
CN109040029B (zh) | 在区块链中执行事务的方法和装置 | |
CN110661658B (zh) | 一种区块链网络的节点管理方法、装置及计算机存储介质 | |
CN110740044B (zh) | 数据处理方法、装置、系统和存储介质 | |
CN115131022B (zh) | 基于区块链的数字资产交易方法、装置、设备及介质 | |
CN110569251A (zh) | 一种数据处理方法、相关设备及计算机可读存储介质 | |
CN112750037B (zh) | 基于区块链的数据压缩、查询方法及装置和电子设备 | |
EP4216077A1 (en) | Blockchain network-based method and apparatus for data processing, and computer device | |
CN112613877B (zh) | 应用于区块链网络的智能合约触发方法、装置及相关设备 | |
CN111222109A (zh) | 一种区块链账户的操作方法、节点设备及存储介质 | |
CN110599275A (zh) | 一种基于区块链网络的数据处理方法、装置及存储介质 | |
WO2022206454A1 (zh) | 提供跨链消息的方法和装置 | |
CN109886695A (zh) | 不同区块链之间的信息共享方法及装置和电子设备 | |
CN110138767B (zh) | 事务请求的处理方法、装置、设备和存储介质 | |
CN111488626A (zh) | 基于区块链的数据处理方法、装置、设备及介质 | |
CN103516517A (zh) | 制作方法、rfid应答器、认证方法、和阅读器设备 | |
CN113179282A (zh) | 合并账号的方法、装置和服务器 | |
CN111597269A (zh) | 一种基于区块链的合约实现方法、装置及设备 | |
US20220058641A1 (en) | Device and method for processing data of transactions based on block chain, and storage medium | |
CN112037055B (zh) | 交易处理方法、装置、电子设备及可读存储介质 | |
CN114386983A (zh) | 场景化支付管理方法、系统、装置及可读存储介质 | |
CN113890739A (zh) | 跨区块链的认证方法、装置、电子设备及介质 | |
CN112037062A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |