Nullifier
Kryptograficzny znacznik dodawany do publicznego zbioru przy konsumpcji prywatnej noty. Protokół może zweryfikować, że coś zostało wydane, bez wiedzy co konkretnie — uniemożliwia podwójne wydatkowanie z zachowaniem prywatności stanu.
Problem, który nullifier rozwiązuje
W systemach prywatnych sald (jak Aztec) stan użytkownika jest ukryty. Ale protokół musi jakoś wiedzieć, że dana nota nie została już wcześniej wydana — inaczej właściciel mógłby ją wydać dwa razy.
Nullifier rozwiązuje to elegancko: gdy nota jest konsumowana, protokół generuje deterministyczny nullifier i dodaje go do publicznego zbioru. Przy próbie ponownego użycia tej samej noty nullifier już byłby w zbiorze — transakcja jest odrzucana.
Obserwator widzi, że coś zostało użyte, ale nie może powiązać nullifiera z oryginalną notą bez posiadania odpowiedniego sekretu.
Nullifier to kryptograficzny odpowiednik skreślenia pozycji z listy — bez ujawniania, co zostało skreślone. Publiczny zbiór nullifierów rośnie, ale nie ujawnia treści prywatnego stanu.
Najczęstsze błędne założenia
- Nullifier to nie publiczna aktualizacja salda. To prywatyzujący zamiennik komunikatu 'ten zasób jest zużyty'.
- Nullifier nie jest losowy — jest deterministycznie obliczany z noty i sekretu, żeby ta sama nota zawsze produkowała ten sam nullifier.
- Samo posiadanie nullifiera nie ujawnia, który zasób za nim stoi — do tego potrzebny jest sekret właściciela.
