导?读
别以为这是一个诱饵式标题,这篇文章是一篇干货文章,因此取这个标题是有深层次的技术原因的。
本标题的句式是一个疑问句,仔细看,其实包含2个问题:
1.在数字时代如何成为一个有身份的人?
第一个问题答案是「普通的数字身份」。在看文章的各位其实都有一个数字身份,要么是微信号,要么是IP地址。
但你是否发现一个问题:这些数字身份并不是你真正拥有的,而是身份提供商分发给你的。IP地址是运营商分发给你的,随时可以被运营商收走。微信号也是腾讯分发给你的,你知道账户密码,但是服务器更加知道。你选择信任运营商信任服务提供商,信任他们不会随意破坏你的身份,但这没有技术保障。
2.如何真正拥有身份?
是否有可能真正把账户掌握在自己手里?
是否有可能登录账户,但不告诉服务器你的密码是多少,却还是能够让服务器验证你确实知道密码,同时其他任何人都无法冒充?
答案是有。
本文将会进行介绍相关技术以及基于这些技术构建的Web3时代的数字身份技术:分布式数字身份。
首先我们来回顾一下身份发展的历程。
身份发展的趋势
在中国古代,身份最早出现在秦朝,当时商鞅变法,避免外国间谍的入侵,发明了照身帖。
之后身份技术在古代不断发展,我们常在电视剧中看到过的虎符、免死金牌、玉玺、锦衣卫的牙牌,都是古代用于证明身份的技术。
图1-1
到了现代,我国第一代身份证于1984年发布,此后不断改进,不断加入防伪技术。2004年发布了第二代身份证,并且加入了多重防伪技术。2013年,融合了居民的生物特征。
我们发现,身份发展有两大的趋势:防伪和互通。
防伪这个趋势很好解释,身份本来就是为了证明“我是我”,防伪降低了“其他人冒充我”和“我冒充其他人”的概率。
Optimism公布第二轮追溯性公共产品募资结果:金色财经报道,以太坊二层扩容方案 Optimism 公布第二轮追溯性公共产品募资(RetroPGF 2)结果,在第二轮 RetroPGF 中,有 195 个人和项目被提名资助,所有 195 人都获得了徽章持有者的资助。
1000 万枚 OP 资金平均被分配给三个类别:教育、基础设施以及工具和公用事业。教育类别中,资助了 70 人或项目,前三名接受者为 L2Beat、ETHGlobal 和 BuidlGuidl;基础设施类别资助了 43 个项目,前三名接受者为 Protocol Guild、geth 和 Solidity;工具和公用事业项目类别资助了 82 个项目,前三名接受者为 OpenZeppelin、DefiLlama 和 wagmi。[2023/3/31 13:36:18]
而互通的原因是,人们往往同时拥有多个特征及身份,指纹特征、面容特征,既有居民证明又有驾驶证明。
现代的数字身份也有类似的趋势。
随着信息技术的发展,数字身份开始出现,并先后涌现了中心化身份、联盟身份、用户为中心的身份、自主权身份这四个阶段的身份。
这四个阶段的发展的趋势有3个:去中心化、互通、隐私保护。
去中心化:用户个人对自己身份的完全掌控,只有自己知道密码,只有自己有权限修改、读取身份信息,身份权无法被任何其他机构剥夺。去中心化可以被理解为是一种终极意义上的防伪。防伪防到从技术上实现只有“我才能证明是我”。
互通:注册一次数字身份,可以在其他服务商的任意数字服务上登录。
隐私保护:用户自己保管数据,从而能够决定数字服务能够调用哪些数据。
数字身份的发展趋势比身份的发展趋势多了一个隐私保护。
因为数字身份比较涉及到数据,而数据、隐私这个话题是目前非常热门的一个话题。2020年10月21日,全国人大法工委就《个人信息保护法》公开征求意见,意味着我国首部专门保护个人信息的法律不远了。
分布式数字身份属于第四个阶段,其希望最终能够提供实现自主权身份SSI的全部技术。有机构预测分布式数字身份的市场会在2017-2025年增长127倍,从5760万美元达到73亿美元,由此可见分布式数字身份的发展前途无量。
BAYC将于2月22日启动Dookey Dash游戏限时活动“舔蟾蜍”:2月12日消息,由于Dookey Dash游戏分数的审查时间被延长(预计将在2月15日公布),BAYC已更新活动时间表并将在2月22日增加新的限时活动“舔蟾蜍(Lick the Toad)”。玩家将扮演“蟾蜍捕手”在该元宇宙迷你游戏中捕捉蟾蜍,并基于游戏时长、收集的碎片和击打的物体赚分。该活动也将给此前未有机会参与游戏或是游戏分数被清零的玩家一个重新抢分的机会。(NFTEvening)[2023/2/12 12:01:37]
接下去介绍下分布式数字身份涉及的技术。
非对称加密与数字签名
前面提到过“不告诉服务器你的密码是多少,却还是能够让服务器验证你确实知道密码”的技术是存在的,这种技术被称为零知识密码证明,IEEEP1363.2定义了这种技术。
如果为零知识密码证明进行分类,它属于非对称加密的一种,而且IEEE认为它也是零知识证明的一种。
限于篇幅和行文目的,我们这里只简单介绍下非对称加密,而不介绍零知识密码证明的细节,二者原理是相通的。
非对称加密是现代密码学中非常重要的一个分支。一般的非对称加密中用于认证用户的不是密码,而是密钥,可以理解为了一个长度很长的密码。
密码学主要是用于信息加密的,加密前的内容称为明文,比如“ATTACKAT6AM”,使用某个加密密钥以及加密算法后,加密后可能变成了“NP7-UB-LDBUUB”,这个叫做密文。
要想从密文得到明文,必须使用解密密钥以及解密算法。如果加密密钥和解密密钥相同,则为对称加密;如果不同,则为非对称加密。
非对称加密的密钥有一对2把,称为公钥和私钥。
公钥加密的内容,用私钥可以解密;反之用私钥加密的内容,公钥可以解密。一般私钥私藏,只有用户自己知道;公钥需要公布给其他人。这样别人想要给用户发送消息时,使用公钥加密该消息,加密后的消息只有拥有用户私钥的自己才能解密,其他拥有公钥的人无法解密。
非对称加密主要是用于信息加密的,那如何用于用户的认证呢?
以色列财政部提出监管数字资产的新指南:金色财经报道,以色列财政部周一发布了一系列数字资产监管建议,推动该国进军加密货币世界。这些建议呼吁建立新的监管基础设施,立法许可权力和监督支持数字资产(包括稳定币)的发行,以及通过它们提供的金融服务。这些建议还呼吁通过立法,将对“具有重大稳定性或货币影响”的数字资产的监管转移给以色列银行。
该指南还包括一项允许通过以色列银行对在国外持有的加密货币缴税的提案。此外,该提案将建立一个部际委员会来监督去中心化自治组织(DAO)的监管。[2022/11/29 21:08:11]
数字签名。
假设用户A要证明自己是A,首先,构造一条消息“IAMA”;然后对该消息哈希函数运算得到哈希值H(IAMA),然后使用私钥Priv对该哈希值进行加密,所得到的密文E(H(IAMA),Priv)即为用户A对消息“IAMA”的数字签名。
将消息原文“IAMA”和签名E(H(IAMA),Priv)发给其他人,其他人使用用户的公钥可以解密签名得到H(IAMA);然后也对消息原文进行哈希计算得到H(IAMA)’,如果H(IAMA)’==H(IAMA),说明发送“IAMA”消息的用户的确拥有私钥Priv,证明他就是用户A。
总而言之,私钥其实就相当于是用户的密码,而公钥可以给服务器用来验证用户是否真的持有私钥,验证的方式就是验证数字签名。
有了这个基础,接下去就可以介绍分布式数字身份DID了。
分布式数字身份体系是基于非对称加密和数字签名建立起来的。
DID规范
分布式数字身份DID发展至今主要有5个技术规范:DID标识符、DID文档、DID解析器、可验证声明、身份存储库,这些技术规范的主要领导组织是W3C和DIF。
之所以有这几个规范,其实也和身份系统本身的需求有关:
DID标识符:身份标识符的格式;
DID文档:身份信息的格式;
DID解析器:身份信息的获取,为身份认证提供了保障;
可验证声明:隐私数据披露的方式,为数据授权提供了保障;
NFT项目UPCLUB完成200万美元种子轮融资:7月7日消息,据官方推特,NFT项目UPCLUB完成200万美元种子轮融资,Sora Ventures领投,Springwind Ventures、Entropy Trading、HG Ventures以及IOST参投。
据悉,UpClub旨在成为亚洲的无聊猿(Bored Ape),其正在利用NFT会员建立一种文化体验和娱乐。该团队由MCN公司Theotion Entertainment的创始人James Han创立。[2022/7/7 1:57:11]
身份存储库:隐私数据的管理;
▲?DID标识符
根据Zcash创始人提出的标识符系统“Zooko三角理论”,标识符无法同时实现实现安全、去中心化、对人类有意义三者,W3CDID标识符主要考虑了安全、去中心化两者。
此处的ALPHA和DIGIT的在ABNF中有定义,而未在此ABNF中定义的其他语法在RFC3986中有定义,值得一提的是W3CDID标识符是符合W3CURI的规范的。
举个例子:
did:ethr:0xE6Fe788d8ca214A080b0f6aC7F48480b2AEfa9a6
即为一个DID标识,其中ethr是method-name,指明了身份所在的域;0xE6Fe788d8ca214A080b0f6aC7F48480b2AEfa9a6是method-specific-id,表明了这个身份在域中的地址。
▲?DID文档
DID标识符只是表示一个身份的标识符,不包含身份的信息。而DID文档就是用于描述身份详细信息的文档,一个DID标识符关联到一个DID文档。
DID文档一般包含以下内容:
DID标识符;
一个加密材料的集合,比如公钥;
CoinFLEX与Roger Ver有4700万美元债务纠纷,与此前计划发行代币筹集金额相同:金色财经消息,加密货币交易所CoinFLEX首席执行官Mark Lamb发布推文称,已向比特币早期投资者、比特币现金(BCH)的支持者和推动者Roger Ver发出违约通知,Lamb声称Ver欠CoinFLEX价值4700万美元的USDC。他说,“我们与他签订了书面合同,要求他亲自担保其CoinFLEX账户的任何负资产并定期补足保证金。他违反了本协议,我们已发出违约通知。”
Ver发布推文回应称,最近有传言说我拖欠了对方的债务,这些谣言是假的。我不仅没有欠这个对方的债务,而且这个对方欠我一大笔钱,我目前正在寻求归还我的资金。”
此前消息,CoinFLEX暂停了所有用户提款,理由是市场状况和“涉及交易对手的持续不确定性”。另外CoinFLEX计划将发行新代币并希望借此筹集4700万美元资金。这与Lamb声称Ver所欠的金额相同。[2022/6/29 1:37:37]
验证方法集合;
一个服务端点的集合;
时间,包括创建时间和更新时间。
DID文档的示例:
{????"
其中,????"issuanceDate":?"2020-01-01T19:73:24Z",????"credentialSubject":?{??????"id":?"did:example:ebfeb1f712ebc6f1c276e12ec21",??????"alumniOf":?{????????"id":?"did:example:c276e12ec21ebfeb1f712ebc6f1",????????"name":?}},????"proof":?{??????"type":?"RsaSignature2018",??????"created":?"2017-06-18T21:19:10Z",??????"proofPurpose":?"assertionMethod",??????"verificationMethod":?"https://example.edu/issuers/keys/1","jws":?"eyJhbGciOiJSUzI1NiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..TCYt5XsITJX1CxPCT8yAV-TVkIEq_PbChOMqsLfRoPsnsgw5WEuts01mq-pQy7UJiN5mgRxD-WUcX16dUEMGlv50aqzpqh4Qktb3rk-uQy72IFLOqV0G_zS245-kronKb78cPN25DGlcTwLtjPAYuNzVBAh4vGHSrQyHUdBBPM"????}}
在这个VC中,@context字段指明了这个VC的格式;id字段指明了VC的id;type字段指明了VC的类型;issuer字段指明了VC的发行者;issuanceDate字段指明了发行日期;credentialSubject字段指明了VC的主体内容;proof字段指明了VC的证明部分,可以被Verfier验证。
这里最重要的内容当然是credentialSubject和proof。
▲?身份存储库
接下去介绍DID的第五个技术规范,IdentityHub。
首先我们要明确身份数据和隐私数据是不同的。身份数据是指公钥这种只和这个账户相关的数据,而隐私数据是和用户自己真实信息相关的数据如性别年龄等。
DID文档里只存储和身份相关的数据;而IdentityHub就是用来存储用户的隐私数据的。IdentityHub,虽然是身份的Hub,但是存储的是数据,可以理解为数据银行。
我们习惯将资产放到银行,为什么?因为安全,银行保证了我们资产的安全。同样地,未来我们将数据存储到数据银行,可以保证数据的安全。
其有如下几个特点:
IdentityHub是去中心化的、链下的个人数据存储,可将对个人数据的控制权交给用户。?它们允许用户以安全而隐私的方式存储其敏感数据,无用户的显式授权就无法获取用户数据。
IdentityHub实际在哪由用户决定,可以是本地,也可以是云端;
在未来,用户将会把隐私数据存储到IdentityHub,然后当应用服务调用用户数据时必须请求用户的同意才能获取这些数据。
一个简例:
来看一个简例。将上面的内容都串起来。
假设小明有一个以太坊上的账户0x96f…3d4,小明想使用DID来登录支持DID的游戏网站A。
1.小明找一个DIDRegistry服务帮其在以太坊上注册一个DID:did:eth:0x96f…3d4;
2.DIDRegistry服务将与该DID相关的DID文档存储到以太坊链上;
3.小明在游戏网站A上使用注册的DID登录;
4.小明将其个人隐私数据存储在多个身份存储库,其中居民身份证上的隐私数据存在政府机构G,政府机构G也需要注册好自己的DID身份的;
5.在游戏网站A上,小明想证明自己年龄>16岁从而获得游戏时间;
6.小明向政府机构G请求开具一个自己年龄>16岁的可验证声明;
7.政府机构G通过查询小明的居民相关隐私数据发现小明确实>16岁,因此开出了这个VC给小明;
8.游戏网站A验证这个VC的签名,发现确实是政府机构G开具的选择信任,从而发放游戏时间;
9.假如某一天,游戏网站A倒闭了。此时小明的DID依旧存在,还可以用于其他应用的登录。
总结
总结一下DID。
DID的提出是为了达到自主权身份。但是实际上是否能够完成其目的呢?
从身份上看确实DID的方案是不错的,将身份存储在区块链上,用非对称加密的密钥保证用户对账户的完全控制。这部分确实DID做的不错。
不过我们也很明显能发现一些问题,主要是在数据存储上。
在VC系统里发放VC的Issuer其实还是掌握用户数据的,因此VC的这个运转架构本质上还是中心化和可控的,用户必须要相信某些机构来托管隐私数据。但这已经比把这些隐私数据放在服务提供商的服务器上要好太多。
而服务提供商虽然没办法拿到用户的隐私数据,但是用户在服务提供商处产生的数据,比如小明玩游戏产生的装备、皮肤、等级,这些数据似乎还是被游戏网站A牢牢掌控住了。
课后习题
1.根据本文内容,以下关于“分布式数字身份”的描述,是错误的?
分布式数字身份基于非对称加密和数字签名技术
分布式数字身份属于数字身份发展的第三阶段
分布式数字身份是为了实现自主权身份
分布式数字身份可以实现个人真正拥有数字身份
2.以下哪个字符串不符合W3CDID标识符的格式?
did:btc:21tDAKCERh95uGgKbJNHYp
did:btcr:xz35-jznz-q9yu-ply
did:github:gjgd
都符合
3.以下说法正确的是?
?一个DID文档必须包含服务端点相关的信息
?非对称加密中使用公钥加密的信息无法用私钥解密
对某个消息进行数字签名过程是:先对该消息进哈希,然后使用私钥进行加密
我国第一代身份证于1994年发布
4.DID解析器收到did:abc:0x01的解析请求后,以下说法错误的是?
?会调用?abc?Driver进行解析
?所调用的Driver一定是在区块链上进行查询
Driver返回一个DID文档
DID文档可以是JSON、JSON-LD等格式
5.以下说法不正确的是?
?可验证声明可以最低程度披露用户的隐私
?可验证声明的proof可以被Verifier用于验证此声明的有效性
身份存储库主要是存储用户的隐私数据
身份存储库必须是运行在云上
答案都藏在文章里哦
作者简介
楼嵩
来自致力于「构建区块链互联网络,打通价值孤岛」的BitXHub团队
研究方向:Web3+
本文用图来源
图1-1:https://kknews.cc/zh-hk/history/y5jeaon.html
图3-1:https://medium.com/decentralized-identity/a-universal-resolver-for-self-sovereign-identifiers-48e6b4a5cc3c
图3-2:https://uniqueid.substack.com/p/verifiable-credentials-your-digital
来源:金色财经
投资是如今社会重要的一种理财方式,选择投资就标志着个人在财富积累与未来规划上迈出重要一步。那我们如何在日常生活中做到安全高效地理财呢?1.时机最重要.
1900/1/1 0:00:00BTC行情分析日线级别看,价格昨日收出小阳结尾,日内凌晨价格走出回落,但整体仍是维持着区间震荡格局,并未能走出破位行情。价格再次回落试探防守线位置支撑后反弹,目前围绕在攻击线附近运行.
1900/1/1 0:00:00文|梁雨山火星财经APP一线12月7日报道,去中心化跨链协议KiraNetwork于今日零时启动流动性激励计划,为期30天,计划为流动性提供者分配100万枚KEX代币.
1900/1/1 0:00:00全球最大的公开交易商业智能公司MicroStrategy已宣布,计划将证券发行募集的4亿美元的收益投资于比特币.
1900/1/1 0:00:00今日快讯:据官方消息,截至12月8日,灰度资产管理总规模略降至126亿美元。比特币信托基金交易价格为每份额20.98美元,较前一日下跌6.59%;以太坊信托基金交易价格为每份额124.60美元,
1900/1/1 0:00:00黄金行情分析: 国际黄金:黄金在上周五晚间冲高1848美金承压回调,最低回调1829美金企稳震荡反弹,今日早盘延续小幅反弹,午后反弹1842美金承压回调,跌破1833美金后加速下探.
1900/1/1 0:00:00