每一個從事密碼學(xué)研究的人都幻想,我們每個人一出生大腦中就有嵌入的私鑰芯片,這樣我們就可以隨時確定自己的身份,而不必?fù)?dān)心身份被盜或被
每一個從事密碼學(xué)研究的人都幻想,我們每個人一出生大腦中就有嵌入的私鑰芯片,這樣我們就可以隨時確定自己的身份,而不必?fù)?dān)心身份被盜或被騙。不幸的是,我們現(xiàn)在并不是生活在這樣一個賽博朋克的烏托邦里,而是一個密碼和社會安全號碼不斷被盜的破碎系統(tǒng)中。
與此同時,區(qū)塊鏈技術(shù)承諾可以將個人數(shù)據(jù)的所有權(quán)從公司和政府手中返還給個人,進(jìn)行數(shù)字身份變革,從而使個人擁有權(quán)力與他人共享數(shù)據(jù),并且可以隨時撤回。
為了更深入地理解為什么區(qū)塊鏈技術(shù)對于身份(認(rèn)證)很有效,我們首先需要從哲學(xué)的角度理解身份的定義。請你設(shè)想如下的思維實(shí)驗——兩個放在一起的彈珠看起來完全相同。雖然這兩個彈珠的本質(zhì)(比特和原子)是相同的,但是它們的身份是不同的,因為我們能夠給每個彈珠一個類似于“彈珠A”和“彈珠B”的唯一標(biāo)識來區(qū)分它們的身份。
但是,一旦我們將這兩個彈珠放到口袋里混合一下,這種標(biāo)識便失效了,我們沒法再區(qū)分出哪個是“彈珠A”,哪個是“彈珠B”。這種標(biāo)識問題的一種解決方案是擁有一個無所不知的觀察者,在兩個彈珠混合過程中一直盯著彈珠(從而在兩個彈珠混合后,仍然能夠區(qū)分出哪個是“彈珠A”,哪個是“彈珠B”)。
這種解決方案是可行的,因為時間(第四維空間)作為了身份的時間指標(biāo)。區(qū)塊鏈(保證過去狀態(tài)的日志不可被篡改)能夠提供時間連續(xù)性,因此即便是物理環(huán)境發(fā)生變化時,也能正常用于追蹤身份。
身份是 Web 3 基礎(chǔ)設(shè)施缺失的最重要的一部分,有許多項目采用不同的方式構(gòu)建整個去中心化應(yīng)用生態(tài)系統(tǒng)可以使用的身份層。目前關(guān)注度最高的兩個層次是命名空間(namespaces)和認(rèn)證(attestations)。
命名空間
去中心化身份的一個關(guān)鍵點(diǎn)是:如何在沒有中心持有的注冊機(jī)構(gòu)的情況下,能夠標(biāo)識世界上的人、設(shè)備以及其他實(shí)體。在區(qū)塊鏈系統(tǒng)中,我們現(xiàn)在使用地址來標(biāo)識我們的身份——一個形如“0x9992437898114d2770522e050883d6b2dfc48326”的沒有實(shí)際意義并且很難記住的長字符串。要是我們能夠?qū)⒚總€地址與唯一且可讀的名稱對應(yīng)會怎么樣呢?
在計算機(jī)科學(xué)中,命名空間(Namespace)用于組織對象,使得一些對象雖然擁有同樣的命名,但不會發(fā)生混淆。文件系統(tǒng)(給文件命名)和 DNS (全稱:Domain Name System(域名系統(tǒng)),為網(wǎng)站命名)就是命名空間的例子。
類似地,在區(qū)塊鏈中,我們希望維護(hù)一個包含地址和名稱唯一對應(yīng)的全局表。此外,理想情況下,我們希望這個對應(yīng)表是一直安全、去中心化、并且容易理解的。這可行么?我們直接來看一看 Zooko 三角。
Zooko 三角,以 Zcash CEO,Zooko Wilcox 的名字命名,是網(wǎng)絡(luò)中命名系統(tǒng)的三個理想性質(zhì)的三難選擇困境。
安全:當(dāng)你查找一個名字時,你能夠得到正確的結(jié)果,而不是一個假名。
去中心化:沒有中心化權(quán)威機(jī)構(gòu)控制所有的名字。
可理解的:名字是人們可以記住的,而不是某一長串隨機(jī)的字符。
Zooko 聲稱數(shù)字名稱是無法同時包含以上 3 種性質(zhì)的。以下幾個例子使用了該框架:
DNSSEC, DNS 的安全擴(kuò)展,提供了一種去中心化且便于理解的命名機(jī)制,但是不安全,無法抵御對根服務(wù)器的攻擊。
比特幣地址是安全且去中心化的,但是不便于理解,沒有實(shí)際意義。
I2P, 匿名、防審查的點(diǎn)對點(diǎn)通信協(xié)議,使用本地運(yùn)行的安全名稱轉(zhuǎn)換服務(wù),并且便于人理解,但是需要在去中心化網(wǎng)絡(luò)中增加權(quán)威節(jié)點(diǎn)。
解決方案
自從 Zooko 提出他的三難困境以來,已經(jīng)有了幾種解決 Zooko 三角的方案。Nick Szabo 首先在他的論文 “Secure Property Titles with Owner Authority(含所有者權(quán)限的安全產(chǎn)權(quán))” 中提出了一種解決方案,文章指出這三種屬性都能夠達(dá)到拜占庭容錯的限制。
Aaron Swartz 后來提出了一種基于比特幣的命名系統(tǒng),該系統(tǒng)使用 PoW 共識來建立名稱所有權(quán)共識。這個解決方案促進(jìn)Namecoin產(chǎn)生。Namecoin 是比特幣區(qū)塊鏈的第一個 fork,也是Dot-Bit所在底層區(qū)塊鏈。Dot-Bit 是第一個滿足 Zooko 三角的去中心化 DNS 實(shí)例,使得用戶能夠?qū)⑺麄儸F(xiàn)有域名與 .bit 地址綁定。
自 7 年前發(fā)布以來,Namecoin 主要由于用戶體驗差,而很少被采用。(Namecoin中)擁有成千上萬的域名,但是僅有約 30 個開發(fā)了 Dot-Bit 網(wǎng)站。有傳言說,Namecoin 的開發(fā)者曾經(jīng)找谷哥和 ICANN 尋求潛在合作,背離了使用去中心化 DNS 替代中心化管理的最初目標(biāo)。
Onename, 由 Princeton 研究員 Ryan Shea 和 Muneeb Ali 于 2014 年 3 月推出,是另一個身份系統(tǒng),將用戶名以及個人資料存儲在比特幣區(qū)塊鏈上。目前,Onename 已經(jīng)發(fā)展為Blockstack去中心化應(yīng)用平臺的命名空間注冊商(類似于 GoDaddy)。Onename 也是一項技術(shù),它使得 Blockstack 用戶能夠在不同去中心化應(yīng)用中保留所有個人數(shù)據(jù)的所有權(quán),從而減弱 Google 和 Facebook 目前的數(shù)據(jù)壟斷。
ENS是以太坊上的 DNS,同時具有安全和去中心化的特點(diǎn)。智能合約充當(dāng)注冊商管理和更新以太坊中的名稱,而不是像 GoDaddy 中一樣使用中心化服務(wù)。任何人都能使用 ENS 創(chuàng)建一個可讀的 .eth 的子域名,ENS 解析器充當(dāng)著類似于翻譯器的工作,將 ENS 名稱轉(zhuǎn)換到對應(yīng)地址。
在 Metamask、MyCrypto、Status 等支持 ENS 的錢包中,用戶可以向某些便于記住的地址(類似于“alice.eth”)而不是 '0x4cbe58c50480…' 轉(zhuǎn)錢。ENS 自推出之后,已經(jīng)注冊了超過 16 萬個域名,涉及超 320 萬 ETH 的賬戶。(注釋:已經(jīng)放棄自己的命名空間服務(wù))
Handshake是一個由 Joseph Poon (閃電網(wǎng)絡(luò)和 Plasma 提出者)主導(dǎo)的新項目,旨在將 DNS 根空間(DNS root zones)去中心化,并且取代 ICANN 以及認(rèn)證中心(CA)。Handshake 構(gòu)建在一條新的 UTXO 區(qū)塊鏈上,其中所有點(diǎn)對點(diǎn)全節(jié)點(diǎn)都是持有根空間文件的根服務(wù)器,從而使得根空間不受審查、無需許可,并且不受網(wǎng)關(guān)限制。目前,Namebase等項目允許用戶在 Handshake 區(qū)塊鏈上注冊頂級域名,構(gòu)建錢包和交換 Handshake 幣(HNS),使得 Handshake 更易于使用。
-從上圖可以看出,Dot-Bit 和 ENS 等項目分別單獨(dú)支持 .bit 和 .eth 域名地址,而 Handshake 向去中心化 ICANN(根域名文件網(wǎng)關(guān)) 又前進(jìn)一步。來源:zk Capital-
總而言之,Handshake 是一個非常有野心的項目,它有可能改變 DNS 和域名服務(wù)目前的運(yùn)作模式。不過,要獲得廣泛接受以及打破諸如 Verisign 等現(xiàn)有證書頒發(fā)機(jī)構(gòu)的壟斷是非常困難的,因為操作系統(tǒng)默認(rèn)采用 DNS。
OpenAlias和Portal Network等項目也在嘗試解決 Zooko 三角。
認(rèn)證
對于一個去中心化身份系統(tǒng)而言,擁有同時滿足安全性、去中心化、便于理解的命名空間是不夠的。解釋一下,當(dāng) OneName 推出時,有人立即注冊了用戶名 +gavin,為此 OneName 之后不得不為比特幣核心開發(fā)者保留 +gavinandresen。
為了防止有人在網(wǎng)上冒充別人,我們需要驗證每個人實(shí)際上就是他們聲稱的那個人。例如,你在 Airbnb 上租房之前,你必須驗證你的電子郵箱和電話,有可能還需要驗證你的 Facebook、LinkedIn、Google 賬號。在這種情況下,Airbnb 充當(dāng)信任中介 —— 買家和賣家都確信 Airbnb 已經(jīng)完成了驗證過程。但是在去中心化應(yīng)用的世界中,我們不再信任第三方,但我們?nèi)匀恍枰谥悄芎霞s執(zhí)行之前驗證某人的身份。
因此,認(rèn)證是去中心化身份系統(tǒng)中信任和聲譽(yù)的基石。在現(xiàn)實(shí)世界中,我們使用駕照或護(hù)照等證件證明我們的身份。這些文件包含有關(guān)我們的事實(shí),例如,我們的姓名、年齡、眼睛顏色。但是駕照在互聯(lián)網(wǎng)上并不存在。相反,我們需要找到一個將真實(shí)身份和加密身份關(guān)聯(lián)的方法。至于如何最好地實(shí)現(xiàn)這一目標(biāo),目前還沒有定論,許多組織都正在摸索。
身份自治產(chǎn)品
一種解決方案是擁有獨(dú)立的身份產(chǎn)品。這種身份產(chǎn)品需要滿足四個基本特性:
身份具有某種唯一標(biāo)識。(存儲這種標(biāo)識的最佳體系結(jié)構(gòu)就是上文描述的滿足 Zooko 三角的命名空間。)
第三方能夠聲明(注冊)某個身份的信息。聲明中包括例如名稱、地址、電子郵件等。
能以某種方式請求用戶的身份認(rèn)證。
能有某種方式查詢有關(guān)某身份的聲明。
- Facebook 和 Twitter 目前能夠認(rèn)證某些人的 Blockstack 身份。-
獨(dú)立身份識別產(chǎn)品具有自治(self-sovereign)的優(yōu)點(diǎn)。身份自治是一種可以在不同去中心化應(yīng)用間遷移的數(shù)字身份,不依賴于任何政府或公司,也永遠(yuǎn)不會被拿走,而不像現(xiàn)在的互聯(lián)網(wǎng),只要你將你的社會安全碼(SSN)給了某個人,他不經(jīng)過你的同意,就可以在任何地方使用,從而可能導(dǎo)致身份盜竊。有了自治的身份,你就可以在連接 dApp 時保留對社會安全碼等身份信息的控制、同時證明自己的身份,還不需要把這些身份信息復(fù)制一份給 dApp。
有許多團(tuán)隊試圖構(gòu)建身份自治標(biāo)準(zhǔn)。
ERC 725提出了一種管理以太坊區(qū)塊鏈鏈上身份的標(biāo)準(zhǔn)。由 Fabian Vogelsteller 提出,他還提出了非常成功的 ERC 20 代幣標(biāo)準(zhǔn)。一個 ERC 725 身份合約包含一個加密簽名,證明該合約所有者控制對其身份的特定聲明,例如:電子郵件或電話號碼。Origin Protocol是一種用于創(chuàng)建無需中介的共享經(jīng)濟(jì)的協(xié)議,在智能合約執(zhí)行前,使用 ERC 725 驗證參與方的身份證明。
uPort是一種身份自治錢包,讓你能夠完全控制你的身份以及個人數(shù)據(jù)。開發(fā)團(tuán)隊是 ConsenSys,你可以使用 uPort 在以太坊上創(chuàng)建身份、安全登錄去中心化應(yīng)用且無需密碼、管理你的個人信息和認(rèn)證、簽署以太坊交易以及數(shù)字簽名文件。uPort 最新開發(fā)出一種新型去中心化數(shù)據(jù)存儲解決方案 —— 3Box,3Box 使得以太坊用戶能夠使用任意錢包上傳他們的信息并在不同 dApp 間分享。uPort 已經(jīng)與瑞士 Zug 州合作,為居民提供數(shù)字身份證,將真實(shí)世界的身份與區(qū)塊鏈聯(lián)系起來。
-uPort 通過分解身份智能合約,在 ERC 725 標(biāo)準(zhǔn)上做了升級。他們新的分層架構(gòu)提案是ERC 780。來源:uPort-
Civic
項目由連續(xù)創(chuàng)業(yè)者 Vinny Lingham 領(lǐng)導(dǎo),是一個基于以太坊的身份驗證去中心化應(yīng)用。在 Civic 去中心化生態(tài)系統(tǒng)中,用戶需要驗證自己的身份,之后請求接受方(例如銷售服務(wù)的公司)才能接受該用戶為客戶。為此,驗證者通過交叉引用政府?dāng)?shù)據(jù)庫的文檔驗證用戶的聲明。一旦驗證者證實(shí)了用戶的身份,他們就用默克爾樹根值來認(rèn)證這段信息,而默克爾樹就拿用戶的聲明來做默克爾樹的葉子節(jié)點(diǎn)。
其他類似的身份產(chǎn)品有:Sovrin、Evernym、Nuggets。去中心化身份基金會(Decentralized Identity Foundation)主頁列出了目前正致力于解決身份問題的團(tuán)隊列表,基金會目前包括超過 50 家合作機(jī)構(gòu)。這些機(jī)構(gòu)以增強(qiáng)系統(tǒng)間互操作性為目標(biāo),共同協(xié)作嘗試不同的去中心化身份(方案),以便于用戶不需要將他們的部分個人信息分散到多個協(xié)議里。
去中心化身份會再次變成中心化么?
身份自治的一個問題是如果用戶私鑰丟失或被盜應(yīng)該怎么辦。攻擊者就應(yīng)該得到私鑰中的資產(chǎn)么?請記住,我們不是生活在一個賽博朋克的烏托邦里,我們也并沒有將私鑰植入我們的大腦。也許這個問題需要有可信任的第三方持有(用戶的)身份。
Coinbase 最近收購了一家名叫 Distributed Systems 的初創(chuàng)公司,這個初創(chuàng)公司正在開發(fā)一個叫做“Clear Protocol協(xié)議”的適用于 DApps 的去中心化身份標(biāo)準(zhǔn)。在此過程中,Coinbase 可能為測試用戶增加一個 “Facebook 鏈接”,以便于用戶更簡便地登錄并連接他們的加密錢包。鑒于 Coinbase 擁有 2000 萬用戶的 KYC (Know Your Customer)數(shù)據(jù),Coinbase 可以將它的身份數(shù)據(jù)庫用在 dApp 中。
-Web 3 身份最終可能看起來像這樣。-
據(jù)推測,F(xiàn)acebook 區(qū)塊鏈團(tuán)隊正在為 dApp 構(gòu)建一個身份認(rèn)證和單點(diǎn)登錄平臺,因為 Facebook 擁有我們的個人信息。在 #DeleteFacebook 活動中,用戶下載了包含他們所有個人信息的 .zip 文件,對于 Facebook 已經(jīng)有多了解他們感到非常震驚…
Telegram Passport是另一種統(tǒng)一授權(quán)方法,用于需要個人身份證明的服務(wù)。使用 Telegram Passport,你可以一次上傳你的所有文件,并且立刻和需要真實(shí) ID 的服務(wù)共享你的數(shù)據(jù)。
結(jié)論
雖然匿名和假名經(jīng)常被視作加密貨幣的用例,但是像許多新型加密原生行為,例如鏈上治理、代幣注冊等,也很需要身份解決方案。特別是投票系統(tǒng),例如二次方投票問題,很大程度上依賴于可驗證的、獨(dú)立的用戶身份,因為一個人可以通過模擬多個人的身份來顯著提升自己的影響力。與此同時,身份依舊是這些系統(tǒng)抵抗女巫攻擊以及大規(guī)模有效運(yùn)行的瓶頸。
在我看來,結(jié)合最佳命名空間產(chǎn)品和最佳認(rèn)證產(chǎn)品的一個分層身份體系結(jié)構(gòu)是最理想的方式??纯醇用苌鐓^(qū)未來會采用哪種身份解決方案將會非常有趣。(作者:Richard Chen)