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