温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
智能
合约
同质
代币
中心
匿名
身份
认证
模型
黄金荣
第 49卷 第 4期2023年 4月Computer Engineering 计算机工程基于智能合约和非同质化代币的去中心化匿名身份认证模型黄金荣1,2,刘百祥1,2,张亮1,2,张展鹏1,2(1.复旦大学 计算机科学技术学院,上海 200433;2.上海市区块链工程技术研究中心,上海 200433)摘要:在传统的互联网环境下,服务商的用户系统相互独立。为了使用在各种场景下的应用服务,人们需注册大量的账号,面临不可控的信息泄露风险和繁杂的信息更新流程。为解决数字身份之间相互隔离的问题,使用户更好地掌控自己的数字身份,具有去中心化身份(DID)的认证机制被提出,然而现有DID方案给用户带来密钥管理的负担,且这些方案都假设已经存在由一组凭证发行者组成的生态系统,不能与现有的互联网生态兼容。提出一种基于智能合约和非同质化代币的数字身份认证方案,通过阐述数字身份和数字账户的概念,说明两者的区别及其关联,使用分层确定性钱包技术生成并管理用户的数字身份和数字账户的密钥,充分兼容现有互联网服务商的用户系统和认证机制,将数字账户以非同质化代币的形式保存在区块链上,通过零知识的手段隐藏用户账户的真实信息。在此基础上,将单点登录(SSO)中的认证方由可信的第三方替换为区块链上的智能合约,实现类似SSO的“一次认证,处处登录”机制。在以太坊测试链上的实验结果证明,该方案能够有效实现去中心化场景下的SSO功能,且具有良好的可用性、匿名性和安全性。关键词:单点登录;智能合约;去中心化身份;非同质化代币;区块链开放科学(资源服务)标志码(OSID):源代码链接:https:/ J.计算机工程,2023,49(4):14-22.英文引用格式:HUANG J R,LIU B X,ZHANG L,et al.Decentralized anonymous identity authentication model based on smart contracts and non-fungible tokens J.Computer Engineering,2023,49(4):14-22.Decentralized Anonymous Identity Authentication Model Based on Smart Contracts and Non-Fungible TokensHUANG Jinrong1,2,LIU Baixiang1,2,ZHANG Liang1,2,ZHANG Zhanpeng1,2(1.School of Computer Science,Fudan University,Shanghai 200433,China;2.Shanghai Engineering Research Center of Blockchain,Shanghai 200433,China)【Abstract】Service providers are separated in a traditional Internet environment.In various scenarios,people have to register a large number of accounts to use application services,which leads to uncontrollable information leakage risks and complicated information update processes.Many Decentralized Identity(DID)authentication mechanisms have been proposed to break down the barriers around isolated digital identities to give users greater control over their private data.However,existing approaches burden users with the management of private keys and presume spontaneous availability of a credential-issuance ecosystem.This study proposes a decentralized digital identity authentication scheme based on smart contracts and non-fungible tokens.It elaborates on the concepts of digital identities and accounts,and illustrates their differences and associations.Hierarchical deterministic wallet technology is applied to generate and manage cryptographic key pairs as digital identities and digital accounts which are stored on a blockchain as Non-Fungible Tokens(NFT).Moreover,zero-knowledge proofs are incorporated to protect personal information.Traditional trusted third parties are replaced with smart contracts on the blockchain to achieve Single Sign-On(SSO)mechanism,which enables authentication once,login everywhere and is compatible with legacy web accounts.The proposed scheme was then tested on a private Ethereum blockchain.The experimental results show that the scheme implements SSO in a decentralized method and satisfies the requirements of availability,anonymity,and security.【Key words】Single Sign-On(SSO);smart contracts;Decentralized Identity(DID);Non-Fungible Token(NFT);blockchainDOI:10.19678/j.issn.1000-3428.0064244基金项目:国家重点研发计划(2019YFB2101703);国家自然科学基金重点项目(U19A2066);上海市科技创新行动计划(20511102200,20222420800);广东省重点领域研发计划(2020B0101090001);复旦大学义乌研究院项目。作者简介:黄金荣(1999),男,硕士研究生,主研方向为区块链应用;刘百祥,博士;张亮,博士研究生;张展鹏,硕士研究生。收稿日期:2022-03-21 修回日期:2022-06-09 Email:热点与综述文章编号:1000-3428(2023)04-0014-09 文献标志码:A 中图分类号:TP309第 49卷 第 4期黄金荣,刘百祥,张亮,等:基于智能合约和非同质化代币的去中心化匿名身份认证模型0概述 面向用户的系统的核心是用户的身份管理1。传统的互联网服务商会要求用户注册一个账户,然后对该账户开放服务权限,服务的对象为账户而非真正使用该服务的人。出于安全考虑,这些平台在注册账号时都会对密码提出要求,如至少有 12个字符长,使用字母、数字、特殊字符等组合,而且建议用户不应该在另一个账户中重复使用密码,既给用户带来了记忆上的负担和繁琐的登录过程,又带来了不容小觑的安全隐患2-3。为此,类似安全断言标记语言(Security Assertion Markup Language,SAML)的这种单点登录(Single Sign-On,SSO)4协议被业界广泛采用,例如华为云、Google Cloud5和 Microsoft Azure6都对外开放了基于 SAML协 议 SSO 接 口。此 外,还 有 OAuth7、OpenID 和Connect8等SSO授权协议,如有些应用可以用微信或Github账号登录。上述身份模型称为联邦身份9,联邦身份要求存在一个中心化的机构用于身份注册和身份认证,这个机构称为身份提供商(Identity Provider,IdP)。用户只需在IdP认证后便可登录至其他应用,这种单点登录的机制提升了用户的体验,但也带来了一些风险。首先用户的身份数据全权交由IdP管理,因此IdP有能力跟踪用户行为,拒绝访问甚至恶意访问其他服务10。此外,一些大规模的用户数据泄露事故也使得人们对于把个人数据托管在第三方机构的安全性感到担忧11。研究人员通过研究各种方案来减少中央机构对用户数据的所有权12,近年来飞速发展的区块链技术为去中心化身份(Decentralized Identity,DID)提供了一种技术基础。DID 主张用户的存在独立于服务,允许用户在自行创建的 DID 下,通过控制与 DID关联的私钥来收集和管理自己的身份凭证。目前已有 许 多 的 DID 标 准,例 如 Microsoft Azure AD13、WeIdentity14和 Hyperledger Indy15等。然而,上述的 DID 方案中都有亟待解决的问题。首先这些方案大都假设存在一个由凭证发行者组成的生态系统,但都没有说明如何去实现16;其次这些方案大都没有对用户如何进行数字身份管理进行设计。本文提出一种基于智能合约和非同质化代币(Non-Fungible Token,NFT)的数字身份认证方案。该方案不存在中心化的IdP,数字账户(Digital Account,DA)以非同质化代币的形式公开存储在链上,具有NFT 具备的可交易和可销毁等功能,通过运用密码学和零知识的手段,在不泄露用户身份的情况下实现链上的单点登录,其以用户为中心,数字账户由用户注册,用户的声明和身份证明由用户自行生成,可进行修改与可共享。在此基础上,对数字身份和数字账户进行具体定义,使用分层钱包技术帮助用户离线生成并管理数字身份与数字账户。同时,考虑对现有互联网服务的兼容性,尽可能降低 Web 服务在接入本文方案时的修改成本。1相关研究 1.1跨域单点登录跨域单点登录技术相对成熟,已有较多的开源项目和协议,如 SAML4、OAuth7和 OIDC(OpenID Connect)8等。SAML 主要用于实现 Web 浏览器的单点登录,允许用户进行一次身份验证后即可获得其他网站的访问权限。由 IdP 执行身份验证并将用户的身份和授权级别传递给网络服务提供商(Internet Service Provider,ISP),如果 ISP信任该 IdP,便可以将用户请求的资源授权给用户。OAuth是一个关于授权的开放网络标准。目前较新的版本是 OAuth 2.07,核心功能是让第三方应用安全可控地获取用户的授权,与存有用户身份信息的服务商提供商进行交互,标准中定义了 4 种模式,即授权码模式、简化模式、密码模式和客户端模式。其中,授权码模式最常用,也是功能最完整、流程最严密的17的一种模式。OpenID Connect 是 对 OAuth 2.0 的 扩 展,在OAuth 2.0基础上标准化了用户身份的认证,并引入了许多新概念,