V神最新論文:隱私池協議如何保護用戶隱私又滿足合規要求
原文:《 Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium 》
作者:Vitalik Buterin, Jacob Illum, Matthias Nadler, Fabian Schar and Ameen Soleimani
編譯:Odaily星球日報夫如何
今日,V神等人聯合撰寫了一篇有關隱私協議的研究論文,題目為“Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium”(區塊鏈隱私和監管合規:走向實際平衡)。
論文闡述了一種新的基於智能合約的隱私增強協議——隱私池,並討論其優缺點,展示其如何平衡誠實用戶和不誠實用戶。該協議旨在使用零知識證明來驗證用戶資金的合法性,而不泄露其完整的交易歷史記錄,在過濾掉與犯罪活動相關資金的同時權衡了隱私和監管要求。
Odaily星球日報現將論文精華編譯如下。
一、引言
公共區塊鏈設計上是透明的。基本思想是任何人都可以選擇驗證交易,而不必依賴於中心化的第三方;通過降低依賴性,為各種應用提供了一個中立的基礎,包括但不限於金融和自我主權身份。
然而,從隱私角度來看,公共數據集擁有包含每個區塊鏈地址的每筆交易。每當有人將資產轉移到另一個地址,或與智能合約交互時,該交易將永遠在區塊鏈上可見。 這顯然不符合隱私要求。
例如: Alice 在餐館用區塊鏈錢包支付晚餐。收款方現在知道了 Alice 的地址,並且可以分析該地址的所有過去和未來活動。同樣,Alice 現在知道了餐廳的錢包地址,並可以使用這些信息來獲取其他客人的錢包地址或查看餐廳的收入。或者第三方(如社交媒體)知道餐廳和 Alice 錢包地址,就可以輕松推導出 Alice 的實際居住地址,並研究她的過去和未來的交易。
隱私增強協議的興起是為了解決上述問題。它允許用戶將資金存入協議,使用一個地址,並在以後的某個時間點從協議中提取資金,使用另一個地址。所有存款和提款仍然可在區塊鏈上看到,但特定轉入與轉出的對應關系不再公开。
最著名的隱私增強協議之一是 Tornado Cash。它成功解決了上述問題,允許用戶保留一些隱私。然而,除了合法用戶試圖保護他們的數據之外,Tornado Cash 還被各種不良行為者使用。通過存款數據表明,黑客組織通過該協議轉移資金。有證據表明,朝鮮黑客組織也使用了這個隱私增強協議,最終導致該協議的智能合約地址被列入美國外國資產控制辦公室(OFAC)維護的特別指定國民和被封鎖人員名單(常稱為 SDN 名單)。
Tornado Cash 的關鍵問題在於合法用戶和犯罪用戶的分界模糊。 因此,Tornado Cash 提供了一個合規功能,允許用戶創建一個證據,證明給定提款來自哪個存款。雖然這個機制確實允許人們證明自己的清白,但代價是必須信任一個集中的中介,並且會產生信息不對稱。最終,該機制幾乎沒有用戶使用。
本文討論了這種方法的擴展,使用戶能夠公开證明關於他們的提款可能來自哪些存款的信息,但又不失隱私。 隱私池提出一個通用概念:允許成員資格證明(“我證明我的提款來自這些存款中的一個”)或排除證明(“我證明我的提款不來自這些存款中的任何一個”)。 本文討論了這個提案,並解釋了如何使用它來實現誠實和不誠實用戶之間的均衡。
請注意,隱私池通過擴展用戶的行動集合提供了額外的選擇。如果需要,他們仍然可以向特定的交易對方提供更詳細的證明。然而,在某些情況下,成員資格或排除證明可能已經足夠。此外,公开發布這些證明的選擇與雙邊披露相比具有許多優勢。
二、技術背景
在本節中,我們提供一個簡短的技術概述,並討論 Privacy Pools(隱私池)等協議的技術構建和一般原則。
1、 ZK-SNARKs 之前的區塊鏈隱私
歷史上,區塊鏈的支持者認為,盡管所有交易都是透明的,但區塊鏈可以保護隱私,因為它們提供了匿名性。
隨着現代聚類和分析工具的出現,這種隱私保護已經變得不夠。為了改善公共區塊鏈的隱私,人們引入了更強大的技術,如代幣 Join 和 Monero 。然而, 這些技術仍然存在數據泄漏的風險。
隨後出現了通用的零知識證明技術,如 Zcash 和 Tornado Cash,可以使每筆交易的匿名集等於所有先前交易的整個集合。這種技術通常被稱為 ZK-SNARKs。
2、 ZK-SNARKs
ZK-SNARKs 是一種技術,允許證明者證明某個關於公共數據和私有數據的數學聲明, 同時滿足兩個關鍵屬性:零知識和簡潔性。
● 零知識: 除了證明所述的私有數據符合聲明之外,不會泄露有關私有數據的任何信息。
● 簡潔性: 證明很短,並且可以快速驗證,即使所證明的聲明需要進行耗時的計算。
ZK-SNARKs 受到區塊鏈社區的廣泛關注,因為它們在可擴展性方面具有重要意義,例如 ZK-rollups。對於隱私方面的應用,簡潔性並不是特別重要,但零知識性是必不可少的。
ZK-SNARKs 證明的"聲明"可以看作是一個被稱為"電路"的程序類型,它通過公共輸入和私有輸入計算函數 f(x, w)的結果,然後證明對於給定的公共輸入 x,存在一個私有輸入 w,使得 f(x, w)的結果為 True。
3、ZK-SNARKs 在 Zcash 和 Tornado Cash 等系統中的應用
不同版本的 Zcash 以及受其啓發的系統(如 Tornado Cash)之間存在一些微小的差異。然而,它們所依賴的基本邏輯非常相似。本節描述了一個簡單版本,大致對應於這些協議的工作方式。
代幣由其所有者持有的祕密 s 組成。可以從 s 中派生出兩個值:
● 公共的代幣 ID L = hash(s + 1)
● 零化器(nullifier) U = hash(s + 2)
其中,哈希(hash)指的是密碼哈希函數,如 SHA 256 。給定 s,可以計算出代幣 ID 和零化器。然而,給定一組零化器和公共代幣 ID,哈希函數的僞隨機行為確保你無法確定哪個零化器與哪個代幣 ID 相關聯,除非你知道生成兩者的祕密 s。
區塊鏈跟蹤已經"創建"的所有代幣 ID,以及已經"花費"的所有零化器。這兩個集合都在不斷增長(除非協議希望強制規定代幣必須在何時花費)。
代幣 ID 的集合存儲在稱為 Merkle 樹的數據結構中:如果樹包含 N 個項目,則每個相鄰的項目進行哈希(導致⌈ N/2 ⌉個哈希),每個相鄰的這些哈希再進行哈希(導致⌈ N/4 ⌉個哈希),依次類推,直到整個數據被提交到單個"根哈希"中。
給定樹中的特定值和根哈希,可以提供一個 Merkle 分支:在從該值到根的路徑上的每個步驟中一起進行哈希的"姐妹值"。這個 Merkle 分支非常有用,因為它是一個小的(log 2(N)個哈希)數據片段,可用於證明任何特定的值實際上在樹中。下圖展示了一個高度為 4 的 Merkle 樹的示例。
當用戶將幣發送給其他人時,他們提供以下內容:
● 想要花費的零化器 U
● 想要創建的新代幣的代幣 ID L’(收件人被要求提供此項)
● 一個 ZK-SNARK。
ZK-SNARK 包含以下私有輸入:
● 用戶的祕密 s
● 代幣 ID 樹中的 Merkle 分支,證明代幣 ID 為 L = hash(s + 1)的代幣實際上在過去的某個時刻被創建
它還包含以下公共輸入:
● U,正在花費的代幣的零化器
● R,Merkle 證據正在針對的根哈希
ZK-SNARK 證明了兩個屬性:
● U = hash(s + 2)
● Merkle 分支是有效的
在 ZK-SNARK 之外,協議還檢查以下內容:
● R 是代幣 ID 樹的當前或歷史根哈希
● U 不在已經花費的零化器集合中
如果交易是有效的,它將 U 添加到已花費的零化器集合中,並將 L’添加到代幣 ID 列表中。顯示 U 防止單個代幣被重復花費。然而,不會透露任何其他信息。 外部世界只能看到何時發送交易;他們無法獲得關於誰發送或接收這些交易的模式,無法區分代幣統一來源。
上述模式有兩個例外:存款和取款。在存款中,可以創建代幣 ID,而無需使某個先前的代幣無效。從隱私保護的角度來看,存款並不是匿名的,因為給定的 L 與允許添加 L 的外部事件之間的關聯(在 Tornado Cash 中,是將 ETH 存入系統;在 Zcash 中,是新挖掘的 ZEC)是公开的。
換句話說, 存款與其過去的交易歷史相關聯。 在取款中,將消耗一個零化器而不添加新的代幣 ID。這可能會斷开取款與相應存款的連接,並間接斷开與過去交易歷史的連接。然而,取款可以與取款事件之後發生的任何未來交易相關聯。
Tornado Cash 的第一個版本沒有內部轉账的概念,它只允許存款和取款。後來的版本,仍處於實驗階段,也允許內部轉账和各種面額的幣,包括對"分割"和"合並"操作的支持。我們將在後面的章節中討論如何將基本的隱私保護幣轉账系統和隱私池擴展到任意面額的情境中。
4、隱私池中的 ZK-SNARKs
隱私池的核心思想是:用戶不僅僅通過零知識證明來證明取款與之前的某個存款相關聯,還證明其屬於一個更嚴格的關聯集合。 關聯集合可以是之前所做的全部存款的子集,也可以是只包含用戶自己存款的集合,或者介於兩者之間的任何集合。用戶通過提供關聯集合的 Merkle 根作為公共輸入來指定該集合。
如下圖所示,為了簡單起見,我們不直接證明關聯集合確實是之前所做的存款的子集;相反,我們只要求用戶使用相同的幣 ID 作為葉子節點,通過零知識證明兩個 Merkle 分支:
● 進入總幣 ID 集合的根 R 的 Merkle 分支
● 進入提供的關聯集合根 RA 的 Merkle 分支
這樣做的意圖是將完整的關聯集合放置在某個地方(可以是鏈上)。核心概念是:不要求用戶准確地指定他們的取款來自哪個存款,或者在另一極端,除了證明沒有雙重花費之外,不提供任何其他信息,我們允許用戶提供一組可能是資金來源的選項,而這個集合可以根據他們的意愿來選擇多寬或多窄。
我們鼓勵形成一個生態系統,使用戶更容易指定與其偏好相一致的關聯集合。本文的其余部分將僅描述基於此簡單核心機制的基礎設施以及其帶來的後果。
三、實際考慮與用例
從應用方面分析隱私增強協議如何在實踐中使用。
1、 關聯集合的用例
為了在執法環境中說明該方案的價值,舉個例子:
假設我們有五個用戶:Alice、Bob、Carl、David、Eve。前四個用戶是誠實守法但注重隱私的用戶,而 Eve 是一個小偷。因為公衆通過標記為“Eve”的地址的硬幣是被盜的信息,知曉 Eve 是小偷。在實踐中,這種情況經常發生:在公共區塊鏈上,因為 DeFi 協議的漏洞被利用而產生的資金被追蹤標記,從而識別流入 Tornado Cash 的非法資金。
當這五個用戶每個人提款時,他們可以選擇指定哪個關聯集合。他們的關聯集合必須包括他們自己的存款,但他們可以自由選擇包括其他地址中的哪個。前四個用戶的動機是一方面,他們想最大程度地保護他們的隱私。這促使他們傾向於使他們的關聯集合更大。另一方面,他們希望減少他們的幣被商家或交易所視為可疑的機會。有一個簡單的方法來做到這一點:他們不包括 Eve 在他們的關聯集合中。因此,對於他們四個人來說,選擇是明確的:使他們的關聯集合為{Alice、Bob、Carl、David}。
當然,Eve 也想最大化她的關聯集合。但她不能排除自己的存款,所以她被迫使她的關聯集合等於所有五個存款的集合。參與者的關聯集合選擇如下圖所示。
盡管 Eve 本人沒有提供任何信息,但通過簡單的排除過程,我們可以得出明確的推論:第五步提款只能來自 Eve。
2、關聯集合的構建
前一節說明了在類似於隱私池的協議中使用關聯集合的一種可能方式,以及誠實參與者如何與不良參與者進行分離。請注意,系統不依賴於 Alice、Bob、Carl 和 David 的利他主義;他們有明確的激勵證明他們的分離。 現在讓我們更詳細地看一下關聯集合的構建。通常情況下,有兩種主要策略來生成關聯集合。它們如下所述,並在下圖中進行了可視化。
● 包含(或成員資格): 確定一組具體的存款,我們有確切證據認為它們是低風險的,並構建一個只包含這些存款的關聯集合。
● 排除: 確定一組具體的存款,我們有確切證據認為它們是高風險的,並構建一個包含除這些存款以外的所有存款的關聯集合。
在實踐中,用戶不會手動選擇要包括在其關聯集合中的存款。相反, 用戶將訂閱我們稱為關聯集合提供者(ASPs)的中間人,這些中間人生成具有特定屬性的關聯集合。 在某些情況下,ASPs 可以完全在鏈上構建,不需要人工(或 AI)幹預。在其他情況下,ASPs 將獨立生成關聯集合,並將關聯集合在鏈上或其他位置發布。
我們強烈建議至少將關聯集合的 Merkle 根發布在鏈上;這消除了惡意 ASP 對用戶進行某些類型的攻擊的能力(例如,給不同的用戶提供不同的關聯集合,試圖對其進行去匿名化)。整個集合應該通過 API 或理想情況下通過低成本的分散存儲系統(如 IPFS )進行提供。
下載整個關聯集合的能力很重要,因為這使得用戶可以在本地生成關於成員資格的證明,而不需要向 ASP 透露任何額外信息,甚至不需要透露與其提款相對應的存款。
以下是 ASPs 在實踐中可能的構建方式:
● 延遲添加,排除不良參與者: 任何存款在固定時間後(例如 7 天)會自動添加到關聯集合中,但如果系統檢測到某個存款與已知的不良行為(如大規模盜竊或政府公布的制裁名單上的地址)有關聯,則永遠不會添加該存款。在實踐中,這可以通過社區策定的集合或已經執行識別和追蹤與不良行為相關的存款工作的現有交易篩選服務提供商來實現。
● 單人每月收費: 為了加入關聯集合,存款的價值必須低於某個固定的最大值,並且存款人必須用零知識證明他們持有某些身份證明令牌(例如由政府支持的國家身份證系統或輕量級機制,如社交媒體账戶驗證)。使用一個附加參數混合在一起,表示當前月份的廢棄符機制,以確保每個身份每個月僅能將存款提交到關聯集合中一次。該設計試圖實施許多常見的反洗錢規則的精神,即低於某個閾值的小額支付允許更高級別的隱私。請注意,這可以完全作為智能合約實現,不需要手動監督來維護持續的運行。
● 信任的社區成員每月收費: 與單人每月收費類似,但限制更嚴格:用戶必須證明自己是一個高度信任的社區的成員。高度信任的社區成員彼此同意互相提供隱私。
● 基於人工智能的實時評分: AI ASP 系統可以實時為每個存款提供風險評分,並且系統會輸出一個包含風險評分低於某個閾值的存款的關聯集合。潛在地,ASP 可以輸出與多個風險評分閾值相對應的多個集合。
四、進一步的技術說明
在本節中,我們將分析該提案如何支持任意面額,並討論重新證明、雙邊直接證明和順序證明等特殊情況。
1、支持任意面額
上面簡化的隱私保護幣系統僅支持相同面額的幣轉账。Zcash 通過使用 UTXO 模型來支持任意面額。每個交易可以有多個輸入(需要發布每個輸入的零化器)和多個輸出(需要發布每個輸出的代幣 ID)。創建的每個代幣 ID 必須附帶一個加密的面額值。除了證明零化器的有效性外,每個交易還必須附帶額外的證明,證明被創建的幣的面額之和不超過被花費的幣的面額之和。下圖說明了這個額外的證明。
這個設計可以通過將存款視為(未加密的)輸入和取款視為(未加密的)輸出來進行擴展以支持存款和取款。另外,為了簡化分析,可以限制設計。例如,可以僅允許部分取款,使交易具有一個加密輸入和兩個輸出:一個表示取款的未加密輸出,以及表示剩余資金的加密的“找零”輸出,可用於將來的取款。
一個自然的問題是如何擴展這個設計以支持隱私池。將其原封不動地插入隱私池並不理想,因為交易圖與我們直觀上期望的不一致:如果一個用戶存入 10 個代幣,然後在四次連續的取款中花費 1 + 2 + 3 + 4 個代幣,我們希望將這四次取款都視為原始的 10 個代幣存款的來源。但實際上得到的結果如下圖所示:第一次取款的來源是 10 個代幣的存款,然後第二次取款的來源是第一次取款創建的 9 個代幣的找零輸出,依此類推。這在實踐中會導致問題,因為它要求 ASP 驗證中間存款並將其添加到其關聯集合中。
為了在這個示例中的所有四次取款中都能夠將原始的 10 個幣存款作為它們的來源,我們需要解決兩個問題:
● 確保每次部分取款不會公开地與其他取款相關聯
● 允許每次部分取款將存款作為其關聯集合的成員
如果我們只支持部分取款,而不是更復雜的多輸入多輸出交易,並確保每次取款都具有單一定義的對應的"原始存款",則有多種直接實現這一點的方法。一種自然且可擴展的方法是通過交易傳播一些信息的承諾。例如,我們可以要求交易包含一個承諾 hash(coinID+hash®),其中加入一些隨機值 r 以保證盲化,並要求 ZK-SNARK 證明交易中的承諾與其父交易相同。如果父交易本身是一次取款,則承諾與原始存款的幣 ID 相同,如果父交易是一次存款,則承諾與初始存款的幣 ID 相同。因此,鏈中的每個交易都必須包含對原始存款幣 ID 的承諾,並需要證明該值在交易提供的關聯集合中。
為了提高抵抗余額合計攻擊的隱私性,我們還可以支持幣合並。例如,如果我還剩下一些幣,我可以在下一次存款時將它們與之合並。為了適應這種情況,我們可以要求交易對一組幣 ID 進行承諾,並要求具有多個輸入的交易對其父交易的並集進行承諾。一次取款將包含證明其所有承諾的幣 ID 都在其關聯集合中。
2、特殊情況
● 重新證明: 用戶需要祕密的存款信息來提取類似隱私池協議中的存款。同樣的祕密信息也用於構建關聯集合成員證明。保留祕密信息可以讓用戶生成新的證明,以適應不同集合或更新後的關聯集合。這給予用戶更大的靈活性,但也可能帶來額外的風險。
● 雙邊直接證明: 在某些情況下,用戶可能需要向另一方披露取款的確切來源。用戶可以創建一個只包含自己存款的關聯集合,並生成針對該集合的證明。這些證明通常是例外情況,只在雙方共享時對部分隱私起到貢獻。然而,共享證明需要建立強烈的信任假設。
● 順序證明: 在一個使用類似隱私池系統的快速交易經濟中,需要對協議進行修改以適應這種環境。除了存款和取款交易類型,協議還需要支持內部發送操作,以提高效率。此外,通過傳遞 Merkle 分支和密鑰,用戶可以傳播與交易歷史相關的信息,以便接收方驗證資金的來源。這樣可以確保每個用戶獲得所需的最少信息,以對所接收的資金具有信心。
在實踐中,一枚代幣可能有多個“來源”。例如,Bob 是一家咖啡攤主,他從 Alice 那裏收到了 5 枚代幣,從 Ashley 那裏收到了 4 枚代幣,從 Anne 那裏收到了 7 枚代幣,而在一天結束時他需要向 Carl 支付 15 枚代幣來支付晚餐。相反,David 可能從 Carl 那裏收到了 15 枚代幣,又從 Chris 那裏收到了 25 枚代幣,並希望向 Emma(一家交易所)存入 30 枚代幣。在這些更復雜的情況下,我們遵循同樣的原則:足夠早已被添加到關聯集合中的歷史可以被忽略,而較新的歷史需要繼續傳遞。
五、更多細節
類似隱私池的系統可以讓用戶在保持證明與已知非法活動的分離能力的同時,在其金融交易數據隱私方面獲得更多保護。我們預計,誠實用戶將通過兩個因素的結合來激勵參與這種方案:
● 對隱私的渴望
● 避免引起懷疑的愿望
1、社會共識和關聯集合
如果在判斷資金好壞方面存在完全共識,該系統將產生一個簡單的分離均衡。所有擁有“好”的資產的用戶都有強烈的激勵和能力證明他們屬於一個“只有好的”關聯集合。另一方面,不良參與者將無法提供這種證明。他們仍然可以將“壞”的資金存入池中,但這不會為他們帶來任何好處。每個人都可以輕松地確定資金是從一個增強隱私的協議中提取的,並看到該提款引用了一個包含來自可疑來源的存款的關聯集合。更重要的是,“壞”的資金不會玷污“好”的資金。當從合法存款中提取資金時,其所有者可以簡單地在他們的關聯集合中排除所有已知的“壞”存款。
在存在全局共識的情況下,並且關於資金被認為是“好的”還是“壞的”取決於社會觀點或司法管轄權的結論,關聯集合可能會有很大的差異。假設有兩個具有不同規則集的司法管轄權。A 和 B 司法管轄權下的主體都可以使用相同的隱私增強協議,並選擇發出滿足各自司法管轄要求的證明。兩者都可以輕松地在自己的關聯集合中實現隱私,並排除不符合各自司法管轄要求的提款。如果需要,可以對兩個關聯集合的交集發出成員資格證明,從而可靠地證明與其提款對應的存款符合兩個司法管轄權的要求。
因此,該提案非常靈活,並應被視為中立的基礎設施。一方面,它對抗審查。它允許任何人加入他們選擇的關聯集合,並在自己的社區內保持隱私。另一方面,外部人可以要求針對符合其監管要求的特定關聯集合的證明。因此,即使在隱私增強協議中存在一個不良參與者的社區,只要信息在關聯集合的構建中准確反映,他們將無法掩蓋存款的可疑來源。
2、關聯集合的屬性
關聯集合需要具備一定的屬性才能發揮作用。集合需要准確無誤,以便用戶可以相信他們安全地使用提款後的資金。此外,每個集合的屬性應該是穩定的,即隨時間變化的可能性較小。這減少了對新集合進行重新驗證提款的需求。最後,為了實現有意義的隱私保護,關聯集合應足夠大且包含各種類型的存款。然而,這些特性彼此之間存在衝突。一般來說,大而多樣的集合可能具有更好的隱私屬性,但可能不夠准確和穩定,而較小的集合更容易維護,但提供的隱私較少。
3、實踐考慮和競爭
接受加密資產的受監管實體必須確保他們所受的法律和法規允許接受此類資金。如今,許多這些實體依賴所謂的交易篩選工具:一種軟件或服務,分析區塊鏈以識別潛在的可疑活動、與非法地址的聯系或其他不符合要求的交易。篩選工具常通過風險評分來表達與每筆交易相關的風險。此評分基於傳輸資金的目的地和其交易歷史。在這方面,隱私增強協議可能會帶來挑战。它們消除了存款和提款之間的可見鏈接。因此,在隱私增強協議存在的情況下,風險評分需要考慮證明,並根據關聯集合分配評分。
交易篩選的工具和服務主要由專業公司提供,這些公司具有區塊鏈分析和相關法律領域的專業知識。理想情況下,這些公司(以及其他任何人)都可以訪問所有成員資格證明及其相應的關聯集合,以便為所有交易提供准確的風險評分。因此,我們建議所有證明都存儲在區塊鏈或其他公开可訪問的證明存儲庫中。唯一的例外是與特定交易對方共享的大小為一的成員資格證明。出於明顯的原因,這些證明不應公开提供。
將證明直接存儲在鏈上會增加額外的交易成本,但減少了協調工作,使競爭更加公平,並減輕了篩選工具提供商由於掌握非公开證明的知識而可能形成的准壟斷風險。
隱私池的一般設置非常靈活。通過創建特定的關聯集合,該協議可以根據各種用例進行定制。以下是這些特殊關聯集合的兩個示例:
● 商業銀行聯盟可以創建一個僅包含其客戶存款的關聯集合。 這可以確保任何提款創建的對該集合的證明已在其中一家參與的銀行進行了了解您的客戶(KYC)和反洗錢(AML)程序,但不會透露哪筆提款屬於哪個客戶。
● 在需要財務中介明確記錄資金來源的情況下,他們可以要求用戶提供針對僅包含用戶存款的關聯集合的證明。 然後,這個證明將與中介進行雙邊交換,使他們能夠跟蹤資金,就好像用戶從未使用隱私池一樣。雖然這要求用戶相信中介不會透露證明,但理想情況下,它使用戶能夠遵守法規,而無需將信息透露給公衆。
4、設計選擇和替代方案
基於關聯集合、zk 證明和自愿披露的設置非常靈活。雖然這對於確保該提案可以適應不同的司法管轄權非常有用,但在特定設計選擇方面應該非常謹慎。尤其是我們反對的兩個潛在調整。我們認為它們在信任要求方面存在問題,並可能產生准壟斷的市場結構。以下我們簡要描述和討論這些替代方法:
● 中心化訪問: 執法機構、加密風險評分提供商或類似的參與者可以獲得查看用戶交易之間鏈接的權限,同時對其他人保持隱私。
● 系統範圍的白名單: 隱私系統可以對可以向其池中存入硬幣的用戶類型進行限制,要求他們提供附加證明或要求存款在等待一段時間期間,在此期間,中心化的風險評分系統可以拒絕存款。
這兩種方法相似,因為它們給予特定實體特權。這將引發復雜的治理問題:誰可以訪問這些信息?誰有管理權限的權力?私營公司似乎不是一個好的選擇,因為任何特權可能會產生寡頭壟斷的市場結構,少數公司可以訪問能夠提供這些服務的數據,而其他人則無法競爭。
同樣,在授予公共機構權力時,將面臨許多治理和政治問題,特別是在國際環境中。即使到目前為止,某個機構是 100% 值得信賴的,不會濫用權力以追求政治議程,並且沒有依賴於可能迫使其濫用權力的其他實體,但這種情況是靜止狀態的表現。隨着時間的推移,組織、成員、國家和組織內的政治結構都會發生變化。可能會有外部壓力,這些特權的存在可能會產生額外的激勵,以破壞並獲得對組織治理系統的影響力。
此外,組織內部或外部的攻擊,或中心化實體代表的錯誤可能會產生深遠的後果。我們認為應該防止創建這種中心化的故障點。
話雖如此,我們承認不同的交易規模和情況可能需要不同的證明組合。例如,對於大額交易,許多用戶可能最終會在鏈上提供基本的排除證明,並向其交易對手提供有關資金來源的更詳細信息。
5、深入研究的方向
雖然本文研究提供了關於如何在受監管環境中使用基於 zkSNARK 的隱私增強協議的概述,但還有幾個方面值得進一步研究。
首先,大家需要意識到通過這些協議獲得的隱私取決於許多不同的因素。攻擊者可能根據關聯集合不夠大、根選擇不當和用戶錯誤,從而能夠將提款與特定存款關聯起來。
此外,其他用戶的選擇可能會對您自己的隱私產生不利影響。在極端情況下,池中的其他所有人都會發布一個大小為一的成員資格證明,揭示他們的存款和提款之間的直接鏈接。顯然,這將隱含地揭示剩下的唯一存款和提款交易之間的鏈接。在一個更微妙的例子中,來自各種成員資格證明的約束條件可以用來提取信息,並有可能以很高的概率將存款和提款關聯起來。一旦這些證明的信息與交易元數據相結合,協議的隱私屬性可能會受到損害。
最後,惡意 ASP 可以選擇以一種方式編譯所提議的關聯集合,使他們能夠最大限度地提取信息或通過添加已知相應提款的存款來增加感知的匿名性。所有這些問題需要進一步研究以評估所提供的隱私屬性。在類似的思路中,進一步研究分離均衡的屬性,建模在特定假設下好的和壞的參與者的行為方式以及前者的公开證明如何影響後者的隱私將是有趣的。
法學專家可以進一步研究具體的披露要求。本文提出的方案非常靈活,法律專家的見解可以幫助定制協議和圍繞其建立的生態系統,以確保在各個法律管轄區的合規性。
六、結論
在許多情況下,隱私和合規性被認為是相互衝突的。本文提出,如果隱私增強協議使用戶能夠證明其資金來源的某些屬性,那么情況不一定如此。例如,假設用戶可以證明他們的資金與已知的非法來源存款沒有關聯,或者證明這些資金是特定存款集合的一部分,同時不透露任何進一步的信息。
這樣的設置可以產生一個分離均衡,誠實用戶被強烈激勵證明他們屬於某個合規的關聯集合,並在該集合內保持隱私。相反,對於不誠實的用戶來說,他們無法提供這樣的證明。這使得誠實用戶能夠與他們不同意的第三方存款脫離關系,或者阻止他們在合規環境中使用資金。我們認為該提案非常靈活,並可以根據潛在的各種監管要求進行調整。
本文應被視為對未來潛在可能存在的金融隱私和監管共存的貢獻。我們希望促進討論,並將對話引向更積極、建設性的方向。實踐者、各學科的學者、決策者和監管機構之間的合作將需要擴展和修改這個提案;其最終目標是創建能夠在受監管環境中使用的隱私增強基礎設施。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。