一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于DID的区块链数据交换方法及系统与流程

2021-11-10 02:58:00 来源:中国专利 TAG:

基于did的区块链数据交换方法及系统
技术领域
1.本发明涉及区块链技术领域,特别是涉及一种基于did的区块链数据 交换方法及系统。


背景技术:

2.目前:区块链上不同节点,不同合约之间数据交换缺乏统一的标准和 规范,另外同一个体的数据分布在不同区块链节点上。例如公安局存有个 人身份信息,税务局存有个人纳税信息,而学校存有个人的学历证明,银 行存有个人的征信,随着国家对个人隐私数据的越来越重视,这些信息是 不能在区块链上各个节点共享的,然而在应用中如果需要同时访问这些信 息。通常的做法,抽取各个组织系统到一个中心数据库,再合并,这样隐 私数据很容易集中外泄,也无法定位泄露的责任方;另外基于区块链的数 据共享方法,如下:
3.cn202011403482.7,“基于区块链技术的政务数据交换方法及系统”, 一文总只是描述了利用智能合约系统完成数据交换过程,但是智能合约怎 么完成数据交换,数据的组织和交换的形式,以及怎么和多个组织节点交 换没有论述。
4.cn201811376370.x,“基于区块链的数据交换方法及装置“,提出了 一种基于区块链的数据交换方法,从区块链上确定目标数据对应的目标区 块链标识,根据所述目标区块链标识生成数据交换订单,从区块链上调取 订单管理合约及数据合约根据所述数据交换订单创建订单主合约,将所述 订单主合约发布至区块链上以使所述目标区块链标识对应的数据提供方对 所述订单主合约进行签名;触发所述订单主合约开始执行,以使所述数据 提供方将所述目标数据的源数据上传至存储系统,并将所述源数据的hash 值发布至区块链上;从区块链上获取所述源数据的hash值,并根据所述hash 值从所述存储系统获取源数据。
5.触发所述订单主合约开始执行,以使所述数据提供方将所述目标数据 的源数据上传至存储系统,并将所述源数据的hash值发布至区块链上;从 所述区块链上获取所述源数据的hash值,并根据所述hash值从所述存储 系统获取源数据。在这里原始数据都在存储系统中,原始数据的hash值在 区块链上,并不是做的链上数据的共享和计算。
6.区块链上不同组织(不同节点)数据,在考虑到隐私安全和数据所有权, 商业利益下,很大情况下不愿意在节点间共享;即使在考虑到隐私安全, 各个组织中同一个用户的账号可能不一致,数据怎么关联,即使关联了怎 么很方便的在多组织间进行数据筛选和计算,都是问题。
7.同一个体,在不同组织产生的区块链数据,在不共享来源,也不集中 的情况下,怎么用一种语言统一描述,这些数据从哪里来,以及怎么加工 使用,以及如何验证数据的来源的合法性等。如果能达到这种目的,则可 以比较方便在不同数据持有方之间做到数据共享和计算。


技术实现要素:

