基于区块链的智能合约供应链可信服务方法技术

技术编号:28476260 阅读:13 留言:0更新日期:2021-05-15 21:45
本发明专利技术提供了一种基于区块链的智能合约供应链可信服务方法,该方法包括:当新的智能合约被创建时生成公私钥对;使用所述公钥加密与智能合约相关数据;将与相关加密数据编码到区块链的第一区块;将第一区块分配至区块链多个验证节点;接收由合约节点的访问请求,请求将新智能合约相关加密数据发送至合约节点;判断供应链节点是否具有相关许可;如果供应链节点具有相许可,确定合约节点相关访问等级;将新智能合约的私钥传输到合约节点。本发明专利技术在保持区块链开放性的基础上,基于智能合约机制,通过授权控制实现单个节点对区块链所存储的机密交易信息的访问,有效实现了供应链的可信数据隐私保护。数据隐私保护。数据隐私保护。

【技术实现步骤摘要】
基于区块链的智能合约供应链可信服务方法


[0001]本专利技术涉及区块链,特别涉及一种基于区块链的智能合约供应链可信服务方法。

技术介绍

[0002]在供应链领域中,企业和客户、企业和企业之间的交互通常需要在交易发生之前验证多条信息。这种验证通常是由参与者联系一个可信的中心化机构来实现的。然后,中心化机构可以验证特定信息,并将其传达给参与者。中心化机构与唯一的数据库相关联,该数据库用于跟踪交易和交易相关信息。参与者对该数据库必须进行对账,以就存储在数据库的信息有效性达成共识。中心化机构充当共识仲裁方。与使用中心化服务器的传统方案不同,区块链不能单方面改变分布式数据库。但区块链通常以开放、分散和无许可的方式部署,这意味着任何一方都可以查看信息、提交新信息或加入区块链作为负责确认信息的节点。因此在数据隐私方面,区块链并未体现优势。对于供应链中需要保护商业机密的信息,传统的区块链不适合进行应用。

技术实现思路

