基于智能合约的数据传递方法及系统与流程

文档序号:14942861发布日期:2018-07-13 21:29阅读:351来源:国知局

本发明涉及数据传递技术领域,更具体地说,涉及一种基于智能合约的数据传递方法及系统。



背景技术:

区块链是一种具有高度公信力的、用于信息共享的技术手段。不同组织机构可以通过区块链进行数据交互和信息共享,从而打破组织机构间的数据壁垒,实现数据在组织机构间的快速流动。

在数据共享和流动过程中,难以避免地会遇到保护机密数据或隐私数据的问题。针对这部分数据,企业和组织不可能直接与其他组织和个人进行共享。如何在数据协同处理和数据共享过程中实现数据的机密性、隐私性和安全性,是制约区块链技术在行业内广泛应用的因素之一。

现有技术中,在区块链系统中保护数据的方法,通常是将机密或隐私数据加密存储在区块链上,或者将数据中的隐私数据和非隐私数据进行分离,从而进行选择性的公开或传递。例如,组织a向组织b发送数据,组织a先用b的公钥对数据进行加密,将加密后的数据放在区块链上,组织b从区块链系统中获取密文数据,用自己的私钥解密,获得明文。

另一种保护数据的方法是进行数据隔离。例如,fabric系统通过channel机制对数据进行隔离,需要共享数据的双方或多方建立自己通道,数据只在通道内的组织之间传播,而不会传播到channel之外的组织,进而实现了数据隔离。

但是,上述在区块链中保护数据的方法仍然存在一些问题。例如,如果将数据进行加密后存储在区块链上,且拥有私钥才能获取数据,基于这种方式进行数据共享需要维护复杂的公私钥体系和信任中心,这限制了数据的使用范围。而基于通道隔离的方式,需要维护较多的通道。另外,机密/隐私数据被解密后的流通方式是数据源方不可控的,从而有可能存在数据泄露的风险。



技术实现要素:

本发明的目的在于提供一种基于智能合约的数据传递方法,其能够克服上述现有技术的缺陷,进而促进对机密/隐私数据的保护。

为实现上述目的,本发明提供一种技术方案如下:

一种基于智能合约的数据传递方法,包括:a)、数据源基于第一机制加密待传递数据以形成经加密数据,并将经加密数据发送给智能合约端;b)、智能合约端基于与第一机制相对应的第二机制解密经加密数据以形成经解密数据,并利用至少一逻辑单元处理经解密数据以形成结果数据;以及c)、智能合约端将结果数据发送至数据相关方;其中,至少一逻辑单元执行一指令集以实现合约逻辑,指令集存储于区块链中。

优选地,结果数据与待传递数据不具有相关性。

优选地,指令集包括:第一指令,其被执行以实现基于经解密数据的第一部分的训练逻辑;其中,训练逻辑用于对预测模型进行训练;第二指令,其被执行以实现基于经解密数据的第二部分的预测逻辑;其中,预测逻辑利用预测模型输出预测结果。

优选地,至少一逻辑单元包括:第一逻辑单元,其执行指令以实现第一逻辑;第二逻辑单元,其执行指令以实现第二逻辑;以及第三逻辑单元,其结合第一逻辑、第二逻辑以输出结果数据。

优选地,第一机制包括公钥,其中,公钥由智能合约端响应数据源向智能合约端的请求而生成并向数据源下发;第二机制包括私钥,其中,私钥由智能合约端以与公钥成对的方式生成。

优选地,步骤a)还包括:智能合约端要求数据源提供第一数字证书以用于验证数据源;步骤c)还包括:智能合约端要求数据相关方提供第二数字证书以用于验证数据相关方。

本发明还公开一种基于智能合约的数据传递系统,包括:数据源,其基于第一机制加密待传递数据以形成经加密数据,并将经加密数据发送给智能合约端;智能合约端,其基于与第一机制相对应的第二机制解密经加密数据以形成经解密数据,并利用至少一逻辑单元处理经解密数据以形成结果数据;以及数据相关方,其从智能合约端接收结果数据;其中,至少一逻辑单元执行一指令集以实现合约逻辑,指令集存储于区块链中。

本发明各实施例提供的基于智能合约的数据传递方法及系统,利用智能合约端对数据进行处理,智能合约端所执行的指令按照区块链存储,指令不可篡改、不可伪造,这使得智能合约端实现的合约逻辑安全、可靠且不可逆。作为结果,原始数据能够完全屏蔽于数据相关方及其他任何外部方。另一方面,本发明以相对简单的模式、相对廉价的方案实现了可靠、安全的数据传递,值得在本领域内推广。

附图说明

图1示出本发明第一实施例提供的一种基于智能合约的数据传递方法的流程示意图。

图2示出本发明第二实施例提供的一种基于智能合约的数据传递系统的模块结构示意图。

具体实施方式

