CN115168420A - 用户数据查询方法、区块链节点和服务器 - Google Patents
用户数据查询方法、区块链节点和服务器 Download PDFInfo
- Publication number
- CN115168420A CN115168420A CN202210763071.1A CN202210763071A CN115168420A CN 115168420 A CN115168420 A CN 115168420A CN 202210763071 A CN202210763071 A CN 202210763071A CN 115168420 A CN115168420 A CN 115168420A
- Authority
- CN
- China
- Prior art keywords
- user
- transaction
- data
- contract
- information
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种用户数据查询方法、区块链节点和服务器,所述方法包括:接收第一交易,所述第一交易调用合约,用于从存储设备查询第一用户的数据,所述合约中包括所述存储设备的连接信息;根据所述第一交易,生成数据查询请求;根据所述存储设备的连接信息,将所述数据查询请求发送给所述存储设备;从所述存储设备接收所述第一用户的数据。
Description
技术领域
本说明书实施例属于区块链技术领域,尤其涉及一种用户数据查询方法、区块链节点和服务器。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
当前,对于个人或企业的标准化数据存在较强的流转需求。在相关技术中,通常使用区块链对这些标准化数据进行存证。
发明内容
本发明的目的在于提供一种基于区块链的数据查询方案,以有利于多方的数据流转。
本说明书第一方面提供一种用户数据查询方法,由区块链节点执行,包括:
接收第一交易,所述第一交易调用合约,用于从存储设备查询第一用户的数据,所述合约中包括所述存储设备的连接信息;
根据所述第一交易,生成数据查询请求;
根据所述存储设备的连接信息,将所述数据查询请求发送给所述存储设备;
从所述存储设备接收所述第一用户的数据。
在一种实施方式中,所述接收第一交易包括,从服务器接收所述第一交易;所述方法还包括:将所述第一用户的数据返回给所述服务器。
在一种实施方式中,所述方法还包括:
从所述服务器接收用于部署所述合约的第二交易,所述第二交易中包括所述合约的合约代码,所述合约代码由所述服务器基于从所述存储设备接收的数据源信息生成;
根据所述第二交易部署所述合约。
在一种实施方式中,所述方法还包括:
从所述服务器接收第三交易,所述第三交易用于创建所述第一用户的第一数字身份,所述第三交易中包括由所述服务器从认证设备接收的实名认证操作的标识、所述第一用户的身份信息和第一公钥;
根据所述第三交易生成所述第一数字身份的第一文档,存储所述第一文档,所述第一文档中包括所述第一数字身份对应的第一账户、所述实名认证操作的标识、所述第一用户的身份信息和所述第一公钥。
在一种实施方式中,所述第一交易由第二用户的第二账户发送,所述方法还包括:
从所述服务器接收调用所述合约的第四交易,所述第四交易由所述第一账户发送,包括授权信息,所述授权信息用于对所述第二账户进行授权;
根据所述第四交易,在所述合约的合约状态中存储所述授权信息;
所述根据所述第一交易,生成数据查询请求包括:在根据所述授权信息验证所述第二账户得到授权之后,生成数据查询请求。
在一种实施方式中,所述生成数据查询请求包括:
从区块链中获取所述第一账户对应的第一文档;
从所述第一文档获取所述第一用户的身份信息;
基于所述第一用户的身份信息生成所述数据查询请求。
在一种实施方式中,所述第一用户的身份信息为所述第一用户的身份标识的哈希值。
本说明书第二方面提供一种用户数据查询方法,由服务器执行,包括:
生成第一交易,所述第一交易调用合约,用于从存储设备查询第一用户的数据,所述合约中包括所述存储设备的连接信息;
将所述第一交易发送给区块链;
从所述区块链接收所述第一用户的数据。
在一种实施方式中,所述方法还包括:
从所述存储设备接收数据源的信息,所述数据源信息包括所述存储设备的连接信息和所述数据源的描述信息;
根据所述存储设备的连接信息和所述数据源的描述信息生成合约代码;
基于所述合约代码生成用于部署所述合约的第二交易;
将所述第二交易发送给所述区块链。
在一种实施方式中,所述方法还包括:
从所述第一用户的用户设备接收所述第一用户的身份标识;
向所述用户设备发送实名认证请求,以使得所述用户设备连接认证设备以进行实名认证操作;
从所述认证设备接收对所述第一用户进行的实名认证操作的标识、和认证结果;
在确定所述实名认证通过时,生成第一公钥和第一私钥;
生成第三交易,所述第三交易用于创建所述第一用户的第一账户,所述第三交易中包括所述实名认证操作的标识、所述第一用户的身份信息和所述第一公钥;
将所述第三交易发送给所述区块链;
从所述区块链接收所述第一账户;
关联存储所述第一用户的身份标识、所述第一账户及所述第一账户对应的第一公钥和第一私钥。
在一种实施方式中,所述服务器中还关联存储有第二用户的身份标识和所述第二用户在区块链中的第二账户,所述方法还包括:
从第二用户的第二用户设备接收对第一用户的数据的授权请求;
将所述第二用户的身份信息和所述授权请求发送给所述第一用户的第一用户设备,所述第二用户的身份信息基于所述第二用户的身份标识生成;
从所述第一用户设备接收对所述第二用户的第一授权信息;
根据所述第一授权信息生成调用所述合约的第四交易,所述第四交易由所述第一账户发送,包括第二授权信息,所述第二授权信息用于对所述第二账户进行授权;
将所述第四交易发送给所述区块链。
本说明书第三方面提供一种区块链节点,包括:
接收单元,用于接收第一交易,所述第一交易调用合约,用于从存储设备查询第一用户的数据,所述合约中包括所述存储设备的连接信息;
生成单元,用于根据所述第一交易,生成数据查询请求;
发送单元,用于根据所述存储设备的连接信息,将所述数据查询请求发送给所述存储设备;
所述接收单元还用于从所述存储设备接收所述第一用户的数据。
本说明书第四方面提供一种服务器,包括:
生成单元,用于生成第一交易,所述第一交易调用合约,用于从存储设备查询第一用户的数据,所述合约中包括所述存储设备的连接信息;
发送单元,用于将所述第一交易发送给区块链;
接收单元,用于从所述区块链接收所述第一用户的数据。
本说明书第五方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面所述的方法。
本说明书第六方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面所述的方法。
本说明书实施例提供的数据查询方案,通过在智能合约中包括存储设备的连接信息,通过执行智能合约可以连接存储设备以查询用户的数据,从而基于智能合约构建数据所有方、数据存储方和数据消费方之间的数据流通通道,保证了数据流通的可靠性,提高了数据流转的效率。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了一实施例中的区块链架构图;
图2为本说明书实施例提供的业务场景示意图;
图3为本说明书实施例中的在服务器中注册用户的方法流程图;
图4为本说明书实施例中的在区块链中部署与数据源对应的数据流转合约的方法流程图;
图5为本说明书实施例中的数据查询方法的流程图;
图6为本说明书另一实施例中的一用户查询另一用户的用户数据的方法流程图;
图7为本说明书实施例中的一种区块链节点的架构图;
图8为本说明书实施例中的一种服务器的架构图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
图1示出了一实施例中的区块链架构图。在图1所示的区块链架构图中,区块链中例如包含节点1-节点6共6个节点。节点之间的连线示意性的表示P2P(Peer to Peer,点对点)连接。这些节点上可存储全量的账本,即存储全部区块和全部账户的状态。其中,区块链中的每个节点可通过执行相同的交易而产生区块链中的相同的状态,区块链中的每个节点可存储相同的状态数据库。可以理解,图1中虽然示出了区块链中包括6个节点,本说明书实施例不限于此,而是可以包括其他数目的节点。具体是,区块链中包含的节点可以满足拜占庭容错(Byzantine Fault Tolerance,BFT)要求。所述的拜占庭容错要求可以理解为在区块链内部可以存在拜占庭节点,而区块链对外不体现拜占庭行为。一般的,一些拜占庭容错算法中要求节点个数大于3f+1,f为拜占庭节点个数,例如实用拜占庭容错算法PBFT(Practical Byzantine Fault Tolerance)。
区块链领域中的交易可以指在区块链中执行并记录在区块链中的任务单元。交易中通常包括发送字段(From)、接收字段(To)和数据字段(Data)。其中,在交易为转账交易的情况中,From字段表示发起该交易(即发起对另一个账户的转账任务)的账户地址,To字段表示接收该交易(即接收转账)的账户地址,Data字段中包括转账金额。在交易调用区块链中的智能合约的情况中,From字段表示发起该交易的账户地址,To字段表示交易所调用的合约的账户地址,Data字段中包括调用合约中的函数名、及对该函数的传入参数等数据,以用于在交易执行时从区块链中获取该函数的代码并执行该函数的代码。
区块链中可提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。在区块链中调用智能合约,是发起一笔指向智能合约地址的交易,使得区块链中每个节点分布式地运行智能合约代码。需要说明的是,除了可以由用户创建智能合约,也可以在创世块中由系统设置智能合约。这类合约一般称为创世合约。一般的,创世合约中可以设置一些区块链的数据结构、参数、属性和方法。此外,具有系统管理员权限的账户可以创建系统级的合约,或者修改系统级的合约(简称为系统合约)。其中,所述系统合约可用于在区块链中增加不同业务的数据的数据结构。
在部署合约的场景中,例如,Bob将一个包含创建智能合约信息(即部署合约)的交易发送到如图1所示的区块链中,该交易的data字段包括待创建的合约的代码(如字节码或者机器码),交易的to字段为空,以表示该交易用于部署合约。节点间通过共识机制达成一致后,确定合约的合约地址“0x6f8ae93…”,各个节点在状态数据库中添加与该智能合约的合约地址对应的合约账户,分配与该合约账户对应的状态存储,并将合约代码保存在该合约的状态存储中,从而合约创建成功。
在调用合约的场景中,例如,Bob将一个用于调用智能合约的交易发送到如图1所示的区块链中,该交易的from字段是交易发起方(即Bob)的账户的地址,to字段中的“0x6f8ae93…”代表了被调用的智能合约的地址,交易的data字段包括调用智能合约的方法和参数。在区块链中对该交易进行共识之后,区块链中的各个节点可分别执行该交易,从而分别执行该合约,基于该合约的执行更新状态数据库。
目前,不管是个人的标准化数据,比如学位证、社保证明等,还是企业的标准化数据,比如企业的营业执照、创新资质证明等,其流转诉求越来越强烈。以往的信息流转是通过出示合法机构发行的纸质证明的方式来完成,这种方式存在用户携带体验差、流转过程冗长、真假鉴别难等问题。
在一种相关方案中,可通过区块链对数据进行上链存证和事后审计。然而,在该方案中,不同的数据存储方可能使用用户的不同身份标识,缺少统一的身份,例如,教育机构和企业管理机构发布的同一个人的不同数据可能对应于不同的身份标识;其次,数据的存储方和所有方是分开的,例如,个人如果需要使用自己的数据,需要从数据存储方获取自己的数据;另外,数据的使用缺少授权机制。因此,该方案缺少整合数据存储方、数据所有方以及数据消费方的完整的可信的数据流转解决方案。
本方案提供了一套完整的数据流转解决方法,在区块链中部署用于从数据源查询用户数据的合约,通过在区块链中执行合约来从数据存储设备查询用户的数据,从而提供了数据存储方、数据所有方以及数据消费方之间的数据流转通道。
图2为本说明书实施例提供的业务场景示意图。如图2所示,
服务器30可根据从存储设备40接收的数据源的信息,在区块链100中部署与数据源对应的数据流转合约C1(下文中称为合约C1),该数据流转合约可用于连接存储设备40,以查询数据源中的用户数据。所述数据源可以指用于获取数据的机构或单位等,其中,该数据源可提供具有数据库或者文件系统等形式的较大量的数据。例如,统计机构、数据中心、教育机构、管理机构等机构都可以视为数据源。区块链中的各个节点例如可包括服务器对应的平台机构的节点、各个数据源机构提供的节点等。
用户设备10和用户设备20例如分别为用户U1和用户U2使用的设备。用户设备10和用户设备20可以为任意终端设备,如智能手机、计算设备、笔记本、平板电脑等设备,对此不作限定。用户设备10和用户设备20在向服务器30发送数据查询请求之前,可向服务器30注册用户U1和用户U2。具体是,用户设备10和用户设备20可基于服务器30提供的实名认证的链接,连接认证设备50进行实名认证的操作,认证设备50在对用户实名认证通过之后可将认证操作的标识和结果返回给服务器30,从而服务器30在确认实名认证通过之后可注册用户的应用账户,同时在区块链100中创建用户的去中心化账户(Dencentralized ID,DID),从而服务器30可通过用户DID向区块链100中发送交易,以用于查询用户数据。
用户设备10和用户设备20在用户注册完成之后,可向服务器30发送数据查询请求,服务器30根据该数据查询请求可向区块链100发送调用数据流转合约的交易,以查询用户数据。区块链100中的区块链节点在执行该交易时,执行数据流转合约,通过该合约中预设的存储设备40的连接信息连接存储设备40,从存储设备40接收到查询的用户数据,并将该用户数据返回给服务器30,服务器30可将区块链100返回的用户数据返回给用户设备。
另外,存储设备40对应的数据源机构也可以类似地通过服务器30创建区块链中的DID,并在区块链中进行数据信息存证。其中,存储设备40对应的机构也可响应于服务器的请求连接认证设备50以进行实名认证操作。
下文中将描述本说明书实施例基于区块链的数据查询方案。
图3为本说明书实施例中的在服务器中注册用户的方法流程图。图3中所示的用户设备可以为用户设备10或用户设备20,下文中以用户设备10为例进行描述。
参考图3,首先,在步骤S301,用户设备10向服务器30发送用户身份标识,以创建用户U1的应用账户。
用户设备10中安装有应用的客户端,服务器30中安装有应用的服务端,从而用户设备10可通过客户端连接到服务器30。客户端中设置有用于注册用户的按钮,用户U1可通过点击该注册按钮而使得客户端向服务端发送注册请求。服务端在接收到注册请求之后,可向客户端发送注册页面,该注册页面中包括需要用户填写的注册信息,例如手机号、姓名、身份标识等信息。用户U1在填写这些信息之后,通过客户端向服务端发送注册信息。在一种实施方式中,客户端可从服务端接收到服务端的账户A1的账户公钥pk1,并使用公钥pk1对注册信息加密之后发送给服务端,服务端在接收到加密信息之后,可使用账户A1的私钥sk1对加密信息解密,从而获取用户U1的注册信息。
服务端在接收到用户U1的注册信息之后,向第三方认证机构的认证设备50发送用户U1的身份标识信息,从认证设备50接收此次实名认证操作的URL和ID。
之后,服务端可执行步骤S303,向用户设备10发送实名认证请求。具体是,服务器30将将从认证设备接收的URL发送给用户设备10中的客户端,以请求用户进行实名认证操作。所述实名认证操作例如包括用户识别操作等。
用户设备10在接收到实名认证请求之后,执行步骤S305,通过该URL连接认证设备50,以进行实名认证操作。
在步骤S307,认证设备在对用户U1的实名认证操作结束之后,返回与该实名认证操作对应的实名认证结果。具体是,认证设备可将该实名认证操作的ID和认证结果一起发送给服务器30。
在步骤S309,服务器30根据从认证设备50接收的实名认证操作的ID和认证结果,确定此次对用户U1的实名认证是否通过。如果未通过,则结束注册过程,向用户设备10返回注册失败。在实名认证通过的情况中,服务器30建立用户U1的应用账号(例如以用户U1的手机号作为其应用账号),并执行步骤S311。
在步骤S311,服务器30向区块链100中的任一节点发送交易Tx1,以用于创建用户U1的DID(例如DID1)。
具体是,服务器30可首先生成用户U1的一对公私钥,例如usk1和upk1,并与用户U1的应用账户关联地存储usk1和upk1。然后,服务器30可生成交易Tx1,该交易Tx1的发送账户为服务端的账户A1,该交易Tx1中包括公钥upk1、用户U1的身份信息、以及实名认证操作的ID。其中,为了保护用户U1的隐私,在该交易Tx1中包括的用户U1的身份信息例如为用户U1的身份二要素的哈希值,该身份二要素例如包括用户U1的姓名和身份标识。另外,该交易Tx1中可调用用于创建DID的合约C2,以用于在区块链中创建用户U1的DID。
在一种实施方式中,服务器30可自身基于公钥upk1生成用户U1的账户DID1,并在交易Tx1中包括账户DID1,以用于在区块链中创建用户U1的数字身份。
服务器30在生成交易Tx1之后,可使用账户A1的私钥对交易Tx1进行签名,并将交易Tx1及其签名发送给区块链中的任一节点,以使得在区块链中执行该交易Tx1。
在步骤S313,区块链中的任一节点在接收到交易Tx1之后,将交易Tx1扩散到区块链中,从而区块链中的多个节点可接收到交易Tx1并执行交易Tx1,并通过执行交易Tx1创建用户U1的DID1。
具体是,区块链中的多个节点可在对交易Tx1共识通过之后,分别执行交易Tx1。区块链节点可基于交易Tx1中的公钥upk1生成用户U1的账户DID1,生成账户DID1对应的文档(document)D1,该文档D1中包括账户DID1、实名认证操作的ID、以及用户U1的身份信息(例如身份二要素的哈希值)。之后,区块链节点可以在合约C2的合约状态中与账户DID1关联地存储文档D1。
在步骤S315,区块链节点向服务器返回用户U1的账户DID1。
例如,多个区块链节点中的至少一个区块链节点在完成对交易Tx1的执行之后,可向服务器30返回关联的用户U1的身份信息和账户DID1,以指示在区块链中为用户U1创建了账户DID1。
可以理解,在交易Tx1中包括账户DID1的情况中,区块链节点向服务器返回在区块链中成功创建账户DID1的信息。
在步骤S317,服务器关联地存储用户U1的应用账户、身份标识和DID的相关信息。
具体是,服务器30可关联地存储用户U1的应用账户(例如手机号)、身份二要素信息、账户DID1、以及账户DID1的公私钥对usk1和upk1,从而用户U1的注册成功完成。
服务器30在从区块链接收到用户U1的账户DID1之后,还可以生成账户DID1为发送账户的任意交易,并向区块链中发送该交易,从而使得在区块链的状态数据库中创建账户DID1的状态,也即使得账户DID1成为区块链中的链上账户。具体是,服务器30可使用账户DID1的私钥对该交易签名,并将交易及其签名一起发送给区块链。也就是说,服务器30作为用户U1的代理向区块链发送交易。
服务器30可类似地对用户U2进行注册。用户U2例如可以是企业用户,则用户U2的身份标识信息例如包括企业的四要素信息,即企业营业执照名称、统一社会信用代码、法定代表人姓名和法定代表人身份标识,用户U2的用户设备在根据服务器的请求连接认证设备进行实名认证操作时,对企业法定代表人进行实名认证。在实名认证通过的情况中,服务器通过向区块链发送交易以创建用户U2的DID账户(例如账户DID2),区块链节点可根据该交易在区块链中存储账户DID2对应的文档,该文档中可包括DID2、实名认证操作的ID、用户U2的身份信息。该用户U2的身份信息例如为企业的身份四要素信息的哈希值。
图4为本说明书实施例中的在区块链中部署与数据源对应的数据流转合约的方法流程图。
参考图4,首先,在步骤S401,存储设备40向服务器发送数据源身份标识,以创建应用账户。
数据源机构可以作为企业或公司在服务器中注册,与上述用户U2类似地,数据源机构可向服务器发送数据源身份标识(例如四要素信息),以创建数据源的应用账户。
步骤S403,服务器向区块链发送交易,以创建数据源DID。
与图3所示类似地,服务器在接收到数据源身份标识之后,可请求数据源的机构进行实名认证,该实名认证过程可参考图3中的步骤,在图4中未示出。
服务器向区块链发送交易以创建数据源DID的步骤S403、S405、S407、S409可参考上文对步骤S311、S315、S317和S319的描述,在此不再赘述。
在步骤S411,存储设备向服务器发送数据源信息。
该数据源信息中例如可包括存储设备的连接信息、数据源中包括的数据的描述信息。该描述信息例如可包括数据源中包括的数据的数据目录等信息。
服务器在接收到数据源信息之后,可以生成以数据源DID为发送账户的交易,该交易中包括数据源信息,从而通过将该交易发送到区块链中,对数据源信息进行存证。
同时,服务器还可以将数据源的目录信息推送给客户端,在客户端进行展示,从而用户可以根据客户端展示的数据目录查询数据。
在步骤S413,服务器生成用于从数据源查询数据的数据流转合约的合约代码。
服务器30可根据数据源信息生成合约C1的合约代码。具体是,服务器30可生成合约C1的合约代码中的用于实现不同操作的函数。例如,服务器30可生成合约C1中的查询函数,该查询函数中包括存储设备的连接信息,从而通过执行查询函数,可连接到存储设备,以从存储设备获取用户数据。另外,查询函数还可以根据数据源的目录信息设置查询函数的传入参数,以用于根据该传入参数来从存储设备查询用户数据。例如,存储设备中关联存储用户的身份信息(例如二要素哈希值或四要素哈希值)和用户的数据,从而,服务器可将查询函数的传入参数设置为包括“身份信息”。或者,之间存储设备中按照个人和企业分别存储用户数据的情况中,服务器可将查询函数的传入参数设置为包括“用户类型”和“身份信息”,其中,用户类型用于指示个人类型或企业类型。
服务器30还可以生成合约C1中的授权函数,该授权函数可用于将一个用户的数据授权给其他用户。
在步骤S415,服务器30向区块链节点发送用于部署合约的交易。
服务器30在生成合约C1的代码之后,可以生成用于部署合约C1的交易Tx2。其中,交易Tx2的具体形式可参照前文对合约部署过程的描述,在此不再赘述。其中,交易Tx2的发送账户可以为服务器30的账户A1,或者也可以为数据源的账户DID。服务器30在生成交易Tx2之后,可将交易Tx2发送给区块链中的任一节点,从而使得区块链中的多个节点获取该交易Tx2,并在对交易Tx2的共识通过之后,分别执行交易Tx2。
在步骤S417,区块链节点执行交易Tx2,在区块链中部署合约C1。
区块链中的节点在执行交易Tx2时,生成合约C1的合约地址,在状态数据库中与合约C1的合约地址关联地存储合约C1的合约代码,从而区块链的用户可以调用合约C1来进行数据查询相关的操作。
图5为本说明书实施例中的数据查询方法的流程图。
如图5所示,首先,在步骤S501,用户设备10向服务器30发送数据查询请求。
所述数据源例如为教育机构(例如某大学),大学可通过存储设备40向服务器发送数据源信息,该数据源信息中例如包括在该大学毕业的学生的毕业证书的目录,该目录中例如包括本科生毕业证书索引、研究生毕业证书索引、博士生毕业证书索引等信息。服务器30在从该大学接收到数据源信息之后在客户端展示毕业证书的目录。用户U1例如为该大学的本科毕业生,从而用户U1可向服务器发送对自身的本科毕业证书的查询请求,以申领该毕业证书。
可选地,在步骤S503-步骤S509,服务器30指示用户设备10进行实名认证操作。步骤S503-步骤S509的详细过程可参考上文中对步骤S303-S309的描述,在此不再赘述。可以理解,步骤S503-步骤S507不是必需的,由于用户在注册时已经进行过实名认证,在对数据安全的要求较低的场景中,服务器可以在步骤S501之后直接执行步骤S511。
在步骤S511,服务器通过用户DID发送调用合约C1的交易,以查询用户数据。
服务器30可生成交易Tx3,该交易Tx3的发送账户为用户U1的账户DID1,接收账户为合约C1的合约地址,该交易Tx3中还包括对合约C1中的查询函数的调用,以用于进行对用户U1的本科毕业证的查询。例如,对该合约C1的查询参数中例如包括“本科”,以指示查询用户U1的本科毕业证书。对该合约C1的查询参数中例如还包括“DID1”,以用于指示查询DID1对应的用户的证书。
服务器30在生成交易Tx3之后,使用账户DID1的私钥usk1对交易Tx3签名,并将交易Tx3及其签名发送给区块链中的任一节点,以发送到区块链中。
在步骤S513,区块链中的各个节点在对交易Tx3共识通过之后,分别执行交易Tx3,生成用于发送给存储设备40的数据查询请求。
具体是,合约C1中可调用合约C2,区块链节点在执行交易Tx3时,根据合约C1中的调用,执行合约C2,读取合约C2的合约状态中存储的账户DID1对应的文档D1,从文档D1中读取账户DID1对应的用户U1的身份二要素的哈希值hash1。之后,区块链节点可生成数据查询请求,该数据查询请求用于查询哈希值hash1关联的本科证书。
在步骤S515,区块链节点将数据查询请求发送给存储设备。
各个区块链节点在生成数据查询请求之后,可根据合约C1中预设的存储设备的连接信息(如IP地址、端口等),将该数据查询请求发送给存储设备40。也就是说,存储设备40接收到来自多个区块链节点的多个数据查询请求。
在步骤S515,存储设备40根据数据查询请求查询用户数据,并将查询到的用户数据返回给区块链节点。
存储设备40中可以关联地存储各个学生的身份二要素哈希值和电子毕业证书,一个学生的电子毕业证书可包括该毕业证书例如可包括电子本科毕业证书、电子研究生毕业证书和电子博士毕业证书中的至少一项。所述电子毕业证书例如可以为图形或表格等形式。存储设备40在接收到数据查询请求之后,可根据请求中的用户U1的身份二要素哈希值hash1,在数据库中查询到hash1对应的电子证书,从hash1对应的电子证书中获取电子本科毕业证书。
存储设备40在获取到用户U1的电子本科毕业证书之后,将该电子本科毕业证书返回给区块链节点。存储设备40在第一次查询用户U1的电子本科毕业证书之后,可关联地存储该数据查询请求和查询结果。存储设备40在后续接收到来自其他区块链节点的数据查询请求时,在确定该数据查询请求与之前接收的数据查询请求相同时,可对该其他区块链节点直接返回在先存储的查询结果。
在步骤S519,区块链节点在接收到用户数据之后,将用户数据返回给服务器。
可以由与服务器30直接连接的区块链节点将其接收到的用户数据返回给服务器30。或者,也可以使得区块链中的多个区块链节点将接收到的用户数据分别返回给服务器30。
在步骤S521,区块链节点对数据查询操作进行存证。
区块链节点在接收到存储设备40返回的用户数据之后,可在合约C1的合约状态中记录此次查询操作的相关信息。例如,可在合约C1的合约状态中关联地记录DID1和用户U1的电子本科毕业证书的哈希值,以用于指示服务器通过账户DID1进行了一次数据查询、并对存储设备返回的用户数据的信息进行存证。
在步骤S523,服务器向用户设备返回用户数据。
服务器30在接收到账户DID1对应的用户数据之后,可根据本地存储的账户DID1对应的用户U1的信息,将用户数据返回给用户U1的用户设备10。用户U1在获取其电子本科毕业证书之后,可保存其电子本科毕业证书,以作为其属性信息展示给其他用户,例如用户U2。然而,个人所展示的属性信息不具有权威性,不足以证明该电子本科毕业证书就是真实的毕业证书。为此,用户U2可向服务器30发送查询请求,以查询用户U1的毕业证书。
图6为本说明书另一实施例中的一用户查询另一用户的用户数据的方法流程图。
如图6所示,首先,在步骤S601,用户U2的设备(例如图2中的用户设备20)向服务器发送对数据源中的用户U1的数据的授权请求。
用户U2例如为企业用户,当该企业在面试用户U1时,需要确认用户U1的学历,因此,用户U2的用户设备20根据用户U1提供的用户U1的身份标识,生成对用户U1的授权请求,该授权请求中包括用户U1的身份标识,例如二要素信息或者二要素信息的哈希值等,以及请求授权的数据名称(例如用户U1的本科毕业证书)。之后,用户设备20将该授权请求发送给服务器30。
可以理解,所述授权请求不限于包括用户U1的身份标识和数据名称,例如,该授权请求中还可以包括授权期望的有效时长、授权的操作类型、对卡证的使用场景等。
在步骤S603,服务器30在接收到授权请求之后,将用户U2的身份信息及其授权请求发送给用户U1的设备。
服务器30在从用户设备20接收到授权请求之后,可首先对用户U2进行实名认证(图6中未示出)。在认证通过的情况中,服务器30通过用户设备10对用户U1进行实名认证,在认证通过的情况中,将用户U2的身份信息和授权请求发送给用户设备10。其中,用户U2的身份信息例如可以为用户U2的四要素信息的哈希值。
步骤S605,用户U1的设备在对用户U2的身份信息验证通过之后,向服务器30发送对用户U2的授权信息。
用户U1例如可从用户U2获取四要素信息的哈希值,并比对该哈希值和从服务器接收的四要素信息哈希值,当二者一致时,可确认该授权请求由用户U2发送。之后,用户U1可生成对用户U2的授权信息,该授权信息中例如包括用户U2的身份信息、授权给用户U2的数据名称等。另外,该授权信息中还可以包括授权时长、授权的操作类型、对卡证的使用场景等信息。
在一种实施方式中,为了避免用户U1和用户U2需要告知对方自己的身份信息,用户U2可通过用户设备20生成授权二维码,并将该二维码展示给用户U1。用户U1通过用户设备10对该二维码进行扫码,从而向服务器发送对用户U2的授权信息。
在步骤S607,服务器30向区块链中的任一节点以用户U1的账户DID1为发送账户发送调用合约C1的交易Tx4,以对该授权信息进行存证。
具体是,交易Tx4中可调用合约C1中的存证函数,该存证函数的传入参数包括上述授权信息。通过以用户U1的账户DID1为交易Tx4的发送账户,表示该授权信息由用户U1发出。
在步骤S609,区块链节点执行交易Tx4,对授权信息进行存证。
具体是,区块链中在对交易Tx4成功共识之后,各个区块链节点分别执行交易Tx4,从而分别在合约C1的合约状态中与账户DID1关联地存储授权信息,以对该授权信息进行存证。其中,合约C1的合约状态中例如包括授权信息列表,区块链节点可在该授权信息列表中关联地存储账户DID1和授权信息。
在步骤S611,用户U2的设备向服务器发送对用户U1的数据的查询请求。
用户设备20可以通过用户U2的应用账户登录客户端,并在该客户端中生成查询请求,该查询请求中包括用户U1的身份信息和待查询的数据名称,之后,客户端将该查询请求发送给服务端。
在步骤S613,服务器向区块链节点以用户U2的账户DID2为发送账户发送调用合约C1的交易Tx5,以查询用户U1的数据。
服务器30在接收到用户U2客户端发送的对用户U1的数据的查询请求之后,根据用户U2的应用账户获取该应用账户对应的账户DID2,根据用户U1的身份信息获取用户U1对应的账户DID1,并生成交易Tx5。其中,该交易Tx5以账户DID2为发送账户,该交易Tx5中调用合约C1的查询函数,该查询函数的传入参数包括账户DID1和待查询的数据名称。
在步骤S615,区块链节点执行交易Tx5,根据授权信息验证账户DID2是否获得账户DID1的授权,并在验证通过之后,生成用于发送给存储设备40的数据查询请求。
具体是,区块链中在对交易Tx5共识成功之后,各个区块链节点分别执行交易Tx5。其中,区块链节点在开始执行交易Tx5之后,首先对账户DID2的查询权限进行验证。区块链节点可在合约C1的合约状态中的授权信息列表中查询与账户DID1和账户DID2对应的授权信息,以验证账户DID1是否对账户DID2授权了对待查询数据的查询权限。
在验证通过之后,区块链节点可根据合约C1中调用的合约C2,从合约C2的合约状态中读取账户DID1对应的文档D1,并从文档D1中读取账户DID1对应的用户U1的身份信息。之后,区块链节点可生成用于发送给存储设备40的数据查询请求,该数据查询请求中包括用户U1的身份信息以及待查询数据的名称。
在步骤S617,各个区块链节点将生成的数据查询请求发送给存储设备40。该步骤S617-步骤S621可参考上文对步骤S515-步骤S519的描述,在此不再赘述。
在步骤S623,区块链节点对数据查询操作进行存证。
例如,区块链节点可根据交易Tx5在合约C1的合约状态中记录“DID2:DID1,返回数据哈希值”,以用于指示账户DID2对应账户DID1的用户数据进行过查询,并对存储设备40返回的数据信息进行存证。
在步骤S625,服务器将用户U1的数据返回给用户U2的设备。
服务器30在从区块链节点接收到用户U1的数据之后,可根据交易Tx5,确定账户DID2对应的用户U2的信息,并将该用户U1的数据返回给用户U2对应的用户设备20。从而完成该数据查询过程,在该查询过程中,数据所有方(即用户U1)、数据存储方(即数据源)和数据消费方(即用户U2)基于合约C1安全可靠地实现了数据授权、数据流转等操作,提供了更高效的数据流转方案。
图7为本说明书实施例中的一种区块链节点的架构图,包括:
接收单元71,用于接收第一交易,所述第一交易调用合约,用于从存储设备查询第一用户的数据,所述合约中包括所述存储设备的连接信息;
生成单元72,用于根据所述第一交易,生成数据查询请求;
发送单元73,用于根据所述存储设备的连接信息,将所述数据查询请求发送给所述存储设备;
所述接收单元71还用于从所述存储设备接收所述第一用户的数据。
在一种实施方式中,所述接收单元71具体用于,从服务器接收所述第一交易;所述发送单元73还用于:将所述第一用户的数据返回给所述服务器。
在一种实施方式中,所述接收单元71还用于从所述服务器接收用于部署所述合约的第二交易,所述第二交易中包括所述合约的合约代码,所述合约代码由所述服务器基于从所述存储设备接收的数据源信息生成;
所述区块链节点还包括部署单元,用于根据所述第二交易部署所述合约。
在一种实施方式中,所述接收单元71还用于从所述服务器接收第三交易,所述第三交易用于创建所述第一用户的第一数字身份,所述第三交易中包括由所述服务器从认证设备接收的实名认证操作的标识、所述第一用户的身份信息和第一公钥;
所述生成单元72还用于,根据所述第三交易生成所述第一数字身份的第一文档,存储所述第一文档,所述第一文档中包括所述第一数字身份对应的第一账户、所述实名认证操作的标识、所述第一用户的身份信息和所述第一公钥。
在一种实施方式中,所述第一交易由第二用户的第二账户发送,
所述接收单元71还用于,从所述服务器接收调用所述合约的第四交易,所述第四交易由所述第一账户发送,包括授权信息,所述授权信息用于对所述第二账户进行授权;
所述区块链节点还包括存储单元,用于根据所述第四交易,在所述合约的合约状态中存储所述授权信息;
所述生成单元72具体用于:在根据所述授权信息验证所述第二账户得到授权之后,生成数据查询请求。
在一种实施方式中,所述生成单元72具体用于:
从区块链中获取所述第一账户对应的第一文档;
从所述第一文档获取所述第一用户的身份信息;
基于所述第一用户的身份信息生成所述数据查询请求。
在一种实施方式中,所述第一用户的身份信息为所述第一用户的身份标识的哈希值。
图8为本说明书实施例中的一种服务器的架构图,包括:
生成单元81,用于生成第一交易,所述第一交易调用合约,用于从存储设备查询第一用户的数据,所述合约中包括所述存储设备的连接信息;
发送单元82,用于将所述第一交易发送给区块链;
接收单元83,用于从所述区块链接收所述第一用户的数据。
在一种实施方式中,所述接收单元83还用于从所述存储设备接收数据源的信息,所述数据源信息包括所述存储设备的连接信息和所述数据源的描述信息;
所述生成单元81还用于,根据所述存储设备的连接信息和所述数据源的描述信息生成合约代码;基于所述合约代码生成用于部署所述合约的第二交易;
所述发送单元82还用于,将所述第二交易发送给所述区块链。
在一种实施方式中,所述接收单元83还用于从所述第一用户的用户设备接收所述第一用户的身份标识;
所述发送单元82还用于向所述用户设备发送实名认证请求,以使得所述用户设备连接认证设备以进行实名认证操作;
所述接收单元83还用于从所述认证设备接收对所述第一用户进行的实名认证操作的标识、和认证结果;
所述生成单元81还用于在确定所述实名认证通过时,生成第一公钥和第一私钥;生成第三交易,所述第三交易用于创建所述第一用户的第一账户,所述第三交易中包括所述实名认证操作的标识、所述第一用户的身份信息和所述第一公钥;
所述发送单元82还用于将所述第三交易发送给所述区块链;
所述接收单元83还用于从所述区块链接收所述第一账户;
所述服务器还包括存储单元,用于关联存储所述第一用户的身份标识、所述第一账户及所述第一账户对应的第一公钥和第一私钥。
在一种实施方式中,所述服务器中还关联存储有第二用户的身份标识和所述第二用户在区块链中的第二账户,
所述接收单元83还用于从第二用户的第二用户设备接收对第一用户的数据的授权请求;
所述发送单元82还用于将所述第二用户的身份信息和所述授权请求发送给所述第一用户的第一用户设备,所述第二用户的身份信息基于所述第二用户的身份标识生成;
所述接收单元83还用于从所述第一用户设备接收对所述第二用户的第一授权信息;
所述生成单元81还用于根据所述第一授权信息生成调用所述合约的第四交易,所述第四交易由所述第一账户发送,包括第二授权信息,所述第二授权信息用于对所述第二账户进行授权;
所述发送单元82还用于将所述第四交易发送给所述区块链。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行如图3-图6所示的方法。
本说明书实施例还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现如图3-图6所示的方法。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (15)
1.一种用户数据查询方法,由区块链节点执行,包括:
接收第一交易,所述第一交易调用合约,用于从存储设备查询第一用户的数据,所述合约中包括所述存储设备的连接信息;
根据所述第一交易,生成数据查询请求;
根据所述存储设备的连接信息,将所述数据查询请求发送给所述存储设备;
从所述存储设备接收所述第一用户的数据。
2.根据权利要求1所述的方法,所述接收第一交易包括,从服务器接收所述第一交易;所述方法还包括:将所述第一用户的数据返回给所述服务器。
3.根据权利要求2所述的方法,还包括:
从所述服务器接收用于部署所述合约的第二交易,所述第二交易中包括所述合约的合约代码,所述合约代码由所述服务器基于从所述存储设备接收的数据源信息生成,所述数据源信息中包括所述存储设备的连接信息和所述数据源包括的数据的描述信息;
根据所述第二交易部署所述合约。
4.根据权利要求3所述的方法,所述方法还包括:
从所述服务器接收第三交易,所述第三交易用于创建所述第一用户的第一数字身份,所述第三交易中包括由所述服务器从认证设备接收的实名认证操作的标识、所述第一用户的身份信息和第一公钥;
根据所述第三交易生成所述第一数字身份的第一文档,存储所述第一文档,所述第一文档中包括所述第一数字身份对应的第一账户、所述实名认证操作的标识、所述第一用户的身份信息和所述第一公钥。
5.根据权利要求4所述的方法,所述第一交易由第二用户的第二账户发送,所述方法还包括:
从所述服务器接收调用所述合约的第四交易,所述第四交易由所述第一账户发送,包括授权信息,所述授权信息用于对所述第二账户进行授权;
根据所述第四交易,在所述合约的合约状态中存储所述授权信息;
所述根据所述第一交易,生成数据查询请求包括:在根据所述授权信息验证所述第二账户得到授权之后,生成数据查询请求。
6.根据权利要求5所述的方法,所述生成数据查询请求包括:
从区块链中获取所述第一账户对应的第一文档;
从所述第一文档获取所述第一用户的身份信息;
基于所述第一用户的身份信息生成所述数据查询请求。
7.根据权利要求6所述的方法,所述第一用户的身份信息为所述第一用户的身份标识的哈希值。
8.一种用户数据查询方法,由服务器执行,包括:
生成第一交易,所述第一交易调用合约,用于从存储设备查询第一用户的数据,所述合约中包括所述存储设备的连接信息;
将所述第一交易发送给区块链;
从所述区块链接收所述第一用户的数据。
9.根据权利要求8所述的方法,还包括:
从所述存储设备接收数据源的信息,所述数据源信息包括所述存储设备的连接信息和所述数据源包括的数据的描述信息;
根据所述存储设备的连接信息和所述描述信息生成合约代码;
基于所述合约代码生成用于部署所述合约的第二交易;
将所述第二交易发送给所述区块链。
10.根据权利要求9所述的方法,还包括:
从所述第一用户的用户设备接收所述第一用户的身份标识;
向所述用户设备发送实名认证请求,以使得所述用户设备连接认证设备以进行实名认证操作;
从所述认证设备接收对所述第一用户进行的实名认证操作的标识、和认证结果;
在根据所述认证结果确定所述实名认证通过时,生成第一公钥和第一私钥;
生成第三交易,所述第三交易用于创建所述第一用户的第一账户,所述第三交易中包括所述实名认证操作的标识、所述第一用户的身份信息和所述第一公钥;
将所述第三交易发送给所述区块链;
从所述区块链接收所述第一账户;
关联存储所述第一用户的身份标识、所述第一账户及所述第一账户对应的第一公钥和第一私钥。
11.根据权利要求10所述的方法,所述服务器中还关联存储有第二用户的身份标识和所述第二用户在区块链中的第二账户,所述方法还包括:
从所述第一用户设备接收对所述第二用户的第一授权信息;
根据所述第一授权信息生成调用所述合约的第四交易,所述第四交易由所述第一账户发送,包括第二授权信息,所述第二授权信息用于对所述第二账户进行授权;
将所述第四交易发送给所述区块链。
12.一种区块链节点,包括:
接收单元,用于接收第一交易,所述第一交易调用合约,用于从存储设备查询第一用户的数据,所述合约中包括所述存储设备的连接信息;
生成单元,用于根据所述第一交易,生成数据查询请求;
发送单元,用于根据所述存储设备的连接信息,将所述数据查询请求发送给所述存储设备;
所述接收单元还用于从所述存储设备接收所述第一用户的数据。
13.一种服务器,包括:
生成单元,用于生成第一交易,所述第一交易调用合约,用于从存储设备查询第一用户的数据,所述合约中包括所述存储设备的连接信息;
发送单元,用于将所述第一交易发送给区块链;
接收单元,用于从所述区块链接收所述第一用户的数据。
14.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-11中任一项的所述的方法。
15.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210763071.1A CN115168420A (zh) | 2022-06-30 | 2022-06-30 | 用户数据查询方法、区块链节点和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210763071.1A CN115168420A (zh) | 2022-06-30 | 2022-06-30 | 用户数据查询方法、区块链节点和服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115168420A true CN115168420A (zh) | 2022-10-11 |
Family
ID=83488761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210763071.1A Pending CN115168420A (zh) | 2022-06-30 | 2022-06-30 | 用户数据查询方法、区块链节点和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168420A (zh) |
-
2022
- 2022-06-30 CN CN202210763071.1A patent/CN115168420A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110060162B (zh) | 基于区块链的数据授权、查询方法和装置 | |
CN112184222B (zh) | 基于区块链的业务处理方法、业务处理方法、装置及设备 | |
WO2022001418A1 (zh) | 数据处理方法、装置、计算机程序及存储介质 | |
CN110020854B (zh) | 一种基于多个区块链网络的数据存证方法及系统 | |
CN111066047A (zh) | 实现基于区块链的工作流 | |
WO2018100227A1 (en) | Electronic documents management | |
CN110020945B (zh) | 一种基于多个区块链网络的数据读取方法及系统 | |
CN111522809A (zh) | 数据处理方法、系统及设备 | |
CN114971827A (zh) | 一种基于区块链的对账方法、装置、电子设备及存储介质 | |
CN115277002A (zh) | 一种数字身份管理方法、区块链节点和系统 | |
CN113221165B (zh) | 一种基于区块链的用户要素认证方法及装置 | |
CN115130075A (zh) | 一种数字签章方法、装置、电子设备及存储介质 | |
CN114331437A (zh) | 一种基于区块链的数字印章使用方法及装置 | |
CN114398623A (zh) | 一种安全策略的确定方法 | |
CN113129008A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN113761496B (zh) | 一种基于区块链的身份校验方法及装置和电子设备 | |
CN115168420A (zh) | 用户数据查询方法、区块链节点和服务器 | |
CN115131029A (zh) | 基于区块链的数字文件签署方法及装置 | |
CN115118434A (zh) | 基于区块链的密钥管理方法及装置 | |
CN115134136B (zh) | 基于区块链进行社交的系统、方法、装置、存储介质和计算设备 | |
CN115208630B (zh) | 基于区块链的数据获取方法、系统及区块链系统 | |
CN115062063B (zh) | 基于区块链的数据查询方法和装置 | |
CN114331447B (zh) | 一种跨链消息提交方法及装置 | |
JP2019068327A (ja) | ユーザ管理装置、ユーザ管理システム | |
CN115277003A (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 |