Curvy:去中心化證明架構研究
我們探討了 Curvy 的去中心化證明架構,以防止中心化證明者造成的隱私洩漏,並提出了一種基於時隙的排序機制,用以解決稀疏默克爾樹在狀態更新時的併發衝突問題。
我們探索了一種用於 Curvy 的去中心化證明架構。Curvy 是一個基於隱身地址(stealth-address)UTXO 和零知識(ZK)聚合的隱私保護協議。我們識別出了一個源於對共享稀疏梅克爾樹(SMT)根進行並行狀態更新所產生的問題,並為證明者(provers)提出了一種鏈上基於時段(slot-based)的排序機制。我們分析了此方法引入的拒絕服務(DoS)風險,並提出了以抵押品支持的參與機制和請求限制(throttling)作為緩解措施。
背景
Curvy 協議允許使用隱身地址轉帳和 ZK 證明進行隱私轉帳。由於每筆收到的轉帳都終止於不同的隱身地址,Curvy 能夠使用 ZK 聚合器聚合資金,而不會向公眾洩露資金來源。然而,單個中心化證明者將能夠收集所有交易圖譜片段的信息,從而重建所有資金的來源。為了防止這種隱私洩露,我們正在研究去中心化證明者,使其能夠單獨創建自己的聚合證明,或提交來自多個用戶的批次證明。
來自隱身轉帳的資金以票據(notes)的 UTXO 方式表示。每張票據都存儲在 SMT 中,當前的 SMT 根保存在聚合器智能合約中。票據 ID(樹葉節點)通過事件發出。每個客戶端都可以監聽事件並重建樹。聚合是一個銷毀現有票據並創建新票據的過程,輸出票據的餘額等於所有輸入票據餘額的總和。每次聚合都會創建新票據並更新票據樹,並由證明更新正確性的 ZK 證明提供支持。
問題陳述
計算聚合證明需要提供舊的和新的 SMT 根,這是在正確插入所有新票據後計算得出的。由於鏈上根更新具有順序性,如果多個證明者嘗試基於同一個舊根修改 SMT,則只有第一個證明者能夠成功執行操作,而所有其他證明者的交易都將被撤回(revert)。即使證明者確實是第一個提交交易的人,非確定性的交易排序也可能導致該證明者的交易不是區塊中的第一筆,交易仍可能撤回。僅包含兩個(舊的和新的)根值和 Groth16 證明數據的撤回交易,其 calldata 成本約為 33,000 gas。儘管成本不是特別高,但即使使用更新後的根和相應證明,重複交易也不保證成功。
基於時段的證明者排序
為了緩解因多個證明者引用相同舊狀態而導致的衝突,我們建議引入鏈上請求隊列,證明者首先申請一個時間段(slot),在該時段內他們可以提交狀態更新。一個時間段是指與給定消息發送者相關聯的區塊區間 [fromBlockNumber, toBlockNumber]。證明者只有在當前區塊號在其時間段範圍內時,才能提交其證明。
通過這種方式,鏈上維持了自然的更新順序,證明者可以確定其證明時段。等待時間也是預先已知的,這意味著證明者可以節省不斷輪詢狀態和監聽事件的時間。與攜帶 ZK 證明和公共數據的撤回交易相比,「註冊」操作是低成本的操作。此解決方案防止了衝突,但允許對智能合約進行 DoS 攻擊,惡意用戶可以用相對較少的資金佔用大量時段。
跳過的時段不可重複使用。如果證明者錯過了給定的時段,則需要請求新時段。時段的時間框架需要妥善估算。時段開始時間至少需要延遲生成 Groth16 證明所需的時間,而結束時間需要提供適當的緩衝,並考慮網絡延遲。確切數值尚待確定。時段重疊是不允許的。
如果證明者出於某種原因提交了無效證明,則該時段在截止日期前仍然有效,允許證明者提交修正後的證明。
抵押品支持的證明者
DoS 攻擊可能性的根源在於時段請求的低成本。對所有請求增加額外成本可能是一個理論上的解決方案,但用戶體驗和累積的證明成本會損害去中心化證明的整體效益。我們考慮要求每個證明者在請求時間段之前提供一次性抵押品。抵押品不會損失,而是被鎖定,直到證明者決定停止證明並提取其抵押品。這樣,准入門檻具有較高的一次性成本,但消除了部分能夠跨越門檻的惡意證明者。此外,每位誠實的證明者將從其提交的證明中獲得所有聚合資金的手續費,從而對誠實行為產生額外激勵。
請求限制
抵押品充當加入證明服務的令牌,但一旦加入,證明者仍可能向請求隊列發送垃圾郵件。為了緩解這種情況,請求會受到限制,以便證明者在給定的時間框架內只能提交一定數量的請求(例如,每 10 分鐘一次)。為了能夠更頻繁地請求時段,所需的抵押品將需要更高。如果給定時間框架內的一個請求時段成本為 X,則 k 個時段將具有線性增加的成本 kX。限制將在智能合約層級實施,追蹤每個存入抵押品的證明者的最後一次請求提交時間。
數據可見性
在所述協議中,每個證明者都需要了解用於構建 ZK 證明的私有輸入。如果證明者向其他用戶提供證明服務,它將能夠看到某些披露的信息。一般而言,它將意識到交易圖譜的一個片段。如果不知道鏈上從存款到提款的所有交易,資金的來源和去向對於證明者來說仍將是不可追蹤的。
1 則貼文 - 1 位參與者
[閱讀完整主題](https://ethresear.ch/t/curvy-decentralized-proving/24352)