在以下描述中提出具体细节,以便提供对本发明的透彻理解。然而,本领域的技术人员将清楚地知道,即使没有这些具体细节也可实施本发明的实施例。在本发明中,可进行具体的数字引用,例如“第一元件”、“第二装置”等。但是,具体数字引用不应当被理解为必须服从于其字面顺序,而是应被理解为“第一元件”与“第二元件”不同。

本发明所提出的具体细节只是示范性的,具体细节可以变化,但仍然落入本发明的精神和范围之内。术语“耦合”定义为表示直接连接到组件或者经由另一个组件而间接连接到组件。

以下通过参照附图来描述适于实现本发明的方法、系统和装置的优选实施例。虽然各实施例是针对元件的单个组合来描述,但是应理解,本发明包括所公开元件的所有可能组合。因此,如果一个实施例包括元件a、b和c,而第二实施例包括元件b和d,则本发明也应被认为包括a、b、c或d的其他剩余组合,即使没有明确公开。

如图1所示,本发明第一实施例提供一种基于智能合约的数据传递方法,其包括如下各步骤。

步骤s10、数据源基于第一机制加密待传递数据以形成经加密数据,并将经加密数据发送给智能合约端。

这里,作为示例,第一机制可以实现为密钥机制下的公钥,具体来说:数据源向智能合约端请求公钥,智能合约端响应请求生成公钥并向数据源下发。公钥与私钥成对地生成,公钥下发给数据源,私钥则不可下发,仅保存于智能合约端本地。

作为备选实现方式,可以采用rsa、elgamal、背包算法、ecc等非对称加密算法或des、rc5等对称加密算法对公私钥生成算法进行简单替换。

进一步地,智能合约端可以要求数据源提供第一数字证书以用于验证该数据源,仅在第一数字证书通过验证时才进行数据传递。类似地,在以下步骤s12中,智能合约端可以要求数据相关方提供第二数字证书以用于验证该数据相关方,仅在第二数字证书通过验证时才发送结果数据。可以理解,第一数字证书与第二数字证书可以具有某种相关性,使得数据源端能够经由智能合约端确保仅有获得认证的数据相关方才能够知悉结果数据,这种方式有利于进一步保护数据的机密性或隐私性。

优选情况下,数据源与智能合约端基于ssl/tls协议来传输经加密数据。或者,也可以选择其他需要建立通信链接的可靠方式来进行通信。

步骤s11、智能合约端基于第二机制解密经加密数据以形成经解密数据,并利用至少一逻辑单元处理经解密数据以形成结果数据。

其中,第二机制与第一机制相对应。作为示例,第二机制可实现为密钥机制下的私钥,具体来说:私钥由智能合约端以与公钥成对的方式生成,智能合约端利用私钥来进行解密。这里的逻辑单元可以为单个或多个,在多个逻辑单元组合使用的情况下,智能合约端能够实现较复杂的合约逻辑。

步骤s12、智能合约端将结果数据发送至数据相关方。

根据该第一实施例,上述各逻辑单元执行存储于区块链中的一个指令集以实现合约逻辑。区块链在各不同节点之间达成共识机制,从而能够有效地验证指令的有效性。由于区块链技术自身的特性,上述指令不可篡改、不可伪造,这使得智能合约端所实现的合约逻辑安全、可靠且不可逆。

智能合约端向数据相关方输出的结果数据与待传递数据不具有数学上或语义上的相关性。这意味着,仅能够获得结果数据的数据相关方将无法(哪怕部分地)再现或理解原始数据(即,待传递数据);换言之,机密/隐私数据是屏蔽于数据相关方的,从而能够得到安全保护。

作为对上述第一实施例的进一步改进,上述指令集包括第一指令和第二指令。其中,第一指令被执行,实现基于经解密数据的第一部分的训练逻辑,训练逻辑用于对预测模型进行训练。第二指令被执行,从而实现基于经解密数据的第二部分的预测逻辑,预测逻辑利用预测模型输出预测结果。

作为一种具体示例,提供数据源a、数据源b、数据源c及数据相关方d,智能合约端实现一种机器学习训练算法。其中,数据源a、b、c提供训练样本,请求方请求数据结果,通过执行机器学习训练算法,智能合约端可以实现具体的训练逻辑和预测逻辑。但是,可以理解,在不同的应用场合下,根据具体需要,智能合约端还可以实现任何适用的数据处理逻辑。

训练逻辑示例如下:(1)数据源请求智能合约端下发公钥,智能合约端返回公钥后,请求方(即数据源)用公钥对训练样本(经解密数据的第一部分)进行加密,并把加密后的训练样本发送给智能合约端。(2)智能合约端用自己的私钥对加密后的训练样本进行解密,把解密后的训练样本转发给智能合约端中的一个逻辑单元,进而实现对预测模型的训练。

