BSN DID(数字身份服务)简介、角色、结构、功能和特性

2024-02-07 13:40

本文主要是介绍BSN DID(数字身份服务)简介、角色、结构、功能和特性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

id:BSN_2021

公众号:BSN研习社

身份(Identity,简称ID),是我们生活中最重要的一个标志。我们每个人之所以与别人不同,归根结底,就是因为我们的身份各不相同。

在不同的身份之上,我们每个人有不同的身份证、毕业证、驾驶证等,这些又称为证件、凭证。此外还有各种网站注册的账号等,它们是我们享受网站服务的凭证,同样可称的上是我们的“身份”证。

传统中,我们的证件都是中心化的。譬如我们的身份证,由国家公安部门统一颁发。驾驶证,由交管部门颁发。所有的相关信息都统一存储于相关部门。很多公司,也会大量采集客户的身份信息。

这一方面给我们生活带来了极大便利,另一方面,随着大数据时代的来临,各种关于身份的数据灭失、身份造假、隐私泄露等相关问题,越来越引起人们的重视。

BSN数字身份以区块链技术为基石,以W3C DID(Decentralized Identity,简称DID)为规范,通过对现实实体身份的去中心化式的链上映射,达到为个人/组织提供数字身份标识和数字凭证交互的能力,最终实现个人对其身份信息的精细管控。

作为BSN 区块链服务不可或缺的重要一部分,BSN DID具有广泛的应用场景。

那么,DID具体是什么?当前DID现状如何?BSN DID有哪些技术特点?功能特性如何?如何接入BSN DID?

1.DID 是什么

DID(Decentralized Identity)指的是对现实实体身份的一种去中心化式的链上映射,任何人/组织/实物都可在链上创建和管理自己的数字身份,从而达到为个人/组织提供数字身份标识和数字凭证交互的能力。

在日常的业务中,利用DID,用户并不需要向验证方展示自己的全部个人信息,这可有效保护用户隐私。譬如在网络游戏中,玩家申请加入游戏,并向游戏公司展示自己的DID,游戏公司向国家公安部门申请验证“玩家是否大于18岁”。在玩家授权的情况下,游戏公司只会得到一个是或否的答案,并不能得到玩家的身份证号信息。

目前,DID还处于非常初期的发展阶段。国际上,W3C 推出的DID标准比较权威。在W3C的标准里面,DID分为2层。

首先是基础层。其对DID提出了一个规范。主要包括两个部分:DID标志符(Identifier)和DID文档(Document)。它们形成DID的最基础框架。

其次是应用层。包含的是可验证声明(Verifiable Claims 或 Verifiable Credentials)。在DID里面,身份、凭证缺一不可。可验证声明,就是为实现“提供数字凭证交互的能力”。

 2.当前DID现状

目前市面上,从功能角度,可以把DID分为2类。

一类是DID产品/服务。主要运行在联盟链上,具备支持数字凭证交互能力,例如蚂蚁DID(蚂蚁DIS)、微众DID(微众WeIdentity)、百度DID。

另一类是公链DID,其只有数字身份功能,例如Eth DID,Hedera DID。

当前,很多公司都推出了DID相关产品。普遍存在一些短板。表现在3个方面。

1.普遍缺少实名认证,需依托于线下背书。在我国,实名认证很重要。如果缺乏实名认证,会对公司的业务产生诸多不利影响。

2.基于单一的链框架。DID并不能达到长期存在、去中心化的效果。

3. 只适合于服务对接,不适合于平台对接

平台对接与服务对接的最大区别在于是否涉及到具体业务。服务对接中,服务提供方把 SDK提供给用户让他们自己去离线注册 DID,这符合DID的初衷和定位。

这若用在平台中,意味着所有的用户都到平台来直接用,因每个用户的能力参差不齐,有些甚至根本不是技术人员,离线注册 DID 不现实;平台若替所有的用户注册DID,又涉及到托管密钥问题,容易造成泄密。

3.BSN DID简介、角色和结构

