基于区块链的代币交易方法及装置与流程

文档序号:15448641发布日期:2018-09-14 23:40阅读:268来源:国知局

本发明涉及区块链技术领域,具体涉及一种基于区块链的代币交易方法及装置。



背景技术:

区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。区块链技术以其去中心化的特点解决了传统的中介机制中的信任问题,为电子货币的流通提供了有效的技术保障。

基于区块链技术产生了各种形式的数字代币(下文简称为代币),这些代币能够作为虚拟货币进行流通,用以购买特定的物品。在现有技术中,为了管理代币的发行、流通、交易等,通常需要基于区块链开发一套智能合约,并基于该智能合约实现代币的管理。

但是,发明人在实现本发明的过程中发现:现有的用于管理代币的智能合约无法实现针对用户权限的有效监管。例如,在现有的代币管理方案中,任意两个用户之间都能够相互转账,这样至少存在如下两方面的缺陷:一方面,由于任意两个用户都能够互相转账,因此对系统的稳定性和安全性带来了一定的影响,势必存在安全隐患;另一方面,在监管政策较为严格的国家,这样的代币管理方案可能违背了监管政策的要求,进而无法上线运营。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于区块链的代币交易方法及装置、计算设备。

根据本发明的一个方面,提供了一种基于区块链的代币交易方法,其包括:当接收到第一交易用户基于预设的智能合约发起的代币交易时,确定所述代币交易中包含的第二交易用户;

根据所述智能合约查询所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态;

根据所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态确定是否执行所述代币交易;

其中,所述智能合约中包含用于设置各个交易用户的用户状态的状态设置入口。

可选地,其中,所述根据所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态确定是否执行所述代币交易的步骤具体包括:

判断所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态是否符合预设交易状态规则;

若是,则基于所述智能合约执行所述代币交易;若否,则拒绝所述代币交易。

可选地,其中,所述预设交易状态规则包括:

判断所述第一交易用户的第一用户状态或者所述第二交易用户的第二用户状态是否为预设的权限类状态;

若是,则确定所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态符合所述预设交易状态规则。

可选地,其中,所述预设交易状态规则包括:

判断所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态是否同为预设的可交易状态;

若是,确定所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态符合所述预设交易状态规则。

可选地,其中,所述方法进一步包括:通过所述状态设置入口设置各个交易用户的用户状态。

可选地,其中,所述用户状态包括:与合约所有权用户相对应的权限类状态、与合约使用权用户相对应的可交易状态以及不可交易状态;

其中,所述通过所述状态设置入口设置各个交易用户的用户状态的步骤具体包括:

分别针对每个交易用户,根据该交易用户的用户属性信息和/或地理位置信息设置该交易用户的用户状态。

可选地,其中,所述根据该交易用户的用户属性信息和/或地理位置信息设置该交易用户的用户状态的步骤具体包括:

根据该交易用户的用户属性信息和/或地理位置信息判断该交易用户是否为海外用户;

若是,设置该交易用户的用户状态为可交易状态;若否,设置该交易用户的用户状态为不可交易状态。

可选地,其中,所述智能合约中预存有与合约所有权用户相对应的权限密钥;

则所述通过所述状态设置入口设置各个交易用户的用户状态的步骤具体包括:

通过所述状态设置入口向所述智能合约发送状态设置请求,通过所述状态设置请求设置各个交易用户的用户状态;

其中,所述状态设置请求中包含密钥信息,以供所述智能合约验证该密钥信息与预存的所述权限密钥是否匹配,并根据验证结果确定所述状态设置请求是否合法。

可选地,其中,所述方法执行之前,进一步包括:

预先将所述智能合约的合约代码部署在服务器上,并且,在所述合约代码中预留作为所述状态设置入口的接口函数。

根据本发明的另一方面,提供了一种基于区块链的代币交易装置,其包括:第一确定模块,适于当接收到第一交易用户基于预设的智能合约发起的代币交易时,确定所述代币交易中包含的第二交易用户;

查询模块,适于根据所述智能合约查询所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态;

第二确定模块,适于根据所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态确定是否执行所述代币交易;

其中,所述智能合约中包含用于设置各个交易用户的用户状态的状态设置入口。

可选地,其中,所述第二确定模块具体适于:

判断所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态是否符合预设交易状态规则;

