Dacă vă pasă doar de orbirea angajamentului (pentru a preveni forțarea brută) și nu aveți nevoie de angajamente homomorfe adiționale, puteți face următoarele:
Proverul are o pereche de chei $(x, X=xG)$, și publică cheia publică $X$.
Pentru fiecare membru al setului, probatorul publică:
$C_i=H_p(m_i) + r_iG$, Unde $H_p(m_i)$ înseamnă a hash $m_i$ și interpretați rezultatul ca un punct EC valid.
$D_i=xH_p(m_i)$
$E_i=xC_i$
O dovadă DLEQ că $X$ și $E_i$ partajează aceeași cheie privată $x$ pe puncte $G$ și $C_i$
O semnătură pentru cheia publică $(E_i-D_i)$ pe generator $G$.
Rețineți că $E_i-D_i==xH_p(m_i)+xr_iG-xH_p(m_i)==xr_iG$.
Dovada DLEQ (articolul 4) va dovedi că $E_i$ a fost calculat corect. Ceea ce facem aici este să folosim o funcție pseudo-aleatorie verificabilă (VPRF) pe care doar probatorul o poate interoga, dar pe care orice observator o poate verifica.
Semnătura (punctul 5) va fi posibilă numai dacă $D_i$ a fost de asemenea calculat corect, deoarece semnătura va fi posibilă doar pe generator $G$ dacă nu există $H_p()$ componentă rămasă (deoarece logul discret EC w.r.t. $G$ nu este cunoscut pentru nicio ieșire a $H_p()$).
Rezultatul final este că am creat o ieșire VPRF $D_i$ pentru fiecare mesaj $m_i$, și a dovedit că fiecare ieșire VPRF a fost declarată corect.
Acum va fi imediat evident dacă există angajamente față de același mesaj, deoarece vor împărtăși același mesaj $D_i$ valorile.