Zero-Knowledge-Proofs

如何在不透露身份的情況下證明我是列表的一部分?

  • September 28, 2020

讓我們在身份驗證步驟假設一個秘密投票方案。

注意事項:

  1. 有一個公開的能夠投票的人的身份列表(例如,居住在某個城鎮的人)。
  2. 身份確認過程委託給中央伺服器(Bob)。
  3. 使用者遠端和分散地發送請求(例如,使用他們各自的設備)。
  4. 這個想法是永遠不會通過通信通道發送 ID。
  5. 沒有特定的 ID 方法,可以是執行任務、數字簽名等的任何方法……

需要滿足的條件

  1. 愛麗絲(選民)必須向鮑勃證明她在該名單上,但不透露她的身份。
  2. Bob(伺服器)必須確保不在列表中的任何人都無法訪問投票。

這個問題怎麼稱呼?解決方案的實際例子是什麼?

PD:投票執行過程在這個問題中並不重要,它只處理身份驗證。

解決您的問題的方案稱為集合成員資格的零知識證明

集合成員資格的 ZKP 使用累加器。Crypto++ 庫提供了累加器的實現

“這個問題怎麼稱呼,解決方案的實際例子是什麼?”

在:具有可驗証投票權的匿名投票

https://github.com/WebOfTrustInfo/rwot3-sf/blob/master/topics-and-advance-readings/anonymous-credentials-in-sovrin.md

編輯:看到此相關頁面:並想添加此文件,位於:如何在不洩露憑據的情況下實現身份驗證 https://eprint.iacr.org/2007/384.pdf

我想它是相關的,它確實聽起來像你所要求的(一個實際的例子)

引用自:https://crypto.stackexchange.com/questions/84213