若是,则基于所述智能合约执行所述代币交易;若否,则拒绝所述代币交易。

可选地,其中,所述预设交易状态规则包括:

判断所述第一交易用户的第一用户状态或者所述第二交易用户的第二用户状态是否为预设的权限类状态;

若是,则确定所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态符合所述预设交易状态规则。

可选地,其中,所述预设交易状态规则包括:

判断所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态是否同为预设的可交易状态;

若是,确定所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态符合所述预设交易状态规则。

可选地,其中,所述装置进一步包括:设置模块,适于通过所述状态设置入口设置各个交易用户的用户状态。

可选地,其中,所述用户状态包括:与合约所有权用户相对应的权限类状态、与合约使用权用户相对应的可交易状态以及不可交易状态;

其中,所述通过所述设置模块具体适于:

分别针对每个交易用户,根据该交易用户的用户属性信息和/或地理位置信息设置该交易用户的用户状态。

可选地,其中,所述设置模块具体适于:

根据该交易用户的用户属性信息和/或地理位置信息判断该交易用户是否为海外用户;

若是,设置该交易用户的用户状态为可交易状态;若否,设置该交易用户的用户状态为不可交易状态。

可选地,其中,所述智能合约中预存有与合约所有权用户相对应的权限密钥;

则所述设置模块具体适于:

通过所述状态设置入口向所述智能合约发送状态设置请求,通过所述状态设置请求设置各个交易用户的用户状态;

其中,所述状态设置请求中包含密钥信息,以供所述智能合约验证该密钥信息与预存的所述权限密钥是否匹配,并根据验证结果确定所述状态设置请求是否合法。

可选地,其中,所述装置进一步包括:

部署模块,适于预先将所述智能合约的合约代码部署在服务器上,并且,在所述合约代码中预留作为所述状态设置入口的接口函数。

根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述基于区块链的代币交易方法对应的操作。

根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述基于区块链的代币交易方法对应的操作。

本发明提供的基于区块链的代币交易方法及装置中的智能合约包含用于设置各个交易用户的用户状态的状态设置入口,进而能够通过该状态设置入口设置各个交易用户的用户状态,相应地,在执行代币交易之前,根据代币交易所涉及的交易用户的用户状态确定能否执行该笔交易,从而实现了针对用户权限的有效监管。根据该方法,一方面,能够降低安全隐患,提升系统的安全性;另一方面,能够灵活适应不同的监管政策,从而确保对应方案的正常运营。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的基于区块链的代币交易方法的流程图;

图2示出了根据本发明另一个实施例的基于区块链的代币交易方法的流程图;

图3示出了根据本发明一个实施例的基于区块链的代币交易装置的功能框图;

图4示出了根据本发明一个实施例的一种计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的基于区块链的代币交易方法的流程图。如图1所示,基于区块链的代币交易方法具体包括如下步骤:

步骤s110,当接收到第一交易用户基于预设的智能合约发起的代币交易时,确定代币交易中包含的第二交易用户。

其中,本步骤既可以由客户端执行,也可以由服务器执行,本发明对本步骤的执行主体不做限定。具体地,可以针对接收到的每一笔代币交易均执行本步骤及后续步骤中的操作,以确保交易的安全性。或者,也可以仅针对接收到的特定类型的代币交易执行本步骤及后续步骤中的操作,例如,仅针对大额交易,以确保大额资金的安全。

第一交易用户为主动发起代币交易的用户。第二交易用户为该笔代币交易中所涉及的除第一交易用户之外的其他用户。第二交易用户的数量可以为一个或多个。例如,在多人转账的场景中,第二交易用户的数量可以为多个。

另外,代币交易的交易类型通常为转账类型,当然,也可以为其他类型,比如扣款类型等,本发明对代币交易的具体类型不做限定。

步骤s120,根据智能合约查询第一交易用户的第一用户状态以及第二交易用户的第二用户状态。

具体地,智能合约中包含用于设置各个交易用户的用户状态的状态设置入口,因而可以预先针对各个交易用户设置该用户所对应的用户状态。相应地,在本步骤中,根据智能合约查询第一交易用户的第一用户状态以及第二交易用户的第二用户状态。

步骤s130,根据第一交易用户的第一用户状态以及第二交易用户的第二用户状态确定是否执行该代币交易。

