創建關聯集合是其中的要件。
原文:Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium
作者:Vitalik Buterin, Jacob Illum, Matthias Nadler, Fabian Schar, Ameen Soleimani
編譯:夫如何,Odaily 星球日報
封面:Photo by Markus Spiske on Unsplash
今日,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 可以選擇以一種方式編譯所提議的關聯集合,使他們能夠最大限度地提取資訊或通過添加已知相應提款的存款來增加感知的匿名性。 所有這些問題需要進一步研究以評估所提供的隱私屬性。 在類似的思路中,進一步研究分離均衡的屬性,建模在特定假設下好的和壞的參與者的行為方式以及前者的公開證明如何影響後者的隱私將是有趣的。
法學專家可以進一步研究具體的披露要求。 本文提出的方案非常靈活,法律專家的見解可以説明定製協議和圍繞其建立的生態系統,以確保在各個法律管轄區的合規性。
六、結論
在許多情況下,隱私和合規性被認為是相互衝突的。 本文提出,如果隱私增強協定使用戶能夠證明其資金來源的某些屬性,那麼情況不一定如此。 例如,假設使用者可以證明他們的資金與已知的非法來源存款沒有關聯,或者證明這些資金是特定存款集合的一部分,同時不透露任何進一步的資訊。
這樣的設置可以產生一個分離均衡,誠實使用者被強烈激勵證明他們屬於某個合規的關聯集合,並在該集合內保持隱私。 相反,對於不誠實的用戶來說,他們無法提供這樣的證明。 這使得誠實用戶能夠與他們不同意的第三方存款脫離關係,或者阻止他們在合規環境中使用資金。 我們認為該提案非常靈活,並可以根據潛在的各種監管要求進行調整。
本文應被視為對未來潛在可能存在的金融隱私和監管共存的貢獻。 我們希望促進討論,並將對話引向更積極、建設性的方向。 實踐者、各學科的學者、決策者和監管機構之間的合作將需要擴展和修改這個提案; 其最終目標是創建能夠在受監管環境中使用的隱私增強基礎設施。
免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 本文內容僅用於資訊分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。