Web3.0世界的身份及聲譽
身份和聲譽,是Web 3世界的基礎。在本文中,我們給出了相關問題的綜述,並羅列出一些解決方法。
為什麼身份 & 聲譽這麼重要
讓我們從瞭解身份和聲譽如何釋放協議層面的價值來著手。
將一次性博弈轉變為重複博弈
區塊鏈使用者都是匿名的,而且更換新地址的成本可忽略不計,所以共識協議很難要求使用者進行正當的行為。發展到今日,我們習慣以質押的概念或是“懲罰條件”來進行約束,本質上就是通過罰沒參與者的一些資金(通常是 ETH 或是 ERC20 代幣)來懲罰作惡行為。
假設我們有一種辦法,能夠以數字化方式體現身份和聲譽的稀缺性,便能修改現有的股權機制,採取如同罰沒資金一樣的方式,使作惡者的聲譽遭受損失。相對的,共識協議也能夠獎勵聲譽高的參與者;比如在網路中給與他們更多收益(可以與 Cosmos 和 Keep 專案中提到的工作代幣 "work token" 類比 )。參與者有動機來優化自己的聲譽,而不只為了短期利益;進而將一次性博弈轉變為重複博弈。
抽樣
關於抽樣,最重要的應用就是共識機制本身( 像 Proof-of-Work 和 Proof-of-Stake 承擔了抗女巫攻擊認證)。這可以擴充套件到其他用例,比如選擇由誰儲存檔案,或是由誰在資源市場中執行計算工作。
限流及定價策略
網路服務通過許多的限流及定價策略,來滿足不同層次的客群需求。 以 Dropbox 為例,它使用免費增值模式(任何人都能免費使用服務,但免費的服務有限)。通過身份系統,去中心化的協議也能夠實現相似功能。像是 Filecoin,可以使用免費增值模式給大需求使用者提供更低廉的價格。
除了協議層之外,我們也看到很多應用需要身份。
治理
現有的區塊鏈投票系統,是基於代幣投票模式。代幣是稀缺資源,提供抗女巫攻擊機制,但是這樣也導致財閥專權,有錢人的話語權更大。二次方投票(Quartic Voting)之類的機制,雖然能夠降低財富的影響,但現在還是可以鑽空子;比如一方將錢分散到多個賬戶地址。
而身份認證使得二次方投票方案得以實施。
聲譽,源於使用者在協議中曾有過的行為,或是來自社群對該使用者的信任;可以作為決定某個節點投票權重的依據。
毋庸置疑的,安全的鏈上投票的要求比上述要更加嚴苛。舉例來說,為了避免賄選發生,參與者不應能公開他們的投票方式(關於“抗脅迫性”的描述更為廣義,相關介紹可見 Daian, Kell, Miers, and Juels 的這篇文章。)
借貸
鏈上借貸協議無法信任參與者,因此要求完全抵押才能進行借貸,這種高昂借貸成本遏制了應用的發展。
身份系統通過驗證借款人在真實世界中的一些特徵(徵信記錄、產權證明、收入等等),來扭轉上述局面。聲譽,是由以前的借貸經歷或是其他人擔保而來,可以被視為抵押物。
證券類代幣
將真實世界的抵押物代幣化,如房地產、股權、藝術品,能夠放大它們的價值:增值點在於代幣能體現部分所有權,具備及時清結算,及參與7*24全球市場等優勢。該類代幣的發行和交易須遵守證券法(對交易參與者進行 KYC, AML,資質鑑定,和其他檢查 ),這些條件限制能夠內化到代幣本身(比如使用 Harbor 方法的 R-Token)或在交易所交割時強制執行(如在去中心化交易所呼叫 ERC20 轉移函式前先執行此類限制條件)。
代幣發售 & 空投
代幣空投能激勵網路中的參與者。最近的一些空投例子如 Livepeer 的 Merkle Mine 和 Handshake’s airdrop,都是開源的空投機制。有了身份和聲譽體系,我們能夠設計更精細的空投分發機制。身份和聲譽在這裡的應用,包含:構建鏈上游戲的社交屬性(如,遊戲中物品的受歡迎程度會影響其價格)、登入及許可權控制、DPoS、普適的最低收入,以及聚合去中心化預言機的輸入。
下面,讓我們來看看身份和聲譽究竟代表什麼意思。
我們說的身份和聲譽是什麼?
身份是系統內最基礎的角色。在以太坊中,可以說以太坊賬戶地址就是身份。
身份可以用來證明自己和他人曾發生過一些事,我們把這些事稱作宣告。隨著時間推演,聲譽會隨著身份體系建立起來。
身份、宣告,和聲譽的協議,應該通過適當的介面相互互動。這個系統必須是模組化且可擴充套件的,同時具備以下特性:
去中心化(Decentralization):協議規則應該由網路參與者制定和遵守,而不是由中心化權力機構執行。 自治(Self-sovereignty):使用者自行掌控屬於自己的身份、宣告,和聲譽。這與 Web 2 網路形成巨大的反差;在 Web 2 網路中,比如在亞馬遜;一個商家的產品積累的聲譽,可能會因為亞馬遜破產或單方面決定,而被移除。
可移植性 & 互操作性(Portability & interoperability):系統不該扣留使用者,而應該允許使用者往其他系統上遷移屬於自己的資料。 抗女巫攻擊(Sybil resistance):設計協議時,必須考慮參與者不能通過釋出多個身份獲得優勢;除此之外,協議中舊身份更換成新身份沒有好處。構建一個去中心化的抗女巫攻擊身份體系,是一個涉及方方面面的問題。此問題可以使用一種易於單次計算,但難以重複計算的函式;或是一種無法通過機器表現的人為舉動。比如 Proof of Work 和 Proof of Stake 都是目前常見的方式。 隱私(Privacy):參與者應該能選擇性地與他人共享資料。此外,預設情況下參與者的身份能通過不公開的標識進行驗證。
接下來,讓我們深入瞭解這個系統的三個組成:身份、宣告、聲譽。
身份
身份可以指的是外部持有的賬號(由私鑰控制),或是一份智慧合約(多重簽名、DAO、其他等等)。身份能夠用於資訊簽名、資料加密,或是發表關於自己或他人的宣告。
身份管理中,金鑰的管理是最重要的一環。與私鑰最大不同是,使用智慧合約管理身份讓我們能擴充套件一些功能,如金鑰找回、許可權控制、動態花費限制等等。
身份管理合約應該包含金鑰恢復機制,以面對以下情況:
- 金鑰丟失(使用者許可權丟失)
- 金鑰遭竊(使用者擁有許可權,小偷也擁有許可權)
- 金鑰遭竊且丟失(使用者許可權丟失,小偷擁有許可權)
有許多機制在這裡能夠派上用場:社群找回、暫停證明服務,或是通過 Shamir 金鑰分享和 Schnorr 簽名方法。
將金鑰具體功能分離,能夠劃分出不同層級的安全性。以 ERC-725 為例,其提議持有不同金鑰來用於管理、行動、發表宣告,和加密。
為了保護隱私,使用者在不同使用場景需要建立和管理不同的身份。如果我們用相同的、完整的身份去借貸、給質押者授權、支付,會導致使用者在真實世界的身份被交叉比對最後暴露。在 BIP 32/39/44 中提到的分級確定性(Hierarchical Deterministic)方法能夠在這裡派上用場。
最後,身份方法必須和其他系統有很好的互操作性,並能適用於 W3C DID(去中心化身份驗證者 Decentralized Identifier) 標準。
宣告
宣告指的是由一個身份對另一個身份提出的事實。
“宣告 Claim”的語義遵循“一個實體提出關於某個主題的宣告”,並且能夠表達許多事:
“A 宣告 B 已經通過 KYC。”——用於抗女巫攻擊 “A 宣告 B 是合格的投資者。”——用於監管合規(如代幣售賣,和抵押代幣交易等等) “A 宣告 B 超過了 21 歲。”——用於有年齡限制的產品 “A 宣告 B 是中國公民。”——用於合規審查 “A 宣告 B 有 x 收入。”——用於信用風險擔保
這些宣告由宣告人簽署,因此其真實性和完整效能夠以加密形式驗證。
任何一方也能夠對其自身發表宣告(比如姓名、國籍、生日)。
有些設計準則需要銘記在心:
宣告必須是加密的(Claims should be encrypted):宣告可能包含敏感資訊,因此始終要以加密形式儲存。資料擁有者能夠以可選的資訊公開流程,將資料分享給特定身份物件(比如,通過 Diffie-Hellman 方法交換金鑰)。
儘可能少地在鏈上儲存資料(Store as little data as possible onchain):除非要求鏈上審查(比如,某次需要許可的 ERC20 交易),否則宣告資料應該被放在鏈下儲存,只鏈上儲存其加密形式(如,默克爾樹的根值)。除此之外,考慮到未來量子計算的普及和目前加密系統的脆弱性,即便資料已經進行加密,也不該存放在區塊鏈上。
只有釋出者能夠移除宣告(Only the claim creator should be able to remove their claim):這樣能夠使網路有能力釋出負面宣告,而不用擔心它們被刪掉。舉例來說,可以宣告某個以太坊地址是釣魚詐騙(從虛假 ICO 到推特上的“免費贈幣”騙局等等,這是在加密世界始終存在的問題),或是賣方沒有履行他們的商業責任。 繼續這個思路,我們可以想象一下,如果某個使用者被捲入了與他無關或惡意第三方的宣告,該怎麼辦?這不構成問題,因為沒有宣告是具有權威性的。宣告就只是由某個身份提出的、關於另一個身份的狀態,至於信不信,完全由驗證者自行決定。
宣告具有有效期 (Claims can expire):宣告不會永遠有效。舉例來說,在某些司法管轄區,可信的狀態每 90 天需要更新一次。每個聲明發出時包含當時的區塊高度,因此驗證者能自行判斷這些宣告的有效性。
現在,讓我們來看看一些設計預案。
實現
ERC 725/735ERC 725 是個關於智慧合約身份的提案,實現了一個管理身份宣告的標準化介面,部署編號為 ERC 735。使用者需要批准所有與他們相關的宣告,而且能隨時刪除。因為這個系統不需要多方協同,所以是可以升級的。
這個提案也有一些問題。因為每個身份都要自己部署宣告合約,因此無法保證都遵守 ERC 735 中的規範。因此當驗證者與這些身份打交道時,首先得檢查他們的原始碼;這會帶來很大不便。更糟的是,允許使用者直接刪除關於他們的宣告,阻礙整個系統釋出負面宣告。
最後,涉及隱私保護,ERC 725 需要搭配一個鏈下系統,因為它將所有宣告都儲存在鏈上。
ERC 780
ERC 780 提出在以太坊上建立一個全域性的登錄檔,來存放以太坊上的所有宣告。uPort 便是將登錄檔當作構建一個去中心化 PKI 系統的基礎,目標是將大多數宣告轉移至鏈下。登錄檔不會區別宣告者是賬戶或是合約;又因為只存在一份合約,所有驗證者可以相信它的邏輯。
這份提案的問題在於宣告的表達性有限。因為要求所有宣告遵守同樣的資料結構,這就直接帶來使用上的侷限。進行升級時也會遇到麻煩,因為它需要廣泛的利益相關者的支援。
Zeppelin TPL
Zeppelin TPL( Transaction Processing Layer ,交易處理層)被設計用於 ERC20 代幣的許可交易。在這個方案給每個“司法管轄區”部署了不同的合約。“司法管轄區”的管理叢集們選出證書頒發者,這些證書頒發者有權將宣告寫進該管轄區的宣告登錄檔。
這是個比較實用的設計。驗證者更加信任司法管轄區的宣告,因為他們知道這些宣告者是經過認證的。但另一方面,只允許部分使用者發表宣告,必然導致系統靈活性降低。
這樣的系統也可能遇到難以擴充套件的問題。沒有一個管轄區會提供完整的相關宣告列表(因為管理、地理位置,或用例的不同),因此驗證者必須檢查多個登錄檔,或是宣告物件必須在不同管轄區反覆進行宣告。
基於 NFT 的身份
我們能以 NFT( Non-Fungible Token,不可替代代幣)的形式,將許可進行編碼,一組權威節點可以為使用者生產 NFT,驗證後供使用者使用。這裡的問題是使用者能夠交易他們的 NFT,而設計裡並沒有提到使用 NFT 比使用宣告的優勢在哪。
解決辦法
有個也許可行的系統,能將上述方法的優點整合起來:稱為聯合宣告登錄檔。
首先建立面向不同種類宣告的登錄檔;這些登錄檔繼承自頂層合約,並且在實施的時候,明確規範那些宣告能被新增或刪除。這樣便增加了宣告的表達性,同時確保登錄檔管理者之間沒有冗餘的宣告。
此外,登錄檔允許任何人建立宣告,而驗證者有責任過濾出他們相信的宣告。他們能夠基於特定用例、地理位置,或是時間來判定是否相信該宣告,或是根據由中心化機構(如政府)和去中心化系統(如 DAO) 提供的宣告者白名單進行過濾。
接下來,我們進入聲譽部分。
聲譽
我們可以將聲譽分為兩大類:一是基於信任圖譜的聲譽;二是基於行為評價的聲譽。
基於信任圖譜的聲譽
這個方法來源於社交網路演算法,PageRank,和委任式民主有許多相似之處。
思想實驗
想象一下,在進行大型投票之前,先在每個以太坊賬戶中空投 100 個信任代幣,並讓他們自由將信任代幣委派給能代表他們投票意見的人。
在委任節點競選期間,大家可以在線上替自己的以太坊地址賬戶打廣告(在推特、Reddit、個人網站等等),呼籲其他人的支援。大家根據他們在社群裡表達的專業知識及政見,對競選人進行相應委任。
委任節點競選結束後,每個委任節點開始投票。投票權重根據他們所獲得的信任代幣數而定,可以直接使用獲得的代幣總數,也可以像 PageRank 一樣使用一個度量係數。
在我們的例子中,圖中每條線可以視為信任代幣分配情況。PageRank 方法遞迴地集合了群眾的智慧,如果許多人將信任代幣指派給 A,那麼 A 指派給其他人的代幣就將有更高的權重;更進一步,這些委任人再次指派的代幣的權重又會更高。以這種方式迭代,聲譽能儘可能和他們真實的權重靠攏。
來源: https://en.wikipedia.org/wiki/PageRank
要注意的是,這種方法也能在宣告協議中實現。拋開信任代幣,使用者也能用向其他人的宣告來表達上圖中的線。不過我們也能看到,基於信任圖譜的方法存在一些問題。
抗女巫攻擊
攻擊者能簽名多個身份,並讓他們彼此信任,人為的提升這些節點的聲譽。以下有幾種解決方法:
(1)可信賴身份
在基礎 PageRank 演算法中有個引數 E(u),能讓進行網頁爬蟲的人有一定的概率跳轉到預先設定的網頁。這樣做能防止爬蟲的人被卡在女巫攻擊的子網路中。
同樣的,在我們的用例中,可以事先設定可信任的身份;也可以從真實世界中已被驗證的身份集合中選擇。
(2)本地聲譽
每個人都能在本地計算聲譽。比如在借貸場景中,擔保人只能從每個使用者與自己和其他可信身份的互動,來評估借款人風險。
有意思的是,如果一個使用者被網上大部分節點信任,全域性視角的信任也會和本地視角靠攏。這類似於,在借貸理論中,信用良好的一方的欠條也能代表金錢。
(3)由稀缺資源創造的信任流通渠道
另一種在信任圖譜中對抗女巫攻擊的有效方法是,使用稀缺資源來建立信任流通渠道。可以是權益形式,或是 Proof-of-Work。以 Sourcecred 為例,它依靠 Git 程式碼提交與依賴性來建立信任圖譜。在這樣的信任圖譜中,聲譽的流向需要有實質工作量,因而能抵禦女巫攻擊(除非出現能自我程式設計的機器學習演算法!)。
(4)模式匹配
我們也可以手動的分析信任圖譜,並在分析後過濾掉一些結果。舉例來說,一群相互信任的節點,卻沒有被群體之外的人信任,就很可能被視為有問題的而移除。
激勵機制
在信任圖譜中,使用者有什麼動機去建立正確的信任流通渠道呢?
P2P 借貸和保險(如, TrustDavis)的運作也許可以給我們帶來潛在的答案,就是節點為了獲得渠道而提供抵押。如果他們提供的抵押物處於流通中,就能得到收益;反之如果他們作惡,就會失去抵押物。
另一個可能的答案是,基於現有行為建立另外的副產品作為信任流通渠道。比如出版商在自己的網站加上高質量的連結,以吸引使用者,因此出版商為 PageRank 提供了所需的資料。同樣的,一個開發者想建立好的程式碼庫,並吸引更多貢獻者的話,它就必須維護一個友好的開發環境;這樣一來,他們就建立了 Sourcecred 需要的流通渠道(推薦各位看看 Dandelion )。
另一種聲譽,是基於行為評價的。
基於行為評價的聲譽
在這個方法中,我們不依靠圖譜決定聲譽,而是每個人依據對方歷來的行為表現進行評價。舉例來說,在 Dharma 借貸協議中,借款人的聲譽能夠以他們的支付記錄及時間軸來計算;在 Truebit 中則是以過去成功解決過的任務作為聲譽計算依據。
我們還能夠將這類聲譽評價融入到協議中;隨著使用者聲譽提高,他們在網路中能獲得更大的費用折扣或是更高的收入。
上述方法依賴於抗女巫攻擊的身份體系才能運作。因為如果沒有身份體系,任何人都能通過造假工作量提高自己的聲譽。
另一個惱人的問題是,人們可以逐步建立起自己的聲譽然後以一次騙局結束退出。之前交易所和比特幣借貸平臺已經發生過這種情況,因此這個聲譽計劃必須經過嚴格的分析,並考慮拜占庭行為的經濟成本。
其他關於聲譽計劃的注意事項
聲譽是具有環境限制的。一個好的借款人不見得會是個好的 Casper 權益相關者,也不意味著會是好的 Livepeer 譯碼者。就如 Stefan George 所說,在黑幫裡有者好名聲的人,你不見得就要相信他。
最後,我們還需要繼續探索“負面聲譽”的概念。如果一個身份可能獲得低於零的聲譽評價,他們可能傾向於拋棄現有身份,以新身份重新加入。
結論
身份和聲譽是重要的研究課題。他們能將協議從單次博弈轉變為重複博弈,並且是許多區塊鏈應用的必要組成部分,如抽樣,定價策略,治理,借貸,抵押物代幣和空投等等。
致謝
感謝 Yondon Fu,Liam Horne,Robbie Bent 和 Melisa Smith 對此部落格文章的反饋。感謝Ali Yahya,Nicola Greco,Dandelion Mane,Andy Bromberg,Faraaz Nishtar,Sunny Aggarwal,Sid Ramesh,Nadav Hollander,Dan Finlay,Ryan Sepassi,Ben Fisch,Dieter Shirley,MartinKöppelmann,Stefan George,Kei Kreutler,Fred Ehrsam, Bjorn Wagner,Yondon Fu,Robbie Bent 和其他人帶來的討論,這促成了上面這些想法。
END
(本文授權自:以太坊愛好者;作者: Sina Habibian;翻譯&校對: IAN LIU & Elisa)