具体地,可以预先设置一套交易状态规则,在该规则中,规定哪些状态的用户之间可以相互交易。相应地,根据该交易状态规则确定该代币交易能否执行。

其中,交易状态规则可由本领域技术人员灵活设置。例如,可以将用户状态划分为多种状态类型:可交易状态、不可交易状态、待定状态等。交易状态规则可以制定为:当交易双方均为可交易状态时可进行交易;或者,当交易一方为可交易状态,另一方为待定状态时可进行交易等。总之,通过灵活制定规则,能够根据实际业务场景灵活调整用户之间的交易权限。

由此可见,本发明提供的基于区块链的代币交易方法中的智能合约包含用于设置各个交易用户的用户状态的状态设置入口,进而能够通过该状态设置入口设置各个交易用户的用户状态,相应地,在执行代币交易之前,根据代币交易所涉及的交易用户的用户状态确定能否执行该笔交易,从而实现了针对用户权限的有效监管。根据该方法,一方面,能够降低安全隐患,提升系统的安全性;另一方面,能够灵活适应不同的监管政策,从而确保对应方案的正常运营。

图2示出了根据本发明一个实施例的基于区块链的代币交易方法的流程图。如图2所示,基于区块链的代币交易方法具体包括如下步骤:

步骤s200,预先将智能合约的合约代码部署在服务器上,并且,在合约代码中预留作为状态设置入口的接口函数。

其中,智能合约是基于以太坊技术实现的一套电子合约,可以部署于虚拟的服务器上,用于实现与代币交易有关的操作流程。具体地,智能合约可用于实现代币的发行、交易等各类操作。

在本实施例中,为了便于控制各个交易用户的交易权限,在合约代码中预留有作为状态设置入口的接口函数,通过该接口函数,能够设置各个交易用户的用户状态,以控制各个交易用户的交易权限,从而实现灵活监管的目的。

步骤s210,通过状态设置入口设置各个交易用户的用户状态。

本步骤用于设置各个交易用户的用户状态,具体可预先执行,也可以在其他步骤之后更新用户状态,本发明对具体的执行时机不做限定。

在本实施例中,用户状态包括:与合约所有权用户相对应的权限类状态、与合约使用权用户相对应的可交易状态以及不可交易状态。具体地,合约所有权用户是指:创建上述智能合约的用户,其拥有针对该智能合约的管理权,相应地,该用户的用户状态为权限类状态。所谓权限类状态实质上是指一种特殊的最高权限。合约所有权用户是指:除上述合约所有权用户之外的、使用该智能合约实现各类代币交易的普通用户,其能够在遵循该智能合约的基础上使用该智能合约完成各类代币交易,相应地,该类用户的用户状态可能为可交易状态或不可交易状态,具体取决于该用户的用户属性信息和/或地理位置信息等因素。

具体地,为了实现去中心化的信任机制,区块链中的每个网络节点都具有对应的私钥或公钥,其中公钥是公开的,而私钥则是保密的。例如,网络节点a通过自身的私钥对一笔交易信息进行签名,然后其他网络节点通过网络节点a的公钥对该笔交易信息进行解密验证,从而验证该笔交易的真实性和有效性。在本实施例中,为了使合约所有权用户能够管理其他各个交易用户的用户状态,在智能合约中预存有与合约所有权用户相对应的权限密钥,该权限密钥主要是指合约所有权用户的公钥。相应地,在本步骤中,合约所有权用户能够通过上述状态设置入口向智能合约发送状态设置请求,通过该状态设置请求设置各个交易用户的用户状态。其中,该状态设置请求中包含密钥信息,以供智能合约验证该密钥信息与预存的权限密钥是否匹配,并根据验证结果确定该状态设置请求是否合法。具体地,状态设置请求中包含密钥信息可以为:通过合约所有权用户的私钥进行签名后的签名结果信息等各类与密钥相关的信息,相应地,智能合约通过预存的权限密钥验证状态设置请求中包含密钥信息是否为合约所有权用户发送的,从而验证状态设置请求的合法性。通过该种方式,能够有效避免其他用户冒充合约所有权用户篡改各个交易用户的用户状态,进而确保整套系统的安全性。

具体实施时,分别针对每个交易用户,根据该交易用户的用户属性信息和/或地理位置信息设置该交易用户的用户状态。其中,用户属性信息包括:用户基本信息(年龄、性别等)、用户类型信息(例如贵宾用户、普通用户)等,用户属性信息的具体内容可由本领域技术人员结合业务场景灵活设定。地理位置信息主要用于区分该用户所处的国家或地区,以便根据相应国家或地区的监管政策设置对应的用户状态。