BSN数字身份以区块链技术为基石,以W3C DID为规范,实现了对现实实体身份的去中心化式的链上映射,从而达到为个人/组织提供数字身份标识和数字凭证交互的能力。

在BSN DID生态体系内,主要有用户、发证方、使用方三种角色。

用户(User):拥有链上数字身份的任何人/组织/实物。任何实体对象都可通过开发者的项目去创建、管理自己的DID。这个角色功能在DID基础层实现。

发证方(Issuer):可发行数字凭证的人/组织。例如:高校可为某个学生颁发数字毕业证,那么这个高校便是一个发证方。

验证方(Verifier):也称为业务方,指使用数字凭证的人/组织,验证方在经用户授权后,可对用户的身份或其数字凭证进行验证。例如:企业录取某个人的时候,要对其高校毕业证进行验证,那么这个企业便是一个验证方。

发证方和验证方这两个角色功能在DID应用层实现。

BSN DID主要包含三部分:SDK、Service和智能合约。其中SDK供开发者在项目内集成使用;Service处理业务逻辑,连接隐私数据存储区(Identity Hub)和链节点;智能合约部署于链上,由Service进行合约方法调用。

 

4.功能与特性

相较于其它公司产品,BSN DID功能特性如下。

BSN DID基于BSN开放联盟链部署,构建分布式数字身份管理体系,便于用户、发证方、业务方自主参与、平权协作;

提供统一的分布式数字身份管理,包含身份标识创建,更新和验证等功能;

提供用户数据凭证的发行、授权、验证和吊销机制;

提供个人隐私数据存储区(Identity Hub),凭证数据由用户完全控制、加密存储、加密传输;

提供统一接入API服务和SDK,集成对象封装、签名、验证等方法,便于开发者对接。

 

特别是BSN DID的隐私数据存储模块,具有多个特点,可有效保护用户隐私,实现用户数据的高效、安全共享。具体特点如下。

1.通讯包加密(通讯报文密文传输)。

2.通讯报文加签(通讯报文加签名值)。

3.凭证内容加密。每个凭证都将生成一个密钥返回给用户,存储在Hub 内的凭证使用该密钥进行加密。

4.密钥值加密。Hub内不接收和保存用户的私钥。凭证密钥在 Hub内使用用户的公钥加密后存储。

5.用户主控。访问权限完全由用户自己控制。

6.单次授权。同一个第三方访问者,同样的操作权限的申请,用户只可授权一次。

7.单次访问。用户授权一次,第三方只可访问一次。

8.访问身份验证。Hub内会对访问者的身份进行验证。目前记录的身份为DID。

这些特点,共同构成了BSN DID的诸多优越性。

5. 如何接入BSN DID

BSN DID作为区块链服务网络BSN 不可或缺的重要基础设施之一,通过简单注册,开发者即可便捷的上手使用。

首先开发者在BSN 官网注册(地址:https://bsnbase.com)。

完成注册登陆后,点击数字身份服务,即可进入BSN DID详情页面。

如有任何技术问题,开发者点击帮助手册,即可得到详尽的指导。

 

如需接入DID服务,请下载SDK:https://github.com/BSNDA/DIDService-SDK。

若想要了解更多关于DID信息,请点击查看帮助手册:

https://bsnbase.com/static/tmpFile/bzsc/did/17-1.html 。

这篇关于BSN DID(数字身份服务)简介、角色、结构、功能和特性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/687911

相关文章

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

Golang如何用gorm实现分页的功能

《Golang如何用gorm实现分页的功能》:本文主要介绍Golang如何用gorm实现分页的功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景go库下载初始化数据【1】建表【2】插入数据【3】查看数据4、代码示例【1】gorm结构体定义【2】分页结构体

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

Python循环结构全面解析

《Python循环结构全面解析》循环中的代码会执行特定的次数,或者是执行到特定条件成立时结束循环,或者是针对某一集合中的所有项目都执行一次,这篇文章给大家介绍Python循环结构解析,感兴趣的朋友跟随... 目录for-in循环while循环循环控制语句break语句continue语句else子句嵌套的循