EspressoSystems / cap

Configurable Asset Privacy
GNU General Public License v3.0
33 stars 8 forks source link

PoC non-membership implementation #76

Open mrain opened 2 years ago

mrain commented 2 years ago

Proof of concept non-membership proof implementation

chancharles92 commented 2 years ago

cc @alxiong @mrain and feel free to edit.

alxiong commented 2 years ago

integrate the non-membership proof circuit into CAP circuit

my understanding from @ben-a-fisch is that, we should separate them. In a new CAP transaction (specifically a transfer), you will have to provide the original transfer validity proof, then additionally, and optionally a non-blacklisted proof. (^ this is what I understand as "user opt out to be marked as high risk")

In my mind, we just write a new non-membership gadget and a thin circuit around that, and result in an additional field: TransferNote.non_blacklist_proof: Option<Proof>.