例如,在一种可选的实现方式中,根据该交易用户的用户属性信息和/或地理位置信息判断该交易用户是否为海外用户;若是,设置该交易用户的用户状态为可交易状态;若否,设置该交易用户的用户状态为不可交易状态。考虑到我国目前监管政策较为严格,不允许普通用户之间直接实现转账交易,而海外用户则不受我国监管政策的限制,为此,在本实施例中,将海外用户的用户状态设置为可交易状态,将非海外用户的用户状态设置为不可交易状态。具体地,可通过一个状态位或状态参数来标识用户状态,例如,当状态位为1时表明为可交易状态,当状态位为0时表明为不可交易状态。另外,上文提到的权限类状态也可以通过2或其他数值来进行标识。

另外,本领域技术人员能够理解的是,在本发明其他的实施例中,用户状态的具体状态数量和状态值还可以根据实际情况进行灵活调整,例如,假设不同国家的监管政策多种多样,则相应地,还可以根据各国的监管政策,将用户状态设置为对应的状态值。

步骤s220,当接收到第一交易用户基于预设的智能合约发起的代币交易时,确定代币交易中包含的第二交易用户。

其中,本步骤既可以由客户端执行,也可以由服务器执行,本发明对本步骤的执行主体不做限定。具体地,可以针对接收到的每一笔代币交易均执行本步骤及后续步骤中的操作,以确保交易的安全性。或者,也可以仅针对接收到的特定类型的代币交易执行本步骤及后续步骤中的操作,例如,仅针对大额交易,以确保大额资金的安全。

第一交易用户为主动发起代币交易的用户。第二交易用户为该笔代币交易中所涉及的除第一交易用户之外的其他用户。第二交易用户的数量可以为一个或多个。例如,在多人转账的场景中,第二交易用户的数量可以为多个。

另外,代币交易的交易类型通常为转账类型,当然,也可以为其他类型,比如扣款类型等,本发明对代币交易的具体类型不做限定。

步骤s230,根据智能合约查询第一交易用户的第一用户状态以及第二交易用户的第二用户状态。

具体地,智能合约中包含用于设置各个交易用户的用户状态的状态设置入口,因而可以预先针对各个交易用户设置该用户所对应的用户状态。相应地,在本步骤中,根据智能合约查询第一交易用户的第一用户状态以及第二交易用户的第二用户状态。

步骤s240,判断第一交易用户的第一用户状态以及第二交易用户的第二用户状态是否符合预设交易状态规则,若是,执行步骤s250,若否,执行步骤s260。

其中,预设交易状态规则可由本领域技术人员灵活设置,在本实施例中,包括下述两种规则中的至少一种:

第一种预设交易状态规则为:判断第一交易用户的第一用户状态或者第二交易用户的第二用户状态是否为预设的权限类状态;若是,则确定第一交易用户的第一用户状态以及第二交易用户的第二用户状态符合预设交易状态规则。该规则的实质在于:任何用户都能够与权限类状态的用户(即合约所有权用户)进行交易,因此,只要第一交易用户和第二交易用户中的某一用户为合约所有权用户即可。

第二种预设交易状态规则为:判断第一交易用户的第一用户状态以及第二交易用户的第二用户状态是否同为预设的可交易状态;若是,确定第一交易用户的第一用户状态以及第二交易用户的第二用户状态符合预设交易状态规则。该规则的实质在于:只有当第一交易用户以及第二交易用户的用户状态均为可交易状态时,才允许该笔交易。具体到本例中,只有当两个普通用户均为海外用户时,二者才可以直接交易,若其中有一人为国内用户,则不可直接交易。当然,若监管政策有所松动,例如允许国内用户与海外用户直接交易,则相应地,该规则还可以为:判断第一交易用户的第一用户状态和/或第二交易用户的第二用户状态是否为预设的可交易状态;若是,确定第一交易用户的第一用户状态以及第二交易用户的第二用户状态符合预设交易状态规则。