[0003]为解决上述现有技术所存在的问题,本专利技术提出了一种基于区块链的智能合约供应链可信服务方法,包括:当检测到新的智能合约被创建时,为新的智能合约生成公私钥对;使用智能合约的公钥加密与所述智能合约相关联的数据;将与新智能合约相关联的加密数据编码到区块链的第一区块中;将所述第一区块分配至区块链多个验证节点,以形成对所述区块链的更新的共识;接收由区块链的合约节点的访问请求,以请求将新智能合约相关联加密数据发送至所述合约节点;判断所述供应链节点是否具有相关联的许可,所述许可指示允许所述供应链节点访问与所述新智能合约相关联的加密数据;如果所述供应链节点具有相关联的许可,确定与所述合约节点相关联的访问等级;如果所述访问等级表示允许所述合约节点访问与新的智能合约相关联的加密数据,则将所述新智能合约的私钥传输到所述合约节点。
[0004]优选地,所述验证节点使用所述供应链节点的公钥来解密由所述供应链节点在请求中包括的水印签名,验证所述水印签名,以确定与所述供应链节点相关联的许可。
[0005]优选地,所述验证节点从所述合约节点接收加入所述区块链的请求。
[0006]优选地,所述验证节点用于为所述合约节点生成公私钥对。
[0007]优选地,所述验证节点通过区块链外的信道向所述合约节点发送所述合约节点的私钥。
[0008]优选地,所述验证节点为所述合约节点分配许可,所述许可关联于允许所述合约节点的多种数据类型。
[0009]本专利技术相比现有技术,具有以下优点:本专利技术提出了一种基于区块链的智能合约供应链可信服务方法,在保持区块链开放性的基础上,基于智能合约机制,通过授权控制实现单个节点对区块链所存储的机密交易信息的访问,有效实现了供应链的可信数据隐私保护。
附图说明
[0010]图1是根据本专利技术实施例的基于区块链的智能合约供应链可信服务方法的流程图。
具体实施方式
[0011]下文与图示本专利技术原理的附图一起提供对本专利技术一个或者多个实施例的详细描述。结合这样的实施例描述本专利技术,但是本专利技术不限于任何实施例。本专利技术的范围仅由权利要求书限定,并且本专利技术涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本专利技术的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的某些或者所有细节也可以根据权利要求书实现本专利技术。
[0012]本专利技术的一方面提供了一种基于区块链的智能合约供应链可信服务方法。图1是根据本专利技术实施例的基于区块链的智能合约供应链可信服务方法流程图。
[0013]本专利技术在基于区块链的供应链可信账本系统中实现安全存储机密信息并保护数据隐私。使用加密技术来保证只有授权方能够查看存储在区块链的机密信息,从而允许任何数量的节点参与区块链,而与节点各自的权限无关。区块链的每个节点保护其自己的分布式账本副本。将与一个节点相关联的隐私数据存储在区块链的多个其他节点上,但是仅向具有相应权限的节点提供令牌而解密个人数据。
[0014]在建立新区块时,将生成的哈希值和随机数作为密码难题的输入,通过求解该密码难题来验证新区块。区块生成节点利用所述哈希值,并循环改变随机数的值,直到获取所述难题的令牌。当找到密码难题的令牌时,区块生成节点发布该令牌,然后其他节点验证该令牌是否为正确的令牌。
[0015]由于该令牌依赖于区块链内每个交易的特定哈希值,所以当区块生成节点试图修改任何交易时,该令牌将不会被其他节点验证。
[0016]具体地,如果单个节点试图修改区块链内的先前交易,则生成不同哈希值的组合。由修改节点生成的令牌不能求解未修改的任何节点的密码难题。因此,由修改节点生成的新区块的版本可被标识为包括非法的修改,并被一致拒绝。无法修改过去交易的特点导致区块链成为可信和安全的。
[0017]本专利技术公开的方法通过智能合约来执行分布式共识的动作。智能合约包括多个触发条件,当满足触发条件时对应于多个动作。对于某些智能合约,基于多个决策条件来确定执行多个动作中的其中一个动作。供应链节点订阅多个数据流,包括与触发条件或决策条件相关的数据流。供应链节点将数据流路由到智能合约,使智能合约检测触发条件的发生或分析决策条件,以指导节点执行多个动作。
[0018]其中,对个人数据的访问动作通过创建智能合约来控制。当创建智能合约时,监管节点使用任一种非对称公钥加密技术。与智能合约相关联的个人数据只能在首次使用智能合约的公钥加密后存储在分布式账本中。监管节点保证只有授权的节点接收智能合约的私钥。只有拥有智能合约私钥的一方才能解密个人数据。
[0019]为防止仿冒授权节点来获得对隐私信息的访问,当节点加入区块链时,监管节点为该节点生成公私钥对。节点的公钥存储在公钥字典中,允许区块链的所有节点都可以访问。当该节点向区块链的另一节点发送消息时,该节点包括使用该节点的私钥加密的水印签名。
[0020]当第二节点从该节点接收消息时,第二节点检索对应于该消息所指示的发起节点的公钥。第二节点使用公钥解密水印签名以验证消息是否由所指示的发送者发送。因为仿冒节点不能访问该节点的私钥,所以第二节点不能使用该节点的公钥对仿冒节点应用的水印签名进行解密。因此第二节点容易检测到仿冒者并屏蔽该消息。
[0021]所述个人数据使用智能合约的公钥加密后存储在分布式账本中,进一步包括:建立原始映射表UE,所述原始映射表保存源偏移量到目标偏移量的映射;利用智能合约公钥将该原始映射表初始化为密钥映射表LP;根据预先定义的码字与偏移量的关系表NW,将输入码字序列转换为偏移量序列的明文;利用密钥映射表LP对偏移量序列明文进行映射,得到偏移量序列的密文;逆向查找码字与偏移量关系表NW,将偏移量密文序列转换为码字序列密文。其中所述原始映射表UE包括随机生成的N个原始映射表UE1‑
UE
N

[0022]所述密钥映射表LP1‑
LP
N
通过以下过程建立:对于第i=1个原始映射表;获取密钥的第j=1位,计算第j位的偏移本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的智能合约供应链可信服务方法,其特征在于,包括:当检测到新的智能合约被创建时,为新的智能合约生成公私钥对;使用智能合约的公钥加密与所述智能合约相关联的数据;将与新智能合约相关联的加密数据编码到区块链的第一区块中;将所述第一区块分配至区块链多个验证节点,以形成对所述区块链的更新的共识;接收由区块链的合约节点的访问请求,以请求将新智能合约相关联加密数据发送至所述合约节点;判断所述供应链节点是否具有相关联的许可,所述许可指示允许所述供应链节点访问与所述新智能合约相关联的加密数据;如果所述供应链节点具有相关联的许可,确定与所述合约节点相关联的访问等级;如果所述访问等级表示允许所述合约节点访问与新的智能合约相关联的加密数据,则将所述新智能合约的私钥传输到所述合约节点。2.根据权利要求1所述的方法,其特征在于,所述验证节点使用所述供应链节点的公钥来解密由所述供应链节点在请求中包括的水印签名,验证所述水印签名,以确定与所述供应链节点相关联的许可。3.根据权利要求1所述的方法,其特征在于,其中所述验证节点从所述合约节点接收加入所述区块链的请求。4.根...

【专利技术属性】
技术研发人员:刘文强刘国堂
申请(专利权)人:广州弘晟计算机系统有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1