CN111488353B - 业务数据区块链的智能合约实现方法及装置 - Google Patents

业务数据区块链的智能合约实现方法及装置 Download PDF

Info

Publication number
CN111488353B
CN111488353B CN202010271028.4A CN202010271028A CN111488353B CN 111488353 B CN111488353 B CN 111488353B CN 202010271028 A CN202010271028 A CN 202010271028A CN 111488353 B CN111488353 B CN 111488353B
Authority
CN
China
Prior art keywords
user
information
intelligent contract
tree
reward
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
Application number
CN202010271028.4A
Other languages
English (en)
Other versions
CN111488353A (zh
Inventor
吉建勋
杨慧
沈书航
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ruice Technology Co Ltd
Original Assignee
Beijing Ruice Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Ruice Technology Co Ltd filed Critical Beijing Ruice Technology Co Ltd
Priority to CN202010271028.4A priority Critical patent/CN111488353B/zh
Publication of CN111488353A publication Critical patent/CN111488353A/zh
Application granted granted Critical
Publication of CN111488353B publication Critical patent/CN111488353B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0239Online discounts or incentives
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

本申请公开了业务数据区块链的智能合约实现方法及装置,该方法中:区块链节点接收用户设备发送的智能合约调用请求;根据智能合约的调用请求,自动执行智能合约中的预定程序;智能合约调用所述区块链节点存储的用户操作数据,区块链节点采用链式结构和树形结构的方式,将用户操作上链;其中,链式结构用于存储用户操作数据,树形结构用于存储用户操作后的状态数据;树形结构包括状态树和关系树,状态树用于存储用户操作后的全局状态,关系树用于存储用户操作后全局状态之间的关系;发送智能合约调用响应给用户设备,以提示用户设备可以通过智能合约进行用户操作数据的查询。该方法通过调用一次智能合约,使得业务数据上链。

Description

业务数据区块链的智能合约实现方法及装置
技术领域
本发明涉及互联网大数据技术领域,公开一种业务数据区块链的智能合约实现方法及装置。
背景技术
目前,区块链技术是运用加密算法、共识机制等技术的分布式存储账本。随着区块链技术的运用,越来越多的互联网数据会存储在区块链上。
现有的区块链中,只能存储交易数据,交易数据包括转账方地址、接收方地址以及转账金额;但是各种业务数据(例如:存证数据、溯源数据、金融数据、旅游数据、搜索数据、自媒体数据、调研数据、广告数据、电商数据、社区数据、知识问答数据、知识付费数据、共享单车数据、招聘数据、生活服务数据、租房数据、投票数据、OTO数据(也称为线上到线下数据)、社交数据、点赞数据、评价数据、网约车数据等互联网相关数据)而言,也需要上链。
此外,现有智能合约分为各种功能单一的智能合约,且只能进行转账操作;不能满足业务数据上链的需求。
以上描述仅仅为了方便理解,并不应限定为本申请的现有技术。
发明内容
基于上述问题,本申请提供业务数据区块链的智能合约实现方法及装置,该方法,该方法通过调用一次智能合约,使得业务数据上链。
本申请第一方面公开了业务数据区块链的智能合约实现方法,所述方法包括:区块链节点接收用户设备发送的智能合约调用请求;
根据智能合约的调用请求,自动执行智能合约中的预定程序;
所述智能合约调用所述区块链节点存储的用户操作数据,区块链节点采用链式结构和树形结构的方式,将所述用户操作上链;其中,链式结构用于存储用户操作数据,树形结构用于存储用户操作后的状态数据;树形结构包括状态树和关系树,状态树用于存储用户操作后的全局状态,关系树用于存储用户操作后全局状态之间的关系;
发送所述智能合约调用响应给所述用户设备,以提示所述用户设备可以通过智能合约进行用户操作数据的查询。
在一种可能的实现方式中,所述智能合约自动执行时,执行以下一种或多种逻辑程序:
用户操作数据上链程序;
校验程序;
用户操作业务数据查询程序;
广告对应的查看奖励程序;
需求对应的接单奖励程序。
在一种可能的实现方式中,所述广告对应的查看奖励程序,具体包括:
所述区块链节点接收第一用户的广告发布操作,所述广告包括第一用户签名和广告奖励;
调用所述智能合约,所述智能合约对所述第一用户签名和所述广告奖励进行校验,校验通过后,所述智能合约存储所述广告,所述广告包括目标用户属性和广告内容;
接收第二用户的所述广告查看操作,所述广告查看操作包括第二用户签名;
所述智能合约基于所述第二用户签名,将所述广告奖励从智能合约转入到所述第二用户的用户地址;其中,若所述广告奖励为实体奖励,所述第二用户的数字账户以实体信息的状态树存储所述实体奖励;若所述广告奖励为积分奖励,所述第二用户的数字账户以积分信息的状态树存储所述积分奖励。
在一种可能的实现方式中,所述需求对应的接单奖励程序,具体包括:
所述区块链节点接收第三用户发送的需求发布操作,所述需求包括第三用户签名以及接单奖励;
调用所述智能合约,所述智能合约对所述第三用户签名和所述接单奖励进行校验,校验通过后,所述智能合约存储所述需求,所述需求还包括目标用户属性和需求内容;
接收第四用户针对所述需求的接单操作,所述需求的接单操作包括第四用户签名;
响应于所述第四用户对接单人属性的修改,将所述接单人属性修改为第四用户;且响应于所述第四用户对所述需求是否已完成属性的修改,将所述是否已完成属性修改为第四用户;且响应于所述第三用户针对所述接单操作的确认操作,所述接单的确认操作包括第三用户签名;所述需求包括接单人属性和所述是否已完成属性;
所述智能合约对所述需求接单操作的第四用户签名、所述接单人属性、所述是否已完成属性以及所述接单操作的确认操作中第三用户签名进行校验,校验通过后,所述智能合约将所述接单奖励从所述智能合约转入所述第四用户的用户地址。
在一种可能的实现方式中,所述状态树包括用户信息、实体信息以及积分信息中的一种或多种;所述关系树包括用户信息-积分信息、实体信息-用户信息以及实体信息-积分信息中的一种或多种;
用户信息、实体信息、积分信息、用户信息-积分信息、用户信息-实体信息、用户信息-用户操作、用户信息-消息信息、用户信息-积分信息、实体信息-用户信息以及实体信息-积分信息中的任意一种信息以数据表的形式存储在所述支持属性查询的数据库中,以便于用户根据所述数据表中的属性字段进行查询;其中,一种信息对应一种数据表,任意一种数据表中的任意一行对应一条信息,一种信息包括多行信息;所述支持属性查询的数据库包括关系数据库和内存数据库。
在一种可能的实现方式中,所述方法还包括:所述区块链节点接收第五用户的信息查询请求;
调研所述智能合约,所述智能合约确定所述信息查询中的属性字段,根据所述属性字段进行查询;
发送查询响应给所述第五用户,所述查询响应包括所述智能合约的查询结果。
在一种可能的实现方式中,所述数字账户包括用户信息、实体信息、积分信息、用户信息-积分信息、用户信息-实体信息、用户信息-用户操作以及用户信息-消息信息中的一种或多种;
所述关系树存储关系子树的树根,所述关系子树中叶子节点的value存储所述积分奖励或者实体奖励;或者
所述关系树叶子节点的value以数组或哈希表的方式,存储所述积分奖励或者实体奖励。
本申请第二方面公开了业务数据区块链的智能合约实现装置,业务数据区块链系统包括多个区块链节点,所述装置为区块链节点;其中,
区块链节点接收用户设备发送的智能合约调用请求;
根据智能合约的调用请求,自动执行智能合约中的预定程序;
所述智能合约调用所述区块链节点存储的用户操作数据,区块链节点采用链式结构和树形结构的方式,将所述用户操作上链;其中,链式结构用于存储用户操作数据,树形结构用于存储用户操作后的状态数据;树形结构包括状态树和关系树,状态树用于存储用户操作后的全局状态,关系树用于存储用户操作后全局状态之间的关系;
发送所述智能合约调用响应给所述用户设备,以提示所述用户设备可以通过智能合约进行用户操作数据的查询。
本申请第三方面提供一种计算机可读存储介质,该存储介质存储有计算机指令,该计算机指令被处理器执行时,实现如上所述任意一项技术方案。
本申请第四方面提供一种电子设备,该电子设备包括处理器,所述处理器用于执行如上所述任意一项技术方案。
本申请中通过调用一次智能合约,使得业务数据上链。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请公开了一种业务数据区块链的智能合约实现方法流程示意图;
图2为本申请公开了一种业务数据区块链的区块头结构示意图;
图3为本申请公开了一种业务数据区块链的智能合约实现设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请中的“第一”“第二”仅仅是便于理解,给技术词做区分,并不理解为先后,或作为限制性的理解。
为便于对本发明实施例的理解,下面将结合附图以具体实施例作进一步的解释说明,实施例并不构成对本发明实施例的限定。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。
而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。
基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备进行共识,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
在区块链领域,有一个重要的概念就是账户(Account);以以太坊为例,以太坊通常将账户划分为外部账户和合约账户两类;外部账户就是由用户直接控制的账户;而合约账户则是由用户通过外部账户创建的,包含合约代码的账户(即智能合约)。
当然,对于一些基于以太坊的架构而衍生出的区块链项目,还可以对区块链支持的账户类型,进行进一步的扩展,在本说明书中不进行特别限定。
对于区块链中的账户而言,通常会通过一个结构体,来维护账户的账户状态。当区块中的交易被执行后,区块链中与该交易相关的账户的状态通常也会发生变化。
以以太坊为例,账户的结构体通常包括Balance,Nonce,Code和storage等字段。其中:
Balance字段,用于维护账户目前的账户余额;
Nonce字段,用于该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击。
code字段,用于维护该账户的合约代码;在实际应用中,code字段中通常仅维护合约代码的hash值;因而,code字段通常也称之为codehash字段。对于外部账户而言,该字段为空值。
storage字段,用于维护该账户的存储(默认为空)。在实际应用中,storage字段仅维护基于账户的存储内容构建的MPT(Merkle Patricia Trie)树的根节点;因此,storage字段通常也称之为storageRoot字段。
其中,对于外部账户而言,以上示出的code字段和storage字段为空值。
而大多数区块链项目,通常都会使用Merkle树;或者,基于Merkle树的数据结构,来存储和维护数据。以以太坊为例,以太坊使用了MPT树(一种Merkle树变种),作为数据组织形式,用来组织和管理账户状态、交易信息等重要数据。
以太坊针对区块链中需要存储和维护的数据,设计了三颗MPT树,分别是MPT状态树、MPT交易树和MPT收据树。
MPT状态树,是区块链中所有账户的账户状态数据(state),组织成的MPT树;MPT交易树是区块中的交易数据(transaction),组织成的MPT树;MPT收据树,是区块中的交易执行完毕后生成的与每笔交易对应的交易收据(receipt),组织成的MPT树。以上示出的MPT状态树、MPT交易树和MPT收据树的根节点的hash值,都会被添加至区块头中。
其中,MPT交易树和MPT收据树,与区块相对应,每一个区块都有自己的MPT交易树和MPT收据树。而MPT状态树是一个全局的MPT树,并不与某一个特定的区块相对应,而是涵盖了区块链中所有账户的账户状态数据。
基于此,本说明书将不再具体阐述MPT交易树和MPT收据树的分级存储,而重点阐述MPT状态树的分级存储。
以上是现有的区块链中的存储结构说明,下面对本申请中的业务数据区块链的存储结构进行说明。
本说明书中的方法,如图1所示,所述实现方法应用于业务数据区块链系统中,所述业务数据区块链系统包括多个区块链节点;该方法包括S101-S104。
本说明书中的实体信息是指对客观事物的抽象,也指具体的客观事物,实体信息包括关联属性和非关联属性,关联属性是指属性值能够增减;用户信息是指用户的描述信息,用户信息包括用户地址;积分信息指用户发行的积分,是除了区块链上原生积分以外的积分信息,积分信息包括积分的名称、总量。
S101、区块链节点接收用户设备发送的智能合约调用请求。
S102、根据智能合约的调用请求,自动执行智能合约中的预定程序。
S103、所述智能合约调用所述区块链节点存储的用户操作数据,区块链节点采用链式结构和树形结构的方式,将所述用户操作上链;其中,链式结构用于存储用户操作数据,树形结构用于存储用户操作后的状态数据;树形结构包括状态树和关系树,状态树用于存储用户操作后的全局状态,关系树用于存储用户操作后全局状态之间的关系。
S104、发送所述智能合约调用响应给所述用户设备,以提示所述用户设备可以通过智能合约进行用户操作数据的查询。
在一个示例中,所述智能合约自动执行时,执行以下一种或多种逻辑程序:
用户操作数据上链程序;
校验程序;
用户操作业务数据查询程序;
广告对应的查看奖励程序;
需求对应的接单奖励程序。
在一个示例中,所述广告对应的查看奖励程序,具体包括:所述区块链节点接收第一用户的广告发布操作,所述广告包括第一用户签名和广告奖励;
调用所述智能合约,所述智能合约对所述第一用户签名和所述广告奖励进行校验,校验通过后,所述智能合约存储所述广告,所述广告包括目标用户属性和广告内容;
接收第二用户的所述广告查看操作,所述广告查看操作包括第二用户签名;
所述智能合约基于所述第二用户签名,将所述广告奖励从智能合约转入到所述第二用户的用户地址;其中,若所述广告奖励为实体奖励,所述第二用户的数字账户以实体信息的状态树存储所述实体奖励;若所述广告奖励为积分奖励,所述第二用户的数字账户以积分信息的状态树存储所述积分奖励。
在一个示例中,所述需求对应的接单奖励程序,具体包括:所述区块链节点接收第三用户发送的需求发布操作,所述需求包括第三用户签名以及接单奖励;
调用所述智能合约,所述智能合约对所述第三用户签名和所述接单奖励进行校验,校验通过后,所述智能合约存储所述需求,所述需求还包括目标用户属性和需求内容;
接收第四用户针对所述需求的接单操作,所述需求的接单操作包括第四用户签名;
响应于所述第四用户对接单人属性的修改,将所述接单人属性修改为第四用户;且响应于所述第四用户对所述需求是否已完成属性的修改,将所述是否已完成属性修改为第四用户;且响应于所述第三用户针对所述接单操作的确认操作,所述接单的确认操作包括第三用户签名;所述需求包括接单人属性和所述是否已完成属性;
所述智能合约对所述需求接单操作的第四用户签名、所述接单人属性、所述是否已完成属性以及所述接单操作的确认操作中第三用户签名进行校验,校验通过后,所述智能合约将所述接单奖励从所述智能合约转入所述第四用户的用户地址。
在一个示例中,所述状态树包括用户信息、实体信息以及积分信息中的一种或多种;所述关系树包括用户信息-积分信息、实体信息-用户信息以及实体信息-积分信息中的一种或多种;
用户信息、实体信息、积分信息、用户信息-积分信息、用户信息-实体信息、用户信息-用户操作、用户信息-消息信息、用户信息-积分信息、实体信息-用户信息以及实体信息-积分信息中的任意一种信息以数据表的形式存储在所述支持属性查询的数据库中,以便于用户根据所述数据表中的属性字段进行查询;其中,一种信息对应一种数据表,任意一种数据表中的任意一行对应一条信息,一种信息包括多行信息;所述支持属性查询的数据库包括关系数据库和内存数据库。
在一个示例中,所述方法还包括:所述区块链节点接收第五用户的信息查询请求;
调研所述智能合约,所述智能合约确定所述信息查询中的属性字段,根据所述属性字段进行查询;
发送查询响应给所述第五用户,所述查询响应包括所述智能合约的查询结果。
在一个示例中,所述数字账户包括用户信息、实体信息、积分信息、用户信息-积分信息、用户信息-实体信息、用户信息-用户操作以及用户信息-消息信息中的一种或多种;
所述关系树存储关系子树的树根,所述关系子树中叶子节点的value存储所述积分奖励或者实体奖励;或者
所述关系树叶子节点的value以数组或哈希表的方式,存储所述积分奖励或者实体奖励。
上述中的树形结构存储方式中实体信息和用户信息的关联关系;其中,一个实体信息对应一个或多个用户信息。
例如:在互联网的电子商务平台(如:淘宝、天猫、京东商城)上,一件商品,有多位不同用户购买;在互联网上的自媒体平台(如:微信、微博)上,一条自媒体数据,多位用户进行了点赞或评论;这类实体与用户之间的一对多关系,可以采用上述实体信息-用户信息的关联关系表达出来。不仅方便了业务数据上链,也方便了用户对业务数据进行查询。
在一个示例中,用户信息和积分信息的关联关系;其中,一个用户信息对应一个或多个积分信息。
此时,一位用户有可能拥有多种积分;例如:一位用户既拥有区块链上的原生积分,还拥有其他类型的积分。上述关联关系能够描述该用户与积分之间的一对多关系,同时也方便该用户查询。需要说明的是,在区块链系统中的用户,至少会拥有该区块链系统的原生积分;有可能拥有其他用户发行或者自己发行的积分。
在一个示例中,实体信息和积分信息的关联关系;其中,一个实体信息对应一个或多个积分信息。
此时,相当于在区块链上,实现了实体的证券化;例如:一件商品的所有权,对应一个积分,积分的转账对应该商品所有权的转移;一套房子的所有权,对应预定数量的积分,拥有积分的数量对应该房子的所有权比例,即拥有该房子出售或者租赁同比例的价款。
如上所述,用户信息(如:Account字段)、积分信息(如:Asset字段)、实体信息(如:Object字段)、实体信息-用户信息(如:Object-Account字段)、用户信息-积分信息(如:Account-Asset字段)、实体信息-积分信息(如:Object-Asset字段)中任意一种状态信息都可以采用MPT状态树来实现,各种MPT状态树的树根存储在区块头中。如图2所示,区块存储的用户操作(如:Action字段),和链上数据库存储的收据信息(如:Receipt字段)的MPT状态树的树根也存储在区块头中。
需要说明的是,区块链系统中的区块包括区块头和区块体,区块头存储的是摘要信息,区块体存储的是转账信息(也称交易信息)。本说明书中用户操作是存储在区块的区块体中,用户操作的摘要值(也称哈希值)存储在区块头中;本说明书中的树形结构(也称链上状态数据库的树形结构),链上状态数据库也是区块链系统存储的一部分,每个区块链节点都有链上状态数据库和区块,来存储本说明书中的业务数据。
在一个示例中,所述链上数据库采用支持属性查询的数据库或KV数据库,其中,所述支持属性查询的数据库包括关系数据库和内存数据库。
在一个示例中,所述用户信息和/或所述实体信息的属性类型包括关联属性和非关联属性;其中,所述关联属性的属性值根据所述用户操作数据自动增减。
在一个示例中,所述用户信息、所述实体信息、所述积分信息、所述实体信息-用户信息、所述用户信息-积分信息以及所述实体信息-积分信息中的任意一种信息被组织成MPT状态树;其中,所述MPT状态树是融合了前缀树Trie的树形结构的默克尔树Merkle变种,所述默克尔树Merkle为Merkle Patricia Tree状态树。
在一个示例中,所述用户信息、所述实体信息、所述积分信息、所述用户信息-所述积分信息、所述实体信息-所述积分信息以及所述实体信息-所述用户信息中的任意一种信息以数据表的形式存储在所述支持属性查询的数据库中,以便于用户根据所述数据表中的属性字段进行查询;其中,一种信息对应一种数据表,任意一种数据表中的任意一行对应一条信息,一种信息包括多行信息;所述支持属性查询的数据库包括关系数据库和内存数据库。
在一个示例中,所述用户信息、所述实体信息、所述积分信息、所述用户信息-所述积分信息、所述实体信息-所述积分信息以及所述实体信息-所述用户信息中的任意一种信息采用KV数据库存储,以键值对的方式进行存储。
在一个示例中,所述用户信息、所述实体信息、所述积分信息、所述实体信息-用户信息、所述用户信息-积分信息以及所述实体信息-积分信息中的任意一种信息被组织成MPT状态树;其中,任意一棵MPT状态树的树根存储在区块头中。
在一个示例中,关系树中叶子节点的value以哈希表或数组的方式存储用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息中的一种或多种。
在一个示例中,关系树的叶子节点的value用于存储关系子树的树根,所述关系子树存储用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息中的一种或多种,所述关系子树为默克尔树或MPT树。
上述中,采用MPT状态树的方式存储这些信息,用户可以通过地址信息进行查询;针对用户信息、积分信息和实体信息,直接采用用户地址、积分地址以及实体地址信进行信息查询;针对实体信息-用户信息、用户信息-积分信息以及实体信息-积分信息,分别采用实体地址、用户地址以及实体地址进行信息查询。
此外,用户地址可以根据用户公钥进行多次哈希运算得到;积分地址或实体地址,可以由创建积分或实体的用户操作来得到,例如:对该用户操作进行多次哈希运算,从得到的哈希值中选取预设位数的字符作为积分地址或实体地址。
在一个示例中,所述链上数据库采用支持属性查询的数据库,其中,所述链上数据库包括关系数据库和内存数据库。也就是,将用户信息、积分信息、实体信息、实体信息-用户信息、用户信息-积分信息、实体信息-积分信息中任意一种状态信息采用支持属性查询的数据库进行存储,关系数据库可以采用MySql,内存数据库可以采用MongoDB。
此时,采用支持属性查询的数据库,用户信息、积分信息、实体信息、实体信息-用户信息、用户信息-积分信息以及实体信息-积分信息,都可以采用对应的属性进行查询,相比于在区块链上用地址查询来说,属性查询的查询效率更高。同时,上述信息的MPT状态树根存储在区块头中,如图2所示。在实际的使用中,若上述任意一棵MPT状态树未使用,可以置为空。
本说明书中,用户信息、积分信息、实体信息、实体信息-用户信息、用户信息-积分信息以及实体信息-积分信息中任意一种信息被组织成MPT状态树的数据结构,也就是数据逻辑结构;采用的存储结构可以是KV数据库,例如:LevalDB数据库,也可以采用支持属性查询的MySql和MongoDB数据库,这些数据库是物理的存储结构。
本申请中通过调用一次智能合约,使得业务数据上链。
本说明书能够让业务数据上链,让业务数据的各种关联关系也能够上链;业务数据上链的好处包括但不限于真实可信、可溯源、数据权属归属于个人等。
此外,通过区块存储用户操作数据,链上状态数据库存储状态数据和状态关联数据,能够将业务数据的各种属性存储在区块链上,从而解决业务数据上链的问题;此外,链上状态数据库存储的状态数据和状态关联数据,也方便用户进行访问。
本说明书还公开了业务数据区块链的智能合约实现装置,业务数据区块链系统包括多个区块链节点,所述装置为区块链节点。
区块链节点接收用户设备发送的智能合约调用请求;
根据智能合约的调用请求,自动执行智能合约中的预定程序;
所述智能合约调用所述区块链节点存储的用户操作数据,区块链节点采用链式结构和树形结构的方式,将所述用户操作上链;其中,链式结构用于存储用户操作数据,树形结构用于存储用户操作后的状态数据;树形结构包括状态树和关系树,状态树用于存储用户操作后的全局状态,关系树用于存储用户操作后全局状态之间的关系;
发送所述智能合约调用响应给所述用户设备,以提示所述用户设备可以通过智能合约进行用户操作数据的查询。
上述装置实施例中与上述方法实施例中相同或相近之处可相互参见,在此不再赘述。
本说明书还公开了一种计算机可读存储介质,该存储介质存储有计算机指令,该计算机指令被处理器执行时,实现如上所述任意一项技术方案。
本说明书还公开了一种电子设备,该电子设备包括处理器,所述处理器用于执行如上所述任意一项技术方案。
与此同时,本申请还提供一种实体装置的实施例。
区块链节点,如图3,图3示出了一种计算机设备结构示意图,该计算机设备可以包括:处理器310、存储器320、输入/输出接口330、通信接口340和总线350。其中处理器340、存储器320、输入/输出接口330和通信接口340通过总线350实现彼此之间在设备内部的通信连接。
处理器310可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器320可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器320可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器320中,并由处理器310来调用执行。
输入/输出接口330用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口340用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线350包括一通路,在设备的各个组件(例如处理器310、存储器320、输入/输出接口330和通信接口340)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器310、存储器320、输入/输出接口330、通信接口340以及总线350,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的范围之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.业务数据区块链的智能合约实现方法,其特征在于,所述方法包括:
区块链节点接收用户设备发送的智能合约调用请求;
根据智能合约的调用请求,自动执行智能合约中的预定程序;
所述智能合约调用所述区块链节点存储的用户操作数据,区块链节点采用链式结构和树形结构的方式,将所述用户操作上链;其中,链式结构用于存储用户操作数据,树形结构用于存储用户操作后的状态数据;树形结构包括状态树和关系树,状态树用于存储用户操作后的全局状态,关系树用于存储用户操作后全局状态之间的关系;
发送所述智能合约调用响应给所述用户设备,以提示所述用户设备可以通过智能合约进行用户操作数据的查询;
所述智能合约自动执行时,执行以下一种或多种逻辑程序:
用户操作数据上链程序;
校验程序;
用户操作业务数据查询程序;
广告对应的查看奖励程序;
需求对应的接单奖励程序;
所述需求对应的接单奖励程序,具体包括:所述区块链节点接收第三用户发送的需求发布操作,所述需求包括第三用户签名以及接单奖励;调用所述智能合约,所述智能合约对所述第三用户签名和所述接单奖励进行校验,校验通过后,所述智能合约存储所述需求,所述需求还包括目标用户属性和需求内容;
接收第四用户针对所述需求的接单操作,所述需求的接单操作包括第四用户签名;响应于所述第四用户对接单人属性的修改,将所述接单人属性修改为第四用户;且响应于所述第四用户对所述需求是否已完成属性的修改,将所述是否已完成属性修改为第四用户;且响应于所述第三用户针对所述接单操作的确认操作,所述接单的确认操作包括第三用户签名;所述需求包括接单人属性和所述是否已完成属性;
所述智能合约对所述需求接单操作的第四用户签名、所述接单人属性、所述是否已完成属性以及所述接单操作的确认操作中第三用户签名进行校验,校验通过后,所述智能合约将所述接单奖励从所述智能合约转入所述第四用户的用户地址。
2.根据权利要求1所述的智能合约实现方法,其特征在于,所述广告对应的查看奖励程序,具体包括:
所述区块链节点接收第一用户的广告发布操作,所述广告包括第一用户签名和广告奖励;
调用所述智能合约,所述智能合约对所述第一用户签名和所述广告奖励进行校验,校验通过后,所述智能合约存储所述广告,所述广告包括目标用户属性和广告内容;
接收第二用户的广告查看操作,所述广告查看操作包括第二用户签名;
所述智能合约基于所述第二用户签名,将所述广告奖励从智能合约转入到所述第二用户的用户地址;其中,若所述广告奖励为实体奖励,所述第二用户的数字账户以实体信息的状态树存储所述实体奖励;若所述广告奖励为积分奖励,所述第二用户的数字账户以积分信息的状态树存储所述积分奖励。
3.根据权利要求1所述的智能合约实现方法,其特征在于,所述状态树包括用户信息、实体信息以及积分信息中的一种或多种;所述关系树包括用户信息-积分信息、实体信息-用户信息以及实体信息-积分信息中的一种或多种;
用户信息、实体信息、积分信息、用户信息-积分信息、用户信息-实体信息、用户信息-用户操作、用户信息-消息信息、用户信息-积分信息、实体信息-用户信息以及实体信息-积分信息中的任意一种信息以数据表的形式存储在支持属性查询的数据库中,以便于用户根据所述数据表中的属性字段进行查询;其中,一种信息对应一种数据表,任意一种数据表中的任意一行对应一条信息,一种信息包括多行信息;所述支持属性查询的数据库包括关系数据库和内存数据库。
4.根据权利要求3所述的智能合约实现方法,其特征在于,所述方法还包括:
所述区块链节点接收第五用户的信息查询请求;
调研所述智能合约,所述智能合约确定所述信息查询中的属性字段,根据所述属性字段进行查询;
发送查询响应给所述第五用户,所述查询响应包括所述智能合约的查询结果。
5.根据权利要求2所述的智能合约实现方法,其特征在于,所述数字账户包括用户信息、实体信息、积分信息、用户信息-积分信息、用户信息-实体信息、用户信息-用户操作以及用户信息-消息信息中的一种或多种;
所述关系树存储关系子树的树根,所述关系子树中叶子节点的value存储所述积分奖励或者实体奖励;或者
所述关系树叶子节点的value以数组或哈希表的方式,存储所述积分奖励或者实体奖励。
6.业务数据区块链的智能合约实现装置,其特征在于,业务数据区块链系统包括多个区块链节点,所述装置为区块链节点;其中,
区块链节点接收用户设备发送的智能合约调用请求;
根据智能合约的调用请求,自动执行智能合约中的预定程序;
所述智能合约调用所述区块链节点存储的用户操作数据,区块链节点采用链式结构和树形结构的方式,将所述用户操作上链;其中,链式结构用于存储用户操作数据,树形结构用于存储用户操作后的状态数据;树形结构包括状态树和关系树,状态树用于存储用户操作后的全局状态,关系树用于存储用户操作后全局状态之间的关系;
发送所述智能合约调用响应给所述用户设备,以提示所述用户设备可以通过智能合约进行用户操作数据的查询;
所述智能合约自动执行时,执行以下一种或多种逻辑程序:
用户操作数据上链程序;
校验程序;
用户操作业务数据查询程序;
广告对应的查看奖励程序;
需求对应的接单奖励程序;
所述需求对应的接单奖励程序,具体包括:所述区块链节点接收第三用户发送的需求发布操作,所述需求包括第三用户签名以及接单奖励;调用所述智能合约,所述智能合约对所述第三用户签名和所述接单奖励进行校验,校验通过后,所述智能合约存储所述需求,所述需求还包括目标用户属性和需求内容;
接收第四用户针对所述需求的接单操作,所述需求的接单操作包括第四用户签名;响应于所述第四用户对接单人属性的修改,将所述接单人属性修改为第四用户;且响应于所述第四用户对所述需求是否已完成属性的修改,将所述是否已完成属性修改为第四用户;且响应于所述第三用户针对所述接单操作的确认操作,所述接单的确认操作包括第三用户签名;所述需求包括接单人属性和所述是否已完成属性;
所述智能合约对所述需求接单操作的第四用户签名、所述接单人属性、所述是否已完成属性以及所述接单操作的确认操作中第三用户签名进行校验,校验通过后,所述智能合约将所述接单奖励从所述智能合约转入所述第四用户的用户地址。
7.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机指令,该计算机指令被处理器执行时,实现如权利要求1-5所述任意一项技术方案。
8.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于执行如权利要求1-5所述任意一项技术方案。
CN202010271028.4A 2020-04-08 2020-04-08 业务数据区块链的智能合约实现方法及装置 Active CN111488353B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010271028.4A CN111488353B (zh) 2020-04-08 2020-04-08 业务数据区块链的智能合约实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010271028.4A CN111488353B (zh) 2020-04-08 2020-04-08 业务数据区块链的智能合约实现方法及装置

Publications (2)

Publication Number Publication Date
CN111488353A CN111488353A (zh) 2020-08-04
CN111488353B true CN111488353B (zh) 2023-04-07

Family

ID=71794784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010271028.4A Active CN111488353B (zh) 2020-04-08 2020-04-08 业务数据区块链的智能合约实现方法及装置

Country Status (1)

Country Link
CN (1) CN111488353B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112800132B (zh) * 2021-01-12 2023-08-08 东北大学 一种电子档案的区块链存储方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197974A (zh) * 2017-12-12 2018-06-22 北京瑞卓喜投科技发展有限公司 基于区块链技术的积分处理方法及装置
CN109583891A (zh) * 2018-11-14 2019-04-05 咪咕文化科技有限公司 一种信息处理方法、装置及存储介质
CN110503429A (zh) * 2019-06-27 2019-11-26 布比(北京)网络技术有限公司 一种去中心化的内容交互方法及系统
CN110555728A (zh) * 2019-08-27 2019-12-10 北京艾摩瑞策科技有限公司 基于区块链向广告平台使用者发送奖励的方法及其装置
CN110602088A (zh) * 2019-09-11 2019-12-20 北京京东振世信息技术有限公司 基于区块链的权限管理方法及装置、设备和介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423945B (zh) * 2017-04-13 2020-12-29 葛武 基于区块链技术的智能能源交易管理系统及方法
US11468412B2 (en) * 2018-04-02 2022-10-11 Royal Bank Of Canada System and method for composite cryptographic transactions
CN108648015A (zh) * 2018-05-14 2018-10-12 合肥莫高雷网络科技有限责任公司 一种基于区块链智能合约的去中心化广告投放系统及其投放方法
CN108681943B (zh) * 2018-05-18 2022-07-12 百度在线网络技术(北京)有限公司 一种区块链网络的数据处理方法、装置、设备及存储介质
CN109523302A (zh) * 2018-10-19 2019-03-26 中链科技有限公司 基于区块链的广告推送方法、装置及计算设备
CN110232286B (zh) * 2019-06-24 2021-05-28 北京瑞策科技有限公司 一种应用智能合约的电商数据上链方法及其设备
CN110457319B (zh) * 2019-07-31 2020-09-08 阿里巴巴集团控股有限公司 区块链状态数据存储方法及装置、电子设备
CN110544097A (zh) * 2019-09-06 2019-12-06 杭州复杂美科技有限公司 智能合约版本控制、调用和升级方法、设备及存储介质
CN110585715A (zh) * 2019-09-29 2019-12-20 腾讯科技(深圳)有限公司 基于区块链的游戏数据处理方法、装置、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197974A (zh) * 2017-12-12 2018-06-22 北京瑞卓喜投科技发展有限公司 基于区块链技术的积分处理方法及装置
CN109583891A (zh) * 2018-11-14 2019-04-05 咪咕文化科技有限公司 一种信息处理方法、装置及存储介质
CN110503429A (zh) * 2019-06-27 2019-11-26 布比(北京)网络技术有限公司 一种去中心化的内容交互方法及系统
CN110555728A (zh) * 2019-08-27 2019-12-10 北京艾摩瑞策科技有限公司 基于区块链向广告平台使用者发送奖励的方法及其装置
CN110602088A (zh) * 2019-09-11 2019-12-20 北京京东振世信息技术有限公司 基于区块链的权限管理方法及装置、设备和介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"A Privacy-Aware PKI System Based on Permissioned Blockchains";Rong Wang 等;《 2018 IEEE 9th International Conference on Software Engineering and Service Science (ICSESS)》;20190311;第928-931页 *
"基于区块链的身份托管模型研究";邓小鸿 等;《计算机工程与应用》;20191119;第56卷(第4期);第24-30页 *
陈勇."支付方式与支付技术 从实物货币到比特币".《支付方式与支付技术 从实物货币到比特币》.湖南大学出版社,2018, *

Also Published As

Publication number Publication date
CN111488353A (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
CN111488616A (zh) 业务数据区块链的预言机实现方法及装置
CN111488615A (zh) 业务数据区块链的跨链实现方法及装置
US20140222500A1 (en) Consolidating Leads into a Lead Group
CN111737726A (zh) 基于业务数据区块链的关系数据查询方法及装置
CN111488353B (zh) 业务数据区块链的智能合约实现方法及装置
CN111488349A (zh) 基于业务数据区块链的数据查询方法及装置
CN111488344A (zh) 基于业务数据区块链的用户操作数据上链方法及系统
CN111695136A (zh) 业务数据区块链的实现方法及其系统
CN111488343A (zh) 基于业务数据区块链的电商数据上链方法及装置
CN111488352A (zh) 基于业务数据区块链的积分兑换方法及装置
CN111488345A (zh) 业务数据区块链的存储优化方法及装置
CN111488611B (zh) 业务数据区块链的关系数据存储方法及装置
CN111488356A (zh) 业务数据区块链的数据存储方法及其装置
CN111488613A (zh) 业务数据区块链的数据高效查询方法及装置
CN111737729A (zh) 基于业务数据区块链的评价数据存储方法及系统
CN111695132A (zh) 基于业务数据区块链的投票数据存储方法及系统
CN111523137A (zh) 基于业务数据区块链的数据推荐方法及装置
CN111488609A (zh) 基于业务数据区块链的接单方法及装置
CN111488607A (zh) 业务数据区块链的数据处理方法及其装置
CN111476607A (zh) 基于业务数据区块链的广告方法及系统
CN111488358A (zh) 基于业务数据区块链的数据查询方法及装置
CN111488351A (zh) 业务数据区块链的数据操作方法及装置
CN111488347A (zh) 基于业务数据区块链的数据查询方法及装置
CN111488606B (zh) 基于业务数据区块链的数据共享方法及装置
CN111488348A (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