上述的两种规则既可以单独使用,也可以结合使用,在本实施例中,将上述两种规则结合使用。具体实现时,可以先判断第一交易用户或第二交易用户是否为权限类状态,若是,则执行该笔交易,无需进行后续判断;若否,则进一步判断第一交易用户以及第二交易用户是否同为可交易状态,若是,则执行该笔交易,若否,则拒绝该笔交易。或者,也可以先判断第一交易用户以及第二交易用户是否同为可交易状态,若是,则执行该笔交易,若否,则进一步判断第一交易用户或第二交易用户是否为权限类状态,若是,则执行该笔交易,若否,则拒绝该笔交易。总之,本发明对具体判断逻辑的先后顺序不做限定。

步骤s250,基于智能合约执行该代币交易。

当判断出第一交易用户的第一用户状态以及第二交易用户的第二用户状态符合预设交易状态规则时,将自动地基于智能合约执行该代币交易。具体的交易细节取决于智能合约内部的设置方式。

步骤s260,拒绝该代币交易。

当判断出第一交易用户的第一用户状态以及第二交易用户的第二用户状态不符合预设交易状态规则时,将拒绝该代币交易。

具体实施时,上述步骤可以由客户端上安装的官方钱包类应用软件实施,相应地,当用户通过客户端发起一笔代币交易时,客户端将直接拒绝该笔代币交易,例如,当用户输入交易收款方之后,提交交易的入口变为不可点击状态,从而通过客户端阻止用户发起非法交易。或者,上述步骤也可以由用于运行智能合约的服务器实施,相应地,即使用户通过客户端发起了一笔不合规定的代币交易,服务器通过运行智能合约也可通过智能合约中的代码阻止该笔交易。可选地,上述步骤还可同时运行于客户端与服务器上,以便通过双重保障来提升交易的安全性,此时,即使用户通过破解手段利用客户端发起了非法交易,仍然能够由运行智能合约的服务器识破并阻止该非法交易。并且,由于区块链为去中心化的系统,因此,非法交易将被其他网络节点拒绝从而无法生效,进而能够有效防止非法交易的运行。

由此可见,本实施例通过在智能合约中设置状态设置入口,并且为合约所有权用户赋予特殊的权限,能够灵活控制各个交易用户的用户状态,从而能够使整套系统灵活满足各类政策法规的要求,即使政策法规出现调整,也无需重新设置整套智能合约,只需通过状态设置入口适应性修改用户状态即可,因此具有适应性强、易于调整的优势。另外,由于整套智能合约基于去中心化的以太坊技术实现,因此,每一笔交易都需要经过其他各个节点的验证,从而能够最大可能地保证交易的可靠性。

图3示出了根据本发明一个实施例的基于区块链的代币交易装置的功能框图。如图3所示,所述装置包括:

第一确定模块33,适于当接收到第一交易用户基于预设的智能合约发起的代币交易时,确定所述代币交易中包含的第二交易用户;

查询模块34,适于根据所述智能合约查询所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态;

第二确定模块35,适于根据所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态确定是否执行所述代币交易;

其中,所述智能合约中包含用于设置各个交易用户的用户状态的状态设置入口。

可选地,其中,所述第二确定模块35具体适于:

判断所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态是否符合预设交易状态规则;

若是,则基于所述智能合约执行所述代币交易;若否,则拒绝所述代币交易。

可选地,其中,所述预设交易状态规则包括:

判断所述第一交易用户的第一用户状态或者所述第二交易用户的第二用户状态是否为预设的权限类状态;

若是,则确定所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态符合所述预设交易状态规则。

可选地,其中,所述预设交易状态规则包括:

判断所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态是否同为预设的可交易状态;

若是,确定所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态符合所述预设交易状态规则。

可选地,其中,所述装置进一步包括:设置模块32,适于通过所述状态设置入口设置各个交易用户的用户状态。

可选地,其中,所述用户状态包括:与合约所有权用户相对应的权限类状态、与合约使用权用户相对应的可交易状态以及不可交易状态;

其中,所述通过所述设置模块32具体适于:

分别针对每个交易用户,根据该交易用户的用户属性信息和/或地理位置信息设置该交易用户的用户状态。

可选地,其中,所述设置模块32具体适于:

根据该交易用户的用户属性信息和/或地理位置信息判断该交易用户是否为海外用户;

若是,设置该交易用户的用户状态为可交易状态;若否,设置该交易用户的用户状态为不可交易状态。