8.本发明要解决的技术问题是提供一种基于did的区块链数据交换方法 及系统,能够实现在不同组织间,有条件数据共享和计算。
9.为解决上述技术问题,本发明提供了一种基于did的区块链数据交换 方法,所述方法包括:用户使用did的身份登录区块链智能合约,登录后 用户身份记为userdid;用户userdid调用智能合约smart,在智能合约 smart中调用一种分布式sql脚本;分布式脚本的解析引擎dsqlenginer解 析执行dsql,解析后获取不同节点的ip地址,以及获得节点上智能合约 名称,以及对应数据的schema,在不同节点上执行,不同数据操作节点返 回数据nodedata给解析引擎dsqlenginer,解析引擎合并nodedata数据, 返回dataset给智能合约smart;智能合约smart,获取dataset后,将应 用所需数据返回给上层应用。
10.在一些实施方式中,did是一种分布式的身份,能解决区块链上同一用 户在不同组织注册的身份不一致的问题。
11.在一些实施方式中,智能合约平台包含:dsql解析引擎。
12.在一些实施方式中,dsql解析引擎能够解析dsql的关键字。
13.在一些实施方式中,关键字包括:操作码和操作数。
14.在一些实施方式中,凭证中应该包含验证算法,以及凭证对应的did, 以及数据所有者对授权的相关签名,来标识对数据访问的合法使用。
15.在一些实施方式中,智能合约平台包含:数据脱敏模块。
16.在一些实施方式中,数据脱敏模块datasecopt,此模块可包含零知识 证明,同态加密,或者其它加密方法,通过数据脱敏模块能根据需要在数 据持有节点上进行数据脱敏操作。
17.在一些实施方式中,数据脱敏操作作用于dsql中的操作数上。
18.此外,本发明还提供了一种基于did的区块链数据交换系统,所述系 统包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所 述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处 理器实现根据前文所述的基于did的区块链数据交换方法。
19.采用这样的设计后,本发明至少具有以下优点:
20.按照以上方案,在智能合约中我们可以用一条分布式sql语句描述和 实现在不同组织间,有条件数据共享和计算。
21.1.满足智能合约开发的简洁性;
22.2.满足数据的访问都经过数据持有方的授权;
23.3.满足即使数据被授权,也可以通过数据持有节点的隐私安全操作 datasecopt来达到一定隐私安全目的;
24.4.不同组织的数据通过一个公开的schema来定义数据公开访问方式, 来达到数据互操作目的;
25.5.不同组织的数据访问接口,通过一个公开的智能合约来实现远程调 用。
附图说明
26.上述仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术 手段,以下
结合附图与具体实施方式对本发明作进一步的详细说明。
27.图1是方法的原理示意图;
28.图2是发起方节点的流程图;
29.图3是被调用方节点的流程图。
具体实施方式
30.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
31.(一)主要流程如下:
32.1.用户使用did(decentralizedidentifiers)的身份登陆区块链智能合约,did是一种分布式的身份,能解决区块链上同一用户在不同组织注册的身份不一致的问题,登陆后用户身份记为userdid;
33.2.用户userdid调用智能合约smart,在智能合约smart中调用一种分布式sql脚本dsql。
34.3.分布式脚本的解析引擎dsqlenginer解析执行dsql,解析后获取不同节点的ip地址,以及获得节点上智能合约名称,以及对应数据的schema,在不同节点上执行(如图1node0,node1,node2),不同的节点可能需要数据访问者授权,在验证授权后,执行相关数据操作,此数据操作完成后,在数据操作节点做数据脱敏操作datasecopt,不同数据操作节点返回数据nodedata给解析引擎dsqlenginer,解析引擎合并nodedata数据,返回dataset给智能合约smart。
35.4.智能合约smart,获取dataset后,将应用所需数据返回给上层应用。
36.(二)工作原理部分:
37.1.对应于以上定义一种分布式的sql脚本,来对不同组织间数据进行操作。语言包含数据操作语言(dml)和数据定义语言(ddl),以及数据控制语言(dcl)三部分。
38.数据操作语言(dml):应该包含操作码和操作数和限定操作语句,可包含操作码和操作数的分割符。操作码定义了对数据的操作,操作码可包含插入,选择,更新,删除等;操作数定义了数据的来源。操作数应该包含区块链节点编号,节点上智能合约名称或者编号,以及智能合约的数据schema名称或者编号。对于限定操作语句应该包含限定操作的对象的did以及相关did的授权凭证credential,当访问智能合约的对象不具备对此条数据访问权限时,会要求出示相关授权凭证。
39.例如
40.selectencrypt(person.personnum)person.scortsfrombankorg.creditinqure.person
41.selectdegree.educationinfofromcolledgeorg.educationinqure.degree
42.whereuserdid==“thisistheuserdid”withcredential=“thisistheuserdataaccesscredential”;
43.表明从bankorg节点的creditinqure智能合约的名称为person的schema中获取加密的个人信息personnum,以及明文的信用评分scorts,从colledgeorg节点的educationinqure智能合约的degree的schema中获取educationinfo个人教育信息,对应
的限定操作语句为where

with

语句。限定个人用户的userdid==“thisistheuserdid”,对应的userdid的授权凭证credential为“thisistheuserdataaccesscredential”。
44.这里的schema可以是sql型数据库的一个或者多个表,也可以是kv型数据库。对应的did的映射为sql型数据库的一个主键,或者是映射为kv型数据库的key的一部分或者索引的一部分。
45.2.对应于以上智能合约平台,应该包含dsql解析引擎,即dsqlenginer,通过它完成对dsql的解析执行,要求能够解析dsql的关键字,如操作码和操作数等,能将不同节点的名称解析为不同的节点的ip地址,将dsql路由到相关区块链节点上对应的智能合约上远程执行。
46.3.对应于以上智能合约平台,其中dsql的语句中的授权凭证credential,应该能被远程执行的区块链节点验证。credential中应该包含验证算法,以及credential对应的did,以及数据所有者对授权的相关签名,来标识对数据访问的合法使用。例如:对于凭证credential的赋值“thisistheuserdataaccesscredential“,实现上可以参考verifiablecredentialsdatamodel模型的实现(https://w3c.github.io/vc

data

model/#credentials)
47.48.[0049][0050]
4.对应于以上智能合约平台,应该包含数据脱敏模块datasecopt,此 模块可包含零知识证明,同态加密,或者其它加密方法,通过数据脱敏模 块能根据需要在数据持有节点上进行数据脱敏操作。数据脱敏操作作用于 dsql中的操作数上。
[0051]
5.对应于以上智能合约平台,作为dsql的发起方,解析引擎 dsqlenginer,只解析执行本节点相关的语句,非本节点的语句发起相关 dsql语句的远程调用到相对应节点程序。最后dsql的发起方的 dsqlenginer将各个节点返回的nodedata汇总为dataset返回给智能合 约。
[0052]
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式 上的限制,本领域技术人员利用上述揭示的技术内容做出些许简单修改、 等同变化或修饰,均落在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献