零知識證明身份:看似美好的 d/acc 勝利,實則暗藏隱憂?
在加密貨幣與區塊鏈的世界裡,零知識證明(Zero-Knowledge Proof, ZKP)技術近年來可謂聲名鵲起。特別是在數位身份系統中,運用 ZKP 來保護使用者隱私,似乎已成為一種主流趨勢。各大機構紛紛投入資源,開發出各式各樣的「零知識證明護照」項目,目標是打造出對使用者極為友善的軟體包。這些軟體包承諾,使用者僅需證明自己持有有效的身份證明,而無需透露任何關於身份的細節,簡直是隱私保護主義者的福音。
零知識證明的崛起:隱私保護的新曙光?
試想一下,以往在網路上,為了證明「我不是機器人」,你可能需要通過惱人的 reCAPTCHA 驗證,或是乖乖交出你的手機號碼。但有了 ZKP,你就能優雅地向服務提供者證明,你確實是一個活生生的人類,而無需暴露你的任何個人資訊。這種「我知道,但我什麼都不告訴你」的魔法,正是 ZKP 最吸引人的地方。
表面光鮮下的隱藏陷阱:World ID 與數位護照的同質性
以 World ID(前身為 Worldcoin)為例,這個採用生物識別技術(掃描眼球)進行驗證,並通過 ZKP 保障隱私的項目,近期用戶數量已突破 1000 萬大關。這數字背後,代表著 ZKP 技術在數位身份領域的巨大潛力。不僅如此,就連一向對數位科技抱持謹慎態度的政府機構,也開始對 ZKP 產生濃厚興趣。中國臺灣地區的一個數位身份政府項目,就巧妙地運用了 ZKP 技術;而歐盟在數位身份領域的相關工作,也對 ZKP 愈發重視。表面上看,基於 ZKP 技術的數位身份被廣泛採用,似乎是去中心化加速主義(d/acc)的一大勝利。它能在不犧牲隱私的前提下,保護我們的社交媒體、投票系統及各類互聯網服務免受女巫攻擊(Sybil Attack)和機器人操縱。但…事情真的如此簡單嗎?
技術原理速覽:秘密值、哈希值與應用專屬ID
在深入探討潛在風險之前,讓我們先快速了解一下 ZKP 數位身份系統的基本運作原理。想像一下,你通過掃描眼球獲得了 World ID,或是用手機的 NFC 閱讀器掃描護照,獲得了基於 ZKP 護照的身份。就本文的論點而言,這兩種方式的核心屬性是極為相似的(僅存在少數邊緣差異,例如多重國籍的情況)。在你的手機上,會有一個至關重要的「秘密值」(secret value),我們稱之為 s。同時,在鏈上的全球註冊表中,會存放一個與你的秘密值相對應的公開哈希值(public hash),記作 H(s)。當你想要登錄某個應用程式時,你會利用你的秘密值 s,生成一個特定於該應用程式的用戶 ID,這個 ID 可以表示為 H(s, app_name)。接著,你會通過 ZKP 向應用程式驗證:這個應用專屬 ID,確實是由註冊表中某個公開哈希值所對應的秘密值 s 所產生。換句話說,每個公開哈希值,針對每個應用程式,都只能生成一個獨一無二的 ID。更重要的是,這個過程絕對不會洩露某一應用專屬 ID 與哪個公開哈希值相對應。簡單來說,就是讓應用程式知道「你是你」,但不知道「你是誰」。
當然,實際的設計可能會更複雜一些。例如,在 World ID 中,應用專屬 ID 其實是包含應用 ID 與會話 ID 的哈希值,因此同一應用程式內的不同操作也可以相互解除關聯。基於 ZKP 護照的設計也可以採用類似的方式構建,以提供更細緻的隱私控制。
零知識證明身份的優勢:最小權限原則的勝利
在探討這類身份驗證的缺點之前,我們必須先認清它所帶來的顯著優勢。在 ZKP 身份(ZKID)問世之前,為了向需要身份驗證的服務證明自己,你幾乎不得不透露自己完整的法定身份。這完全違背了計算機安全的「最小權限原則」(Principle of Least Privilege):一個進程只應獲取完成其任務所需的最小權限和資訊。舉例來說,當網站需要驗證你是否年滿 18 歲時,它們實際上只需要一個「是」或「否」的答案。然而,在傳統的身份驗證方式下,它們得到的卻是你完整的身份證件影本,上面詳細記載了你的姓名、出生日期、住址等敏感資訊。這就像是為了確認你是否能開車,卻要求你交出房屋所有權狀一樣,完全不合邏輯。
電話號碼與信用卡:脆弱的間接令牌
目前能實現的最佳改進方案,是使用電話號碼、信用卡號等間接令牌。在這種情況下,知曉你的電話/信用卡號與應用內活動關聯的主體,和知曉你的電話/信用卡號與法定身份關聯的主體(公司或銀行)是相互分離的。舉個例子,當你使用手機號碼註冊某個應用程式時,應用程式只知道這個號碼屬於某個使用者,但不知道這個使用者是誰;而電信公司則知道這個號碼屬於你,但不知道你用這個號碼做了什麼。然而,這種分離極為脆弱。電話號碼和其他各類資訊一樣,隨時可能被洩露。一旦你的電話號碼與你的真實身份被關聯起來,你的網路足跡將無所遁形。
更深層的危機:應用程式的實用主義與隱私保護的衝突
而藉助 ZKP 包裝技術,上述問題在很大程度上得以解決。但接下來要討論的是一個較少被提及的點:仍有一些問題不僅未得到解決,甚至可能因這類方案中「一人一身份」的嚴格限制而愈發嚴重。假設一個零知識證明身份(ZK-identity)平台完全按預期運行,嚴格復現上述所有邏輯,甚至已找到方法,能在不依賴中心化機構的前提下,為非技術用戶長期保護其私密資訊。但與此同時,我們可以做一個貼合現實的假設:應用程式不會主動配合隱私保護,它們會秉持「實用主義」原則,所採用的設計方案雖打著「最大化用戶便利性」的旗號,實則似乎總會偏向自身的政治與商業利益。這才是真正的危機所在!
“一人一身份”的陷阱:當匿名性不再,監控無處不在?
想像一下,在一個由零知識證明保護的「一人一身份」的世界裡,社交媒體應用程式不再允許你創建多個帳號。為了杜絕機器人帳號和惡意攻擊,每個用戶都被強制綁定一個唯一的應用專屬 ID。乍看之下,這似乎是一個理想的解決方案,能有效提升網路環境的品質。然而,魔鬼往往藏在細節裡。在這樣的場景中,社交媒體應用不會採用頻繁輪換會話密鑰等複雜設計,而是為每位用戶分配唯一的應用專屬 ID,且由於身份系統遵循「一人一身份」規則,用戶只能擁有一個帳戶(這與當下的「弱身份(weak ID)」形成對比,例如 Google 帳戶,普通人輕鬆就能註冊約 5 個)。
實名制社會的潛在風險:政府與企業的強制公開
在現實世界中,匿名性的實現通常需要多個帳戶:一個用於「常規身份」,其他則用於各類匿名身份(參見「finsta and rinsta」)。「finsta」指的是「fake Instagram」,也就是用來分享私密生活或進行不為人知活動的假帳號;而「rinsta」則是指「real Instagram」,也就是用來展示光鮮亮麗一面的真實帳號。如果我們被剝奪了使用多個帳號的自由,那麼我們將被迫將所有活動都綁定在單一公開身份上。如此一來,即便是經零知識證明包裝的「一人一身份」系統,也可能讓我們逐漸走向一個所有活動都必須依附於單一公開身份的世界。在風險日益加劇的時代(例如無人機監控等),剝奪人們通過匿名性保護自身的選擇權,將帶來嚴重的負面影響。即便你不公開自己的秘密值 s,沒人能看到你各帳戶之間的公開關聯,但如果有人強制你公開呢?政府可能會強制要求透露其秘密值,以便查看其所有活動。這並非空談:美國政府已開始要求簽證申請人公開自己的社交媒體帳戶。此外,雇主也能輕易將透露完整公開資料設為僱傭條件。甚至,個別應用在技術層面也可能要求用戶透露其在其他應用上的身份,才允許註冊使用(使用 app 登錄默認執行此操作)。
多方計算的微弱希望:技術手段的局限性
同樣,在這些情況下,零知識證明屬性的價值蕩然無存,但「一人一帳戶」這一新屬性的弊端卻依然存在。我們或許可以通過設計優化來降低脅迫風險:例如,採用多方計算機制生成每個應用專屬 ID,讓用戶與服務方共同參與其中。這樣一來,若沒有應用運營方的參與,用戶便無法證明自己在該應用中的專屬 ID。這會增加逼迫他人透露完整身份的難度,但無法徹底消除這種可能性,而且這類方案還存在其他弊端,比如要求應用開發者必須是實時活躍的實體,而非像被動的鏈上智能合約那樣(無需持續干預)。
邊緣案例的挑戰:身份認證的漏洞與隱私的無力
所有身份形式都存在邊緣案例,例如:一個變性人可能需要多次更改其法定姓名,這將導致其在不同時間點擁有多個身份;一個政治異議人士可能需要使用假身份來保護自己免受政府迫害;一個舉報人可能需要匿名揭露公司的違法行為。這些邊緣案例在試圖維持「一人一身份」屬性的系統中危害最大,且它們與隱私毫無關聯。因此,零知識證明對此無能為力。它能保護你的資訊不被洩露,但無法阻止你被強制公開,更無法解決身份認證系統本身存在的漏洞。
告別身份系統?“財富證明”的反擊與局限性
在純粹的密碼朋克(Cypherpunk)社群中,對於身份認證問題,存在著一種截然不同的聲音。他們認為,与其耗費精力構建複雜的身份系統,不如完全依賴「財富證明」(Proof of Wealth)來防範女巫攻擊。這種觀點的核心邏輯是:透過讓每個帳號產生一定的成本,就能有效地阻止有人輕易創建大量帳號,從而達到維護系統秩序的目的。簡單來說,就是「有錢就任性,沒錢就安分」。
財富證明的運作機制:Somethingawful 論壇的啟示
這種做法在網際網路上早有先例。例如,知名網路論壇 Somethingawful 就要求註冊帳戶支付 10 美元的一次性費用。如果帳號被封禁,這筆費用將不予退還。這種機制有效地過濾掉了大量的垃圾訊息和惡意使用者,維持了論壇的討論品質。然而,需要注意的是,這在實際操作中並非真正的加密經濟模式,因為創建新帳號的最大障礙並非重新支付 10 美元,而是獲取新的信用卡。畢竟,對於那些有心人士來說,10 美元的成本實在是太低了。
條件性支付的理論可行性:提高攻擊成本的理想
理論上,我們可以對財富證明進行更進一步的優化,使其更具彈性和效率。例如,可以讓支付具備條件性:註冊帳戶時,你只需質押一筆資金,僅在帳號被封禁這種極少數情況下才會損失這筆資金。這樣一來,就能大幅提高攻擊成本。試想一下,如果每個帳號都需要質押 1000 美元的加密貨幣,那麼發動大規模的女巫攻擊將變得極為困難。攻擊者不僅需要投入大量的資金,還需要承擔被沒收質押資金的風險。這種機制能夠有效地遏制濫用行為,維護系統的穩定性。
財富證明的死角:“類全民基本收入場景”與“類治理場景”
然而,財富證明並非萬能丹。這種方案在許多場景中效果顯著,但在某些類型的場景中卻完全行不通。我將重點討論兩類場景,暫且稱之為 「類全民基本收入場景(UBI-like)」和「類治理場景(governance-like)」。在這些場景中,單純地依賴財富證明可能會適得其反,甚至會加劇不公平現象。因此,我們需要更 nuanced 的解決方案,才能真正實現公平和效率。
類全民基本收入場景:加密貨幣普及的最後一哩路?
所謂「類全民基本收入場景」,指的是需要向極廣泛(理想情況下是全體)用戶群體發放一定數量資產或服務,且不考慮其支付能力的場景。這種場景的核心目標是:確保每個人都能獲得最低限度的資源,以維持基本的生活或參與社會活動。Worldcoin 正是系統性地踐行這一點:任何擁有 World ID 的人,都能定期獲得少量的 WLD 代幣。許多代幣空投也以更非正式的方式實現類似目標,試圖讓至少一部分代幣落到盡可能多的用戶手中。
小型全民基本收入的實用價值:解決鏈上交易的門檻
就我個人而言,我不認為這類代幣的價值能達到足以維持個人生計的水平。在一個由人工智能驅動、財富規模達到當前千倍的經濟體中,這類代幣或許能具備維持生計的價值;但即便如此,至少有自然資源財富為支撐的政府主導項目,仍會在經濟層面佔據更重要的地位。不過,我認為這類「小型全民基本收入(mini-UBIs )」能切實解決的問題是:讓人們獲得足夠數量的加密貨幣,以完成一些基礎的鏈上交易和線上購買。具體可能包括:支付少量的 gas 費用,以便在區塊鏈上進行交易;購買一些數位內容或服務,例如訂閱新聞網站或使用線上工具;參與一些基於區塊鏈的投票或治理活動。
全民基本服務的替代方案:應用內免費交易的權限
若加密貨幣在全球範圍內得到廣泛採用,這一問題便不復存在。但在加密貨幣尚未普及的當下,這可能是人們獲取鏈上非金融應用及相關線上商品服務的唯一途徑,否則他們可能完全無法接觸到這些資源。此外,還有另一種方式能實現類似效果,即「全民基本服務(universal basic services)」:為每個擁有身份的人提供在特定應用內發送有限數量免費交易的權限。這種方式可能更符合激勵機制,且資本效率更高,因為每個受益於這種採用的應用程序都可以這樣做,而無需為非用戶付費;不過,這也伴隨著一定的取捨,即普適性會降低(用戶只能保證獲得參與該計劃的應用的訪問權限)。但即便如此,這裡依然需要一套身份解決方案,以防止系統遭受垃圾信息攻擊,同時避免產生排他性,這種排他性源於要求用戶通過某種支付方式付費,而這類支付方式可能並非所有人都能使用。
全民基本保證金:降低參與門檻,擺脫資本依賴
最後一個值得強調的重要類別是「全民基本保證金(universal basic security deposit)」。身份的功能之一是提供一個可用於追責的標的,而無需用戶質押與激勵規模相當的資金。這也有助於實現一個目標:降低參與門檻對個人資本量的依賴(甚至完全無需任何資本)。想像一下,如果每個網路使用者都擁有一個預設的「信用額度」,一旦他們做出不當行為,就會被扣除相應的額度。這種機制能夠有效地約束使用者的行為,同時又不會讓那些沒有經濟能力的人被排除在外。這才是真正的普惠金融,讓每個人都有機會參與到數位經濟中來。
類治理場景:投票權重的公平性與資金協調的考量
試想一個投票系統(例如社交媒體平台上的點贊和轉發):若用戶 A 的資源是用戶 B 的 10 倍,那麼其投票權也會是 B 的 10 倍。但從經濟角度看,每單位投票權給 A 帶來的收益,是給 B 帶來的 10 倍(因為 A 的體量更大,任何決策對其經濟層面的影響都會更顯著)。因此,總體而言,A 的投票對自身的益處,是 B 的投票對自身益處的 100 倍。正因如此,我們會發現 A 會投入多得多的精力參與投票、研究如何投票才能最大化自身目標,甚至可能會戰略性地操縱算法。這也是代幣投票機制中「巨鯨」能產生過度影響的根本原因。在治理場景中,如何平衡不同參與者的權重,是一個永恆的難題。如果我們完全按照財富來分配投票權,那麼最終的結果很可能是富者恆富,窮者恆窮,整個系統會被少數巨頭所掌控。
巨鯨效應的根本原因:經濟收益與投票意願的不對等
更具普遍性且更深一層的原因在於:治理系統不應將「一人掌控 10 萬美元」與「1000 人共持 10 萬美元」賦予同等權重。後者代表著 1000 個獨立個體,因此會包含更豐富的有價值信息,而非小體量信息的高度重複。來自 1000 人的信號也往往更「溫和」,因為不同個體的意見往往會相互抵消。簡單來說,群眾的智慧往往比個人的判斷更可靠,也更不容易被極端思想所左右。因此,在設計治理系統時,我們需要充分考慮群體的參與度,而不是單純地看重個體的財富。
資金束的內部協調程度:治理系統的真正需求
這一點既適用於正式的投票系統,也適用於「非正式投票系統」,例如人們通過公開發聲參與文化演進的能力。在社交媒體上,一個擁有大量粉絲的網紅,其發聲的影響力自然比一個普通用戶要大得多。然而,這種影響力是否合理?是否能夠真正代表群眾的意願?這是一個值得深思的問題。更重要的是,我們需要關注這些資金束的內部協調程度。如果一個巨鯨的資金來源於多個小型投資者,那麼其投票權是否應該相應地降低?這是一個非常複雜的問題,需要我們進行深入的研究和探索。
告別“一人一票”:身份認證的真正意義
需要注意的是,若你認同我對上述兩類場景(類全民基本收入場景和類治理場景)的描述框架,那麼從技術層面而言,對「一人一票」這種明確規則的需求就不復存在了。在這兩種場景中,身份依然非常有用,但對其遵循「一人一身份」這類嚴格規則的要求,已不復存在。身份認證的真正意義,並不在於限制每個人的投票權,而在於確保每個參與者都是真實存在的,並且其行為能夠被追溯和問責。只有這樣,我們才能建立一個公平、透明、可信的治理系統。
多重身份的藝術:在匿名性與濫用之間尋找平衡
從上述論點中,我們可以看到有兩種壓力從相反的兩端限制了身份系統中獲取多個身份的期望難度:一方面,我們希望能夠自由地創造多個身份,以保護我們的隱私和安全;另一方面,我們又希望能夠限制濫用行為,防止少數人控制整個系統。這就像是在走鋼索,需要我們在匿名性與責任之間找到一個微妙的平衡點。
身份數量的軟性限制:匿名性的脆弱與安全緩衝
首先,不能對「能輕鬆獲取的身份數量」設置一個清晰可見的硬性限制。如果一個人只能擁有一個身份,就無從談起匿名性,且可能被脅迫洩露身份。事實上,即便是大於 1 的固定數量也存在風險:倘若所有人都知道每個人有 5 個身份,那麼你可能會被脅迫洩露全部 5 個。支持這一點的另一個理由是,匿名性本身很脆弱,因此需要足夠大的安全緩衝空間。借助現代 AI 工具,跨平台關聯用戶行為變得輕而易舉,通過用詞習慣、發帖時間、發帖間隔、討論話題等公開信息,僅需 33 bits 的信息量就能精準鎖定一個人。人們或許可以用 AI 工具進行防禦(例如,我曾匿名發布內容時,先用法語撰寫,再通過本地運行的大語言模型翻譯成英語),但即便如此,也不希望一次失誤就徹底終結自己的匿名性。因此,我們需要建立一個具有彈性的身份系統,允許使用者根據需要創造多個身份,並且能夠隨時切換和銷毀這些身份。這就像是擁有多個面具,可以根據不同的場合選擇不同的面具,以保護自己的真實身份。
避免與財務掛鉤:防止大型主體操控話語權
其次,身份不能完全與財務掛鉤(即獲取 N 個身份的成本為 N),因為這會讓大型主體輕易獲得過大的影響力(進而導致小型主體完全喪失話語權)。Twitter Blue 的新機制就體現了這一點:每月 8 美元的認證費用過低,根本無法有效限制濫用行為,如今用戶基本已對這種認證標識視而不見。此外,我們或許也不希望資源量為 N 倍的主體,能夠肆無忌憚地做出 N 倍的不當行為。如果一個擁有大量資金的機構,可以通過購買大量身份來控制整個系統,那麼這個系統就失去了公平性。因此,我們需要設計一種機制,限制大型主體獲取身份的能力,防止他們濫用權力。
獲取身份的成本模型:兼顧影響力與濫用限制
綜合上述論點,我們希望在滿足以下約束條件的前提下,盡可能容易地獲得多個身份:(1)在類治理應用中限制大型主體的權力;(2)在類全民基本收入應用中限制濫用行為。若直接借鑑前文中類治理應用的數學模型,我們會得到一個清晰的答案:如果擁有 N 個身份能帶來 N² 的影響力,那麼獲取 N 個身份的成本就應當是 N²。巧合的是,這一答案對於類全民基本收入應用同樣適用。換句話說,我們需要建立一個非線性的成本模型,讓獲取身份的成本隨著身份數量的增加而呈指數級增長。這樣才能有效地平衡匿名性與責任,防止濫用行為。
多元身份體系的未來:顯性多元與隱性多元
quadratic funding
所謂「多元身份體系」,指的是不存在單一主導發行機構的身份機制,無論該機構是個人、組織還是平台。這種體系可通過兩種方式實現:一是顯性多元身份,二是隱性多元身份。這兩種方式各有優缺點,但都旨在建立一個更具彈性和容錯性的身份認證系統。
顯性多元身份:匿名性與聲譽的共存
顯性多元身份自然具備匿名性:你可以有一個匿名身份(甚至多個),每個身份都可以通過自己的行動在社區中建立聲譽。一個理想的顯性多元身份系統甚至可能不需要「獨立身份(discrete identities)」的概念;相反,你或許會擁有一個由可驗證的過往行為構成的模糊集合,並能根據每次行為的需要,以精細化方式證明其中的不同部分。舉例來說,你可以通過零知識證明,證明你曾經參與過某個項目的貢獻,而無需透露你的真實身份。這種模式能夠有效地保護使用者的隱私,同時又允許他們在社區中建立信任和聲譽。零知識證明將使匿名性更容易實現:你可以利用主身份來啟動一個匿名身份,通過私下提供首個信號讓新匿名身份獲得認可(例如,通過零知識證明自己擁有一定數量的代幣,從而能在 anon.world 發布內容;或者,通過零知識證明自己的推特粉絲具備某種特徵)。可能還有更有效的使用零知識證明的方式。關鍵在於,我們要打破單一身份的束縛,讓使用者能夠自由地創造和管理自己的多個身份,並且能夠根據不同的需求選擇不同的身份。
隱性多元身份:成本曲線與容錯性
隱性多元身份的「成本曲線」比二次曲線更陡峭,但仍具備大部分所需特性。大多數人擁有本文列舉的部分身份形式,而非全部。你可以通過一定努力再獲取一種身份形式,但擁有的身份形式越多,獲取下一種的成本效益比就越低。因此,它為治理攻擊和其他濫用行為提供了必要的遏制作用,同時確保脅迫者無法要求(且無法合理預期)你透露某一套固定的身份。舉例來說,你可以通過提供你的護照、駕照、信用卡账單等信息,來證明你的身份,但你並不需要透露所有的信息。你可以根據不同的需求,選擇不同的信息組合,以保護你的隱私。這種模式能夠有效地防止身份盜竊和濫用,同時又不會過度限制使用者的自由。
“普適性”的隱憂:避免走向“一人一身份”的陷阱
任何形式的多元身份體系(無論隱性還是顯性)天然具有更強的容錯性:手部或眼部殘疾的人仍可能持有護照,無國籍者也仍可能通過某些非政府渠道證明自己的身份。需要注意的是,若某一種身份形式的市場佔有率接近 100%,且成為唯一的登錄選項,那麼上述特性就會失效。在我看來,這是那些過於追求「普適性」的身份系統可能會面臨的最大風險:一旦其市場佔有率接近 100%,就會將世界從多元身份體系推向「一人一身份」模式,而正如本文所述,這種模式存在諸多弊端。因此,我們需要警惕那些試圖建立統一身份認證系統的努力,防止他們壟斷整個身份認證市場。只有保持多元化的競爭格局,才能確保使用者的自由和安全。
理想的結局:與基於社交圖譜的身份體系融合
在我看來,當前「一人一身份」項目的理想結局是與基於社交圖譜的身份體系融合。基於社交圖譜的身份項目面臨的最大問題是難以擴展到海量用戶。而「一人一身份」體系可用於為社交圖譜提供初始支撐,創造數百萬個「種子用戶」,屆時用戶數量將足夠多,足以從這一基礎安全地發展出全球分布式社交圖譜。這種融合能夠結合兩種身份體系的優點,既能夠保護使用者的隱私,又能夠建立信任和聲譽。這才是身份認證的未來發展方向,一個開放、多元、安全的網路世界。