可选地,其中,所述智能合约中预存有与合约所有权用户相对应的权限密钥;

则所述设置模块32具体适于:

通过所述状态设置入口向所述智能合约发送状态设置请求,通过所述状态设置请求设置各个交易用户的用户状态;

其中,所述状态设置请求中包含密钥信息,以供所述智能合约验证该密钥信息与预存的所述权限密钥是否匹配,并根据验证结果确定所述状态设置请求是否合法。

可选地,其中,所述装置进一步包括:

部署模块31,适于预先将所述智能合约的合约代码部署在服务器上,并且,在所述合约代码中预留作为所述状态设置入口的接口函数。

图4示出了根据本发明一个实施例的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。

如图4所示,该计算设备可以包括:处理器(processor)402、通信接口(communicationsinterface)404、存储器(memory)406、以及通信总线408。

其中:

处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。

通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器402,用于执行程序410,具体可以执行上述基于区块链的代币交易方法实施例中的相关步骤。

具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。

处理器402可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序410具体可以用于使得处理器402执行以下操作:

当接收到第一交易用户基于预设的智能合约发起的代币交易时,确定所述代币交易中包含的第二交易用户;

根据所述智能合约查询所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态;

根据所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态确定是否执行所述代币交易;

其中,所述智能合约中包含用于设置各个交易用户的用户状态的状态设置入口。

在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:

判断所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态是否符合预设交易状态规则;

若是,则基于所述智能合约执行所述代币交易;若否,则拒绝所述代币交易。

在一种可选方式中,其中,所述预设交易状态规则包括:

判断所述第一交易用户的第一用户状态或者所述第二交易用户的第二用户状态是否为预设的权限类状态;

若是,则确定所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态符合所述预设交易状态规则。

在一种可选方式中,其中,所述预设交易状态规则包括:

判断所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态是否同为预设的可交易状态;

若是,确定所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态符合所述预设交易状态规则。

在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:

通过所述状态设置入口设置各个交易用户的用户状态。

在一种可选方式中,所述用户状态包括:与合约所有权用户相对应的权限类状态、与合约使用权用户相对应的可交易状态以及不可交易状态;

在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:

分别针对每个交易用户,根据该交易用户的用户属性信息和/或地理位置信息设置该交易用户的用户状态。

在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:

根据该交易用户的用户属性信息和/或地理位置信息判断该交易用户是否为海外用户;

若是,设置该交易用户的用户状态为可交易状态;若否,设置该交易用户的用户状态为不可交易状态。

在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:

所述智能合约中预存有与合约所有权用户相对应的权限密钥;

则所述通过所述状态设置入口设置各个交易用户的用户状态的步骤具体包括:

通过所述状态设置入口向所述智能合约发送状态设置请求,通过所述状态设置请求设置各个交易用户的用户状态;

其中,所述状态设置请求中包含密钥信息,以供所述智能合约验证该密钥信息与预存的所述权限密钥是否匹配,并根据验证结果确定所述状态设置请求是否合法。

在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:

预先将所述智能合约的合约代码部署在服务器上,并且,在所述合约代码中预留作为所述状态设置入口的接口函数。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的视频数据实时处理的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明还公开了:a1.一种基于区块链的代币交易方法,包括:

当接收到第一交易用户基于预设的智能合约发起的代币交易时,确定所述代币交易中包含的第二交易用户;

根据所述智能合约查询所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态;

根据所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态确定是否执行所述代币交易;

其中,所述智能合约中包含用于设置各个交易用户的用户状态的状态设置入口。

a2.根据a1所述的方法,其中,所述根据所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态确定是否执行所述代币交易的步骤具体包括:

判断所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态是否符合预设交易状态规则;

若是,则基于所述智能合约执行所述代币交易;若否,则拒绝所述代币交易。

a3.根据a2所述的方法,其中,所述预设交易状态规则包括:

判断所述第一交易用户的第一用户状态或者所述第二交易用户的第二用户状态是否为预设的权限类状态;

若是,则确定所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态符合所述预设交易状态规则。

a4.根据a2或a3所述的方法,其中,所述预设交易状态规则包括:

判断所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态是否同为预设的可交易状态;

若是,确定所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态符合所述预设交易状态规则。

a5.根据a1-a4任一所述的方法,其中,所述方法进一步包括:通过所述状态设置入口设置各个交易用户的用户状态。

