Zero-Knowledge-Proofs
為私人價值設置會員證明並設置
該集合成員資格證明用於 P2P 網路中,當一方擁有私有值,另一方擁有集合時。他們必須通過網路廣播一些與該值和集合相關的數據,並且任何第三方都能夠確認該值屬於該集合。任何一方都不能從廣播數據中獲得集合或值。
使用散列函式是我的第一次嘗試,但散列的逆向工程使其不安全。此外,對 M 中的每個值進行散列並通過網路廣播它需要網路中所有各方的巨大頻寬,尤其是當 M 很大時。
如何制定符合上述要求的 zk 證明,即使在頻寬低的客戶端上也可以使用,同時又如前所述那樣安全?
編輯:我可能還沒有說清楚。在數學上,它看起來像這樣:有值 $ m $ , 集合 $ M $ 加上一個假設函式 $ f $ ,它的工作原理是這樣的: $ f(m) = Q $ 和 $ f(M) = Z $ 另外,還有另一個可能使用過的號碼 $ k $ . 當且僅當 $ m ∈ M $ , $ Q $ 和 $ Z $ 具有特定的數學關係,例如 $ Q ≡ Z (mod k) $ , 或者 $ Q = Z $ . 實現平等是最好的方案,因為不存在誤報或誤報的可能性,但這可能是不可能的。
要證明屬於集合的成員資格,據我所知,有兩種方法:
- 隱私保護認證方案,如組簽名、匿名證書等,可以對成員的身份保密,同時提供證明成員屬於組的方法。
- 布隆過濾器。它是一種機率資料結構,我們可以用它來回答給定元素是否在集合中的問題。可能會出現誤報匹配,但不會出現誤報——換句話說,查詢返回“可能在集合中”或“絕對不在集合中”。
根據您的問題,隱私保護方案始終使用的 zk-proof 肯定可以滿足您的要求,而無需廣播集合或散列 M 中的每個值。