Puncte:2

Dovada de gamă pentru elemente din angajamentul Vector Pedersen

drapel ru

Dacă construiesc un angajament pedersen vector $c = a_1G_1 + a_2G_2 + ... + a_nG_n$ cu un vector scalar arbitrar $(a_1, a_2, ..., a_n)$ și elemente de grup $(G_1, G_2, ..., G_n)$, este posibil să se creeze o dovadă a gamei care să demonstreze că fiecare element din acest angajament este nenegativ?

Înțeleg că este posibil să se creeze o dovadă a intervalului folosind Bulletproofs pentru cazuri precum $c=aG+bH$, dar este posibil să se creeze o dovadă a intervalului și pentru vectori precum cel de mai sus?

Puncte:1
drapel es

Angajamentul dvs. vectorial nu are un factor orbitor, ceea ce înseamnă că nu ascunde dacă două angajamente diferite sunt în aceeași listă de $a_i$ componente. În funcție de natura $a_i$ componente, poate fi, de asemenea, posibilă forța brută a angajamentului de a determina componentele pe care le reprezintă.

Putem rezolva cu ușurință acest lucru adăugând un factor orbitor $b$:

$C = a_0G_0 + a_1G_1 + ... + a_{n-1}G_{n-1} + bH$

Dorim să demonstrăm că fiecare componentă $a_i$ este un număr întreg pozitiv mai mic decât $2^s$.

Pentru a face acest lucru, creăm și declarăm $(n\cdot s)$ angajamente fiecare cu propriul factor de orbire uniform aleatoriu $b_{i,j}$, Unde $0\leq i <n$ și $0\leq j <s$. Fiecare angajament $C_{i,j}$ se calculează ca $C_{i,j} = (z_{i,j}\cdot 2^j)G_i + b_{i,j}H$, Unde $z_{i,j}$ este $0$ sau $1$ și reprezintă $j$al-lea bit al componentului $a_i$.

Un verificator poate calcula $C'=\sum C_{i,j}$. Putem demonstra asta $C$ reprezintă aceeași listă de $a_i$ componente ca $C'$ prin furnizarea unei semnături pentru cheia publică $(C-C')$ pe punctul de bază $H$. Cheia privată a punctului $(C-C')$ va fi valoarea $b-\sum b_{i,j}$.

Acum am demonstrat două lucruri: $C$ este un angajament față de aceeași listă de componente ca $C'$, și că fiecare componentă $a_i$ este creată ca o listă de cel mult $s$ biți (și astfel trebuie să fie un număr întreg pozitiv).

Tot ce rămâne de demonstrat este că fiecare dintre angajamentele declarate $C_{i,j}$ într-adevăr este un angajament fie pentru $0$ sau la $2^jG_i$.

Acest lucru poate fi realizat cu orice fel de semnătură de inel care dovedește cheia privată pentru oricare $C_{i,j}$ sau $(C_{i,j} - 2^jG_i)$ pe punctul de bază $H$ este cunoscut. Puteți folosi antiglonțuri sau semnăturile inelelor Borromee mai simplu de înțeles pentru a realiza acest lucru.

drapel ru
Multumesc. Înțeleg. În acest caz, mărimea dovezii pentru toate angajamentele $C_{i, j}$ să fie $O (\log (n \cdot s))$ cu Bulletproofs?
knaccc avatar
drapel es
@ShigeyukiAzuchi Nu sunt un expert în antiglonț, am doar experiență în implementarea semnăturilor de inel bazate pe Schnorr. S-ar putea sau nu să complice lucrurile că sunt implicate mai multe puncte de bază $G_i$.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.