a6.根据a5所述的方法,其中,所述用户状态包括:与合约所有权用户相对应的权限类状态、与合约使用权用户相对应的可交易状态以及不可交易状态;

其中,所述通过所述状态设置入口设置各个交易用户的用户状态的步骤具体包括:

分别针对每个交易用户,根据该交易用户的用户属性信息和/或地理位置信息设置该交易用户的用户状态。

a7.根据a6所述的方法,其中,所述根据该交易用户的用户属性信息和/或地理位置信息设置该交易用户的用户状态的步骤具体包括:

根据该交易用户的用户属性信息和/或地理位置信息判断该交易用户是否为海外用户;

若是,设置该交易用户的用户状态为可交易状态;若否,设置该交易用户的用户状态为不可交易状态。

a8.根据a5-a7任一所述的方法,其中,所述智能合约中预存有与合约所有权用户相对应的权限密钥;

则所述通过所述状态设置入口设置各个交易用户的用户状态的步骤具体包括:

通过所述状态设置入口向所述智能合约发送状态设置请求,通过所述状态设置请求设置各个交易用户的用户状态;

其中,所述状态设置请求中包含密钥信息,以供所述智能合约验证该密钥信息与预存的所述权限密钥是否匹配,并根据验证结果确定所述状态设置请求是否合法。

a9.根据a1-a8任一所述的方法,其中,所述方法执行之前,进一步包括:

预先将所述智能合约的合约代码部署在服务器上,并且,在所述合约代码中预留作为所述状态设置入口的接口函数。

b10.一种基于区块链的代币交易装置,包括:

第一确定模块,适于当接收到第一交易用户基于预设的智能合约发起的代币交易时,确定所述代币交易中包含的第二交易用户;

查询模块,适于根据所述智能合约查询所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态;

第二确定模块,适于根据所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态确定是否执行所述代币交易;

其中,所述智能合约中包含用于设置各个交易用户的用户状态的状态设置入口。

b11.根据b10所述的装置,其中,所述第二确定模块具体适于:

判断所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态是否符合预设交易状态规则;

若是,则基于所述智能合约执行所述代币交易;若否,则拒绝所述代币交易。

b12.根据b11所述的装置,其中,所述预设交易状态规则包括:

判断所述第一交易用户的第一用户状态或者所述第二交易用户的第二用户状态是否为预设的权限类状态;

若是,则确定所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态符合所述预设交易状态规则。

b13.根据b11或b12所述的装置,其中,所述预设交易状态规则包括:

判断所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态是否同为预设的可交易状态;

若是,确定所述第一交易用户的第一用户状态以及所述第二交易用户的第二用户状态符合所述预设交易状态规则。

b14.根据b10-b13任一所述的装置,其中,所述装置进一步包括:设置模块,适于通过所述状态设置入口设置各个交易用户的用户状态。

b15.根据b14所述的装置,其中,所述用户状态包括:与合约所有权用户相对应的权限类状态、与合约使用权用户相对应的可交易状态以及不可交易状态;

其中,所述通过所述设置模块具体适于:

分别针对每个交易用户,根据该交易用户的用户属性信息和/或地理位置信息设置该交易用户的用户状态。

b16.根据b15所述的装置,其中,所述设置模块具体适于:

根据该交易用户的用户属性信息和/或地理位置信息判断该交易用户是否为海外用户;

若是,设置该交易用户的用户状态为可交易状态;若否,设置该交易用户的用户状态为不可交易状态。

b17.根据b14-b16任一所述的装置,其中,所述智能合约中预存有与合约所有权用户相对应的权限密钥;

则所述设置模块具体适于:

通过所述状态设置入口向所述智能合约发送状态设置请求,通过所述状态设置请求设置各个交易用户的用户状态;

其中,所述状态设置请求中包含密钥信息,以供所述智能合约验证该密钥信息与预存的所述权限密钥是否匹配,并根据验证结果确定所述状态设置请求是否合法。

b18.根据b10-b17任一所述的装置,其中,所述装置进一步包括:

部署模块,适于预先将所述智能合约的合约代码部署在服务器上,并且,在所述合约代码中预留作为所述状态设置入口的接口函数。

c19.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如a1-a9中任一项所述的基于区块链的代币交易方法对应的操作。

d20.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如a1-a9中任一项所述的基于区块链的代币交易方法对应的操作。

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