演講:Gavin Wood
Gavin 近期一直在關注的女巫攻擊(civil resistance)的問題,PolkaWorld 回顧了Gavin Wood 博士在Polkadot Decoded 2024 上的主題演講,想要探究Gavin 在如何防止女巫攻擊上的一些見解。
什麼是女巫攻擊?
你們可能知道,我一直在研究一些項目,我在寫灰皮書,專注於JAM 項目,也在這個方向上做了一些程式碼的工作。實際上,在過去的兩年時間裡,我一直在思考一個非常關鍵的問題,這個問題在這個領域中非常重要,那就是如何防止女巫攻擊(civil resistance)。這個問題無所不在。區塊鏈系統是基於博弈論的,而在分析賽局時,我們通常需要限制參與者的數量,或管理參與者可能表現出的任意性的情況。
當我們設計數位系統時,我們非常希望能夠確定某個特定的端點—— 也就是一個數位端點—— 是否由人類操作。我想先明確一點,這裡我並不是討論身分問題。身份問題當然很重要,但這裡不是要確定某個端點在現實世界中的具體身份,而是要區分這個設備和目前由人類操作的設備之間的區別。除此之外,還有一個附加問題是:如果設備確實由人類操作,我們能否為這個人提供一個化名,以便在特定的上下文中識別他們,並且如果他們以後再次使用這個設備與我們互動,我們就能夠再次辨識出他們。
隨著我們的互動方式從主要與他人交流(例如我出生的80 年代)逐漸轉變為與系統互動,這類數位系統,尤其是去中心化的Web3 系統,變得越來越重要。在80 年代,人們主要是直接與他人溝通;到了90 年代,我們開始透過電話與服務互動,例如電話銀行。這對我們來說是一個重大變化,雖然最初電話銀行只是由大量人工操作的呼叫中心組成,我們透過電話與人交流,但最終這些系統演變成了今天的自動語音系統。隨著網路的發展,這種人際互動變得越來越少,在日常服務中,我們幾乎不再與人類直接互動。當然,隨著Web2 電子商務的興起,這種趨勢變得更加顯著。而Web3 則進一步鞏固了這一點—— 在Web3 中,你幾乎不會再與人類互動。 Web3 的核心概念就是讓你與機器互動,甚至讓機器之間也能互相互動。
研究女巫攻擊的意義是什麼?
那麼,這究竟有什麼意義呢?這是任何真正社會的基礎要素,也是我們許多社會系統的核心,包括商業、治理、投票、意見整合等各個面向。所有這些都在很大程度上依賴於防止女巫攻擊的能力來建立社區。我們在企業中視為理所當然的許多機制實際上都是基於防止女巫攻擊的假設。無論是公平合理的使用、噪音控制,或是社區管理,都是建立在這種防禦能力的基礎上的。許多事情都需要我們確認某個實體是否是真實的人類。如果有人行為不當,我們可能會希望將其暫時從社區中排除。你可以在數位服務中看到這種現象,當然,在現實世界中也是如此。
透過防止女巫攻擊,我們可以引入一些約束行為的機制,而不需要設定進入門檻或犧牲系統的可訪問性。例如,激勵行為有兩種基本方式。一種是「胡蘿蔔加大棒」的策略(即一種獎懲機制)。大棒(懲罰)的做法是要求你交一筆押金,如果你行為不當,就沒收這筆押金,質押(staking)就是這樣一個簡單的例子。胡蘿蔔(獎勵)的做法是假設你會表現良好,如果你沒有達到預期,我們就剝奪你的一些權利。這其實是大多數公民社會的基本運作方式。
但是,如果區塊鏈上缺乏防女巫攻擊的機制,這種方法就無法真正實施。在公民社會中,這樣的機制之所以有效,是因為一旦某人被監禁,他們就不能再犯下同樣的罪行,至少在他們被關押期間不行。自由是與生俱來的,原則上政府可以剝奪它。我並不是說要在鏈上監禁任何人,而是說,目前在鏈上無法實現類似的約束措施。這就導致我們很難透過提供免費服務來抑制不良行為,而不僅僅是鼓勵良好行為。商業和推廣活動非常依賴能夠確認交易者是否是真實的人。
這是我偶爾使用的網站的截圖。這是一種非常好的威士忌,許多人都非常喜歡它,在它的原產國很難買到。而在歐洲,買到它相對便宜一些,但看起來他們透過限制個人的購買數量來維持較低的價格。然而,這種操作在一個真正的Web3 系統中幾乎不可能實現。
在社區建設、空投以及識別和分發社區成員方面也存在很大困難。整體而言,空投在資本支出上的效率非常低,因為空投的目標是希望能夠覆蓋盡可能多的人。在進行空投時,要有效地做到公平分配,需要先識別個體,然後給每個人相同的數量。但實際操作會遇到各種問題,例如錢包餘額的不同。最終你可能會陷入困境,導致分配曲線變得非常不平衡,呈現出極大的差異。結果是,大多數人幾乎沒有足夠的激勵。
關於「公平合理的使用」問題,雖然現在的影響較小,但如果你使用過多的網路資源,系統通常只會降低你的速度,儘管你仍然可以繼續使用網路。
回到過去,大約10 到15 年前,如果你使用了太多的網路資源,網路服務供應商可能會認為你並沒有合理使用這個無限的網路服務。因此,他們基本上會徹底停止你的服務,而不是像現在這樣只是降低你的網速。這種做法讓他們能夠為大多數用戶提供近乎無限的網路服務,因為他們可以透過識別用戶來區分誰在合理使用資源。
Web2 的一個基礎是高級服務模式,這在很大程度上依賴於識別使用者的能力。 20 多年前,使用者辨識機制可能不那麼複雜,但現在情況大不相同。如果你想開一個帳戶,通常會有三種以上的機制來確認你是否是真正的個體,是否是他們以前從未見過的使用者。例如,如果你試著在沒有買iPhone 的情況下註冊一個Apple 帳戶,那簡直就像在闖關一樣,這些公司基本上不願意給你一個帳戶。當然,他們宣傳說你可以免費獲得帳戶,但我不知道後台的AI 在做什麼,我自己嘗試了10 次才最終成功。結果我還是不得不買了一部iPhone。
我覺得,如果我們能夠更好地識別個體,許多類似「Oracleization」(資訊驗證)的過程將會變得更加容易。
社會中使用防女巫攻擊的「人性證明」來進行資訊驗證的典型例子是陪審團制度。當我們需要一個公正的判斷者(即Oracle)來裁定某人是否有罪時,系統會隨機從社會中挑選出奇數個普通人,讓他們聽取證據並做出裁決。類似地,在社會生活的其他領域,例如代表權和意見收集,代表權是社會的重要組成部分,我們透過防女巫攻擊的手段來管理代表權。當然,由於目前的公民基礎設施並不完善,這種管理方式往往並不理想,特別是在代表權與身分認同混淆的情況下。很多時候,當你想投票時,你需要證明你的真實身份,例如出示駕照或護照。但實際上,投票代表的是你的一部分投票權,而不是將這張票與個人身分直接關聯。
如何防止女巫攻擊?目前的解決方案是什麼?
所以,這該怎麼做呢?
在Web 2 以及Web 2 之前,有許多方法可以實現身分驗證。現在的Web 2 系統中,這些方法通常是組合使用的。例如,如果你想建立一個新的Google 帳戶,你可能需要通過驗證碼,並且進行郵件和簡訊驗證。有時候,簡訊驗證可以替代與真人通話。如果你曾經遇到過亞馬遜帳戶被鎖定的情況,你就知道我在說什麼。基本上,這就是一個複雜的迷宮遊戲,直到你找到正確的按鈕和電話選項,最終能夠與真人客服對話。對於更複雜的防女巫攻擊,我們可能會使用像身分證或信用卡這樣的資訊。
然而,當我們進入Web 3 的世界時,我的研究並沒有發現任何真正讓我滿意的完美解決方案。現在有一些候選方案,但它們在三個方面存在很大差異:是否去中心化、是否保護隱私,以及是否真正具備韌性(即抗攻擊能力)。
韌性正成為一個越來越大的問題。實際上大多數系統都面臨這兩種問題。
有一個系統,我稱之為“常見的懺悔系統”,也就是你向某個特定的權威機構洩露你的隱私,這個機構會掌握你的一些信息,而這些信息可能是你不願與他人分享的。例如,你可能會掃描你的護照並提交給某個機構,然後這個機構就掌握了所有人的護照信息,從而處於一個強勢地位,因為他們擁有所有這些信息。常見的懺悔系統並不適合Web3。
此外,你有時會看到一些類似Web3 的個人化系統,它依賴「常見的金鑰管理機構」。其中有一個擁有權力的機構,這個機構透過掌握密鑰來決定誰是合法的個體。也就是說,這個機構有權決定哪些人可以被認為是系統中的「真實使用者」。有時候,這些機構甚至會替使用者保管金鑰,但更多情況下,他們僅僅保留了決定誰是合法個體的權力。
這些都依賴中心化的權威機構來掌控使用者的隱私或身分訊息,這與Web 3 去中心化和使用者自主的概念相悖。
把某個東西放在鏈上並不代表它是Web3。你可以把Web2 的策略或依賴中心化權威的策略簡單地移到鏈上,但這樣做並不會改變策略本身。它只意味著這個策略可能會更有韌性地執行,但策略本身仍然不是Web3。僅僅因為一個名字是一個很長的十六進位字串,並不意味著它一定是私密的。如果不採取特定措施,這種字串仍然可能與現實世界的身份資訊關聯起來。
如果一個系統依賴常見的「懺悔機制」,那麼它就不是一個隱私保護的解決方案。我們已經看到太多的資料外洩事件,這讓我們明白,僅僅把資料放在公司文件牆後面或某些可信任硬體中是無法確保安全的。一個適合Web3 的個人化解決方案需要的不是本地的個體身份或本地社區成員身份,而是全球性的個體身份,這兩者是完全不同的概念。
有一些系統嘗試解決這個問題,但它們依賴單一硬體和常見的金鑰管理機構,所以並不是真正的Web3 方案。例如,Worldcoin 這個專案嘗試透過可信任硬體來解決這個問題,但它使用了一個統一的金鑰管理機構和集中化的資料來源,因此不太符合Web3 的去中心化理念。
另一個例子是Gitcoin Passport,這在以太坊社群中使用廣泛,是其他身分和個人化解決方案的一個綜合平台。它依賴一個聯邦制的金鑰管理機構來認定個體身份,但這些資料來源往往基於集中化的權威,包括像CoinBase 這樣的中心化機構(CC)。
Idena,一個有趣的Web3 解決方案,沒有常見密鑰管理機構或中心化機構。不過,它只是一種單一的機制,而且在面對不斷發展的人工智慧產業時,這種機制是否具有足夠的韌性仍不清楚。到目前為止,它表現得還不錯,但用戶數量還相對較少,只有大約一千名用戶。
總的來說,目前還沒有哪一種方法可以完全解決這個問題。
Gavin 對解決女巫攻擊的看法
關於個體身份,有兩種思考方式:一種是遠程的,另一種是本地的。機器並不能自然地理解「個體身份」,我們不太可能看到某種加密技術突然解決這個問題。有人可能會說,指紋或生物辨識技術能夠讓人類具有獨特性,機器可以測量這些,但純數位系統很難證明這一點。可能最接近這個目標的系統是Worldcoin,但它也只是一個機器,能夠以不容易被破解的方式驗證。
因此,我們需要理解,個體身分更多的是關於認證的問題。它涉及數字系統內的元素如何驗證其他元素是否為真實的個體。那麼,問題在於,這種認證的依據是什麼?是物理上的接觸,還是其他方面的懷疑?我們相信一個帳戶是真實的個體,因為我們見過這個人,並且在見面時我們認為他沒有與其他人接觸過,因此可以推斷他在特定環境中是唯一的個體,還是僅僅因為我們在屏幕上看到了某些訊息,並且有其他證據支持他的個體身份?
當我們談到遠端認證(即非直接、非物理證據的認證)時,AI(人工智慧)可能會帶來一些問題。而如果我們依賴物理證據,實際操作性又可能成為一個問題。因此,我們在這兩個限制之間陷入了困境。不過,我認為透過創新和想像力,我們還是能找到一些可行的解決方案。
那我們需要做什麼?
那麼,我們需要什麼?我們的計劃是什麼?
我認為,讓Polkadot 在現實世界中更加有用(不僅僅是在DeFi、NFT 和虛擬區塊鏈領域),關鍵在於找到一種簡單的方法來識別個人身份。這裡的識別並不是指確定這個人是誰,例如不是說“我知道這是Gavin Wood”,而是識別“這是一個獨特的個人”。我不認為會有單一的解決方案,因此我們需要一個模組化且可擴展的框架。
首先可以將現有的、合理的解決方案(例如Idena)整合進去。其次,這個系統不應被某一個人的想法所限制,不應只依賴某個人對什麼機制可能有效的想像。這應該在某種程度上是開放的,允許所有人貢獻解決方案。
其次,我們需要強而有力的脈絡化的化名(pseudonymity)。實際上,我最初寫的是匿名性(anonymity),在某種程度上我確實指的是匿名性,即與你的現實世界身份的匿名性。但同時,我們也希望有化名(pseudonymity),這樣在任何特定的上下文中,你不僅能夠證明自己是獨一無二的個體,而且當你再次在同一上下文中使用該系統時,能夠證明你是之前那個獨特的個體。
最後,我們需要強大的SDK 和API,讓這個功能像Substrate 或Polkadot 智能合約中的任何其他功能一樣易於使用,或者在即將到來的JAM 生態系統中也是如此。它必須易於使用。比方說,具體一點,我不知道這裡有多少寫過Frame 程式碼的人,但在寫新的區塊鏈時,你常常會看到一行程式碼let account = ensure_signed (origin)。這行程式碼的作用是取得交易的來源,並確認這個來源是否來自某個帳戶,如果是,則告訴我這個帳戶是什麼。但帳戶並不等同於個人,一個人可能使用一個或多個帳戶,同樣,一個腳本也可能使用一個或多個帳戶。帳戶本身無法提供任何關於個體身份的信息,至少單獨無法做到。所以,如果我們想確保某筆交易來自一個真實的人,而不是一百萬個帳戶中的某一個,我們就需要能夠將這一行代碼替換為另一行代碼let alias = ensure_person (origin, &b“My context”)。
有兩點好處值得注意。
第一,我們不僅在問這是否是一個帳戶在簽署交易,而是問是否是一個人簽署了交易。這在我們能夠實現的功能上帶來了巨大的差異。
第二,重要的是,不同的操作有不同的上下文,並且我們在這些上下文中實現了匿名性和化名保護。當上下文變化時,化名也會變化,不同上下文中的化名之間無法關聯,也無法將化名與背後的人關聯。這些完全是匿名的化名系統,這在區塊鏈開發,特別是開發現實世界中有用的系統時,成為了一個非常重要的工具。
那麼,我們在實際辨識個人身分的機制上可能會施加哪些限制呢?首先,這個機制必須是廣泛可訪問的。如果它只允許一部分人群參與,那麼它將不會非常有用。它不應要求資產,也不應要求昂貴的費用,至少不應該是過高的費用。
不可避免地,不同機制之間會有權衡。我不認為會有一個萬能的解決方案。但有些權衡是可以接受的,有些則不能。韌性、去中心化和主權不應該被妥協對待,但有些機制可能需要較少的努力但更多的承諾,而其他機制可能需要更多的努力但較少的承諾。我們應該有一個合理的預期,即透過系統驗證的個人(即連結到某個人的帳戶,或說化名)背後確實是一個獨特的現實世界中的個體。
不同的機制在去中心化的Web3 系統中以韌性和非權威基礎的方式來衡量個體身份時,可能會存在重疊。這意味著實際上我們不可能做到完美無缺,但也不應該有數量級上的誤差,差異應該大幅小於一個數量級。此外,系統必須具備極強的抵抗身份濫用的能力,以防止少數人或組織試圖獲得大量的個體身份。
至關重要的是,系統必須有保障機制來防範這種情況。可能有些機制能夠提供相對較低置信度的個體身份評分,這是一個更高的目標。有些機制可能實現這一點,有些可能無法實現,有些可能是二元的,要么我們相信這個帳戶是一個獨特的個體,要么我們不相信。也有些機制可能會表示我們有50% 的把握,但也可能這個個體有兩個帳戶,而我們對這兩個帳戶的把握都是50%。
當然,這一切都必須是無需許可的,而且必須不難實現。我本來不應該需要特別強調,但係統中不應有常見的懺悔機製或常見的金鑰管理機構。
這樣做有什麼好處?
那為什麼要這樣做呢?有什麼好處?
我們已經討論了一些社會如何使用或依賴個體身份的方式。但這些如何在鏈上實現呢?我們可以開始想像一個不需要支付交易費用的Polkadot 系統,也就是合理使用是免費的。想像一個「廣場鏈」(Plaza),如果你不熟悉的話,它基本上是一個增強版的資產中心(Asset Hub),具備智慧合約功能並能夠利用質押系統。
如果我們設想這樣的廣場鏈(Plaza),可以想像一個不需要支付gas 費用的情境。只要你在合理的使用範圍內,gas 是免費的。當然,如果你編寫腳本或進行大量交易,那麼你就需要支付費用,因為這已經超出了普通個人的使用權利範圍。試想一下,這些系統開始免費對外開放,我們可以透過空投等方式,有針對性地、有效率地啟動社群。同時,我們也可以設想更為先進的Polkadot 治理方式。
現在,我對「一人一票」的概念並不是特別信服。在某些情況下它是必要的,以確保合法性,但通常它並不會帶來特別好的結果。不過,我們可以考慮一些其他的投票方式,像是二次方投票,或是區域投票。在某些代表性的元素中,一人一票可能會非常有啟發性。
我們也可以想像一個類似陪審團的Oracle 系統,平行鍊和智慧合約可以使用本地的次級Oracle 系統,也許是用於價格預言,也許是用來處理使用者之間的爭議。但他們也可以說,如果需要,我們會利用一種「大陪審團」或「最高法院」的系統,從已知的隨機個體中選出成員來做出決策,幫助解決爭端,並給予一些小額報酬。由於這些成員是從一個大的、公正的群體中隨機選出的,我們可以期望這種方式能夠提供一個有韌性、可靠的爭端解決方法。
你可以想像噪音限制系統,特別是在社群媒體整合中的去中心化社群媒體集成,可以幫助管理垃圾訊息和不良行為。在DeFi 中,我們可以設想類似信用評分的聲譽限制系統,但可能更注重於你是否曾被發現未按時還款,這樣系統可以提供類似於免費增值模型的服務。
好吧,這就是這次演講的第一部分,希望它對你有幫助。