CN113015973B - 数据处理方法、存储介质、电子设备及数据交易系统 - Google Patents
数据处理方法、存储介质、电子设备及数据交易系统 Download PDFInfo
- Publication number
- CN113015973B CN113015973B CN202080005718.3A CN202080005718A CN113015973B CN 113015973 B CN113015973 B CN 113015973B CN 202080005718 A CN202080005718 A CN 202080005718A CN 113015973 B CN113015973 B CN 113015973B
- Authority
- CN
- China
- Prior art keywords
- data
- program
- node
- transaction
- data processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or 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
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Economics (AREA)
- Databases & Information Systems (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Storage Device Security (AREA)
Abstract
本公开涉及一种数据处理方法、存储介质、电子设备及数据交易系统,所述方法应用于数据处理节点,所述方法包括:从区块链网络中提取数据交易程序,所述数据交易程序是在程序审核通过后写入所述区块链网络中的,其中,所述程序审核通过至少表明该数据交易程序对数据的处理方式与数据交易合约中约定的数据处理方式一致;在计算机的可信执行环境TEE中运行所述数据交易程序,其中,所述数据交易程序用于基于安全传输通道从数据源获取数据,并对所述数据进行处理;获取所述数据交易程序的程序输出结果。
Description
技术领域
本公开涉及数据处理领域,具体地,涉及一种数据处理方法、存储介质、电子设备及数据交易系统。
背景技术
由于数据可以被无限次并无代价地复制,因此,在数据流通的过程中,数据获取方在从数据提供方获取到数据后,很难通过技术手段将其对数据的使用制约在约定范围内,难以控制其对数据的复制、分享及滥用。因此,数据的交易、分享都面临着严重的安全性问题,导致数据的交易、流通难以规模化进行。而网络信息时代需要通畅的数据交易能力,因此,数据流通过程中的安全性问题是当前亟待解决的问题。
发明内容
本公开的目的是提供一种数据处理方法、存储介质、电子设备及数据交易系统,以解决相关技术中存在的技术问题。
为了实现上述目的,本公开提供一种数据处理方法,包括:从区块链网络中提取数据交易程序,所述数据交易程序是在程序审核通过后写入所述区块链网络中的,其中,所述程序审核通过至少表明该数据交易程序对数据的处理方式与数据交易合约中约定的数据处理方式一致;在计算机的可信执行环境TEE中运行所述数据交易程序,其中,所述数据交易程序用于基于安全传输通道从数据源获取数据,并对所述数据进行处理;获取所述数据交易程序的程序输出结果。
可选地,通过如下方式对所述数据交易程序进行审核:程序审核节点获取程序开发者上传的数据交易程序;在确定所述数据交易程序对数据的处理方式与所述区块链网络中的数据交易合约中约定的数据处理方式一致的情况下,根据所述数据审核节点的私钥对所述数据交易程序进行签名;将签名后的所述数据交易程序写入所述区块链网络;所述在计算机的可信执行环境TEE中运行所述数据交易程序,包括:根据所述程序审核节点的公钥对从所述区块链网络中提取的数据交易程序进行签名认证,并在签名认证成功后,在计算机的可信执行环境TEE中运行所述数据交易程序。
可选地,所述数据交易合约是数据交易双方签定后存储到所述区块链网络的,所述数据交易合约包括以下至少一种:所述数据交易程序的程序输出结果不包括输入所述数据交易程序进行处理的数据;从所述数据源提取数据的方式;从所述数据源提取数据的数量限制条件信息。
可选地,所述在计算机的可信执行环境TEE中运行所述数据交易程序包括:基于TEE验证机制,对所述数据交易程序的运行代码和数据进行合法性验证以及完整性验证;在通过所述合法性验证以及所述完整性验证后,运行所述数据交易程序。
可选地,所述数据交易程序包括数据访问程序和数据处理程序,所述数据交易程序基于安全传输通道从数据源获取数据包括:根据所述数据处理节点的私钥对所述数据处理合约中包括的随机数和/或数量限制条件信息进行签名,得到签名信息;将所述签名信息发送给所述数据访问程序,其中,所述数据访问程序在确定对所述签名信息的签名认证成功后,建立与所述数据处理程序之间的安全传输通道,以便所述数据处理程序基于所述数据访问程序通过所述安全传输通道从所述数据源获取到数据。
本公开的第二方面,提供一种数据交易系统,包括:程序审核节点、数据买方节点以及数据卖方节点;所述程序审核节点用于对程序开发节点开发的数据交易程序进行审核,并在确定所述数据交易程序对数据的处理方式与区块链网络中的数据交易合约中约定的数据处理方式一致的情况下,根据所述数据审核节点的私钥对所述数据交易程序进行签名,将签名后的所述数据交易程序写入所述区块链网络;所述数据卖方节点和所述数据买方节点中的一者能够用于数据处理节点运行所述数据交易程序,所述数据处理节点用于执行本公开第一方面中所述的方法的步骤。
可选地,所述数据交易程序包括数据访问程序和数据处理程序,所述数据卖方节点作为所述数据处理节点运行所述数据访问程序和所述数据处理程序;所述数据处理节点具体用于:从所述区块链网络中提取所述数据访问程序和所述数据处理程序,并在计算机的可信执行环境TEE中运行所述数据访问程序和所述数据处理程序,并获取所述数据处理程序的程序输出结果;其中,所述数据访问程序用于从数据源获取数据,所述数据处理程序用于基于所述数据处理程序与所述数据访问程序之间的安全传输通道获取所述数据,并在对所述数据进行处理后输出所述程序输出结果。
可选地,所述数据处理节点用于:根据所述程序审核节点的公钥对所述数据访问程序和所述数据处理程序进行验证,并在确定所述数据访问程序和所述数据处理程序已通过所述程序审核节点的审核后,在所述TEE中运行所述数据访问程序和所述数据处理程序。
可选地,所述数据处理节点还用于:基于TEE验证机制,对所述数据处理程序和所述数据访问程序的运行代码和数据进行合法性验证以及完整性验证;在通过所述合法性验证以及所述完整性验证后,运行所述数据处理程序和所述数据访问程序。
可选地,所述数据买方节点用于,根据所述数据买方节点的私钥对所述数据处理合约中包括的随机数和/或数量限制条件信息进行签名,得到第一签名信息,并将所述第一签名信息发送给所述数据访问程序,并根据所述数据买方节点的私钥对所述数据处理合约中包括的随机数进行签名,得到第二签名信息,并将所述第二签名信息发送给所述数据处理程序;所述数据处理节点还用于:基于所述数据买方节点的公钥对所述第一签名信息和所述第二签名信息进行验证,在所述第一签名信息和所述第二签名信息均验证通过后,在所述TEE中运行所述数据访问程序和所述数据处理程序。
可选地,所述数据交易程序包括数据访问程序和数据处理程序,所述数据买方节点作为所述数据处理节点运行所述数据访问程序和所述数据处理程序;所述数据处理节点具体用于:从所述区块链网络中提取所述数据访问程序和所述数据处理程序,并在计算机的可信执行环境TEE中运行所述数据访问程序和所述数据处理程序,获取所述数据处理程序的程序输出结果;其中,所述数据访问程序用于从数据源获取数据,所述数据处理程序用于基于所述数据处理程序与所述数据访问程序之间的安全传输通道获取所述数据,并在对所述数据进行处理后输出所述程序输出结果。
可选地,所述数据交易程序包括数据访问程序和数据处理程序,所述数据卖方节点运行所述数据访问程序,所述数据买方节点运行所述数据处理程序;
所述数据卖方节点具体用于:从所述区块链网络中提取所述数据访问程序,并在计算机的可信执行环境TEE中运行所述数据访问程序,其中,所述数据访问程序基于安全传输通道从数据源获取数据;所述数据买方节点具体用于:从所述区块链网络中提取所述数据处理程序,并在计算机的可信执行环境TEE中运行所述数据处理程序,获取所述数据处理程序的程序输出结果;其中,所述数据处理程序用于基于所述数据处理程序与所述数据访问程序之间的安全传输通道获取所述数据,并在对所述数据进行处理后输出所述程序输出结果。
可选地,所述数据卖方节点还用于:根据所述程序审核节点的公钥对所述数据访问程序进行验证,并确定所述数据访问程序已通过所述程序审核节点的审核后,在所述TEE中运行所述数据访问程序;所述数据买方节点还用于:根据所述程序审核节点的公钥对所述数据处理程序进行验证,并在确定所述数据处理程序已通过所述程序审核节点的审核后,在所述TEE中运行所述数据处理程序。
可选地,所述数据卖方节点用于根据所述数据卖方节点的私钥对所述数据处理合约中包括的随机数和/或数量限制条件信息进行签名,得到第一签名信息,并将所述第一签名信息发送给所述数据访问程序;
所述数据买方节点用于根据所述数据买方节点的私钥对所述数据处理合约中包括的随机数进行签名,得到第二签名信息,并将所述第二签名信息发送给所述数据处理程序;所述数据卖方节点还用于基于所述数据买方节点的公钥对所述第二签名信息进行验证,在所述第二签名信息验证通过后,在所述TEE中运行所述数据访问程序;所述数据买方节点还用于基于所述数据卖方节点的公钥对所述第一签名信息进行验证,在所述第一签名信息验证通过后,在所述TEE中运行所述数据处理程序。
本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面中所述方法的步骤。
本公开的第四方面,提供一种电子设备,包括存储器和处理器,存储器上存储有计算机程序,处理器用于执行存储器中的计算机程序,以实现本公开第一方面中所述方法的步骤。
通过上述技术方案,在计算机的可信执行环境TEE中运行数据交易程序,通过数据交易程序对原始数据按照数据交易合约中约定的形式进行提取和处理,并获得输出结果,由于TEE中运行的程序不受外界硬软件的干涉,使得原始数据会根据数据交易合约中的形式进行处理,从而减少数据的转卖、复制、分享及滥用的情况,提升了数据交易中的数据安全性。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性公开实施例示出的一种数据交易系统的示意图。
图2是根据一示例性公开实施例示出的另一种数据交易系统的示意图。
图3是根据一示例性公开实施例示出的一种数据处理方法的流程图。
图4是根据一示例性公开实施例示出的一种数据交易系统的交易过程的示意图。
图5是根据一示例性公开实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
首先对本公开的实施场景进行说明。本公开可以适用于数据流转的场景,包括数据有偿交易、数据无偿提供等场景下,数据提供方不愿意数据被约定以外的方式被复制、转卖、分享及滥用的情况。
在本公开中,数据交易程序被写入区块链网络中,由于区块链网络中的数据难以被篡改的特性,可以保证数据交易程序的安全性。
而本公开中的数据交易程序是运行于TEE(Trusted Execution Environment,可信执行环境)中的程序,TEE是处理器中的一个安全区域,为程序的运行提供了一个安全隔离的运行环境,可以保证运行其中的代码和数据不被外部软件(包括操作系统、BIOS等)或硬件(包括处理器的其他区域)非法获取,目前TEE可以通过ARM TrustZone、Intel SGX等实现。
图1是根据一示例性公开实施例示出的一种数据交易系统的示意图,如图1所示,所述数据交易系统100中包括程序审核节点101、数据买方节点102和数据卖方节点103,其中,程序审核节点可以对数据交易程序进行审核,将签名后的数据交易程序写入区块链网络;数据卖方节点103或者数据买方节点102中的任意一方可以从区块链网络中提取数据交易程序,并在TEE中运行该数据交易程序,获得程序输出结果。
其中,程序审核节点101可以获取程序开发者上传到数据交易程序,并审核该数据交易程序对数据的处理方式是否和存于区块链网络中的数据交易合约中约定的数据处理方式一致,如果是,则根据自身的私钥对数据交易程序进行签名,并将签名后的数据交易程序写入区块链网络中。
其中,该数据的处理方式可以指程序输出结果是否包括输入的数据、从数据源提取数据的方式、从所述数据源提取数据的数量限制条件信息这三者中的任意一种,或者三者的任意组合。例如,在数据交易合约中约定有“源数据仅用于某某处理,源数据不用于其他用途,基于A接口/合约从B数据库中获取数据,数据量上限为X”,则程序审核节点可以用于审核该数据交易程序是否只输出数据处理结果而不输出源数据,该数据交易程序是否是基于A接口/合约从B数据库中提取数据,该数据交易程序获取数据量的上线是否为X。
值得说明的是,程序开发者上传程序时可以直接将该数据交易程序上传至区块链网络,则程序审核节点可以在审核该上传至区块链网络中的数据交易程序之后,直接对该区块链网络中的数据交易程序进行签名,而省去由程序审核节点上传该数据交易程序的步骤。
值得说明的是,该程序审核节点可以为数据卖方和数据买方中的任意一方,也就是说,数据审核节点可以和数据卖方节点为同一节点,也可以与数据买方节点为同一节点;该程序审核节点还可以是第三方的节点,例如该数据交易系统的维护者等。而程序开发者也可以是数据卖方、数据买方中的任意一方,也可以是由交易双方约定的第三方,也就是说,该上传的数据交易程序可以是由数据卖方节点或者数据买方节点任一节点上传至区块链网络中的。例如,程序卖方可以根据双方约定的需求,开发用于对数据进行处理得到约定需求的处理结果的数据交易程序,并将其通过数据卖方节点上传至区块链网络中,数据买方节点可以获取该区块链网络中的数据交易程序,在审核其对数据的处理方式与约定相同时,对其用自身的私钥进行签名。
在本实施例中,由数据卖方节点103作为数据处理节点来运行数据交易程序,具体用于从区块链网络中提取数据交易程序,所述数据交易程序是在程序审核通过后写入所述区块链网络中的,其中,所述程序审核通过至少表明该数据交易程序对数据的处理方式与数据交易合约中约定的数据处理方式一致;在TEE中运行所述数据交易程序,其中,所述数据交易程序用于基于安全传输通道从数据源获取数据,并对所述数据进行处理;获取所述数据交易程序的程序输出结果。
在运行该数据交易程序之前,还可以通过程序审核节点的公钥对数据交易程序的签名进行验证,从而验证该数据交易程序是否通过程序审核节点的审核,在签名验证通过后,可以运行该数据交易程序,在签名验证不通过的情况下,可以不运行该程序,从而可以在运行前发现数据交易程序遭到恶意篡改,防止他人通过篡改数据交易程序以得到源数据的行为,保护数据的安全性。
在运行该数据交易程序之前,还可以基于TEE验证机制,对所述数据交易程序的运行代码和数据进行合法性验证以及完整性验证;在通过所述合法性验证以及所述完整性验证后,运行所述数据交易程序。例如,由数据交易程序生成验证条Quote,其中包括了开发者公钥指纹等信息,通过验证该Quote中包括的开发者公钥指纹和区块链网络中的数据交易合约中记录的开发者密钥信息是否一致,可以确定TEE中运行的程序是否为指定的程序,从而防止数据交易程序被恶意替换,从而可以防止通过替换待运行的程序来获取源数据的行为,从而提升数据的安全性。
在运行数据交易程序之前,还可以根据数据处理节点的私钥对数据交易合约中的随机数/数量限制条件信息进行签名,并将签名信息发送至数据交易程序,数据交易程序验证该签名信息后运行,以确定运行该数据交易程序的节点为指定的节点,从而防止数据交易合约中约定的节点以外的其他节点运行该程序得到数据处理结果,保证数据交易程序是运行在约定的节点之上,从而保证数据的安全性。
进一步的,该数据交易程序可以包括数据访问程序和数据处理程序,所述数据访问程序用于从数据源获取数据,所述数据处理程序用于基于所述数据处理程序与所述数据访问程序之间的安全传输通道获取所述数据,并在对所述数据进行处理后输出所述程序输出结果。该数据访问程序和数据处理程序可以由相同的开放者开发,也可以由不同的开发者开发,可以由相同的程序审核节点进行审核,也可以由不同的程序审核节点进行审核。
例如,该数据访问程序可以由数据卖方开发,并由数据买方节点上传至区块链网络中,由数据买方作为程序审核者,将数据买方节点作为程序审核节点,对该数据访问程序进行审核;该数据处理程序可以由数据买方开发,并由数据卖方节点上传至区块链网络中,由数据卖方作为程序审核者,将数据卖方节点作为程序审核节点,对该数据处理程序进行审核。
值得说明的是,由于数据处理的特殊性,该数据处理程序可能会根据不同的数据交易合约进行不同设置,但是数据访问程序可以是通过数据访问接口的特征,从预设的多个数据访问程序中确定的与该数据访问接口适配的数据访问程序,该数据访问程序的数据访问上限可以根据数据访问合约进行不同设置,并由数据审核节点进行审核。
该数据访问程序和数据交易程序可以运行于数据卖方节点或数据买方节点中的任一节点,本实施例中以数据卖方节点作为数据处理节点运行该数据访问程序和数据处理程序为例进行说明。
在运行数据处理程序和数据访问程序前,可以基于数据审核节点的公钥对这两个程序是否分别通过审核进行验证,也可以基于TEE验证机制,对这两个程序的运行代码和数据进行合法性验证以及完整性验证,其验证方式如上,在此不做赘述。
值得说明的是,在数据审核节点对两个程序进行审核时,针对数据访问程序,可以对其是否以约定的方式从数据源获取数据或者其获取数据量的上限是否符合与存储于区块链网络中的数据交易合约一致进行审核;针对数据处理程序,可以对其是否按照约定只输出数据处理结果而不输出源数据进行审核。
在一种可能的实施方式中,数据买方节点根据所述数据买方节点的私钥对所述数据处理合约中包括的随机数和/或数量限制条件信息进行签名,得到第一签名信息,并将所述第一签名信息发送给所述数据访问程序,并根据所述数据买方节点的私钥对所述数据处理合约中包括的随机数进行签名,得到第二签名信息,并将所述第二签名信息发送给所述数据处理程序;
数据卖方节点基于所述数据买方节点的公钥对所述第一签名信息和所述第二签名信息进行验证,在所述第一签名信息和所述第二签名信息均验证通过后,在所述TEE中运行所述数据访问程序和所述数据处理程序。
当由数据买方节点运行该数据访问程序和数据处理程序时,可以由数据卖方节点对数据访问程序和数据处理程序进行签名,由数据买方节点对签名进行验证,从而在确定交易对象的身份的情况下运行程序,提高数据交易中的数据安全性。
值得说明的是,本实施例中虽然以数据卖方节点运行数据交易程序(包括数据访问程序和数据处理程序)为例进行说明,但是本公开不对该数据交易程序运行在数据卖方节点或数据买方节点中的哪个节点进行限制,在数据买方节点运行该数据交易程序时,只需将本实施例的举例中的数据卖方节点执行的内容及相关的签名适应性变换为由数据买方节点执行,将本实施例的举例中的数据买方节点执行的内容和与之相关的签名适应性变换为由数据卖方节点执行。
通过上述技术方案,在计算机的可信执行环境TEE中运行数据交易程序,通过数据交易程序对原始数据按照数据交易合约中约定的形式进行提取和处理,并获得输出结果,由于TEE中运行的程序不受外界硬软件的干涉,使得原始数据会根据数据交易合约中的形式进行处理,从而减少数据的转卖、复制、分享及滥用的情况,提升了数据交易中的数据安全性。
并且,通过本实施例中提供的验证方式,可以分别防止数据交易程序被篡改、被替换、被运行在其他节点上而导致的源数据的泄漏或处理结果的泄漏,进一步提升了数据流通中的数据安全性。
图2是根据一示例性公开实施例示出的一种数据交易系统的示意图,如图2所示,数据交易系统200可以包括程序审核节点201、数据买方节点202、数据卖方节点203,并且,数据交易程序包括数据访问程序和数据处理程序,程序审核节点201审核该数据访问程序、数据处理程序后,将其上传至区块链网络,而数据买方节点202从区块链网络中提取并运行数据处理程序,数据卖方节点203从区块链网络中提取并运行数据访问程序。
其中,程序审核节点201可以获取程序开发者上传的数据访问程序和数据处理程序,并审核该数据访问程序和数据处理程序对数据的处理方式是否和存于区块链网络中的数据交易合约中约定的数据处理方式一致,如果是,则根据自身的私钥对数据访问程序和数据处理程序进行签名,并将签名后的数据访问程序和数据处理程序写入区块链网络中。
其中,该数据的处理方式可以指程序输出结果是否包括输入的数据、从数据源提取数据的方式、从所述数据源提取数据的数量限制条件信息这三者中的任意一种,或者三者的任意组合。例如,在数据交易合约中约定有“源数据仅用于某某处理,源数据不用于其他用途,基于A接口/合约从B数据库中获取数据,数据量上限为X”,则程序审核节点可以用于审核该数据处理程序是否只输出数据处理结果而不输出源数据,该数据访问程序是否是基于A接口/合约从B数据库中提取数据,该数据交易程序获取数据量的上线是否为X。
值得说明的是,程序开发者上传程序时可以直接将该数据访问程序和数据处理程序上传至区块链网络,则程序审核节点可以在审核该上传至区块链网络中的数据访问程序和数据处理程序之后,直接对该区块链网络中的数据访问程序和数据处理程序进行签名,而省去由程序审核节点上传该数据访问程序和数据处理程序的步骤。
值得说明的是,该程序审核节点可以为数据卖方和数据买方中的任意一方,也就是说,数据审核节点可以和数据卖方节点为同一节点,也可以与数据买方节点为同一节点,或者数据卖方和数据买方分别对两个程序中的一个进行审核,数据卖方节点和数据卖方节点都可以作为数据审核节点;该程序审核节点还可以是第三方的节点,例如该数据交易系统的维护者等。而程序开发者也可以是数据卖方、数据买方中的任意一方,两个程序也可以分别由数据卖方、数据买方中的双方开发,程序也可以是由交易双方约定的第三方,也就是说,该上传的数据交易程序可以是由数据卖方节点或者数据买方节点任一节点上传至区块链网络中的。
例如,该数据访问程序可以由数据卖方开发,并由数据买方节点上传至区块链网络中,由数据买方作为程序审核者,将数据买方节点作为程序审核节点,对该数据访问程序进行审核;该数据处理程序可以由数据买方开发,并由数据卖方节点上传至区块链网络中,由数据卖方作为程序审核者,将数据卖方节点作为程序审核节点,对该数据处理程序进行审核。
值得说明的是,由于数据处理的特殊性,该数据处理程序可能会根据不同的数据交易合约进行不同设置,但是数据访问程序可以是通过数据访问接口的特征,从预设的多个数据访问程序中确定的与该数据访问接口适配的数据访问程序,该数据访问程序的数据访问上限可以根据数据访问合约进行不同设置,并由数据审核节点进行审核。
数据卖方节点根据所述程序审核节点的公钥对所述数据访问程序进行验证,并确定所述数据访问程序已通过所述程序审核节点的审核后,在所述TEE中运行所述数据访问程序。
例如,若该数据访问程序是由数据买方节点作为程序审核节点进行审核的,则运行该数据访问程序的数据卖方节点可以基于数据买方节点的公钥对该数据访问程序进行验证。
数据买方节点根据所述程序审核节点的公钥对所述数据处理程序进行验证,并在确定所述数据处理程序已通过所述程序审核节点的审核后,在所述TEE中运行所述数据处理程序。
例如,若该数据处理程序是由数据卖方节点作为程序审核节点进行审核的,则运行该数据处理程序的数据买方节点可以基于数据卖方节点的公钥对该数据处理程序进行验证。
在运行该数据访问程序或数据处理程序之前,还可以通过以下的方式对两个程序进行验证:
数据卖方节点根据数据卖方节点的私钥对所述数据处理合约中包括的随机数和/或数量限制条件信息进行签名,得到第一签名信息,并将所述第一签名信息发送给所述数据访问程序;数据买方节点根据数据买方节点的私钥对所述数据处理合约中包括的随机数进行签名,得到第二签名信息,并将所述第二签名信息发送给所述数据处理程序;
所述数据卖方节点基于所述数据买方节点的公钥对从数据处理程序中获取的所述第二签名信息进行验证,在所述第二签名信息验证通过后,在所述TEE中运行所述数据访问程序;所述数据买方节点基于所述数据卖方节点的公钥对从数据访问程序中获取的所述第一签名信息进行验证,在所述第一签名信息验证通过后,在所述TEE中运行所述数据处理程序。从而可以在确定运行程序的对象与约定的交易对象的身份一致的情况下运行程序,提高数据交易中的数据安全性。
在运行该数据访问程序或数据处理程序之前,数据卖方节点和数据买方节点还可以基于TEE验证机制,对自身运行的和对方运行的数据访问程序和数据处理程序的运行代码和数据进行合法性验证以及完整性验证;在通过所述合法性验证以及所述完整性验证后,分别运行数据访问程序或数据处理程序。
例如,由数据访问程序生成验证条Quote,其中包括了数据访问程序的开发者公钥指纹等信息,数据卖方节点和数据买方节点均可以通过验证该Quote中包括的开发者公钥指纹和区块链网络中的数据交易合约中记录的数据访问程序的开发者密钥信息是否一致,可以确定TEE中运行的程序是否为指定的程序;由数据处理程序生成另一验证条Quote,其中包括了数据处理程序的开发者公钥指纹等信息,数据卖方节点和数据买方节点均可以通过验证该Quote中包括的开发者公钥指纹和区块链网络中的数据交易合约中记录的数据处理程序的开发者密钥信息是否一致,可以确定TEE中运行的程序是否为指定的程序,从而防止自身或对方运行的数据交易程序被恶意替换,从而可以防止通过替换待运行的程序来获取源数据的行为,从而提升数据的安全性。
通过上述技术方案,在计算机的可信执行环境TEE中运行数据交易程序,通过数据交易程序对原始数据按照数据交易合约中约定的形式进行提取和处理,并获得输出结果,由于TEE中运行的程序不受外界硬软件的干涉,使得原始数据会根据数据交易合约中的形式进行处理,从而减少数据的转卖、复制、分享及滥用的情况,提升了数据交易中的数据安全性。并且将数据交易程序分为数据访问程序和数据处理程序,分别由数据卖方节点和数据买方节点运行,由数据卖方节点运行从数据源提取数据的程序,由数据买方节点运行通过原始数据计算处理结果的程序,将数据提取方固定在卖方,数据买方不对数据的提取进行干涉,从而进一步提升数据交易的安全性。
并且,通过本实施例中提供的验证方式,可以分别防止数据交易程序被篡改、被替换、被运行在其他节点上而导致的源数据的泄漏或处理结果的泄漏,进一步提升了数据流通中的数据安全性。
图3是根据一示例性公开实施例示出的数据处理方法的流程图,数据处理方法应用于数据处理节点。值得说明的是,在本公开的数据交易系统中,数据卖方节点和数据卖方节点均可以作为该数据处理节点执行本方法的步骤。如图3所示,所述数据处理方法包括以下步骤:
S31、从区块链网络中提取数据交易程序,所述数据交易程序是在程序审核通过后写入所述区块链网络中的。
其中,所述程序审核通过至少表明该数据交易程序对数据的处理方式与数据交易合约中约定的数据处理方式一致。
S32、在计算机的可信执行环境TEE中运行所述数据交易程序。
其中,所述数据交易程序用于基于安全传输通道从数据源获取数据,并对所述数据进行处理。
S33、获取所述数据交易程序的程序输出结果。
可选地,通过如下方式对所述数据交易程序进行审核:程序审核节点获取程序开发者上传的数据交易程序;在确定所述数据交易程序对数据的处理方式与所述区块链网络中的数据交易合约中约定的数据处理方式一致的情况下,根据所述数据审核节点的私钥对所述数据交易程序进行签名;将签名后的所述数据交易程序写入所述区块链网络;所述在计算机的可信执行环境TEE中运行所述数据交易程序,包括:根据所述程序审核节点的公钥对从所述区块链网络中提取的数据交易程序进行签名认证,并在签名认证成功后,在计算机的可信执行环境TEE中运行所述数据交易程序。
可选地,所述数据交易合约是数据交易双方签定后存储到所述区块链网络的,所述数据交易合约包括以下至少一种:所述数据交易程序的程序输出结果不包括输入所述数据交易程序进行处理的数据;从所述数据源提取数据的方式;从所述数据源提取数据的数量限制条件信息。
可选地,所述在计算机的可信执行环境TEE中运行所述数据交易程序包括:基于TEE验证机制,对所述数据交易程序的运行代码和数据进行合法性验证以及完整性验证;在通过所述合法性验证以及所述完整性验证后,运行所述数据交易程序。
可选地,所述数据交易程序包括数据访问程序和数据处理程序,所述数据交易程序基于安全传输通道从数据源获取数据包括:根据所述数据处理节点的私钥对所述数据处理合约中包括的随机数和/或数量限制条件信息进行签名,得到签名信息;将所述签名信息发送给所述数据访问程序,其中,所述数据访问程序在确定对所述签名信息的签名认证成功后,建立与所述数据处理程序之间的安全传输通道,以便所述数据处理程序基于所述数据访问程序通过所述安全传输通道从所述数据源获取到数据。
关于上述实施例中的方法,其中各个步骤的具体方式已经在有关数据交易系统的实施例中进行了详细描述,此处将不做详细阐述说明。
通过上述技术方案,在计算机的可信执行环境TEE中运行数据交易程序,通过数据交易程序对原始数据按照数据交易合约中约定的形式进行提取和处理,并获得输出结果,由于TEE中运行的程序不受外界硬软件的干涉,使得原始数据会根据数据交易合约中的形式进行处理,从而减少数据的转卖、复制、分享及滥用的情况,提升了数据交易中的数据安全性。
并且,通过本实施例中提供的验证方式,可以分别防止数据交易程序被篡改、被替换、被运行在其他节点上而导致的源数据的泄漏或处理结果的泄漏,进一步提升了数据流通中的数据安全性。
图4示出了本公开实施例提供的数据交易系统的详细交易过程。如图4所示,该过程涉及到虚线框示出的4类角色和实线框示出的5个组件。
其中,每个角色均具有互不相同的区块链账户,拥有由公钥和私钥组成的非对称密钥对,用于在区块链中发布信息或写入数据时证明自身的身份。不同角色的职责如下:
TEE程序开发方:负责开发数据访问程序和数据处理程序,并将开发完成的程序发布到区块链中。
TEE程序审核方:TEE程序审核方负责从区块链中获取TEE程序开发方发布的程序,并审核程序是否具有不可信的逻辑。如果审核通过,审核方使用自身的区块链账户向区块链中写入所审核程序“安全可信”的信息。
数据卖方:数据的拥有方,负责运行数据访问程序。
数据买方:数据的需求方,负责运行数据处理程序。
需要注意的是,某一实体可同时成为上述某一角色或多个角色。例如,买方可同时作为TEE程序开发方,开发相应的TEE程序,并由卖方担任TEE程序审核方对程序进行审核。又例如,卖方也可同时作为TEE程序开发方,开发相应的TEE程序,并由买方担任TEE程序审核方对程序进行审核。
下面对组件进行说明:
区块链:负责记录数据访问程序和数据处理程序及其特征信息,以及上述程序的审核结果。负责记录数据买卖双方达成的数据交易合同。采用SGX情况下,上述访问程序和数据处理程序特征信息为Enclave Measurement和Enclave开发者公钥。
交易合同:负责记录买卖双方达成的交易约定,例如可以约定:买卖双方的区块链账户公钥,使用的数据访问程序和数据处理程序及其特征信息,数据访问量上限(可为无穷大),TEE程序审核方的区块链账户公钥、随机数等。
数据访问程序:该程序应符合所采用TEE环境的要求,根据数据源不同可以是不同的数据处理程序。当采用Intel SGX时,该程序为Intel SGX的Enclave。该数据访问程序可以实现如下两个功能:a)为数据处理程序提供对数据源的访问接口;b)向区块链中写入数据处理程序实际发生的数据访问情况(数据访问量等),用于后续计费和结算。
对于上述a)功能,数据访问程序应基于区块链中记录的交易合同所明确的访问限制条件对数据处理程序的数据访问请求进行访问控制,例如当数据访问量已达到合同约定上限时拒绝相应的访问请求。
针对数据访问程序的审核通过条件可以是:1)是否真实无误地从数据源读取数据处理程序所需的数据;2)是否真实地将实际发生的数据访问情况写入区块链。
数据处理程序:该程序应符合所采用TEE环境的要求,对不同的数据分析处理需求可以是不同的数据处理程序。当采用Intel SGX时,该程序为Intel SGX的Enclave。数据处理程序可以实现如下两个功能:a)通过数据访问代理获得所需数据;b)对所获得的数据进行计算统计等处理,并且仅输出处理结果,任何情况下不输出原始数据信息。
针对数据处理程序的审核通过条件可以是:1)是否仅输出处理结果,任何情况下均未以任何形式输出原始数据信息或可推导出原始数据的任何信息。
数据源:负责存储卖方数据,可为任意类型的数据库系统、文件系统或其它数据存储服务。
下面对涉及到上述角色和组件的工作流程进行详细说明。
数据应用开发审核上线阶段:
该阶段完成数据访问程序和数据处理程序的开发和审核。流程如下:
A1.TEE程序开发方根据数据源数据存储机制(例如数据库类型)开发数据访问程序,根据数据处理分析需求开发相应的数据处理程序,并将开发好的程序发布到区块链中。
A2.TEE程序审核方从区块链中获取相应程序,并按照审核条件,对程序进行审核,审核通过后,TEE程序审核方使用自身区块链账户的私钥对审核结果签名,并将审核通过结果及其签名写入区块链。
买卖双方达成交易合同阶段:
如图4中的B1所示,买卖双方可通过任意方式达成交易合同,并将合同信息写入区块链。
合同执行阶段:
当交易合同写入区块链后,买卖双方即可开始合同的执行,如图4中的C1.1至C3.3。其中:
C1.1~C1.2为买卖双方启动TEE程序并初始化过程,包括:
卖方从区块链中获取交易合同和交易合同约定采用的数据访问程序,并检查该程序是否通过审核,检查方法为:a)使用交易合同中记录的TEE程序审核方区块链账户公钥对审核签名进行验证,判断验证是否通过;b)判断审核结果是否为“审核通过”。如果审核通过,则在由卖方选择的计算平台的TEE环境中启动数据访问程序。
卖方使用自身区块链账户的私钥对区块链上交易合同中的随机数和数据访问量上限进行签名,得到签名SignatureA,并将SignatureA输入数据访问程序,同时卖方将交易合同中约定的数据访问量上限等信息输入数据访问程序。
买方从区块链中获取交易合同和交易合同约定采用的数据处理程序,并检查该程序是否通过审核,检查方法为:a)使用交易合同中记录的TEE程序审核方区块链账户公钥对审核签名进行验证,判断验证是否通过;b)判断审核结果是否为“审核通过”。如果审核通过,则在由买方选择的计算平台的TEE环境中启动数据处理程序。
买方使用自身区块链账户的私钥对对区块链上交易合同中的随机数进行签名,得到签名SignatureB,并将SignatureB输入数据访问程序。
需要注意的是:上述买卖双方所选择的用于运行数据访问程序和数据处理程序可以是同一主机,也可以是不同主机。
C2.1~C2.2为数据访问程序和数据处理程序相互认证并建立端到端的安全传输通道的过程。具体地:
买卖双方使用TEE环境提供的机制完成自身和对方所运行程序完整性和正确性的验证。如果验证不通过,则停止后续流程。(PS:此验证过程保证了数据访问程序和数据处理程序本身在运行时未被篡改,包括违背运行方篡改,未被所在主机的操作系统/木马等恶意程序篡改等情况)
采用Intel SGX情况下,上述验证机制采用SGX提供的远程证明(RemoteAttestation)实现。远程证明机制为:a)数据访问程序和数据处理程序分别生成Quote(Quote中包含了Enclave Measurement、Enclave开发者公钥指纹);b)买卖双方交换数据访问程序和数据处理程序的Quote;c)买卖双方通过SGX提供的远程验证服务验证Quote的合法性;d)买卖双方验证Quote所包含的Enclave Measurement和Enclave开发者公钥指纹是否与区块链上交易合同中的对应信息一致。
买卖双方分别从对方运行的数据访问程序和数据处理程序获得SignatureA和SignatureB,使用区块链上交易合同中的对方区块链账户公钥、随机数和数据访问量上限验证SignatureA和SignatureB,如果验证不通过,则停止后续流程。值得注意的是,此验证过程保证了数据访问程序和数据处理程序是由交易合同中指定的买卖双方运行的。
上述验证通过,卖方给数据访问程序赋予卖方数据源的访问权限。买卖双方分别控制数据访问程序和数据处理程序建立端到端的安全传输通道,该通道可以是TLS、VPN或其他任意保证传输安全的通道,后续数据访问程序和数据处理程序之间的通信均在此安全通道中进行。
C3.1~C3.3为数据获取和处理过程。具体地:
数据处理程序向数据访问程序请求数据,数据访问代理根据实际发生的数据访问量是否超出交易合同中约定的数据访问量上限,对数据处理程序的数据请求作出响应,从数据源中读取数据并将数据返回数据处理程序。
数据处理程序根据自身数据计算处理逻辑,对数据进行相应的处理,并将数据处理结果输出。
数据访问程序使用私钥对数据处理程序实际发生的数据访问量签名后,将数据访问量和签名写入区块链,以便后续根据实际业务量进行计费和结算。
图5是根据一示例性实施例示出的一种电子设备500的框图,该电子设备可以提供为本公开中的数据交易系统中的任意节点,用于执行本公开的数据处理方法中的任意步骤。如图5所示,该电子设备500可以包括:处理器501,存储器502。该电子设备500还可以包括多媒体组件503,输入/输出(I/O)接口504,以及通信组件505中的一者或多者。
其中,处理器501用于控制该电子设备500的整体操作,以完成上述的数据处理方法中的全部或部分步骤。存储器502用于存储各种类型的数据以支持在该电子设备500的操作,这些数据例如可以包括用于在该电子设备500上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件503可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器502或通过通信组件505发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口504为处理器501和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件505用于该电子设备500与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件505可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的数据处理方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据处理方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器502,上述程序指令可由电子设备500的处理器501执行以完成上述的数据处理方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
实施例
1、一种数据处理方法,包括:从区块链网络中提取数据交易程序,所述数据交易程序是在程序审核通过后写入所述区块链网络中的,其中,所述程序审核通过至少表明该数据交易程序对数据的处理方式与数据交易合约中约定的数据处理方式一致;在计算机的可信执行环境TEE中运行所述数据交易程序,其中,所述数据交易程序用于基于安全传输通道从数据源获取数据,并对所述数据进行处理;获取所述数据交易程序的程序输出结果。
2、根据实施例1所述的方法,通过如下方式对所述数据交易程序进行审核:程序审核节点获取程序开发者上传的数据交易程序;在确定所述数据交易程序对数据的处理方式与所述区块链网络中的数据交易合约中约定的数据处理方式一致的情况下,根据所述数据审核节点的私钥对所述数据交易程序进行签名;将签名后的所述数据交易程序写入所述区块链网络;所述在计算机的可信执行环境TEE中运行所述数据交易程序,包括:根据所述程序审核节点的公钥对从所述区块链网络中提取的数据交易程序进行签名认证,并在签名认证成功后,在计算机的可信执行环境TEE中运行所述数据交易程序。
3、根据实施例2所述的方法,所述数据交易合约是数据交易双方签定后存储到所述区块链网络的,所述数据交易合约包括以下至少一种:所述数据交易程序的程序输出结果不包括输入所述数据交易程序进行处理的数据;从所述数据源提取数据的方式;从所述数据源提取数据的数量限制条件信息。
4、根据实施例1-3所述的方法,述在计算机的可信执行环境TEE中运行所述数据交易程序包括:基于TEE验证机制,对所述数据交易程序的运行代码和数据进行合法性验证以及完整性验证;在通过所述合法性验证以及所述完整性验证后,运行所述数据交易程序。
5、根据实施例1-3所述的方法,所述数据交易程序包括数据访问程序和数据处理程序,所述数据交易程序基于安全传输通道从数据源获取数据包括:根据所述数据处理节点的私钥对所述数据处理合约中包括的随机数和/或数量限制条件信息进行签名,得到签名信息;将所述签名信息发送给所述数据访问程序,其中,所述数据访问程序在确定对所述签名信息的签名认证成功后,建立与所述数据处理程序之间的安全传输通道,以便所述数据处理程序基于所述数据访问程序通过所述安全传输通道从所述数据源获取到数据。
6、一种数据交易系统,包括:程序审核节点、数据买方节点以及数据卖方节点;所述程序审核节点用于对程序开发节点开发的数据交易程序进行审核,并在确定所述数据交易程序对数据的处理方式与区块链网络中的数据交易合约中约定的数据处理方式一致的情况下,根据所述数据审核节点的私钥对所述数据交易程序进行签名,将签名后的所述数据交易程序写入所述区块链网络;所述数据卖方节点和所述数据买方节点中的一者能够用于数据处理节点运行所述数据交易程序,所述数据处理节点用于执行本公开第一方面中所述的方法的步骤。
7、根据实施例6所述的数据交易系统,所述数据交易程序包括数据访问程序和数据处理程序,所述数据卖方节点作为所述数据处理节点运行所述数据访问程序和所述数据处理程序;所述数据处理节点具体用于:从所述区块链网络中提取所述数据访问程序和所述数据处理程序,并在计算机的可信执行环境TEE中运行所述数据访问程序和所述数据处理程序,并获取所述数据处理程序的程序输出结果;其中,所述数据访问程序用于从数据源获取数据,所述数据处理程序用于基于所述数据处理程序与所述数据访问程序之间的安全传输通道获取所述数据,并在对所述数据进行处理后输出所述程序输出结果。
8、根据实施例7所述的数据交易系统,所述数据处理节点用于:根据所述程序审核节点的公钥对所述数据访问程序和所述数据处理程序进行验证,并在确定所述数据访问程序和所述数据处理程序已通过所述程序审核节点的审核后,在所述TEE中运行所述数据访问程序和所述数据处理程序。
9、根据实施例6所述的数据交易系统,所述数据处理节点还用于:基于TEE验证机制,对所述数据处理程序和所述数据访问程序的运行代码和数据进行合法性验证以及完整性验证;在通过所述合法性验证以及所述完整性验证后,运行所述数据处理程序和所述数据访问程序。
10、根据实施例6所述的数据交易系统,所述数据买方节点用于,根据所述数据买方节点的私钥对所述数据处理合约中包括的随机数和/或数量限制条件信息进行签名,得到第一签名信息,并将所述第一签名信息发送给所述数据访问程序,并根据所述数据买方节点的私钥对所述数据处理合约中包括的随机数进行签名,得到第二签名信息,并将所述第二签名信息发送给所述数据处理程序;所述数据处理节点还用于:基于所述数据买方节点的公钥对所述第一签名信息和所述第二签名信息进行验证,在所述第一签名信息和所述第二签名信息均验证通过后,在所述TEE中运行所述数据访问程序和所述数据处理程序。
11、根据实施例6所述的数据交易系统,所述数据交易程序包括数据访问程序和数据处理程序,所述数据买方节点作为所述数据处理节点运行所述数据访问程序和所述数据处理程序;所述数据处理节点具体用于:从所述区块链网络中提取所述数据访问程序和所述数据处理程序,并在计算机的可信执行环境TEE中运行所述数据访问程序和所述数据处理程序,获取所述数据处理程序的程序输出结果;其中,所述数据访问程序用于从数据源获取数据,所述数据处理程序用于基于所述数据处理程序与所述数据访问程序之间的安全传输通道获取所述数据,并在对所述数据进行处理后输出所述程序输出结果。
11、根据实施例6所述的数据交易系统,所述数据交易程序包括数据访问程序和数据处理程序,所述数据买方节点作为所述数据处理节点运行所述数据访问程序和所述数据处理程序;所述数据处理节点具体用于:从所述区块链网络中提取所述数据访问程序和所述数据处理程序,并在计算机的可信执行环境TEE中运行所述数据访问程序和所述数据处理程序,获取所述数据处理程序的程序输出结果;其中,所述数据访问程序用于从数据源获取数据,所述数据处理程序用于基于所述数据处理程序与所述数据访问程序之间的安全传输通道获取所述数据,并在对所述数据进行处理后输出所述程序输出结果。
12、根据实施例6所述的数据交易系统,所述数据交易程序包括数据访问程序和数据处理程序,所述数据卖方节点运行所述数据访问程序,所述数据买方节点运行所述数据处理程序;所述数据卖方节点具体用于:从所述区块链网络中提取所述数据访问程序,并在计算机的可信执行环境TEE中运行所述数据访问程序,其中,所述数据访问程序基于安全传输通道从数据源获取数据;所述数据买方节点具体用于:从所述区块链网络中提取所述数据处理程序,并在计算机的可信执行环境TEE中运行所述数据处理程序,获取所述数据处理程序的程序输出结果;其中,所述数据处理程序用于基于所述数据处理程序与所述数据访问程序之间的安全传输通道获取所述数据,并在对所述数据进行处理后输出所述程序输出结果。
13、根据实施例12所述的数据交易系统,所述数据卖方节点还用于:根据所述程序审核节点的公钥对所述数据访问程序进行验证,并确定所述数据访问程序已通过所述程序审核节点的审核后,在所述TEE中运行所述数据访问程序;所述数据买方节点还用于:根据所述程序审核节点的公钥对所述数据处理程序进行验证,并在确定所述数据处理程序已通过所述程序审核节点的审核后,在所述TEE中运行所述数据处理程序。
13、根据实施例12所述的数据交易系统,所述数据卖方节点用于根据所述数据卖方节点的私钥对所述数据处理合约中包括的随机数和/或数量限制条件信息进行签名,得到第一签名信息,并将所述第一签名信息发送给所述数据访问程序;
所述数据买方节点用于根据所述数据买方节点的私钥对所述数据处理合约中包括的随机数进行签名,得到第二签名信息,并将所述第二签名信息发送给所述数据处理程序;所述数据卖方节点还用于基于所述数据买方节点的公钥对所述第二签名信息进行验证,在所述第二签名信息验证通过后,在所述TEE中运行所述数据访问程序;所述数据买方节点还用于基于所述数据卖方节点的公钥对所述第一签名信息进行验证,在所述第一签名信息验证通过后,在所述TEE中运行所述数据处理程序。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法应用于数据处理节点,所述方法包括:
从区块链网络中提取数据交易程序,所述数据交易程序是在程序审核通过后写入所述区块链网络中的,其中,所述程序审核通过至少表明该数据交易程序对数据的处理方式与数据交易合约中约定的数据处理方式一致,所述数据交易合约是数据交易双方签定后存储到所述区块链网络的,所述数据交易合约包括:所述数据交易程序的程序输出结果不包括输入所述数据交易程序进行处理的数据;
在计算机的可信执行环境TEE中运行所述数据交易程序,其中,所述数据交易程序用于基于安全传输通道从数据源获取数据,并对所述数据进行处理;
获取所述数据交易程序的程序输出结果。
2.根据权利要求1所述的方法,其特征在于,通过如下方式对所述数据交易程序进行审核:
程序审核节点获取程序开发者上传的数据交易程序;
在确定所述数据交易程序对数据的处理方式与所述区块链网络中的数据交易合约中约定的数据处理方式一致的情况下,根据所述程序审核节点的私钥对所述数据交易程序进行签名;
将签名后的所述数据交易程序写入所述区块链网络;
所述在计算机的可信执行环境TEE中运行所述数据交易程序,包括:
根据所述程序审核节点的公钥对从所述区块链网络中提取的数据交易程序进行签名认证,并在签名认证成功后,在计算机的可信执行环境TEE中运行所述数据交易程序。
3.根据权利要求2所述的方法,其特征在于,所述数据交易合约包括以下至少一种:
从所述数据源提取数据的方式;
从所述数据源提取数据的数量限制条件信息。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述在计算机的可信执行环境TEE中运行所述数据交易程序包括:
基于TEE验证机制,对所述数据交易程序的运行代码和数据进行合法性验证以及完整性验证;
在通过所述合法性验证以及所述完整性验证后,运行所述数据交易程序。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述数据交易程序包括数据访问程序和数据处理程序,所述数据交易程序基于安全传输通道从数据源获取数据包括:
根据所述数据处理节点的私钥对所述数据交易合约中包括的随机数和/或数量限制条件信息进行签名,得到签名信息;
将所述签名信息发送给所述数据访问程序,其中,所述数据访问程序在确定对所述签名信息的签名认证成功后,建立与所述数据处理程序之间的安全传输通道,以便所述数据处理程序基于所述数据访问程序通过所述安全传输通道从所述数据源获取到数据。
6.一种数据交易系统,其特征在于,包括:
程序审核节点、数据买方节点以及数据卖方节点;
所述程序审核节点用于对程序开发节点开发的数据交易程序进行审核,并在确定所述数据交易程序对数据的处理方式与区块链网络中的数据交易合约中约定的数据处理方式一致的情况下,根据所述程序审核节点的私钥对所述数据交易程序进行签名,将签名后的所述数据交易程序写入所述区块链网络;
所述数据卖方节点和所述数据买方节点中的一者能够用于数据处理节点运行所述数据交易程序,所述数据处理节点用于执行权利要求1-5任一项所述的方法。
7.根据权利要求6所述的数据交易系统,其特征在于,所述数据交易程序包括数据访问程序和数据处理程序,所述数据买方节点作为所述数据处理节点运行所述数据访问程序和所述数据处理程序;所述数据处理节点具体用于:从所述区块链网络中提取所述数据访问程序和所述数据处理程序,并在计算机的可信执行环境TEE中运行所述数据访问程序和所述数据处理程序,获取所述数据处理程序的程序输出结果;
其中,所述数据访问程序用于从数据源获取数据,所述数据处理程序用于基于所述数据处理程序与所述数据访问程序之间的安全传输通道获取所述数据,并在对所述数据进行处理后输出所述程序输出结果。
8.根据权利要求6所述的数据交易系统,其特征在于,所述数据交易程序包括数据访问程序和数据处理程序,所述数据卖方节点运行所述数据访问程序,所述数据买方节点运行所述数据处理程序;
所述数据卖方节点具体用于:从所述区块链网络中提取所述数据访问程序,并在计算机的可信执行环境TEE中运行所述数据访问程序,其中,所述数据访问程序基于安全传输通道从数据源获取数据;
所述数据买方节点具体用于:从所述区块链网络中提取所述数据处理程序,并在计算机的可信执行环境TEE中运行所述数据处理程序,获取所述数据处理程序的程序输出结果;其中,所述数据处理程序用于基于所述数据处理程序与所述数据访问程序之间的安全传输通道获取所述数据,并在对所述数据进行处理后输出所述程序输出结果。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-5中任一项所述方法的步骤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/096652 WO2021253299A1 (zh) | 2020-06-17 | 2020-06-17 | 数据处理方法、存储介质、电子设备及数据交易系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113015973A CN113015973A (zh) | 2021-06-22 |
CN113015973B true CN113015973B (zh) | 2023-08-11 |
Family
ID=76385276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080005718.3A Active CN113015973B (zh) | 2020-06-17 | 2020-06-17 | 数据处理方法、存储介质、电子设备及数据交易系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113015973B (zh) |
WO (1) | WO2021253299A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113901498B (zh) * | 2021-10-15 | 2023-12-26 | 北京智融云河科技有限公司 | 一种数据共享方法、装置、设备及存储介质 |
CN114358746A (zh) * | 2022-01-17 | 2022-04-15 | 湖南和信安华区块链科技有限公司 | 一种基于区块链的软件开发集成控制系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355351B (zh) * | 2011-07-21 | 2014-11-05 | 华为技术有限公司 | 一种基于可信计算的密钥生成、备份和迁移方法及系统 |
AU2016235539B2 (en) * | 2015-03-20 | 2019-01-24 | Rivetz Corp. | Automated attestation of device integrity using the block chain |
CN109933987A (zh) * | 2018-11-30 | 2019-06-25 | 上海点融信息科技有限责任公司 | 用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备 |
CN113240519A (zh) * | 2019-05-30 | 2021-08-10 | 创新先进技术有限公司 | 基于区块链的智能合约管理方法及装置、电子设备 |
CN110266659B (zh) * | 2019-05-31 | 2020-09-25 | 联想(北京)有限公司 | 一种数据处理方法和设备 |
CN110659994A (zh) * | 2019-09-27 | 2020-01-07 | 深圳市网心科技有限公司 | 基于区块链的数据交易方法、数据交易装置及系统 |
CN110580262B (zh) * | 2019-11-08 | 2020-03-10 | 支付宝(杭州)信息技术有限公司 | 基于智能合约的隐私数据查询方法及装置 |
CN110580412B (zh) * | 2019-11-08 | 2020-03-06 | 支付宝(杭州)信息技术有限公司 | 基于链代码的权限查询配置方法及装置 |
CN111127013B (zh) * | 2019-12-24 | 2023-12-29 | 深圳大学 | 基于区块链的去中心化数据交易方法、装置、设备及介质 |
-
2020
- 2020-06-17 CN CN202080005718.3A patent/CN113015973B/zh active Active
- 2020-06-17 WO PCT/CN2020/096652 patent/WO2021253299A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN113015973A (zh) | 2021-06-22 |
WO2021253299A1 (zh) | 2021-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3791551B1 (en) | User id codes for online verification | |
KR101837168B1 (ko) | 블록체인 기반의 토큰 아이디를 이용하여 카드 사용을 승인하는 방법 및 이를 이용한 서버 | |
US11349776B2 (en) | Sharing account data between different interfaces to a service | |
CN111542820B (zh) | 用于可信计算的方法和装置 | |
US20180157487A1 (en) | System and method for identifying particular computer platform associated with potential altered or falsified execution of copy of software | |
CN109978688A (zh) | 分布式共识系统之访问控制方法及其契约产生器与服务器 | |
CN111027099B (zh) | 身份验证方法、装置、系统,计算机可读存储介质 | |
CN110569643A (zh) | 一种基于区块链网络的交通管理方法及装置 | |
CN101398875A (zh) | 软件发行商信任扩展应用程序 | |
CN113015973B (zh) | 数据处理方法、存储介质、电子设备及数据交易系统 | |
CN111523147A (zh) | 一种基于区块链的核身方法及相关硬件 | |
CN102739638A (zh) | 通过对有价值资产的要求建立特权 | |
CN111476652A (zh) | 基于区块链的数据处理方法、装置、终端及存储介质 | |
CN111476640A (zh) | 认证方法、系统、存储介质及大数据认证平台 | |
Baskaran et al. | Measuring the leakage and exploitability of authentication secrets in super-apps: The wechat case | |
CN112507334B (zh) | 违规访问检测方法,装置,系统,电子设备及存储介质 | |
CN113282507A (zh) | 一种基于威胁建模的通用安全测试生成方法 | |
CN107679865B (zh) | 一种基于触压面积的身份验证方法和装置 | |
CN110968632B (zh) | 一种数据统一交换的方法与系统 | |
Mirzamohammadi et al. | Tabellion: Secure legal contracts on mobile devices | |
WO2020252753A1 (zh) | 区块链节点设备及其认证方法、装置、存储介质 | |
US20220301376A1 (en) | Method and System for Deployment of Authentication Seal in Secure Digital Voting | |
Gilbert | Assuring Data Authenticity While Preserving User Choice in Mobile Sensing | |
CN112202734B (zh) | 业务处理方法、电子设备及可读存储介质 | |
WO2023020429A1 (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 201111 Building 8, No. 207, Zhongqing Road, Minhang District, Shanghai Applicant after: Dayu robot Co.,Ltd. Address before: 200245 2nd floor, building 2, no.1508, Kunyang Road, Minhang District, Shanghai Applicant before: Dalu Robot Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |