具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本发明实施例的说明书和权利要求书及附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
实施例一
图1是本发明实施例一提供的一种基于区块链的数据处理方法的流程图,本实施例可适用于利用区块链平台安全、高效地处理目标数据的情况,该方法可以由基于区块链的数据处理装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中。该电子设备可以是数据分析节点设备,与区块链平台中的关联节点设备配合使用。相应的,如图1所示,该方法包括如下操作:
S110、向区块链平台广播目标数据任务处理信息。
其中,目标数据任务处理信息可以是数据分析节点向区块链平台广播的一种交易信息,用于请求区块链节点对目标数据任务进行处理。目标数据任务可以是数据分析节点需要对目标数据进行分析的任务,可以作为区块链平台中的交易类型。目标数据的类型可以是任意的数据类型,例如,可以包括但不限于电力数据、水力数据以及燃气数据等,本发明实施例并不对目标数据的具体数据类型进行限定。数据分析节点可以是对目标数据进行分析的节点,例如可以是研究机构在区块链平台中注册的节点,本发明实施例同样不对数据分析节点的节点类型进行限定。
由于本发明实施例所提供的数据处理方法为基于区块链的数据处理方法,因此,对目标数据进行处理的相关节点,包括数据分析节点以及关联节点等需要预先在区块链平台进行注册。可选的,可以通过独立于区块链平台的完全受信任的可信第三方机构负责区块链平台中的用户和节点的认证操作,并由可信第三方对区块链平台中的节点和用户生成必要的公共和私有参数,如公私钥等,以保证参数的可靠性和安全性。
在本发明实施例中,当各个节点注册完成后,数据分析节点可以根据数据分析需求向区块链平台广播目标数据任务处理信息。区块链平台中的各个区块链节点均可以接收到目标数据任务处理信息。可选的,数据分析节点可以在需求任务广播合同上发布目标数据任务处理信息,并广播需求任务广播合同,以实现对目标数据任务处理信息的广播。其中,需求任务广播合同可以是对目标数据任务处理信息进行广播的合同。
S120、接收区块链平台中的关联节点针对所述目标数据任务处理信息反馈的节点身份信息。
其中,关联节点可以是能够辅助处理目标数据任务的节点。可选的,关联节点可以包括提供目标数据源的节点以及处理目标数据的节点。节点身份信息可以用于标识关联节点的身份。可选的,可以采用IP地址等数据作为节点身份信息,本发明实施例并不对节点身份信息的具体信息类型进行限定。
相应的,区块链平台中的各个区块链节点接收到目标数据任务处理信息之后,可以根据目标数据任务处理信息获取目标数据任务处理的相关信息,如处理目标数据的具体方式等。各个区块链节点可以根据目标数据任务处理信息判断是否接受目标数据任务处理的交易。如果区块链节点确定接收交易,可以向数据分析节点反馈自身的节点身份信息。
需要说明的是,由于目标数据的处理任务具有一定的特殊性,因此区块链平台中的部分区块链节点可能无法处理目标数据。同时,为了保证数据处理的安全性,可以约定区块链平台中的关联节点才可以针对目标数据任务处理信息反馈的节点身份信息。
S130、根据所述节点身份信息确定目标关联节点。
其中,目标关联节点可以是数据分析节点从反馈节点身份信息的各个关联节点中筛选的部分节点,用于协同处理目标数据任务。
相应的,数据分析节点接收到各关联节点反馈的节点身份信息之后,可以对节点身份信息进行筛选,以确定可以协同处理目标数据任务的目标关联节点。
S140、向所述目标关联节点发送数据任务标识信息,以使所述目标关联节点根据所述数据任务标识信息处理目标数据任务,得到目标数据任务处理结果。
其中,数据任务标识信息可以用于标识目标数据处理任务,可以理解为目标数据处理任务对应的交易标识信息。目标数据任务处理结果可以是对目标数据任务进行处理得到的结果,如电力数据、水力数据以及燃气数据的分析结果等,本发明实施例并不对目标数据任务处理结果的具体类型进行限定。
S150、接收所述目标数据任务处理结果。
当数据分析节点确定了目标关联节点之后,可以向确定的目标关联节点发送用于处理目标数据任务的数据任务标识信息。相应的,各目标关联节点接收到数据任务标识信息之后,可以获取并处理目标数据任务,从而得到最终的目标数据任务处理结果。当各目标关联节点处理得到目标数据任务处理结果之后,即可通过区块链平台将目标数据任务处理结果发送至数据分析节点。相应的,数据分析节点即获取到基于区块链平台处理得到的目标数据任务处理结果。
在一个具体的应用场景中,以电力数据作为目标数据为例具体说明。在该应用场景中,数据分析节点可以为对电力数据进行分析的研究机构,关联节点则可以是提供电力数据的供电局以及对电力数据进行处理的执行节点。其中,执行节点可以是区块链平台中已注册的具有安全处理性能的节点,如支持SGX(Software Guard Extensions,一种基于硬件的安全技术)的节点。除了执行节点之外,区块链平台还可以包括正常节点。研究机构和供电局则需要预先在区块链平台进行注册。在基于区块链对电力数据进行处理之前,研究机构可以在需求任务广播合同上发布目标数据任务处理信息,并广播需求任务广播合同,以对目标数据任务处理信息进行广播。区块链平台中的供电局和执行节点接收到需求任务广播合同之后,可以根据需求任务广播合同获取电力数据任务的处理信息,以判断自身是否接受该交易。如果确定接收交易,供电局和执行节点可以向研究机构反馈自身的IP地址。可选的,为了避免不良机构不作为,可以约定供电局和执行节点通过需求任务广播合同反馈IP地址时,需要向需求任务广播合同支付相应的费用,以约束供电局和执行节点按照合约规定进行后续流程的处理。当供电局和执行节点完成电力数据任务的处理之后,可以向供电局和执行节点反馈这部分费用。
相应的,研究机构接收到各供电局和执行节点反馈的IP地址后,可以按照一定的规则对供电局和执行节点进行筛选,得到最终可以协同处理电力数据任务的供电局和执行节点。研究机构和筛选得到的供电局以及执行节点之间可以建立安全通信通道,以通过安全通信信道进行数据交互。
具体的,供电局可以通过安全通信信道向执行节点提供电力数据源。执行节点则可以对获取的电力数据源按照研究机构的电力数据处理要求进行处理,得到最终的电力数据处理结果,并通过区块链将电力数据处理结果发送至研究机构。
由此可见,基于区块链平台对目标数据任务进行处理,不仅可以满足数据分析节点对目标数据进行分析的需求,而且可以基于区块链平台的安全环境保证目标数据处理过程的安全性。同时,研究机构可以直接将目标数据任务交付于区块链平台进行处理,区块链平台可以积极调动各个关联节点协同处理目标数据任务,从而提高目标数据任务处理的效率。
本发明实施例通过区块链平台中的数据分析节点向区块链平台广播目标数据任务处理信息,区块链平台中的各关联节点接收到目标数据任务处理信息向数据分析节点反馈节点身份信息。数据分析节点根据节点身份信息确定目标关联节点,并向目标关联节点发送数据任务标识信息。目标关联节点中的第一目标关联节点接收到数据任务标识信息之后,根据数据任务标识信息处理目标数据任务,得到目标数据任务处理结果。最终,数据分析节点可以接收到目标数据任务处理结果。由于数据分析节点基于区块链平台对目标数据进行分析处理,可以解决现有数据分析节点进行数据分析时存在的安全性和效率较低等问题,从而提高数据处理的安全性和高效性。
实施例二
图2是本发明实施例二提供的一种基于区块链的数据处理方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了向区块链平台广播目标数据任务处理信息、根据所述节点身份信息确定目标关联节点以及其他扩展方案的多种具体可选的实现方式。相应的,如图2所示,本实施例的方法可以包括:
S210、在所述区块链平台中部署目标数据任务合约。
其中,目标数据任务合约可以是数据分析节点预先制定的,规范目标数据任务具体处理方式的智能合约。示例性的,目标数据任务合约可以包括电力数据分析合同内容等。
S220、获取并存储所述目标数据任务合约的智能合约地址。
在本发明实施例中,数据分析节点在利用区块链处理目标数据任务之前,需要首先在区块链平台中部署用于处理目标数据任务的目标数据任务合约。相应的,在目标数据任务合约部署完成后,数据分析节点可以获取目标数据任务合约的智能合约地址,以用于后续向区块链平台发起处理目标数据任务的交易请求。
S230、获取目标数据任务合约的任务关键字。
其中,任务关键字可以是根据目标数据任务合约记载的合约内容所筛选的关键字。
S240、将所述任务关键字和智能合约地址作为所述目标数据任务处理信息向所述区块链平台进行广播。
当目标数据任务合约部署完成且获取到相应的智能合约地址之后,数据分析节点可以根据目标数据任务合约记载的合约内容进一步确定任务关键字,并将任务关键字和智能合约地址作为目标数据任务处理信息向区块链平台进行广播。
相应的,区块链平台中的关联节点可以根据任务关键字以及智能合约地址查阅目标数据任务合约,以了解数据分析节点的数据分析需求,从而判断自身是否接受数据分析节点发起的处理目标数据任务的交易请求。如果关联节点根据任务关键字确定参与处理目标数据任务,则可以向数据分析节点反馈节点身份信息。
S250、接收区块链平台中的关联节点针对所述目标数据任务处理信息反馈的节点身份信息。
其中,所述目标关联节点包括第一目标关联节点和第二目标关联节点;所述第一目标关联节点通过飞地远程验证节点SGX环境并建立数据交互的安全通道。
其中,第一目标关联节点可以是按照目标数据任务的处理需求对目标数据进行处理的关联节点,如电力数据处理应用场景中区块链平台的执行节点。第二目标关联节点可以是提供目标数据源的关联节点,如电力数据处理应用场景中区块链平台上注册的供电局。为了保证执行节点数据处理的可靠性,第一目标关联节点可以通过飞地远程验证节点SGX环境并建立数据交互的安全通信通道,以通过安全通信通道与第二目标关联节点进行数据交互。
S260、确定各所述关联节点中第一关联节点的节点身份信息的接收顺序。
S270、根据所述第一关联节点的节点身份信息的接收顺序确定所述第一目标关联节点。
其中,第一关联节点可以是能够按照目标数据任务的处理需求对目标数据进行处理的关联节点。
可以理解的是,节点身份信息的接收顺序越靠前,表明对应的第一关联节点的积极性越高、数据处理性能越强。由于第一关联节点用于处理目标数据任务,因此为了激励各第一关联节点处理目标数据任务的积极性和保证数据处理质量,数据分析节点可以确定各关联节点中第一关联节点的节点身份信息的接收顺序,并根据第一关联节点的节点身份信息的接收顺序确定第一目标关联节点。例如,数据分析节点可以按照节点身份信息的先后接收顺序选取前n个第一关联节点作为第一目标关联节点。
相应的,数据分析节点确定第一目标关联节点之后,可以与各第一目标关联节点进行安全认证并建立安全通信信道。
S280、按照第二目标关联节点筛选规则从各第二关联节点中确定所述第二目标关联节点。
其中,第二关联节点可以是能够提供目标数据源的关联节点。第二目标关联节点筛选规则可以是用于筛选第二关联节点的规则。
由于第二关联节点可以提供目标数据源,因此,数据分析节点可以按照预设的第二目标关联节点筛选规则从各第二关联节点中确定第二目标关联节点。示例性的,数据分析节点可以按节点的位置区域从各第二关联节点中确定第二目标关联节点,也可以按照节点所持有的数据量的大小从各第二关联节点中确定第二目标关联节点,本发明实施例并不对第二目标关联节点筛选规则的具体规则内容进行限定。
S290、根据所述第一目标关联节点和所述第二目标关联节点生成数据管理奖励合同存储信息。
其中,数据管理奖励合同可以辅助关联节点协同处理目标数据任务,如存储处理目标数据任务的相关节点和奖励费用等信息。可选的,数据管理奖励合同存储信息可以包括数据任务标识信息、目标关联节点的节点身份信息和奖励费用信息以及飞地数据校验信息。其中,奖励费用信息可以是在各目标关联节点完成目标数据任务之后对各目标关联节点进行奖励的费用。飞地数据校验信息可以用于校验第一目标关联节点是否在飞地中生成结果数据,以防止第一目标关联节点估计篡改结果数据。
S2A0、将所述数据管理奖励合同存储信息存储至数据管理奖励合同。
在本发明实施例中,数据分析节点确定目标关联节点之后,可以进一步根据第一目标关联节点和第二目标关联节点生成数据管理奖励合同存储信息,该数据管理奖励合同存储信息可以包括数据任务标识信息、第一目标关联节点的节点身份信息和奖励费用信息、第二目标关联节点的节点身份信息和奖励费用信息以及飞地数据校验信息。进一步的,数据分析节点可以将生成的数据管理奖励合同存储信息存储至数据管理奖励合同。第一目标关联节点和第二目标关联节点可以查询数据管理奖励合同获取数据管理奖励合同存储信息。
可选的,第一目标关联节点和第二目标关联节点可以查询数据管理奖励合同以节点身份信息,并根据节点身份信息建立第一目标关联节点和第二目标关联节点之间的安全通信通道。
可选的,第二目标关联节点还可以通过建立的安全通信通道向第一目标关联节点发送数据任务标识信息和第二目标关联节点的公钥信息。第一目标关联节点可以接收第一目标关联节点发送的数据任务标识信息和第二目标关联节点的公钥信息,并将数据任务标识信息和第二目标关联节点的公钥信息存储至飞地外部。第一目标关联节点可以根据存储的数据任务标识信息获取目标数据任务合约,并根据第二目标关联节点的公钥信息对第二目标关联节点发送的加密数据进行解密。
S2B0、向所述目标关联节点发送数据任务标识信息,以使所述目标关联节点根据所述数据任务标识信息处理目标数据任务,得到目标数据任务处理结果。
S2C0、接收所述目标数据任务处理结果。
在本发明的一个可选实施例中,所述数据分析节点可以包括电力数据分析节点;所述目标关联节点可以包括电力数据提供节点和电力数据处理节点;所述目标数据任务处理信息可以包括电力数据任务处理信息;所述目标数据任务处理结果可以包括电力数据任务处理结果。
其中,电力数据分析节点可以是具有电力数据分析需求的节点,如对电力数据进行研究的研究机构等。电力数据提供节点可以是提供电力数据源的节点,如供电局等。电力数据处理节点可以是按照电力数据分析节点的电力数据分析需求对电力数据源进行处理的节点。电力数据任务处理信息可以是电力数据分析节点向区块链平台广播的一种交易信息,用于请求区块链节点对电力数据任务进行处理。电力数据任务处理结果可以是对电力数据任务进行处理得到的结果。
通过上述基于区块链的数据处理方法处理电力数据,实现了区块链、智能合约以及安全可信执行环境的结合,解决了传统电网中数据交易的低效率以及信息泄露风险的问题,实现在区块链平台下安全高效地处理电力数据交易的效果。
本发明实施例通过数据分析节点在区块链平台中部署相应的智能合约,利用区块链平台提供的安全环境进行数据处理任务,可以解决现有数据分析节点进行数据分析时存在的安全性和效率较低等问题,从而提高数据处理的安全性和高效性。
实施例三
图3是本发明实施例三提供的一种基于区块链的数据处理方法的流程图,本实施例可适用于利用区块链平台安全、高效地处理目标数据的情况,该方法可以由基于区块链的数据处理装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中。该电子设备可以是数据分析节点设备确定的第一目标关联节点设备和/或第二目标关联节点设备,与区块链平台中的数据分析节点配合使用。相应的,如图3所示,该方法包括如下操作:
S310、接收数据分析节点广播的目标数据任务处理信息。
在本发明实施例中,第一目标关联节点和第二目标关联节点均可以接收数据分析节点广播的目标数据任务处理信息。
S320、根据所述目标数据任务处理信息向所述数据分析节点反馈节点身份信息,以使所述数据分析节点根据所述节点身份信息确定目标关联节点。
相应的,第一目标关联节点和/或第二目标关联节点接收到目标数据任务处理信息之后,可以向数据分析节点反馈节点身份信息。数据分析节点可以根据第一目标关联节点和第二目标关联节点的节点身份信息确定由第一目标关联节点和第二目标关联节点协同处理目标数据任务。
S330、接收所述数据分析节点发送的数据任务标识信息。
S340、根据所述数据任务标识信息处理目标数据任务,得到目标数据任务处理结果。
相应的,数据分析节点确定第一目标关联节点和第二目标关联节点之后,可以向第一目标关联节点和第二目标关联节点发送数据任务标识信息。第一目标关联节点和第二目标关联节点接收到数据任务标识信息之后,可以根据数据任务标识信息协同处理目标数据任务,得到目标数据任务处理结果。
在本发明的一个可选实施例中,若所述基于区块链的数据处理方法应用于所述第一目标关联节点,则所述根据所述数据任务标识信息处理目标数据任务,可以包括:接收所述第二目标关联节点发送的数据任务原始信息;其中,所述数据任务原始信息包括所述数据任务标识信息和加密目标数据源信息;通过飞地根据所述数据任务标识信息获取目标数据任务合约和所述第二目标关联节点的公钥信息,并将所述目标数据任务合约和所述第二目标关联节点的公钥信息存储至飞地;通过飞地读取解密所述加密目标数据源信息,并通过飞地利用所述第二目标关联节点的公钥信息对所述加密目标数据源信息进行解密,得到目标数据源信息,并根据所述目标数据任务合约对所述目标数据源信息进行处理,得到初始目标数据任务处理结果;对所述初始目标数据任务处理结果进行加密和签名处理,得到待共识目标数据任务处理结果,并将所述待共识目标数据任务处理结果发送至数据管理奖励合同,以通过所述数据管理奖励合同对各所述待共识目标数据任务处理结果进行共识处理得到目标数据任务处理结果。
其中,数据任务原始信息可以是第二目标关联节点向第一目标关联节点发送的数据任务的关联信息,可以包括数据任务标识信息和加密目标数据源信息。加密目标数据源信息可以是第二目标关联节点利用自身的私钥对目标数据源进行加密得到的数据。初始目标数据任务处理结果可以是第一目标关联节点根据目标数据任务合约的内容对目标数据源信息进行处理得到的处理结果数据。待共识目标数据任务处理结果可以是需要进行共识处理的数据任务处理结果。
具体的,第一目标关联节点和第二目标关联节点根据所述数据任务标识信息处理目标数据任务时,可以由第二目标关联节点对目标数据源信息利用私钥进行加密处理,得到加密目标数据源信息,并向第一目标关联节点发送数据任务标识信息和加密目标数据源信息等数据任务原始信息。由于第二目标关联节点预先在飞地外部存储了数据任务标识信息和第二目标关联节点的公钥信息,因此第二目标关联节点接收到数据任务原始信息之后,可以通过飞地根据数据任务标识信息获取目标数据任务合约和第二目标关联节点的公钥信息,并将目标数据任务合约和第二目标关联节点的公钥信息存储至飞地。进一步的,第二目标关联节点可以通过飞地读取外部存储的加密目标数据源信息,并通过飞地利用第二目标关联节点的公钥信息对加密目标数据源信息进行解密,得到目标数据源信息。至此,第二目标关联节点的飞地获取到需要处理的数据源。相应的,第二目标关联节点可以通过飞地利用获取到的数据源按照目标数据任务合约的内容进行数据处理,从而得到初始目标数据任务处理结果。
可以理解的是,由于第二目标关联节点的数量为多个,因此,每个第二目标关联节点均可以得到一个初始目标数据任务处理结果。各第二目标关联节点可以对获取的初始目标数据任务处理结果进行加密处理得到加密初始目标数据任务处理结果,进一步对加密初始目标数据任务处理结果进行签名处理,得到待共识目标数据任务处理结果。相应的,各第二目标关联节点可以将待共识目标数据任务处理结果发送至数据管理奖励合同。数据管理奖励合同可以请求区块链平台中的区块生成节点(当前具有区块生成权限的节点)对各待共识目标数据任务处理结果进行共识处理,从而得到最终的目标数据任务处理结果。可选的,区块生成节点可以采用多种共识处理方式确定目标数据任务处理结果,本发明实施例并不对区块生成节点采用的共识处理方式进行限定。
在本发明的一个可选实施例中,所述数据分析节点可以包括电力数据分析节点;所述目标关联节点可以包括电力数据提供节点和电力数据处理节点;所述目标数据任务处理信息可以包括电力数据任务处理信息;所述目标数据任务处理结果可以包括电力数据任务处理结果。
图4是本发明实施例三提供的一种基于区块链的电力数据处理网络的结构示意图,在一个具体的例子中,如图4所示,假设电力数据分析节点为研究机构(市场成员),电力数据提供节点为供电局,可以利用风能、太阳能或电池等能源对电动车、终端设备等消耗设备进行供电,电力数据处理节点为执行节点(图4中未示出)。将电力数据任务作为区块链中的交易。相应的,基于区块链的电力数据处理方法中的准备阶段具体可以包括下述操作:
步骤101:参与交易的实体,包括供电局、研究机构和执行节点需要在区块链平台上注册。
其中,供电局是电力数据的所有者,它通过智能设备收集关于客户用电的隐私数据。同时,根据用电量的规模和相关政策,布局最优的电力调度方案。研究机构是一个市场成员,希望获得大量关于消费者用电的信息,以支持其研究。研究机构期望根据特定的统计分析技术和大量的消费信息得到分析结果。此外,研究机构在获取电力数据的过程中可能泄露消费者的隐私信息。区块链平台可以用于合同部署、需求匹配和合同执行,主要负责电力数据处理和共识。区块链平台可以由执行节点(具有支持SGX的飞地)和正常节点组成。
图5是本发明实施例三提供的一种执行节点的结构示意图,在一个具体的例子中,如图5所示,执行节点可以由一个不可信的主机线程和一个可信的飞地组成。主机线程主要负责飞地的初始化,选择交易方和与其他节点的通信。飞地可分为几个子模块,其中,SGX远程认证模块可以用于远程验证节点SGX环境并建立数据交互的安全通信通道。数据处理模块可以使用研究机构的电力数据任务合约处理供电局提供的电力数据源。加密模块可以用来解密供电局的输入数据,同时,还可以加密处理初始电力数据任务处理结果(即初始目标数据任务处理结果)。为了防止执行节点伪造结果,执行节点可以通过结果签名模块对初始电力数据任务处理结果进行加密处理。数据密封和开封模块则可以将存储数据安全、秘密地读取至飞地或读取密封的数据。由此可见,执行节点通过飞地处理数据的方式实现了以硬件方式的手段将软件处理部分隔离,进而有效保证了链上数据的安全。
步骤102:可信第三方还负责注册实体的认证和参数分配,主要负责分配相关的公钥和私钥。
步骤103:研究机构在区块链平台中部署电力数据任务合约,可以获取并存储部署后的合约地址为RContract。
图6是本发明实施例三提供的一种电力数据处理安全需求匹配的流程示意图,如图6所示,在该阶段,研究机构需要根据发布的关键字和电力数据任务合约中部署的任务选择符合数据要求的供电局。同时研究机构还需要选择执行节点来执行电力数据任务合约内容,将这一过程可以定义为需求匹配,具体可以包括以下步骤:
步骤201:研究机构在需求任务广播合同上发布任务关键字和电力数据任务合约的智能合约地址并进行广播。同时,为了避免不良机构不进行后续操作,扰乱正常的数据处理流程,可以通过需求任务广播合同要求反馈节点身份信息的供电局和执行节点需要向需求任务广播合同支付一些保障费用。
图7是本发明实施例三提供的一种智能合约的组成结构示意图。在一个具体的例子中,如图7所示,区块链平台的智能合约可以需求任务广播合同和数据管理奖励合同。除此之外,区块链平台的智能合约还可以包括电力数据任务合约(图7中未示出)。对于需求任务广播合同来说,可以通过需求关键字记录模块记录研究机构处理电力数据任务的关键字。任务合同地址模块可以负责保存电力数据任务合约的智能合约地址,通过该地址可以获取电力数据任务合约以进一步获取电力数据任务。防拒绝服务模块可以用于保存研究机构缴纳的用于避免拒绝服务攻击的费用。
数据管理奖励合同中的信息存储查询模块可以记录交易的必要信息,以为执行节点和供电局提供奖励查询功能。预存模块可以用于保存研究机构缴纳的作为在执行后为供电局和执行节点付费的奖励费用。统计分析奖励模块用于分析结果数据,以根据结果数据分配奖励费用。
步骤202:供电局和执行节点根据电力数据任务合约的智能合约地址获取电力数据任务合约,以根据研究机构的任务关键字和处理电力数据任务合约的内容来判断是否可以接受该交易。如果确定接收该交易,则向研究机构发送自己的IP地址。研究机构可以根据IP地址的接收顺序与前n个发送IP地址的执行节点进行认证并建立安全通信通道,同时可以按照供电局的筛选规则选择部分供电局提供电力数据源。
步骤203:研究机构通过安全通信通道将SN、PKRI及Rcontract发送到所选的执行节点的飞地中。其中,SN表示数据任务标识信息,即电力数据任务交易标识,是交易的唯一标识符。PKRI表示研究机构的公钥。执行节点接收到上述信息后,可以通过内部的飞地使用SGXseal方法(封闭的方法)安全地将<SN,IPRI,PKRI,Rcontract>存储在飞地外部。其中,IPRI表示研究机构的IP地址。
图8是本发明实施例三提供的一种电力数据任务合约执行前的执行准备流程示意图,在一个具体的例子中,如图8所示,在执行Rcontract之前,研究机构需要在数据管理奖励合同存储数据管理奖励合同存储信息,以便供电局和执行节点查询检查。同时,供电局还应该与执行节点进行远程身份验证,建立安全通信通道,具体可以包括以下步骤:
步骤301:研究机构将SN,IPnode,IPGC,Fnode,FGC,Pubencalve作为数据管理奖励合同存储信息存储到数据管理奖励合同的信息存储查询模块中。其中,IPnode是研究机构所选执行节点的IP地址,IPGC是研究机构所选供电局的IP地址,Fnode是执行节点的奖励费用,FGC是供电局的奖励费用。Pubencalve可以用于验证执行节点发送的结果数据是否在飞地中生成,以防止执行节点故意篡改返回的结果数据。
步骤302:研究机构将SN发送给供电局和执行节点。供电局和执行节点可以通过SN值查看交易信息,包括可以获取的奖励费用。
步骤303:供电局和执行节点之间通过查询数据管理奖励合同获取的信息进行身份验证,建立安全通信通道。
步骤304:供电局通过建立的安全通道将SN和PKGC发送到执行节点的飞地中。其中,PKGC表示的供电局的公钥。执行节点的飞地接受收到信息后,通过seal方法将<SN,PKGC>保存到飞地外部。
至此,研究机构通过区块链平台与供电局和执行节点之间完成了前期准备工作。
图9是本发明实施例三提供的一种基于区块链平台执行电力数据任务合约的流程示意图,在一个具体的例子中,如图9所示,研究机构通过区块链平台与供电局和执行节点之间完成前期准备工作之后,执行节点和供电局可以开始执行研究机构部署的电力数据任务合约,具体可以包括下述操作:
步骤401:供电局发送SN和mkGC(Mdata)到指定的执行节点。执行节点使用SN通过unseal方法(解封方法)获取Rcontract和PKGC,并将Rcontract和PKGC放置在飞地中。其中,mkGC(Mdata)表示加密电力数据源信息,Mdata表示电力数据源信息。
步骤402:执行节点将mkGC(Mdata)读取到飞地中,并使用PKGC解密。然后再使用飞地中的数据处理模块以Rcontract为内容来处理供电局的电力数据源信息,得到初始电力数据任务处理结果Mres。
步骤403:执行节点通过飞地中的加密模块使用研究机构的PKRI加密初始电力数据任务处理结果,得到PKRI(Mres)。同时,通过结果签名模块使用签名算法生成签名Sig=priencalve(PKRI(Mres)),Sig也即待共识电力数据任务处理结果(待共识目标数据任务处理结果)。最后,执行节点输出SN,Sig,PKRI(Mres)到数据管理奖励合同以达成共识。
步骤404:数据管理奖励合同中的统计分析奖励模块对各待共识电力数据任务处理结果进行签名认证,判断待共识电力数据任务处理结果是否来自所选的执行节点,并判断是否存在数据篡改。当待共识电力数据任务处理结果通过检查时,数据管理奖励合同可以指示区块生成节点计算符合条件的PKRI(Mres)。可以理解的是,符合条件的PKRI(Mres)可以具有多种不同的计算结果。区块生成节点可以通过共识机制统计符合条件的PKRI(Mres)中数量最多的PKRI(Mres)作为目标数据任务处理结果。相应的,数据管理奖励合同根据目标数据任务处理结果通过地址将奖励费用发送到指定执行节点和供电局,同时返还执行节点和供电局预先缴纳的保障费用。数据管理奖励合同还需要将数据管理奖励合同从合同发送到研究机构中。
上述技术方案采用了完备的共识机制,从而使得处理后的结果不会因为存在恶意实体而造成数据篡改或者丢失的现象。
步骤405:研究机构可以通过解密密钥mk(RI)得到最终的明文结果数据。
综上所述,在上述应用场景中,市场成员例如研究机构可将其电力数据分析合同部署在区块链中的智能合约上,并根据任务关键字和合约内容找到满足数据要求的提供商——供电局。同时,研究机构选择链上合适的执行节点来执行合约内容。进一步的,供电局跟研究机构选定的执行节点建立安全可信通道并将数据传输到执行节点中。数据分析将在执行节点上执行,每个执行节点的处理结果达成共识以确定最终的目标结果。共识后的目标结果才会被发送到市场成员。市场成员对结果数据进行挖掘从而获得更有价值的信息,解决了电力数据交易过程中存在的数据安全和处理性能较低等问题,实现了在保护电力数据安全性的同时高效的完成电力数据的交易过程。
本发明实施例通过区块链平台中的数据分析节点向区块链平台广播目标数据任务处理信息,区块链平台中的各关联节点接收到目标数据任务处理信息向数据分析节点反馈节点身份信息。数据分析节点根据节点身份信息确定目标关联节点,并向目标关联节点发送数据任务标识信息。目标关联节点中的第一目标关联节点接收到数据任务标识信息之后,根据数据任务标识信息处理目标数据任务,得到目标数据任务处理结果。最终,数据分析节点可以接收到目标数据任务处理结果。由于数据分析节点基于区块链平台对目标数据进行分析处理,可以解决现有数据分析节点进行数据分析时存在的安全性和效率较低等问题,从而提高数据处理的安全性和高效性。
需要说明的是,以上各实施例中各技术特征之间的任意排列组合也属于本发明的保护范围。
实施例四
图10是本发明实施例四提供的一种基于区块链的数据处理装置的示意图,该装置可以配置于数据分析节点中。如图10所示,所述装置包括:目标数据任务处理信息广播模块410、节点身份信息接收模块420、目标关联节点确定模块430、数据任务标识信息发送模块440以及目标数据任务处理结果接收模块450,其中:
目标数据任务处理信息广播模块410,用于向区块链平台广播目标数据任务处理信息;
节点身份信息接收模块420,用于接收区块链平台中的关联节点针对所述目标数据任务处理信息反馈的节点身份信息;
目标关联节点确定模块430,用于根据所述节点身份信息确定目标关联节点;
数据任务标识信息发送模块440,用于向所述目标关联节点发送数据任务标识信息,以使所述目标关联节点根据所述数据任务标识信息处理目标数据任务,得到目标数据任务处理结果;
目标数据任务处理结果接收模块450,用于接收所述目标数据任务处理结果。
本发明实施例通过区块链平台中的数据分析节点向区块链平台广播目标数据任务处理信息,区块链平台中的各关联节点接收到目标数据任务处理信息向数据分析节点反馈节点身份信息。数据分析节点根据节点身份信息确定目标关联节点,并向目标关联节点发送数据任务标识信息。目标关联节点中的第一目标关联节点接收到数据任务标识信息之后,根据数据任务标识信息处理目标数据任务,得到目标数据任务处理结果。最终,数据分析节点可以接收到目标数据任务处理结果。由于数据分析节点基于区块链平台对目标数据进行分析处理,可以解决现有数据分析节点进行数据分析时存在的安全性和效率较低等问题,从而提高数据处理的安全性和高效性。
可选的,基于区块链的数据处理装置还可以包括:目标数据任务合约部署模块,用于在所述区块链平台中部署目标数据任务合约;智能合约地址存储模块,用于获取并存储所述目标数据任务合约的智能合约地址;目标数据任务处理信息广播模块410具体用于:获取目标数据任务合约的任务关键字;将所述任务关键字和所述智能合约地址作为所述目标数据任务处理信息向所述区块链平台进行广播。
可选的,所述目标关联节点包括第一目标关联节点和第二目标关联节点;所述第一目标关联节点通过飞地远程验证节点SGX环境并建立数据交互的安全通信通道;目标关联节点确定模块430具体用于:确定各所述关联节点中第一关联节点的节点身份信息的接收顺序;根据所述第一关联节点的节点身份信息的接收顺序确定所述第一目标关联节点;按照第二目标关联节点筛选规则从各第二关联节点中确定所述第二目标关联节点。
可选的,基于区块链的数据处理装置还可以包括:数据管理奖励合同存储信息生成模块,用于根据所述第一目标关联节点和所述第二目标关联节点生成数据管理奖励合同存储信息;其中,所述数据管理奖励合同存储信息包括所述数据任务标识信息、所述目标关联节点的节点身份信息和奖励费用信息以及飞地数据校验信息;数据管理奖励合同存储信息存储模块,用于将所述数据管理奖励合同存储信息存储至数据管理奖励合同;所述第一目标关联节点和所述第二目标关联节点用于查询所述数据管理奖励合同以获取节点身份信息,并根据所述节点身份信息建立安全通信通道;所述第二目标关联节点还用于通过所述安全通信通道向所述第一目标关联节点发送所述数据任务标识信息和第二目标关联节点的公钥信息;所述第一目标关联节点用于接收所述数据任务标识信息和所述第二目标关联节点的公钥信息,并将所述数据任务标识信息和所述第二目标关联节点的公钥信息存储至飞地外部。
可选的,所述数据分析节点包括电力数据分析节点;所述目标关联节点包括电力数据提供节点和电力数据处理节点;所述目标数据任务处理信息包括电力数据任务处理信息;所述目标数据任务处理结果包括电力数据任务处理结果。
上述基于区块链的数据处理装置可执行本发明第一实施例所提供的基于区块链的数据处理方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明第一实施例提供的基于区块链的数据处理方法。
实施例五
图11是本发明实施例五提供的一种基于区块链的数据处理装置的示意图,该装置可以配置于区块链平台中数据分析节点的第一目标关联节点和/或第二目标关联节点中。如图11所示,所述装置包括:目标数据任务处理信息接收模块510、节点身份信息反馈模块520、数据任务标识信息接收模块530以及目标数据任务处理结果获取模块540,其中:
目标数据任务处理信息接收模块510,用于接收数据分析节点广播的目标数据任务处理信息;
节点身份信息反馈模块520,用于根据所述目标数据任务处理信息向所述数据分析节点反馈节点身份信息,以使所述数据分析节点根据所述节点身份信息确定目标关联节点;
数据任务标识信息接收模块530,用于接收所述数据分析节点发送的数据任务标识信息;
目标数据任务处理结果获取模块540,用于根据所述数据任务标识信息处理目标数据任务,得到目标数据任务处理结果。
本发明实施例通过区块链平台中的数据分析节点向区块链平台广播目标数据任务处理信息,区块链平台中的各关联节点接收到目标数据任务处理信息向数据分析节点反馈节点身份信息。数据分析节点根据节点身份信息确定目标关联节点,并向目标关联节点发送数据任务标识信息。目标关联节点中的第一目标关联节点接收到数据任务标识信息之后,根据数据任务标识信息处理目标数据任务,得到目标数据任务处理结果。最终,数据分析节点可以接收到目标数据任务处理结果。由于数据分析节点基于区块链平台对目标数据进行分析处理,可以解决现有数据分析节点进行数据分析时存在的安全性和效率较低等问题,从而提高数据处理的安全性和高效性。
可选的,若所述基于区块链的数据处理方法应用于所述第一目标关联节点,则目标数据任务处理结果获取模块540具体用于:接收所述第二目标关联节点发送的数据任务原始信息;其中,所述数据任务原始信息包括所述数据任务标识信息和加密目标数据源信息;通过飞地根据所述数据任务标识信息获取目标数据任务合约和所述第二目标关联节点的公钥信息,并将所述目标数据任务合约和所述第二目标关联节点的公钥信息存储至飞地;通过飞地读取解密所述加密目标数据源信息,并通过飞地利用所述第二目标关联节点的公钥信息对所述加密目标数据源信息进行解密,得到目标数据源信息,并根据所述目标数据任务合约对所述目标数据源信息进行处理,得到初始目标数据任务处理结果;对所述初始目标数据任务处理结果进行加密和签名处理,得到待共识目标数据任务处理结果,并将所述待共识目标数据任务处理结果发送至数据管理奖励合同,以通过所述数据管理奖励合同对各所述待共识目标数据任务处理结果进行共识处理得到目标数据任务处理结果。
可选的,所述数据分析节点包括电力数据分析节点;所述目标关联节点包括电力数据提供节点和电力数据处理节点;所述目标数据任务处理信息包括电力数据任务处理信息;所述目标数据任务处理结果包括电力数据任务处理结果。
上述基于区块链的数据处理装置可执行本发明第三实施例所提供的基于区块链的数据处理方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明第三实施例提供的基于区块链的数据处理方法。
实施例六
图12为本发明实施例六提供的一种电子设备的结构示意图,该电子设备可以是数据分析节点设备,也可以是数据分析节点的第一目标关联节点设备和第二目标关联节点设备。如图12所示,该电子包括处理器60、存储器61、输入装置62和输出装置63;电子设备中处理器60的数量可以是一个或多个,图12中以一个处理器60为例;电子设备中的处理器60、存储器61、输入装置62和输出装置63可以通过总线或其他方式连接,图12中以通过总线连接为例。
存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于区块链的数据处理方法对应的程序指令/模块(例如,基于区块链的数据处理装置中的目标数据任务处理信息广播模块410、节点身份信息接收模块420、目标关联节点确定模块430、数据任务标识信息发送模块440以及目标数据任务处理结果接收模块450,或目标数据任务处理信息接收模块510、节点身份信息反馈模块520、数据任务标识信息接收模块530以及目目标数据任务处理结果获取模块540)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的基于区块链的数据处理方法。
存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置62可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置63可包括显示屏等显示设备。
实施例七
本发明实施例七还提供一种存储计算机程序的计算机存储介质,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的基于区块链的数据处理方法:向区块链平台广播目标数据任务处理信息;接收区块链平台中的关联节点针对所述目标数据任务处理信息反馈的节点身份信息;根据所述节点身份信息确定目标关联节点;向所述目标关联节点发送数据任务标识信息,以使所述目标关联节点根据所述数据任务标识信息处理目标数据任务,得到目标数据任务处理结果;接收所述目标数据任务处理结果。
或者,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的基于区块链的数据处理方法:接收数据分析节点广播的目标数据任务处理信息;根据所述目标数据任务处理信息向所述数据分析节点反馈节点身份信息,以使所述数据分析节点根据所述节点身份信息确定目标关联节点;接收所述数据分析节点发送的数据任务标识信息;根据所述数据任务标识信息处理目标数据任务,得到目标数据任务处理结果。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ReadOnly Memory,ROM)、可擦式可编程只读存储器((Erasable Programmable Read OnlyMemory,EPROM)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。