预测逻辑示例如下:(1)请求方(即数据源)请求智能合约端下发公钥,智能合约端返回公钥后,请求方用公钥对待预测样本(经解密数据的第二部分)进行加密,并把加密后的待预测样本发送给智能合约端。(2)智能合约端用自己的私钥进行解密,把解密后的待预测样本发送给预测模型,预测模型生成预测结果。其中预测模型可以具体化为智能合约端中另一个逻辑单元。

最后,预测模型把预测结果提供给数据相关方d。

优选情况下,上述逻辑单元为三个:第一逻辑单元执行指令以实现第一逻辑;第二逻辑单元执行指令以实现第二逻辑;第三逻辑单元则结合第一逻辑、第二逻辑以输出结果数据。其中,第三逻辑单元进行的结合包括但不限于:逻辑加、减,与运算,异或,同或等。依此类推,逻辑单元可以为更多,并可按照更复杂的方式进行相互之间的组合。按照这种方式,智能合约端能够实现复杂的合约逻辑。

本发明第二实施例如图2所示,一种基于智能合约的数据传递系统包括多个数据源210(为简单起见,附图仅示出一个)、智能合约端22以及多个数据相关方230(仅示出一个)。

其中,各数据源210各自基于相应的第一机制加密各自的待传递数据,形成相对应的经加密数据,并将各种经加密数据发送给智能合约端22。

智能合约端包括安全单元220,第一、第二、第三逻辑单元221、222、223,以及输出单元224。其中,第一逻辑单元221、第二逻辑单元22分别与安全单元220耦合,第三逻辑单元223与第一、第二逻辑单元221、222相耦合,输出单元224与第三逻辑单元223耦合。

具体地,安全单元220基于与第一机制相对应的第二机制来解密上述经加密数据以形成经解密数据。作为示例,第一机制、第二机制分别为同一密钥系统下的公钥、私钥,两者成对生成。

第一逻辑单元221执行指令集中的一部分指令以实现第一逻辑。第二逻辑单元222执行另一部分指令以实现第二逻辑。第三逻辑单元223结合第一逻辑、第二逻辑最终生成并输出结果数据。其中,上述指令集是按区块链方式来存储的。

各数据相关方230能够分别从智能合约端22中的输出单元224接收结果数据。

在该第二实施例中,通过设置多个逻辑单元221、222、223并将它们进行组合,智能合约端22能够实现复杂的合约逻辑。由于指令集存储于区块链中,其中包含的指令不可篡改、不可伪造、且不可逆,这使得包括数据相关方在内的任何其他方都无法知悉或再现原始输入智能合约端22的数据。

可以理解,虽然在图2中示出了安全单元220、输出单元224,但是,安全单元220与输出单元224并非是第二实施例所不可缺少的部分。实际上,它们的功能可以分别被结合到例如第一逻辑单元221或第三逻辑单元223内实现。备选地,安全单元220、输出单元224可以作为一个单独的逻辑单元来实现,其仅仅涉及加密、解密以及数据通信的功能性。

上述第二实施例可以应用于金融业务领域内,部署到区块链上的各种指令帮助智能合约端22实现对相关金融数据的统计分析。

作为一种简单示例,某金融机构向智能合约端22请求公钥,智能合约端22返回公钥。该金融机构用返回的公钥对汇款记录进行加密,将加密后的数据发送给智能合约端22。智能合约端22利用自己保持的私钥对加密的汇款记录进行解密,获取真实的汇款记录。然后对汇款记录进行统计,如果汇款记录属于银行a,则将银行a的统计量加1;如果属于银行b,则将银行b的统计量加1;如果属于银行c,则将银行c的统计量加1。随后,银行a、b、c(数据相关方)向智能合约端22请求统计结果,如果统计完成,智能合约端22将分别向银行a、b、c提供相应的统计结果。

作为对上述第二实施例的另一种改进,各逻辑单元221、222、223仅仅实现对原始数据的形式上的转换,而不进行分析或再加工、再利用。按照这种方式,数据在传递过程中进行了加密及数次变形。这时,仅数据相关方有可能再现原始数据,但接入智能合约端相关的通信网络的任何其他外部方都无法解密、知悉原始数据,即使智能合约端22实现的合约逻辑极为简单。

在本发明的一些实施例中,上述系统的至少一部分可采用通信网络所连接的一组分布式计算装置来实现,或,基于“云”来实现。在这种系统中,多个计算装置共同操作,以通过使用其共享资源来提供服务。

基于“云”的实现可提供一个或多个优点,包括:开放性、灵活性和可扩展性、可中心管理、可靠性、可缩放性、对计算资源所优化、具有聚合和分析跨多个用户的信息的能力、跨多个地理区域进行连接、以及将多个移动或数据网络运营商用于网络连通性的能力。

本发明还提供一种计算机存储介质,其存储有一批计算机可执行指令,这些计算机可执行指令在由处理器执行时,将实现上述第一实施例提供的方法。

上述说明仅针对于本发明的优选实施例,并不在于限制本发明的保护范围。本领域技术人员可能作出各种变形设计,而不脱离本发明的思想及附随的权利要求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1