CN116308314A - 基于区块链的积分发行方法、装置和电子设备 - Google Patents
基于区块链的积分发行方法、装置和电子设备 Download PDFInfo
- Publication number
- CN116308314A CN116308314A CN202310134735.2A CN202310134735A CN116308314A CN 116308314 A CN116308314 A CN 116308314A CN 202310134735 A CN202310134735 A CN 202310134735A CN 116308314 A CN116308314 A CN 116308314A
- Authority
- CN
- China
- Prior art keywords
- issuing
- information
- points
- blockchain
- point
- 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.)
- Pending
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/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- 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/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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
- 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
- G06Q20/4014—Identity check for transactions
-
- 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)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种基于区块链的积分发行方法、装置和电子设备。该方法应用于区块链网络中的区块链节点,该方法包括:接收第一用户端发送的调用智能合约的交易请求,其中,交易请求包括积分发行端的签名信息和第一用户端的支付信息,签名信息表示积分发行端为第一用户端发行积分的积分发行信息;支付信息表示第一用户端支付的预设数量的费用给区块链节点;根据交易请求,调用智能合约中的积分发行逻辑根据积分发行信息为第一用户端发行积分。该方法在保证根据积分发行方的积分发行需求为用户端发行积分的前提下,无需积分发行方向区块链节点支付积分发行所消耗的费用,有利于节省积分发行方所消耗的费用。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于区块链的积分发行方法装置和电子设备。
背景技术
区块链技术是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案,是比特币、以太币等数字货币的底层技术。换句话说,区块链技术就指一种全民参与记账的方式。区块链上的交易确认由区块链上的所有节点共识完成,共识成功后打包写入区块。区块链维护一个公共的账本,用于存储区块链网络上所有交易。区块链2.0以以太坊为代表实现了更为复杂的分布式合约记录,即智能合约(smart contract)。智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约是一套以数字形式定义的承诺,承诺控制着数字资产并包含了合约参与者约定的权利和义务,由计算机系统自动执行。合约记录在区块链中,一旦满足了合约的触发条件,预定义的代码逻辑能够自主执行,执行后的结果上链不可更改。在区块链上对智能合约执行交易后,可以从区块链维护的账本中查询该交易所关联的数据,并对该交易所关联的数据进行分析,以获得交易的具体情况等。在基于区块链网络的业务模式下,用户可以通过向区块链网络提交业务交易的方式,触发区块链网络中的各节点通过智能合约执行业务。
随着区块链技术的发展,基于区块链技术向区块链的用户发行积分(例如但不限于,区块链中记录的账户中的积分),以实现对区块链的用户进行激励的积分发行模式逐步流行起来。传统技术中,积分发行方利用区块链中部署的智能合约向用户(又称为积分获取方)发行积分,需要积分发行方向区块链节点支付积分发行所消耗的费用(例如,汽油费)。基于此,采用上述技术方案,根据积分发行方的积分发行需求向区块链中的多个用户发行积分时,需要积分发行方向区块链节点支付大量的费用。
因此,亟需一种基于区块链的积分发行方法,该方法在保证根据积分发行方的积分发行需求为用户端发行积分的前提下,无需积分发行方向区块链节点支付积分发行所消耗的费用,有利于节省积分发行方所消耗的费用。
发明内容
本申请提供了一种基于区块链的积分发行方法、装置和电子设备,该方法在保证根据积分发行方的积分发行需求为用户端发行积分的前提下,无需积分发行方向区块链节点支付积分发行所消耗的费用,有利于节省积分发行方所消耗的费用。
本申请实施例第一方面提供了一种基于区块链的积分发行方法,应用于区块链网络中的区块链节点,所述区块链节点的用户包括第一用户端和积分发行端,所述区块链节点中部署的智能合约是所述积分发行端请求在所述区块链节点中创建的合约,所述方法包括:接收所述第一用户端发送的调用所述智能合约的交易请求,其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点;根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分。
本申请实施例第二方面提供了一种基于区块链的积分发行方法,应用于积分发行端,所述方法包括:生成所述积分发行端的签名信息,其中,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;发送所述积分发行端的签名信息,使得所述第一用户端根据获取到的所述积分发行端的签名信息向区块链节点发送调用智能合约的交易请求,以使所述区块链节点根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分;其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息,所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点,所述智能合约是所述积分发行端请求在所述区块链节点中创建的合约,所述区块链节点的用户包括所述第一用户端和所述积分发行端。
本申请实施例第三方面提供了一种基于区块链的积分发行方法,应用于第一用户端,所述方法包括:获取积分发行端的签名信息,其中,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;根据所述积分发行端的签名信息和所述第一用户端的支付信息,生成调用智能合约的交易请求,其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息;所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点;所述智能合约是所述积分发行端请求在所述区块链节点中创建的合约;所述区块链节点的用户包括所述第一用户端和所述积分发行端;向所述区块链节点发送调用所述智能合约的所述交易请求,以使所述区块链节点根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分。
本申请实施例第四方面提供了一种基于区块链的积分发行装置,应用于区块链网络中的区块链节点,所述区块链节点的用户包括第一用户端和积分发行端,所述区块链节点中部署的智能合约是所述积分发行端请求在所述区块链节点中创建的合约,所述装置包括:收发单元用于:接收所述第一用户端发送的调用所述智能合约的交易请求,其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点;处理单元用于:根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分。
本申请实施例第五方面提供了一种基于区块链的积分发行装置,应用于积分发行端,所述装置包括:处理单元用于:生成所述积分发行端的签名信息,其中,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;收发单元用于:发送所述积分发行端的签名信息,使得所述第一用户端根据获取到的所述积分发行端的签名信息向区块链节点发送调用智能合约的交易请求,以使所述区块链节点根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分;其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息,所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点,所述智能合约是所述积分发行端请求在所述区块链节点中创建的合约5,所述区块链节点的用户包括所述第一用户端和所述积分发行端。
本申请实施例第六方面提供了一种基于区块链的积分发行装置,应用于第一用户端,所述装置包括:收发单元用于:获取积分发行端的签名信息,其中,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;处理单元用于:根据所述积分发行端的签名信息和所述第一用户端的支付信息,生成调用智能合约的交易请求,其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息;所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点;所述智能合约是所述积分发行端请求在所述区块链节点中创建的合约;所述区块链节点的用户包括所述第一用户端和所述积分发行端;所述收发单元还用于:向所述区块链节点发送调用所述智能合约的所述交易请求,以使所述区块链节点根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分。
本申请实施例第七方面还提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其特征在于,该指令被处理器执行以实现上述任意一种技术方案所述的基于区块链的积分发行方法。
本申请实施例第八方面还提供一种电子设备,包括:处理器;以及存储器,用于存储数据处理程序,该服务器通电并通过所述处理器运行该程序后,执行如上所述的基于区块链的积分发行方法。
应当理解,本部分所描述的内容并非旨在标识本申请公开的实施例的关键或重要特征,也不用于限制本申请公开的范围。本申请公开的其它特征将通过以下的说明书而变得容易理解。
本申请实施例所提供的基于区块链的积分发行方法,应用于区块链网络中的区块链节点,该区块链节点的用户包括第一用户端和积分发行端,区块链节点中部署的智能合约是所述积分发行端请求在所述区块链节点中创建的合约,该方法包括:区块链节点接收第一用户端调用智能合约的交易请求,交易请求携带积分发行端的签名信息和第一用户端的支付信息,其中,该积分发行端的签名信息包括积分发行端向第一用户端发行积分的积分发行信息(即,积分发行端的积分发行需求);支付信息表示第一用户端支付的预设数量的费用给区块链节点。进一步,区块链节点接收到第一用户端调用智能合约的交易请求后,根据交易请求,调用智能合约中的积分发行逻辑根据积分发行信息为第一用户端发行积分。上述实现过程中,区块链节点接收到的第一用户端发送调用智能合约的交易请求携带第一用户端的支付信息,可以实现第一用户端向区块链节点支付区块链节点执行智能合约所消耗的费用的目的;区块链节点接收到的第一用户端发送调用智能合约的交易请求携带积分发行端的签名信息,可以实现区块链节点根据积分发行端的发行需求,调用区块链节点中的智能合约执行智能合约中的积分发行逻辑为第一用户端发行积分的目的。在上述实现过程中,是由第一用户端向区块链节点支付积分发行所消耗的费用。也就是说,上述实现过程中,无需积分发行方向区块链节点支付积分发行所消耗的费用,该方法可以节省积分发行方支付的费用。综上,该方法在保证根据积分发行方的积分发行需求为用户端发行积分的前提下,无需积分发行方向区块链节点支付积分发行所消耗的费用,有利于节省积分发行方所消耗的费用。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是适用于本申请实施例提供的基于区块链的积分发行方法的一种应用场景的示意图。
图2是适用于本申请实施例提供的基于区块链的积分发行方法的一种创建智能合约和调用智能合约的示意图。
图3是本申请实施例提供的一种基于区块链的积分发行方法的示意图。
图4是本申请实施例提供的另一种基于区块链的积分发行方法的示意图。
图5是本申请实施例提供的一种基于区块链的积分发行装置的结构示意图。
图6是本申请实施例提供的一种基于区块链的积分发行系统的结构示意图。
图7是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本领域的技术人员能够更好的理解本申请的技术方案,下面结合本申请实施例中的附图,对本申请进行清楚、完整地描述。但本申请能够以很多不同于上述描述的其他方式进行实施,因此,基于本申请提供的实施例,本领域普通技术人员在不经过创造性劳动的情况下,所获得的所有其他实施例,都应属于本申请保护的范围。
需要说明的是,本申请的权利要求书、说明书及附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,并不用于描述特定的顺序或先后次序。这样使用的数据在适当情况下是可以互换的,以便于本文所描述的本申请的实施例,能够以除了在本文图示或描述的内容以外的顺序实施。此外,术语“包括”、“具有”以及他们的变形形式,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解,首先对本申请实施例中涉及的技术术语进行介绍。
1,区块链(Block chain)
区块链,是指一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。这个链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的。这些服务器在区块链系统中被称为区块链节点(简称为节点),它们为整个区块链系统提供存储空间和算力支持。如果要修改区块链中的信息,必须征得半数以上节点的同意并修改所有节点中的信息,而这些节点通常掌握在不同的主体手中,因此篡改区块链中的信息是一件极其困难的事。相比于传统的网络,区块链具有两大核心特点:一是数据难以篡改、二是去中心化。基于这两个特点,区块链所记录的信息更加真实可靠,可以帮助解决人们互不信任的问题。
区块链一般被划分为三种类型:公有区块链(public block chains)、联盟区块链(consortium block chains)、私有区块链(private block chains)。其中,公有区块链的定义如下:世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。联盟区块链的定义如下:由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程(本质上还是托管记账,只是变成分布式记账,预选节点的多少,如何决定每个块的记账者成为该区块链的主要风险点),其他任何人可以通过该区块链开放的API进行限定查询。私有区块链的定义如下:仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限。
2,区块链账户
区块链账户三大要素包括:私有密钥(private key,简称私钥)、公开密钥(publickey,简称公钥)和账户区块链地址。
私钥和公钥是密码学里非对称加密算法的内容。公钥是可以公开的,而私钥则要进行安全保管。私钥是由随机种子生成的,公钥是将私钥通过算法推导出来。由于公钥太长,为了简便实用,就出现了“地址”,地址是公钥推导出来的。这些推导过程是单向不可逆的。也就是说,根据地址不能推出公钥,根据公钥不能推出私钥。
3,智能合约
智能合约本质上是一段程序,它能够在满足合约创建方事先约定好的条件的情况下自动执行。智能合约使得交易过程是确定的、交易结果是不可逆的,交易双方在没有第三方公证的情况下可以相互信赖。
在以太坊中,智能合约特指由外部账户或其他合约账号创建的在某个特定地址存在的代码和数据的集合。用户在使用高级语言(例如,如Solidity)编写智能合约后,需要将其编译为以太坊虚拟机(ethereum virtual machine,EVM)能够运行的字节码,并以发起交易的方式将其部署在以太坊上。在合约部署完成后,用户可以通过向合约地址发送交易调用智能合约中的方法,实现合约创建者事先设定的功能。智能合约中的方法必须经由交易调用才会执行,可以由外部账户发起的交易直接调用,也可以由其它合约账户触发的内部交易间接调用。虽然合约代码在部署后无法修改,但通过发起交易对合约执行EVM的操作码可以将合约代码删除。
4,以太坊(Ethereum)
以太坊是一个带有智能合约功能的公共区块链平台。通过以太坊提供的智能合约功能,开发者可以在区块链上构建各式各样的去中心化的应用。
以太坊是有账户的,以太坊的账户分为外部账户和合约账户这两种类型。其中,外部账户和比特币中的外部账户是类似的。外部账户可以理解为是由用户直接控制的账户,也称之为用户账户。其中,以太坊的合约账户是完成智能合约部署后生成的账户,在合约账户中存放了合约代码。合约账户则可以理解为是由用户通过外部账户创建的,包含智能合约代码的账户。
5,汽油费(gas fee)
区块链中的gas费,可以用于衡量区块链中的节点执行消息(例如,调用智能合约的交易)所消耗的计算资源和存储资源。支付给区块链中的节点的gas费,可以作为对该节点执行消息所消耗的计算资源和存储资源补偿。
6,共识机制
共识机制是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认。对区块链中的一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。常见的共识机制包括:工作量证明机制(proof of work,POW)、股权证明机制(proof of stake,POS)、实用拜占庭容错算法(practical byzantine faulttolerance,PBFT)等。
7,数字签名(digital signature)
数字签名,又称公钥数字签名。数字签名是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。
区块链比特币中利用数字签名来保证数据在整个系统中不可篡改,并保证交易双方的身份真实可靠。数字签名使用了非对称加密技术和数字摘要技术,保证了数据在传输过程中的完整性、发送者身份真实不可假冒。非对称加密技术会产生一个公钥(publickey)和一个私钥(privatekey),公钥和私钥是一对,私钥保存在所有者手中,需要对外人保密不可让外人知道,公钥可以向其他信息接收方公开。如果用私钥对数据加密只有公钥才能解密,相反公钥加密过的数据,只有对应的私钥才能解密。
区块链技术是构建在点对点(peer-to-peer,P2P)网络上,利用链式数据结构来验证与存储数据,利用分布式节点共识算法来生成和更新数据,利用密码学的方式保证数据传输和访问的安全,利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。在区块链中,通过发送交易(transaction)并使得由节点执行该交易,从而产生区块链中的共识数据。所述交易中可能包括对智能合约的调用,从而,在执行该交易时,通过执行智能合约而产生对世界状态的改变,所述世界状态例如包括账户余额、智能合约的存储变量等。
计算设备可将数据构建成区块链所支持的标准的交易格式,然后发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
区块链每产生一个最新区块,则在该最新区块中的交易被执行之后,区块链中这些被执行交易的对应状态会随之发生变化,例如,以账户模型构架的区块链(例如,以太坊)中,外部账户的状态或者智能合约的合约账户状态,通常也会随着交易的执行而发生相应的变化。外部账户就是由用户直接控制的账户,也称之为用户账户,合约账户则是由用户通过外部账户创建的,包含智能合约代码的账户。例如,当区块中的一笔“转账交易”执行完毕后,与该“转账交易”相关的转出方账户和转入方账户的余额(即这些账户的Balance字段的字段值),通常也会随之发生变化。又如,区块中的“智能合约调用交易”则用以调用区块链上部署的智能合约,在节点设备对应的EVM内调用上述智能合约以执行上述“智能合约调用交易”,并将执行上述智能合约调用交易后、智能合约账户的账户状态更新在该智能合约的账户中。
在实际应用中,不论是公有链、私有链还是联盟链,都可能提供智能合约(smartcontract)的功能。区块链上的智能合约是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑。以太坊作为一个可编程区块链,其核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,通过它可以实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,EVM直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”),所以部署在区块链上的智能合约可以是字节码。
随着区块链技术的发展,基于区块链技术向区块链的用户发行积分(例如但不限于,区块链中记录的账户中的积分),以实现对区块链用户进行激励的积分发行模式逐步流行起来。传统技术中,积分发行方利用区块链中部署的智能合约向用户发行积分,需要积分发行方向区块链节点支付积分发行所消耗的汽油费。具体来说,积分发行方根据积分发行需求(例如,积分发行需求包括待发行的用户信息和、待发行的积分数量等)调用区块链中部署的智能合约,以触发区块链中部署的智能合约执行积分发行需求对应的请求。上述积分发行过程中,由积分发行方调用区块链中部署的智能合约,这个调用过程需要积分发行方向区块链节点支付积分发行所消耗的费用(例如,汽油费)。基于此,采用上述技术方案,根据积分发行方的积分发行需求向区块链中的多个用户发行积分时,需要积分发行方向区块链节点支付大量的费用。
为解决上述存在的问题,本申请提供了一种基于区块链的积分发行方法、装置和电子设备。该方法在保证根据积分发行方的积分发行需求为用户端发行积分的前提下,无需积分发行方向区块链节点支付积分发行所消耗的费用,有利于节省积分发行方所消耗的费用。
下面,结合附图对适用于本申请实施例的基于区块链的积分发行方法的应用场景和基于区块链的积分发行方法进行详细说明。可以理解的是,本申请提供的各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
首先,结合附图介绍适用于本申请实施例的基于区块链的积分发行方法的应用场景。
图1是适用于本申请实施例提供的基于区块链的积分发行方法的一种应用场景的示意图。如图1所示,该应用场景中包括:区块链网络130、客户端110和客户端120。
示例性的,参见图1示出应用场景中的创建智能合约的流程,Bob将一笔包含创建智能合约信息的交易(transaction)1发送到区块链网络130后,区块链网络130包括的各区块链节点均可以在EVM中执行这笔交易。其中,图1示出的交易1的From字段用于记录发起创建智能合约的账户的地址,交易1的Data字段的字段值保存的合约代码可以是字节码,交易1的To字段的字段值为一个null(空)的账户。当区块链网络130包括的各个节点间通过共识机制达成一致后,交易1对应的智能合约成功创建在区块链网络130包的各个区块链节点上,后续用户可以调用交易1对应的智能合约。上述创建智能合约的交易1的Data字段保存的可以是该智能合约的字节码。字节码由一连串的字节组成,每一字节可以标识一个操作。基于开发效率、可读性等多方面考虑,开发者可以不直接书写字节码,而是选择一门高级语言编写智能合约代码。例如,高级语言可以采用诸如Solidity、Serpent、或LLL语言等。对于采用高级语言编写的智能合约代码,可以经过编译器编译,生成可以部署到区块链上的字节码。以Solidity语言为例,用其编写的合约代码与面向对象编程语言中的类(Class)很相似,在一个合约中可以声明多种成员,包括状态变量、函数、函数修改器、事件等。状态变量是永久存储在智能合约的账户存储(Storage)字段中的值,用于保存合约的状态。
智能合约创建后,区块链网络130包括的各个区块链节点本地会记录交易1对应的智能合约对应的合约账户(contract accounts),该合约账户对应一个特定的地址。示例性的,图1示出的区块链网络130包括的各节点本地记录的地址“0x68e13f…”,表示创建的交易1对应的智能合约的合约账户的地址;合约代码(Code)和账户存储(Storage)将保存在该合约账户的账户存储中。智能合约的行为由合约代码控制,而智能合约的合约账户存储则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和合约账户存储的虚拟账户。
示例性的,参见图1示出应用场景中的调用智能合约的流程,Alice将一笔包含调用智能合约信息的交易2发送到区块链网络130后,区块链网络130包括的各区块链节点均可以在EVM中执行这笔交易。其中,图1示出的交易2的From字段用于记录发起调用智能合约的账户的地址,To字段用于记录被调用的智能合约的地址,交易2的Data字段用于记录调用智能合约的方法和参数。调用智能合约后,合约账户的账户状态可能改变。后续,某个客户端可以通过接入的区块链网络130包括的任意一个节点查看合约账户的账户状态,例如,上述账户状态可以键-值(key-value)对的形式存储到智能合约的Storage树中。调用智能合约的交易的执行结果,可以是以交易收据(receipt)的形式,存储到默克前缀树(merklepatricia trie,MPT)收据树中。
智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
应理解,上述图1示出的应用场景仅为示意,并不对适用于本申请实施例提供的基于区块链的积分发行方法的应用场景构成任何限定。
图2是适用于本申请实施例提供的基于区块链的积分发行方法的一种创建智能合约和调用智能合约的示意图。
示例性的,参见图2,在区块链(例如,以太坊)中要创建一个智能合约,需要经过编写智能合约、变成字节码、部署到区块链等过程。区块链中调用智能合约,是发起一笔指向智能合约地址的交易,区块链包括的各个节点的EVM可以分别执行该交易,将智能合约代码分布式的运行在区块链包括的各个节点的虚拟机中。
对于区块链中的账户而言,通常会通过一个结构体,来维护账户的账户状态。当区块中的交易被执行后,区块链中与该交易相关的账户的状态通常也会发生变化。示例性的,以以太坊区块链为例,账户的结构体通常可以包括以下字段:Balance字段,Nonce字段,Code字段和Storage字段。其中:Balance字段,用于维护账户目前的账户余额。Nonce字段,用于维护该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击;Code字段,用于维护该账户的合约代码;在实际应用中,Code字段通常用于维护合约代码的hash值。Storage字段,用于维护该账户的存储内容(默认字段值为空);对于合约账户而言,通常会分配一个独立的存储空间,用以存储该合约账户的存储内容;该独立的存储空间通常称之为该合约账户的账户存储。合约账户的存储内容通常会构建成MPT树的数据结构存储在上述独立的存储空间之中;其中,基于合约账户的存储内容构建成的MPT树,通常也称之为Storage树。而Storage字段通常仅维护该Storage树的根节点;因此,Storage字段通常也称之为Storage Root字段。需说明的是,对于外部账户(externallyowned accounts)而言,上文所描述的Code字段和Storage字段的字段值均为空值。其中,外部账户由密钥控制。例如,外部账户可以是用户利用密钥创建的用户账户。
接下来,结合图附图介绍本申请实施例提供的基于区块链的积分发行方法。
图3是本申请实施例提供的一种基于区块链的积分发行方法的示意图。示例性的,图3示出的方法可以但不限于应用于上述图1示出的应用场景中,在图3示出的方法应用于上述图1示出的应用场景的情况下,图3所描述的积分发行端可以为图1示出的客户端110;图3所描述的第一用户端可以为图1示出的客户端120;图3所描述的区块链网络可以为图1示出的区块链节点130。如图3所示,基于区块链的积分发行方法包括S301至S305。下面,对S301至S305进行详细介绍。
在介绍图3示出的S301至S305之前,首先介绍执行本申请实施例所描述的基于区块链的积分发行方法的执行主体。参见图3所示,本申请实施例涉及的执行主体包括积分发行端、第一用户端和区块链网络中的区块链节点。其中,区块链节点的用户包括第一用户端和积分发行端,区块链节点中部署的智能合约是积分发行端请求在区块链节点中创建的合约。可选的,在执行S301至S305之前,在本申请实施例中还可以执行以下步骤:积分发行端和第一用户端向区块链节点进行注册,以成为该区块链节点的用户;积分发行端向区块链节点请求创建智能合约。可选的,在一些实现方式中,第一用户端和积分发行端称为区块链节点的用户后,该区块链节点中还会记录有第一用户端的账户和积分发行端的账户,其中,第一用户端的账户至少可以包括第一用户端的账户地址和第一用户端的账户余额,第一用户端的账户地址表示第一用户端位于区块链节点中的地址;积分发行端的账户至少可以包括积分发行端的账户地址和积分发行端的账户余额,积分发行端的账户地址表示积分发行端位于区块链节点中的地址。
对上述区块链网络包括的区块链节点的数目,以及区块链网络的类型不作具体限定。例如,上述区块链网络可以为图1示出的区块链网络130,上述区块链节点为区块链网络130中的节点1至节点6中的任意一个节点,即节点1至节点6中的任意一个节点具有上述区块链节点的功能。例如,上述区块链网络可以为公有链或联盟链等。上述第一用户端和积分发行端可以为任意类型的电子设备,例如第一用户端或积分发行端可以但不限于为以下任意一种设备:个人计算机、智能手机、平板电脑、或服务器等。
下面,举例描述积分发行端请求在区块链节点创建智能合约、以及区块链节点根据该创建请求在区块链节点中创建智能合约的步骤,其中,区块链节点为区块链网络中的任意一个区块链节点。在一些实现方式中,积分发行端请求在区块链节点创建智能合约,可以包括以下步骤:向区块链节点发送创建智能合约的创建请求,以使区块链节点根据创建请求创建智能合约;其中,创建请求包括积分发行端的地址信息和智能合约的合约代码,合约代码用于执行积分发行逻辑。相应的,区块链节点接收到上述创建智能合约的创建请求后,区块链网络中的各个节点可以根据创建请求创建智能合约。可选的,在一些实现方式中,区块链节点可以执行以下操作以创建智能合约:接收积分发行端发送的创建智能合约的创建请求;其中,创建请求包括积分发行端的地址信息和智能合约的合约代码,合约代码用于执行积分发行逻辑;根据创建请求,在区块链节点中部署智能合约。上述实现方式中,积分发行端的地址信息作为创建上述智能合约的来源地址信息。可选的,在一些实现方式中,区块链节点创建上述智能合约后,该区块链节点中还会记录有该智能合约的合约账户,其中,智能合约的合约账户可以包括:智能合约的合约代码、合约账户的地址、以及合约账户的余额。在一些实现方式中,上述积分发行端的地址信息表示积分发行端的账户的账户地址,其中,积分发行端的账户的账户地址是区块链节点中记录的账户地址。在一些实现方式中,所述智能合约的合约代码为字节码。
下面,对图3示出的S301至S305进行详细介绍。
S301,积分发行端生成积分发行端的签名信息,其中,签名信息表示积分发行端为第一用户端发行积分的积分发行信息。
积分发行端的签名信息表示积分发行端为第一用户端发行积分的积分发行信息。在一些实现方式中,签名信息具体包括积分发行信息和积分发行信息对应的签名信息,其中,积分发行信息对应的签名信息是积分发行端利用自己的私钥对积分发行信息进行数字签名获得的信息。可选的,在一些实现方式中,上述积分发行端的签名信息还可以仅包括积分发行信息。
积分发行信息用于表示积分发行端为第一用户端发行积分的发行情况,对积分发行信息包括的积分发行端为第一用户端发行积分的发行情况不作具体限定,可以根据积分发行端的积分发行需求进行设置。下面,描述本申请实施例提供的积分发行信息的示例。在一些实现方式中,上述区块链节点中记录第一用户端的账户;积分发行信息包括:预设数量的待发行积分和第一用户端的账户;签名信息具体包括:积分发行信息和积分发行信息对应的签名数据,其中,签名数据是积分发行端利用积分发行端的私钥针对积分发行信息生成的数字签名;支付信息具体包括:第一用户端的账户支付的预设数量的费用给区块链节点。对上述预设数量的待发行积分的来源不作具体限定。例如,预设数量的待发行积分为区块链中记录的账户中的积分,比如该区块链中记录的账户可以但不限于是积分发行端的账户。又如,预设数量的待发行积分为智能合约中的积分发行逻辑根据交易请求生成的积分,这种方式中,待发行积分是智能合约中的积分发行逻辑生成的。对上述预设数量不作限定,具体可以根据积分发行端的积分发行需求进行设置。例如,上述预设数量的待发行积分可以为5个待发行积分。可选的,在另一些实现方式中,所述积分发行信息还包括积分发行交易的到期时间,其中,所述积分发行交易的到期时间表示在所述积分发行交易的到期时间内将所述预设数量的待发行积分发行给所述第一用户端。对上述积分发行交易的到期时间不作具体限定,可以根据实际积分发行需求进行设置。例如,积分发行交易的到期时间可以表示一段预设时间段,或者积分发行交易的到期时间还可以表示一个具体的时间点。基于上述积分发行信息的两种具体实现方式,可选的,在执行上述S301之前,积分发行端还可以与所述区块链节点进行交互,以从区块链节点处获取所述第一用户端的账户。
在本申请实施例中,对上述S301所描述的“积分发行端生成积分发行端的签名信息”的实现方式不作具体限定。示例性的,下面,以积分发行端的签名信息包括积分发行信息和积分发行信息对应的签名数据为例,描述积分发行端生成积分发行端的签名信息的方法。其中,积分发行端生成积分发行端的签名信息,包括:积分发行端对积分发行信息进行哈希处理,获得摘要信息1;积分发行端利用积分发行端的私钥,采用非对称加密算法,对摘要信息1进行加密,获得积分发行信息对应的签名数据;积分发行端将积分发行信息和积分发行信息对应的签名数据打包生成积分发行端的签名信息。上述哈希处理还可以采用哈希算法,对哈希算法不作具体限定。例如,哈希算法可以但不限于是安全散列算法(securehash algorithm,SHA)。可以理解的是,积分发行端的私钥和积分发行端的公钥是一对公私钥,即利用积分发行端的私钥加密处理的信息,可以利用积分发行端的公钥进行解密;利用积分发行端的公钥加密处理的信息,可以利用积分发行端的私钥进行解密。积分发行端的私钥由积分发行端自己所拥有,积分发行端的公钥是一个公开的密钥。
对积分发行端生成积分发送端的签名信息的触发条件不作具体限定,可以根据实际需要确定该触发条件。例如,该触发条件可以是积分发行端确定需要为第一用户端发行积分,即在积分发行端确定需要为第一用户端发行积分的情况下,积分发行端执行上述S301。又如,积分发行端可以按照预设周期发送积分发行端的签名信息,以使用户端获取该积分发行端的签名信息。上述积分发行端可以为任意类型的电子设备,例如积分发行端可以但不限于为个人计算机、智能手机、平板电脑、或服务器等。
S302,积分发行端发送积分发行端的签名信息,使得第一用户端根据获取到的积分发行端的签名信息向区块链节点发送调用智能合约的交易请求,以使区块链节点根据交易请求,调用智能合约中的积分发行逻辑根据积分发行信息为第一用户端发行积分。相应的,第一用户端获取积分发行端的签名信息。
对积分发行端发送积分发行端的签名信息,使得第一用户端获取待积分发行端的签名信息的方式不作具体。换句说,积分发行端可以通过任何方式发送积分发行端的签名信息,以使第一用户端获取到该积分发行端的签名信息。例如,积分发行端可以直接向第一用户端发送积分发行端的签名信息。又如,积分发行端可以将积分发行端的签名信息发布至第三方平台(例如,网页或应用程序等),第一用户端通过访问该第三方平台以获取积分发行端的签名信息。需说明的是,图3示出的S302仅为示意,在积分发行端将积分发行端的签名信息发布至第三方平台以使第一用户端获取到该签名信息的实现方式中,图3中并未示出第三方平台。
执行上述S302,即积分发行端可以将积分发行端生成的签名信息成功发送给第一用户端,相应的,第一用户端会接收到积分发行端的签名信息。
S303,第一用户端根据积分发行端的签名信息和第一用户端的支付信息,生成调用智能合约的交易请求。
调用智能合约的交易请求包括积分发行端的签名信息和第一用户端的支付信息;支付信息表示第一用户端支付的预设数量的费用给区块链节点。在一些实现方式中,区块链节点中记录第一用户的账户,支付信息具体包括:所述第一用户端的账户支付的所述预设数量的费用给所述区块链节点。对上述第一用户端支付的预设数量的费用的类型不作具体限定。在一些实现方式中,上述预设数量的费用为预设数量的汽油费。对上述预设数量的费用不作具体限定,例如预设数量的费用可以为1个以太坊。可选的,在一些实现方式中,上述调用智能合约的交易请求还可以包括:作为交易请求的来源地址的第一用户端的地址信息,以及作为交易请求的目的地址的所述智能合约的合约地址。
对“第一用户端根据积分发行端的签名信息和第一用户端的支付信息,生成调用智能合约的交易请求”的实现方式不作具体限定。示例性的,第一用户端根据积分发行端的签名信息和第一用户端的支付信息,生成调用智能合约的交易请求,包括:第一用户端对积分发行端的签名信息和第一用户端的支付信息进行打包,生成调用智能合约的交易请求。
执行上述S303后,调用智能合约的交易请求包括积分发行端的签名信息和第一用户端的支付信息,其中,积分发行端的签名信息表示积分发行端为第一用户端发行积分的积分发行信息,支付信息表示第一用户端支付的预设数量的费用给区块链节点。
S304,第一用户端向区块链网络中的区块链节点发送调用智能合约的交易请求,以使区块链节点根据交易请求,调用智能合约中的积分发行逻辑根据积分发行信息为第一用户端发行积分。相应的,区块链节点接收到第一用户端发送的调用智能合约的交易请求。
上第一用户端向区块链网络中的区块链节点发送调用智能合约的交易请求的发送方式不作具体限定。例如,第一用户端可以是向区块链网络中的一个区块链节点发送调用智能合约的交易请求;该一个区块链节点接收到该调用智能合约的交易请求后,将该交易请求发送给该区块链网络中除该一个区块链节点以外的其他区块链节点。又如,第一用户端可以分别向区块链网络包括的每个区块节点发送调用智能合约的交易请求。
S305,区块链网络中的区块链节点根据交易请求,调用智能合约中的积分发行逻辑根据积分发行信息为第一用户端发行积分。
在本申请实施例中,根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分,包括:
在确定所述预设数量的费用满足所述区块链节点对应的预设支付要求,以及所述签名信息通过合法性校验的情况下,根据所述积分发行信息为所述第一用户端发行积分,其中,所签名信息通过合法性校验表示生成所述签名信息的签名者为所述积分发行端。上述实现方式中,在确定第一用户端发送的交易请求包括第一用户端的支付信息对应的支付费用符合区块链节点的支付要求,以及签名信息通过合法性校验的情况下,区块链节点会签名信息表示的积分发行信息触发智能合约中的积分发行逻辑为第一用户端发行积分。换句话说,在确定第一用户端发送的交易请求包括第一用户端的支付费用不符合区块链节点的支付要求,或者签名信息未通过合法性校验的情况下,区块链节点不会根据交易请求调用智能合约中的积分发行逻辑根据积分发行信息为第一用户端发行积分。上述预设数量的费用满足区块链节点对应的支付要求,即预设数量的费用不低于区块链节点对应的预设支付要求所要求支付的费用。上述所签名信息通过合法性校验表示生成签名信息的签名者为积分发行端,即上述签名信息所表示的积分发行信息是积分发行端生成的。换句话说,在传输过程中上述签名信息未被篡改,该签名信息是真实的、可靠的。
下面,介绍本申请实施例提供的“确定签名信息通过合法性校验”的方法。可选的,在一些实现方式中,上述签名信息具体包括:积分发行信息和积分发行信息对应的签名数据,其中,签名数据是积分发行端利用积分发行端的私钥针对积分发行信息生成的数字签名;在根据签名信息触发智能合约中的积分发行逻辑之前,方法还包括:调用智能合约中的积分发行逻辑,利用积分发行端公开的公钥对积分发行信息和积分发行信息对应的签名数据进行合法性校验,确定签名信息通过合法性校验,其中,私钥和公钥是一对公私钥对。其中,调用智能合约中的积分发行逻辑,利用积分发行端公开的公钥对积分发行信息和积分发行信息对应的签名数据进行合法性校验,确定签名信息通过合法性校验,可以包括以下步骤:调用智能合约中的积分发行逻辑利用积分发行端公开的公钥对积分发行信息对应的签名数据进行解密处理,获得该签名信息的摘要信息;在所述签名信息的摘要信息所指示的内容,与所述积分发行信息所指示的内容一致的情况下,确定签名信息通过合法性校验。需说明的是,本申请实施例所提供的根据积分发行信息生成积分发行端的签名信息,以及对该签名信息进行合法性校验的方法仅为示意并不构成任何限定。也就是说,还可以利用其它生成数字签名的方法根据积分发行信息生成该积分发行信息对应的签名信息,以及,还可以利用其它生成数字签名的方法对应的对数字签名进行合法性校验的方法,对积分发行信息对应的签名信息进行验证。
可选的,在一些实现方式中,上述区块链节点中记录第一用户端的账户;积分发行信息包括:预设数量的待发行积分和第一用户端的账户;签名信息具体包括:积分发行信息和积分发行信息对应的签名数据,其中,签名数据是积分发行端利用积分发行端的私钥针对积分发行信息生成的数字签名;支付信息具体包括:第一用户端的账户支付的预设数量的费用给区块链节点。基于上述实现方式中,在确定预设数量的费用满足区块链节点对应的预设支付要求,以及签名信息通过合法性校验的情况下,根据积分发行信息为第一用户端发行积分,包括:将预设数量的待发行积分发行给第一用户端的账户。上述实现方式中,在确定第一用户端支付给区块链节点的预设数量的费用满足区块链节点对应的支付要求,以及签名信息通过合法性校验的情况下,可以实现根据积分发行端的积分发行信息,将积分发行信息所指示的预设数量的待发行积分发行给第一用户端的账户的目的。
可选的,在另一些实现方式中,上述签名信息还包括第一用户端的账户对应的第一计数值,第一计数值表示第一用户端的账户调用智能合约中的积分发行逻辑以执行积分发行的交易序号;在将预设数量的待发行积分发行给第一用户端的账户之前,方法还包括:确定智能合约的合约账户中记录有第一计数值,其中,区块链节点中还记录合约账户;以及,将智能合约的合约账户中记录的第一计数值更新为第二计数值,其中,第二计数值与第一计数值等于预设阈值。上述实现方式中,在为第一用户端的账户发行预设数量的待发行积分之前,先将智能合约中记录的第一客户端对应的第一计数值更新为第二数据值,这种实现方式,可以有效防止智能合约根据交易请求重复执行交易请求所请求的交易,即可以有效防止重入攻击。上述第二计数值和第一计数值不同,即上述预设阈值非零。对第二计数值、第一计数值和预设阈值的取值不作具体限定。上述第一计数值表示第一用户端的账户调用智能合约中的积分发行逻辑以执行积分发行的交易序号。示例性的,在当前时刻之前的任意时刻若第一用户端的账户从来没有调用智能合约中的积分发行逻辑以执行积分发行,则上述第一计数值可以等于零,当上述第二计数值等于1,此时,预设阈值等于1。可选的,上述预设阈值还可以等于其他自然数,例如预设阈值可以等于2或3等。
可选的,在另一些实现方式中,上述积分发行信息还包括积分发行交易的到期时间,其中,积分发行交易的到期时间表示在积分发行交易的到期时间内将预设数量的待发行积分发行给第一用户端;在将预设数量的待发行积分发行给第一用户端的账户之前,方法还包括:确定当前时刻未超过积分发行交易的到期时间。上述实现方式中,积分发行信息还规定了积分发行交易的到期时间,区块链节点应该在积分发行交易的到期时间之前执行以下操作:调用智能合约中的积分发行逻辑,根据交易请求触发积分发行逻辑。可以理解的是,在当前时刻超过积分发行交易的到期时间的情况下,上述积分发行端的签名信息会处于过期状态,即根据该过期的签名信息无法触发智能合约中国的积分发行逻辑执行积分发行流程。基于此,在积分发行端的签名信息过期的情况下,积分发行端还可以生成新的签名信息,其中,新的签名信息可以包括积分发行端为第一用户端发行积分的新的积分发行信息,该新的积分发行信息可以包括上述预设数量的待发行积分、第一用户端的账户、以及新的积分发行交易的到期时间,且当前时刻未超过新的积分发行交易的到期时间;以及,向第一用户端发送新的签名信息。
在本申请实施例中,对预设数量的待发行积分的来源不作具体限定。下面,结合预设数量的待发行积分的来源,描述上述“将预设数量的待发行积分发行给第一用户端的账户”的实现方式。在一些实现方式中,预设数量的待发行积分为智能合约中的积分发行逻辑根据交易请求生成的积分,在将预设数量的待发行积分发行给第一用户端的账户之前,方法还包括:生成预设数量的待发行积分。这种实现方式中,预设数量的待发行积分是智能合约中的积分发行逻辑生成的。具体发行积分时是将该智能合约生成的积分转移给第一用户端的账户,以实现为第一用户端发行预设数量的待发行积分的目的。可选的,在另一些实现方式中,预设数量的待发行积分为区块链节点中记录的账户中的积分,将预设数量的待发行积分发行给第一用户端的账户,包括:将区块链节点中记录的账户中记录的预设数量的待发行积分,转移至第一用户端的账户。这种实现方式中,预设数量的待发行积分为区块链中记录的账户中的积分,具体发行积分时是将该账户中的积分转移给第一用户端的账户,以实现为第一用户端发行预设数量的待发行积分的目的。
应理解的是,上述图3所描述的基于区块链的积分发行方法仅为示意,并不对本申请提供的基于区块链的积分发行方法构成任何限定。例如,上述区块链节点中还可以部署除上述智能合约以外的其他智能合约,如该其他智能合约还可以用于执行拍卖流程。又如,上述区块链节点还可以接收多个第一用户端发送的上述交易请求,相应的,区块链节点还可以针对多个第一用户端中的每个第一用户端发送的交易请求执行上述S301至S305所描述的积分发行方法。
在本申请实施例中,积分发行端在区块链网络中的区块链节点中部署积分发行对应的智能合约,积分发行端可以发送生成的积分发行端的签名信息,以使第一用户端获取到该积分发行端的签名信息,其中,积分发行端的签名信息包括积分发行端向第一用户端发行积分的积分发行信息。第一用户端根据获取到的积分发行端的签名信息生成调用区块链中的智能合约的调用智能合约的交易请求,其中,该交易请求包括积分发行端的签名信息和所述第一用户端的支付信息,支付信息表示第一用户端支付的预设数量的费用给区块链节点。此后,由第一用户端向区块链节点发送调用区块链中的智能合约的交易请求,以调用区块链中部署的智能合约执行调用智能合约的交易请求所请求的积分颁发交易。上述实现过程中,第一用户端通过发送调用智能合约的交易请求携带第一用户端的支付信息,以实现第一用户端向区块链节点支付区块链节点执行智能合约所消耗的费用,第一用户端通过发送调用智能合约的交易请求携带积分发行端的签名信息,以实现区块链节点根据积分发行端的发行需求,调用区块链节点中的智能合约执行智能合约中的积分发行逻辑为第一用户端发行积分。在上述实现过程中,是由第一用户端向区块链节点支付积分发行所消耗的费用。也就是说,上述实现过程中,无需积分发行方向区块链节点支付积分发行所消耗的费用,该方法可以节省积分发行方支付的费用。综上,该方法在保证根据积分发行方的积分发行需求为用户端发行积分的前提下,无需积分发行方向区块链节点支付积分发行所消耗的费用,有利于节省积分发行方所消耗的费用。在上述实现方式中的积分发行信息包括第一计数值的实现方式中,上述基于区块链的积分方向方法还可以防止重入攻击,避免区块链节点根据交易请求重复调用智能合约执行对应的积分发行流程,还有利于节省区块链节点的资源。
下面,结合图4介绍本申请实施例提供的另一种基于区块链的积分发行方法。可以理解的是,图4所述描述的基于区块链的积分发行方法为上述图3所描述的基于区块链的积分发行方法的一个具体示例。具体来说,图4所描述的项目方为上述图3所描述的积分发行端的一个示例,图4所描述的用户1为上述图3所描述的第一用户端的一个示例,图4所描述的区块链为上述图3所描述区块链网络的一个示例,图4所描述的随机数1的取值等于值1为上述图3所描述的第一计数值的一个示例,以及图4所描述的随机数2的取值等于值2为上述图3所描述的第二计数值的一个示例。
图4是本申请实施例提供的另一种基于区块链的积分发行方法的示意图。应理解,图4的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图4的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。如图4所示,该基于区块链的积分发行方法包括S401至S410。下面,对S401至S410进行详细描述。
S401,用户1和项目方分别向区块链进行注册,获得用户1的账户1和项目方的账户2。
执行上述S401,用户1和项目方分别向区块链进行注册,包括:用户1向区块链发送注册信息1,其中,注册信息1用于指示区块链中的各个节点为用户1分配用户1的账户1;项目方向区块链发送注册信息2,其中,注册信息2用于指示区块链中的各个节点为项目方分配项目方的账户2;区块链中的各个节点根据注册信息1,在各个节点本地生成用户1的账户1;区块链中的各个节点根据注册信息2,在各个节点本地生成项目方的账户2。
用户1的账户1,即区块链包括的各个节点中记录的用户1的账户1。用户1的账户1可以记录有:用户1的账户地址和该用户1的账户余额1其中,账户内容1至少可以包括账户余额1,对该账户余额1不作具体限定,例如账户余额1可以等于零。
项目方的账户2,即区块链包括的各个节点中记录的项目方的账户2。项目方的账户2可以记录有:项目方的账户地址、以及该项目方的账户余额2,其中,账户余额2表示项目方的账户持有与目标任务关联的1000个积分。
在本申请实施例中,上述区块链至少包括两个节点,区块链包括的节点数目可以根据实际需求进行设置,对此不作具体限定。可选的,上述S401所描述的区块链还可以包括更多数据的区块链节点。例如,上述S401所描述的区块链可以是上述图1示出的区块链网络130,此时,区块链包括6个节点,分别为节点1至节点6。对区块链的类型不作具体限定。例如,上述区块链可以是公有链或联盟链等。
S402,项目方在区块链中创建智能合约A,并获得智能合约A的合约账户#1。
智能合约A中定义了积分交易规则。其中,积分交易规则用于根据目标用户的账户地址信息、项目方的账户的地址信息和积分发行数量,按照积分发行数量1将项目方的账户#2的地址信息中的积分发行数量1对应的积分转移至目标用户的账户,目标用户的账户为目标用户(例如,用户1)在区块链中进行注册后获得的账户(例如,用户1的账户1)。也就是说,上述智能合约A的合约账户中的合约代码用于实现上述积分交易规则所描述的积分发行流程。在一些实现方式中,上述智能合约A可以是按照ERC20标准生成的智能合约。
对项目方在区块链中创建上述智能合约A的实现方式不作具体限定。示例性的,项目方在区块链中创建智能合约A,可以包括以下步骤:项目方将创建智能合约A的交易发送给区块链,其中,智能合约A的交易包括项目方的账户2的地址、智能合约A的合约代码和数字签名1,智能合约A的合约代码用于实现上述积分交易规则,数字签名1是项目方利用上述私钥对智能合约A的交易进行数字签名处理获得的结果;区块链包括的各个节点接收到创建智能合约A的交易后,该各个节点通过共识机制达成一致后,在区块链中成功创建智能合约A。智能合约A创建后,区块链包括的各个节点中会记录智能合约A对应的合约账户#1,且合约账户#1拥有一个特定的地址,智能合约A的合约代码将保存在合约账户#1中。其中,合约账户#1还可以包括智能合约A的账户余额。智能合约A的行为由对应的合约代码控制。
在本申请实施例中,智能合约A对应的合约账户#1中记录有随机数1,其中,随机数1的取值用于表示从用户1的账户地址向区块链中部署的智能合约A申请积分颁发次数的计数值,对上述值1的取值不作具体限定。例如,在当前时刻用户1从未调用区块链中部署的智能合约A,以触发智能合约A中的积分交易规则为用户1的账户1执行对应的积分颁发的情况下,上述值1等于零。又如,在当前时刻,用户1已经执行过一次调用区块链中的智能合约A,以触发智能合约A中的积分交易规则为用户1的账户1执行对应的积分颁发的请开销,上述值1等于1。可以理解的是,区块链中的各个节点针对用户1的账户1对应的随机数1,每个节点会优先执行该每账户1对应的具有最小取值的随机数所指示的积分颁发交易。例如,部署在区块链中的节点的智能合约A的合约账户#1中记录的随机数1的取值等于0对应的交易1,以及随机数1的取值等于0对应的交易2,那么,该节点会先执行随机数1的取值等于0时所对应的交易1,然后该节点再执行随机数1的取值等于1时所对应的交易2。
需要说明的是,在完成将智能合约A部署在区块链上后,区块链可以为与该智能合约A对应的合约账户#1分配对应的公私钥对。即与该合约账户#1对应的管理方(即,部署智能合约A的各个节点)可以持有该公私钥对,其中的私钥可以用于对该管理方发起的交易进行数字签名处理,公钥则可以用于对签名进行验证。公钥可以在区块链中进行广播,相应的,区块链中的各个节点可以接收到该公钥。
S403,项目方根据积分发行信息1,生成签名信息1。
积分发行信息1包括:用户1的账户1、目标任务对应的积分发行数量1、以及随机数1的取值等于值1,签名信息1指示将项目方的账户2中的与目标任务对应的积分发行数量1关联的积分颁发给用户1的账户1。可选的,执行上述S403之前,项目方还可以通过访问区块链节点,以获得用户1的账户中包括的用户1的账户地址和随机数1。
签名信息1包括待签名数据1和签名数据1,其中,待签名数据1为积分发行信息1,签名数据1是项目方利用项目方自己的私钥对积分发行信息1进行数字签名后获得的结果。可以理解的是,签名数据1是利用项目方自己的私钥进行加密获得的,该签名数据1可以利用项目方公开的公钥进行解密以获得待签名数据1,其中,项目方自己的私钥和项目方公开的公钥是一对公私钥对。
对项目方根据积分发行信息1生成签名信息1的实现方式不作具体限定。在一些实现方式中,项目方根据积分发行信息1,生成签名信息1,包括:项目方对待签名数据1(即积分发行信息1)进行哈希处理,获得待签名数据1的摘要;项目方利用自己的私钥,采用非对称加密算法,对待签名数据1的摘要进行加密,获得数字签名1;项目方将待签名数据1和数字签名1打包生成签名信息1。
可选的,在另一些实现方式中,上述积分发行信息1还可以包括积分领取时间信息,其中,积分领取时间信息用于指示目标用户在预设时间段领取积分发行信息1所指示的积分。也就是说,在当前时刻超过积分领取时间信息所指示的时间的情况下,上述签名信息1处于失效状态,即在当前时刻根据该处于失效的签名信息1无法成功调用智能合约A执行智能合约A中定义的积分交易规则。
在本申请实施例中,对项目方执行上述S403的触发条件不作具体限定。示例性的,上述积分发行信息1是与目标任务关联的积分,即上述触发条件可以是目标用户执行完上述目标任务。这种实现方式中,执行上述S403,即响应于目标用户执行完目标任务,项目方根据积分发行信息1,生成签名信息1。示例性的,项目方还可以按照预设周期根据积分发行信息1生成签名信息1,这种实现方式中,无需要求目标用户执行目标任务。
S404,项目方将签名信息1发送给用户1。相应的,用户1接收到项目方发送的签名信息1。
对项目方将签名信息1发送给用户1的实现方式不作具体限定。示例性的,图4示出了项目方直接将签名信息1发送给用户1的流程。可选的,在另一些实现方式中,项目方还可以将生成的签名信息1发布至第三方平台,用户1定期访问该第三方平台以获取签名信息1。
S405,用户1根据签名信息1生成调用请求1,调用请求1用于请求调用区块链中的智能合约A执行积分交易规则对应的积分颁发步骤,其中,调用请求1包括用户1的账户地址、智能合约A的合约地址和项目方发送的签名信息1。
其中,用户1根据签名信息1生成调用请求1,包括:用户1对调用请求1进行解析处理,获得签名信息1;用户1利用项目方公开的公钥对签名信息1进行验证,确定签名信息1通过验证,并获得签名信息1包括的签名数据1和待签名数据1包括的目标任务对应的积分发行数量1;用户1对签名数据1和目标任务对应的积分发行数量1进行打包,生成调用请求。可以理解的是,当用户1确定签名信息1通过验证,即用户1可以确定签名信息1是项目方发送的,且该签名信息1包括的数据在传输过程中未被其他第三方进行篡改,即该签名信息1是真实的、且可信任的。
可选的,在一些实现方式中,区块链中的每个节点执行用户发送调用该每个节点中的智能合约的交易时,需要该用户给该每个节点支付一定的GAS费,以使该每个节点成功根据该用户发送的交易触发该智能合约执行该交易对应的流程。这种实现方式中,上述S405所描述的调用请求1还包括:GAS费支付信息,其中,GAS费支付信息表示用户1支付一定的GAS费给区块链,以使区块链中部署智能合约A的各个节点根据调用请求1触发智能合约A执行智能合约A中的积分交易规则。
S406,用户1发送调用请求1给区块链,以调用区块链中的智能合约A执行智能合约A中的积分交易规则。相应的,区块链包括的各个节点接收到用户1发送的调用请求1。
S407,区块链包括的各个节点中的智能合约A对调用请求1进行验证,确定调用请求1是否通过验证。
在本申请实施例中,执行上述S407的流程和积分发行信息1包括的内容有关。下面,结合下述实现方式一所描述的积分发行信息1介绍本申请实施例提供的执行上述S407的一种实现方式(即实现方式一),以及结合下述实现方式二所描述的积分发行信息1介绍本申请实施例提供的执行上述S407的另一种实现方式(即实现方式二)。
实现方式一:
在实现方式一中,积分发行信息1包括:用户1的账户1、目标任务对应的积分发行数量1、以及随机数1的取值等于值1。
这种实现方式中,执行上述S407,即区块链包括的各个节点中的智能合约A对调用请求1进行验证,确定调用请求1是否通过验证,包括:每个节点对调用请求1进行解析,获得待签名数据1、签名数据1和用户1的账户地址;每个节点利用项目方公开的公钥对签名数据1进行解密处理,获得签名数据1的摘要信息,其中,签名数据1的摘要信息指示以下内容:用户1的账户地址、以及随机数1的取值等于值1;每个节点确定签名数据1的摘要信息所指示的用户1的账户地址,与调用请求1包括的用户1的账户地址是同一个账户;且签名数据1的摘要信息所指示的随机数1的取值与,每个节点记录的智能合约A的合约账户#1中记录的随机数1的取值相同,则确定调用请求1通过验证。
实现方式二:
在实现方式二中,积分发行信息1包括:用户1的账户1、目标任务对应的积分发行数量1、积分领取时间信息、以及随机数1的取值等于值1。
这种实现方式中,执行上述S407,即区块链包括的各个节点中的智能合约A对调用请求1进行验证,确定调用请求1是否通过验证,包括:每个节点对调用请求1进行解析,获得待签名数据1、签名数据1和用户1的账户地址;每个节点利用项目方公开的公钥对签名数据1进行解密处理,获得签名数据1的摘要信息,其中,签名数据1的摘要信息指示以下内容:预设领取时间信息、用户1的账户地址、以及随机数1的取值等于值1;每个节点确定签名数据1的摘要信息所指示的用户1的账户地址,与调用请求1包括的用户1的账户地址是同一个账户;确定签名数据1的摘要信息所指示的随机数1的取值与,每个节点记录的智能合约A的合约账户#1中记录的随机数1的取值相同;确定当前时刻未超过预设领取时间信息所指示的时间段,则确定调用请求1通过验证。
在本申请实施例中,执行上述S407后,在确定调用请求1通过验证的情况下,继续执行S408;或者,执行上述S407后,在确定调用请求1未通过验证的情况下,继续执行S410。
S408,区块链中的各个节点将智能合约A的合约账户#1中记录的随机数1的取值由值1更新为值2,其中,值2与值1的差值等于1。
执行上述S408后,区块链中的各个节点将智能合约A的合约账户#1中记录的随机数1的取值由值1更新为值2,其中,值2与值1的差值等于1,即执行上述S408后随机数1的取值会增加1,即执行上述S408后,区块链中的各个节点记录的智能合约A的合约账户#1中记录的随机数1的取值等于值2。执行上述S408的目的是为了防止重入攻击,即避免智能合约A重复执行调用请求1所请求的积分发行流程。示例性的,当上述S403中所描述的积分发行信息1中记录的随机数1的取值等于值1,且值1等于零的情况下,执行上述S408后,随机数1的取值等于1。
S409,区块链中的各个节点执行智能合约A中的积分交易规则,将调用请求1所请求的目标任务对应的积分发行数量1颁发给用户1的账户。
执行上述S409,即区块链中的智能合约A将调用请求1所请求的目标任务对应的积分发行数量1颁发给用户1的账户,包括:将项目方的账户2中记录的目标任务关联的积分数量减少积分发行数量1所指示的积分数量,并将项目方的账户2中减少的积分数量转移至用户1的账户,使得用户1的账户中记录的目标任务关联的积分数量增加积分发行数量1所指示的积分数量。
可以理解的是,执行上述S409后,项目方的账户2中记录的目标任务关联的积分数量减少积分发行数量1所指示的积分数量,用户1的账户中记录的目标任务关联的积分数量增加积分发行数量1所指示的积分数量。
S410,区块链中的各个节点不为用户1颁发调用请求1所请求的积分。
执行上述S407后,执行上述S410,即在调用请求1未通过验证的情况下,区块链中的各个节点不为用户1颁发调用请求1所请求的积分。
应理解的是,上述图4示出的基于区块链的积分发行方法仅为示意,并不对本申请提供的基于区块链的积分发行方法构成任何限定。例如,上述图4所描述的基于区块链的积分发行方法,以积分发行数量1所指示的积分为区块链中记录的项目方的账户中的积分为例进行了描述。可选的,上述积分发行数量1所指示的积分,还可以是智能合约A根据积分交易规则生成的积分,这种实现方式中,智能合约A中定义的积分交易规则还用于生成积分发行数量1所指示的积分数量。
在本申请实施例中,项目方在区块链中部署积分发行对应的智能合约A,项目方还可以向用户1发送签名信息(即,项目方链下发送签名信息),其中,签名信息1包括项目方向用户1颁发的积分发行需求(即,积分发行信息1)。用户1根据项目方发送的签名信息1生成调用区块链中的智能合约A的调用请求1,即用户1调用项目方在区块链创建的智能合约A的调用请求1中携带项目方发送的签名信息1。此后,由用户1调用区块链中的智能合约A,以调用区块链中部署的智能合约A执行调用请求1所请求的积分颁发交易。在上述用户1调用区块链中部署的智能合约A的调用过程中,若需要向区块链中的各个节点支付汽油费,则用户1调用区块链中的各个节点中部署的智能合约A的时候会向该各个节点支付汽油费,以调用区块链中部署的智能合约A执行调用请求1所请求的积分颁发交易。上述实现过程中,是由用户1向区块链中的各个节点支付积分发行所消耗的汽油费的,即无需项目方向区块链中的各个节点支付积分发行所消耗的汽油费,该方法可以节省项目方支付的汽油费。
上文,结合图1至图4详细介绍了本申请提供的基于区块链的积分发行方法适用的应用场景和基于区块链的积分发行方法。下面,结合图5至图7介绍本申请提供的基于区块链的积分发行装置、基于区块链的积分发行系统和电子设备。应理解,上文中基于区块链的积分发行方法与下文中基于区块链的积分发行装置、基于区块链的积分发行系统和电子设备相对应。下文中未详细描述的内容可以参见上述方法实施例中的相关描述。
图5是本申请实施例提供的一种基于区块链的积分发行装置的结构示意图。如图5所示,该装置包括收发单元501和处理单元501,
实现方式一,
在实现方式一中,图5示出的基于区块链的积分发行装置应用于区块链网络中的区块链节点,所述区块链节点的用户包括第一用户端和积分发行端,所述区块链节点中部署的智能合约是所述积分发行端请求在所述区块链节点中创建的合约。下面,介绍这种实现方式中,收发单元501的作用和处理单元502的作用。
所述收发单元501用于:接收所述第一用户端发送的调用所述智能合约的交易请求,其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点;所述处理单元502用于:根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分。
实现方式二,
在实现方式二中,图5示出的基于区块链的积分发行装置应用于积分发行端。下面,介绍这种实现方式中,收发单元501的作用和处理单元502的作用。
所述处理单元502用于:生成所述积分发行端的签名信息,其中,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;所述收发单元501用于:发送所述积分发行端的签名信息,使得所述第一用户端根据获取到的所述积分发行端的签名信息向区块链节点发送调用智能合约的交易请求,以使所述区块链节点根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分;其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息,所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点,所述智能合约是所述积分发行端请求在所述区块链节点中创建的合约,所述区块链节点的用户包括所述第一用户端和所述积分发行端。
实现方式三,
在实现方式三中,图5示出的基于区块链的积分发行装置应用于第一用户端。下面,介绍这种实现方式中,收发单元501的作用和处理单元502的作用。
所述收发单元501用于:获取积分发行端的签名信息,其中,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;处理单元502用于:根据所述积分发行端的签名信息和所述第一用户端的支付信息,生成调用智能合约的交易请求,其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息;所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点;所述智能合约是所述积分发行端请求在所述区块链节点中创建的合约;所述区块链节点的用户包括所述第一用户端和所述积分发行端;所述收发单元501还用于:向所述区块链节点发送调用所述智能合约的所述交易请求,以使所述区块链节点根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分。
图6是本申请实施例提供的一种基于区块链的积分发行系统的结构示意图。如图6所示,该系统包括积分发行端601、区块链网络中的区块链节点602和第一用户端603。
其中,积分发行端601用于执行上文所述的基于区块链的积分发行方法中的积分发行端或项目方执行的各个步骤,区块链网络中的区块链节点602用于执行上文所述的基于区块链的积分发行方法中的区块链节点执行的各个步骤,第一用户端603用于执行上文所述的基于区块链的积分发行方法中的第一用户端或用户1执行的各个步骤,此处未详细赘述的内容可以参见上文中的相关描述。
图7是本申请实施例提供的一种电子设备的结构示意图。如图7所示,包括存储器701、处理器702、通信接口703以及通信总线704。其中,存储器701、处理器702、通信接口703通过通信总线704实现彼此之间的通信连接。
存储器701可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器701可以存储程序,当存储器701中存储的程序被处理器702执行时,处理器702和通信接口703用于执行本申请实施例的基于区块链的积分发行方法的各个步骤。
处理器702可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的基于区块链的积分发行装置中的单元所需执行的功能,或者执行本申请实施例的基于区块链的积分发行方法的各个步骤。
处理器702还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请提供的基于区块链的积分发行方法的各个步骤可以通过处理器702中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器702还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器701,处理器702读取存储器701中的信息,结合其硬件完成本申请实施例的基于区块链的积分发行装置中包括的单元所需执行的功能,或者执行本申请方法实施例的基于区块链的积分发行方法。
通信接口703使用例如但不限于收发器一类的收发装置,来实现7图7所示的设备与其他设备或通信网络之间的通信。
通信总线704可包括在图7所示的设备各个部件(例如,存储器701、处理器702、通信接口703)之间传送信息的通路。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质包括计算机指令,计算机指令在被处理器执行时用于实现本申请实施例中任意一种基于区块链的积分发行方法的技术方案。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读介质上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本申请公开实施方式的方法。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储介质或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (25)
1.一种基于区块链的积分发行方法,其特征在于,应用于区块链网络中的区块链节点,所述区块链节点的用户包括第一用户端和积分发行端,所述区块链节点中部署的智能合约是所述积分发行端请求在所述区块链节点中创建的合约,所述方法包括:
接收所述第一用户端发送的调用所述智能合约的交易请求,其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点;
根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分。
2.根据权利要求1所述的方法,其特征在于,所述根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分,包括:
在确定所述预设数量的费用满足所述区块链节点对应的预设支付要求,以及所述签名信息通过合法性校验的情况下,根据所述积分发行信息为所述第一用户端发行积分,其中,所签名信息通过合法性校验表示生成所述签名信息的签名者为所述积分发行端。
3.根据权利要求2所述的方法,其特征在于,所述签名信息具体包括:所述积分发行信息和所述积分发行信息对应的签名数据,其中,所述签名数据是所述积分发行端利用所述积分发行端的私钥针对所述积分发行信息生成的数字签名;
在所述根据所述积分发行信息为所述第一用户端发行积分之前,所述方法还包括:
调用所述智能合约中的所述积分发行逻辑,利用所述积分发行端公开的公钥对所述积分发行信息和所述积分发行信息对应的签名数据进行合法性校验,确定所述签名信息通过所述合法性校验,其中,所述私钥和所述公钥是一对公私钥对。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述区块链节点中记录所述第一用户端的账户;
所述积分发行信息包括:预设数量的待发行积分和所述第一用户端的账户;
所述签名信息具体包括:所述积分发行信息和所述积分发行信息对应的签名数据,其中,所述签名数据是所述积分发行端利用所述积分发行端的私钥针对所述积分发行信息生成的数字签名;
所述支付信息具体包括:所述第一用户端的账户支付的所述预设数量的费用给所述区块链节点。
5.根据权利要求4所述的方法,其特征在于,所述在确定所述预设数量的费用满足所述区块链节点对应的预设支付要求,以及所述签名信息通过合法性校验的情况下,根据所述积分发行信息为所述第一用户端发行积分,包括:
将所述预设数量的待发行积分发行给所述第一用户端的账户。
6.根据权利要求5所述的方法,其特征在于,所述签名信息还包括所述第一用户端的账户对应的第一计数值,所述第一计数值表示所述第一用户端的账户调用所述智能合约中的积分发行逻辑以执行积分发行的交易序号;
在所述将预设数量的待发行积分发行给所述第一用户端的账户之前,所述方法还包括:
确定所述智能合约的合约账户中记录有所述第一计数值,其中,所述区块链节点中还记录所述合约账户;以及,
将所述智能合约的合约账户中记录的所述第一计数值更新为第二计数值,其中,所述第二计数值与所述第一计数值等于预设阈值。
7.根据权利要求5或6所述的方法,其特征在于,所述积分发行信息还包括积分发行交易的到期时间,其中,所述积分发行交易的到期时间表示在所述积分发行交易的到期时间内将所述预设数量的待发行积分发行给所述第一用户端;
在所述将预设数量的待发行积分发行给所述第一用户端的账户之前,所述方法还包括:
确定当前时刻未超过所述积分发行交易的到期时间。
8.根据权利要求5至7任一项所述的方法,其特征在于,所述预设数量的待发行积分为所述智能合约中的所述积分发行逻辑根据所述交易请求生成的积分,
在所述将预设数量的待发行积分发行给所述第一用户端的账户之前,所述方法还包括:
生成所述预设数量的待发行积分。
9.根据权利要求5至7任一项所述的方法,其特征在于,所述预设数量的待发行积分为所述区块链节点中记录的账户中的积分,
所述将预设数量的待发行积分发行给所述第一用户端的账户,包括:
将所述区块链节点中记录的账户中记录的所述预设数量的待发行积分,转移至所述第一用户端的账户。
10.根据权利要求1至9任一项所述的方法,所述方法还包括:
接收所述积分发行端发送的创建所述智能合约的创建请求;其中,所述创建请求包括所述积分发行端的地址信息和所述智能合约的合约代码,所述合约代码用于执行所述积分发行逻辑;
根据所述创建请求,在所述区块链节点中部署所述智能合约。
11.根据权利要求1至10任一项所述的方法,所述预设数量的费用为预设数量的汽油费。
12.一种基于区块链的积分发行方法,其特征在于,应用于积分发行端,所述方法包括:
生成所述积分发行端的签名信息,其中,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;
发送所述积分发行端的签名信息,使得所述第一用户端根据获取到的所述积分发行端的签名信息向区块链节点发送调用智能合约的交易请求,以使所述区块链节点根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分;其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息,所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点,所述智能合约是所述积分发行端请求在所述区块链节点中创建的合约,所述区块链节点的用户包括所述第一用户端和所述积分发行端。
13.根据权利要求12所述的方法,其特征在于,所述区块链节点中记录所述第一用户端的账户;
所述积分发行信息包括:预设数量的待发行积分和所述第一用户端的账户;
所述签名信息具体包括:所述积分发行信息和所述积分发行信息对应的签名数据,其中,所述签名数据是所述积分发行端利用所述积分发行端的私钥针对所述积分发行信息生成的数字签名;
所述支付信息具体包括:所述第一用户端的账户支付的所述预设数量的费用给所述区块链节点。
14.根据权利要求13所述的方法,其特征在于,
所述积分发行信息还包括积分发行交易的到期时间,其中,所述积分发行交易的到期时间表示在所述积分发行交易的到期时间内将所述预设数量的待发行积分发行给所述第一用户端。
15.根据权利要求12至14任一项所述的方法,其特征在于,在所述生成所述积分发行端的签名信息之前,所述方法还包括:
向所述区块链节点发送创建所述智能合约的创建请求,以使所述区块链节点根据所述创建请求创建所述智能合约;其中,所述创建请求包括所述积分发行端的地址信息和所述智能合约的合约代码,所述合约代码用于执行所述积分发行逻辑。
16.根据权利要求12至15任一项所述的方法,所述预设数量的费用为预设数量的汽油费。
17.一种基于区块链的积分发行方法,其特征在于,应用于第一用户端,所述方法包括:
获取积分发行端的签名信息,其中,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;
根据所述积分发行端的签名信息和所述第一用户端的支付信息,生成调用智能合约的交易请求,其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息;所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点;所述智能合约是所述积分发行端请求在所述区块链节点中创建的合约;所述区块链节点的用户包括所述第一用户端和所述积分发行端;
向所述区块链节点发送调用所述智能合约的所述交易请求,以使所述区块链节点根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分。
18.根据权利要求17所述的方法,其特征在于,所述区块链节点中记录所述第一用户端的账户;
所述积分发行信息包括:预设数量的待发行积分,以及,所述第一用户端的账户;
所述签名信息具体包括:所述积分发行信息和所述积分发行信息对应的签名数据,其中,所述签名数据是所述积分发行端利用所述积分发行端的私钥针对所述积分发行信息生成的数字签名;
所述支付信息具体包括:所述第一用户端的账户支付的所述预设数量的费用给所述区块链节点。
19.根据权利要求18所述的方法,其特征在于,
所述积分发行信息还包括积分发行交易的到期时间,其中,所述积分发行交易的到期时间表示在所述积分发行交易的到期时间内将所述预设数量的待发行积分发行给所述第一用户端。
20.根据权利要求17至19任一项所述的方法,所述预设数量的费用为预设数量的汽油费。
21.一种基于区块链的积分发行装置,其特征在于,应用于区块链网络中的区块链节点,所述区块链节点的用户包括第一用户端和积分发行端,所述区块链节点中部署的智能合约是所述积分发行端请求在所述区块链节点中创建的合约,所述装置包括:
收发单元用于:接收所述第一用户端发送的调用所述智能合约的交易请求,其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点;
处理单元用于:根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分。
22.一种基于区块链的积分发行装置,其特征在于,应用于积分发行端,所述装置包括:
处理单元用于:生成所述积分发行端的签名信息,其中,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;
收发单元用于:发送所述积分发行端的签名信息,使得所述第一用户端根据获取到的所述积分发行端的签名信息向区块链节点发送调用智能合约的交易请求,以使所述区块链节点根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分;其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息,所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点,所述智能合约是所述积分发行端请求在所述区块链节点中创建的合约,所述区块链节点的用户包括所述第一用户端和所述积分发行端。
23.一种基于区块链的积分发行装置,其特征在于,应用于第一用户端,所述装置包括:
收发单元用于:获取积分发行端的签名信息,其中,所述签名信息表示所述积分发行端为第一用户端发行积分的积分发行信息;
处理单元用于:根据所述积分发行端的签名信息和所述第一用户端的支付信息,生成调用智能合约的交易请求,其中,所述交易请求包括所述积分发行端的签名信息和所述第一用户端的支付信息;所述支付信息表示所述第一用户端支付的预设数量的费用给所述区块链节点;所述智能合约是所述积分发行端请求在所述区块链节点中创建的合约;所述区块链节点的用户包括所述第一用户端和所述积分发行端;
所述收发单元还用于:向所述区块链节点发送调用所述智能合约的所述交易请求,以使所述区块链节点根据所述交易请求,调用所述智能合约中的积分发行逻辑根据所述积分发行信息为所述第一用户端发行积分。
24.一种电子设备,其特征在于,包括:存储器和处理器、所述存储器和所述处理器耦合;
所述存储器用于存储一条或多条计算机指令;
所述处理器用于执行所述一条或多条计算机指令,以实现如权利要求1至20任意一项所述的方法。
25.一种计算机可读存储介质,其上存储有一条或多条计算机指令,其特征在于,该指令被处理器执行以实现如权利要求1至20任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310134735.2A CN116308314A (zh) | 2023-02-07 | 2023-02-07 | 基于区块链的积分发行方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310134735.2A CN116308314A (zh) | 2023-02-07 | 2023-02-07 | 基于区块链的积分发行方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116308314A true CN116308314A (zh) | 2023-06-23 |
Family
ID=86826549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310134735.2A Pending CN116308314A (zh) | 2023-02-07 | 2023-02-07 | 基于区块链的积分发行方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116308314A (zh) |
-
2023
- 2023-02-07 CN CN202310134735.2A patent/CN116308314A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110457875B (zh) | 基于区块链的数据授权方法及装置 | |
JP7364724B2 (ja) | ブロックチェーンIoT装置のためのオペレーティングシステム | |
JP7128111B2 (ja) | ブロックチェーンを介して資産関連活動を制御するシステム及び方法 | |
CN110473094B (zh) | 基于区块链的数据授权方法及装置 | |
CN109313685B (zh) | 区块链系统的加密应用 | |
TWI817232B (zh) | 自動化監控合同存在、有效性及/或效能的過程的電腦實現的方法及其系統、計算設備和電腦可讀取儲存媒體 | |
CN111026789B (zh) | 基于区块链的电子票据查询方法及装置、电子设备 | |
EP3961455A1 (en) | Data verification methods, apparatuses, and devices | |
CN110580412B (zh) | 基于链代码的权限查询配置方法及装置 | |
CN111047443B (zh) | 用户评分方法及装置、电子设备、计算机可读存储介质 | |
CN113037817B (zh) | 启动智能合约的方法及装置、电子设备、存储介质 | |
CN111639932B (zh) | 一种基于区块链的离线资源转移方法及装置 | |
CN110580245B (zh) | 隐私数据的共享方法及装置 | |
CN111241557B (zh) | 基于区块链的服务请求方法及装置 | |
CN111127021B (zh) | 基于区块链的服务请求方法及装置 | |
CN111738725B (zh) | 跨境资源转移真实性审核方法、装置及电子设备 | |
CN112883109B (zh) | 基于区块链的数字商品交易方法和装置 | |
CN112766854B (zh) | 基于区块链的数字商品交易方法和装置 | |
CN113114476A (zh) | 基于合约的隐私存证方法及装置 | |
CN111309745A (zh) | 虚拟资源处理方法、装置、电子设备及存储介质 | |
Zhang et al. | Cross-Chain Interoperability and Collaboration for Keyword-Based Embedded Smart Contracts in the Internet of Things | |
CN113034137A (zh) | 基于区块链的数据处理方法、装置及相关设备 | |
CN110458541B (zh) | 基于区块链的对象置换方法及装置 | |
Yang et al. | DOT-M: a dual Offline transaction scheme of central bank digital currency for trusted mobile devices | |
CN113536384B (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 |