Shielded Bitcoin: prywatne transakcje bez soft forka
Nowy projekt ma ukryć kwoty i strony transakcji w Bitcoinie bez zmiany konsensusu. Kluczowe są ZK-proofs, indeksery i nowy model pegów.
Bitcoin z warstwą prywatności
Zespół badawczy Alloc Init zaproponował nowy system pod nazwą Shielded Bitcoin, który ma umożliwić prywatne transakcje w sieci Bitcoin bez zmiany jej reguł konsensusu. W praktyce oznacza to próbę zbudowania dodatkowej warstwy, w której można ukryć kwotę, a także nadawcę i odbiorcę transakcji.
Projekt opiera się na dwóch filarach:
- zero-knowledge proofs (dowodach z wiedzą zerową),
- oraz osobnym mechanizmie indeksowania stanu sieci.
Co istotne, propozycja nie wymaga soft forka ani udziału operatora czy federacji, która przechowywałaby środki użytkowników.
Jak ma działać Shielded Bitcoin
W proponowanym modelu transakcja Shielded Bitcoin byłaby po prostu porcją danych zapisanych w zwykłej transakcji Bitcoin, na przykład przy użyciu OP_RETURN albo pola witness. Sama sieć Bitcoin nie miałaby rozumieć tych danych ani ich weryfikować.
Za poprawność całej warstwy odpowiadałby indexer — osobny program, który śledzi blockchain i buduje własny obraz stanu systemu. Jeśli transakcja okaże się niepoprawna, indexer ją odrzuca i nie aktualizuje sald.
To podejście przypomina działanie innych prywatnych systemów, w których:
- istnieje odpowiednik UTXO, tutaj nazwany note,
- transakcje zużywają wcześniejsze noty jako wejścia,
- a zamiast usuwania wydanych not stosuje się nullifier set.
Nullifier pozwala publicznie zaznaczyć, że dana nota została już wydana, bez ujawniania, która dokładnie.
Prywatność bez podwójnego wydania
Najciekawszy element projektu dotyczy bezpieczeństwa. Choć szczegóły transakcji mają być ukryte, system nadal ma chronić przed double spendingiem i emisją środków znikąd.
W tym celu każda transakcja ma zawierać dowód, że:
- dana nota rzeczywiście znajduje się w drzewie Merkle’a,
- transakcja została autoryzowana właściwym kluczem,
- nullifier został poprawnie wyprowadzony,
- nie doszło do inflacji podaży.
To właśnie ZK-proof ma potwierdzać wszystkie te warunki bez ujawniania danych wejściowych.
Jak wygląda adres i klucze użytkownika
System zakłada strukturę kluczy podobną do HD wallet w Bitcoinie. Użytkownik tworzy zestaw kluczy pochodnych z jednego klucza głównego. W opisie projektu pojawiają się m.in.:
- sk_spend — klucz do wydawania środków,
- sk_nf — klucz służący do tworzenia nullifierów,
- vk_in — klucz do odszyfrowywania i podglądu wpływających not,
- vk_out — klucz do podglądu transakcji wychodzących,
- sk_view — klucz używany przy generowaniu adresu odbiorczego.
Adres odbiorcy ma powstawać z połączenia wartości d z publicznym kluczem użytkownika. Nadawca tworzy też losową wartość r_seed, potrzebną przy szyfrowaniu danych transakcji.
W praktyce w outputach mają być zapisane tylko zaszyfrowane informacje o:
- wartości transferu,
- przekazanym przez odbiorcę parametrze d,
- oraz r_seed nadawcy.
Peg do Bitcoinów bez pośrednika
Ważnym, ale jeszcze niedopracowanym elementem projektu jest mechanizm peg-in i peg-out, czyli wprowadzania zwykłych BTC do prywatnej warstwy i wyprowadzania ich z powrotem.
Autorzy chcą wykorzystać do tego PIPEs v2, czyli schemat oparty na witness encryption. Ma on pozwolić na zablokowanie klucza prywatnego w taki sposób, aby dało się go odblokować dopiero po spełnieniu określonego warunku potwierdzonego dowodem ZK.
Deklarowany cel jest jasny:
- bez operatora,
- bez federacji,
- bez powierniczego przechowywania środków,
- i bez zmian w regułach Bitcoina.
Na razie jednak właśnie ten fragment systemu pozostaje w fazie dalszych prac i nie został jeszcze w pełni opisany.
Ograniczenia i wątpliwości
Mimo ambitnej konstrukcji projekt nie rozwiązuje wszystkiego. Wciąż mogą być widoczne pewne metadane, takie jak:
- czas transakcji,
- opłata,
- liczba wejść i wyjść.
Sama propozycja nie obejmuje też pełnej prywatności przy wejściu i wyjściu z systemu, czyli przy peg-in i peg-out.
Pojawiły się również głosy sceptyczne. Wskazywano, że nowy metaprotocol zaczyna praktycznie od zera, więc przy małej liczbie użytkowników prywatność może być słabsza niż w dojrzałych systemach. Z kolei inni eksperci zwracali uwagę, że rozwiązanie nie jest odporne na przyszłe zagrożenia związane z obliczeniami kwantowymi.
Co to może oznaczać dla Bitcoina
Jeśli projekt doczeka się wdrożenia, może stać się ważną propozycją dla użytkowników, którzy chcą większej prywatności bez rezygnacji z podstawowej infrastruktury Bitcoina. Zamiast zmieniać cały protokół, Shielded Bitcoin próbuje dołożyć do niego dodatkową, kryptograficznie zabezpieczoną warstwę.
Na razie to jednak przede wszystkim propozycja badawcza, a nie gotowe rozwiązanie produkcyjne. Mimo to pokazuje, że wokół Bitcoina wciąż trwają prace nad technologiami, które mają poprawiać prywatność bez naruszania jego podstawowych zasad.