Wstęp
Przejrzystość systemu jest kluczem do normalnego działania blockchainu. Tzw. przejrzystość oznacza, że każdy węzeł w sieci może przechowywać kopię i ma prawo sprawdzić, czy nie doszło do naruszeń. W wielu rozproszonych księgach każdy może załadować eksplorator bloków i przeglądać bloki, transakcje i adresy w sieci.
Z punktu widzenia prywatności takie podejście nie jest idealne. W systemach takich jak Bitcoin każdą transakcję można powiązać z poprzednimi transakcjami. Z technicznego punktu widzenia tokeny nie są zamienne, co oznacza, że każdy token jest powiązany z konkretną transakcją. Nikt nie może powstrzymać Cię przed wysyłaniem Bitcoinów, ale jeśli te monety kiedykolwiek przejdą przez adres znajdujący się na czarnej liście, druga strona ma prawo odrzucić transakcję.
W najgorszym przypadku brak jednorodności może mieć poważne konsekwencje dla podstaw systemu. Czyste monety zyskują premię, podczas gdy wczesne monety tracą na wartości ze względu na kwestie historyczne.
Prywatność Bitcoina jest często przeceniana. W rzeczywistości zarówno tokeny, jak i użytkownicy w systemie są identyfikowalni. Ludzie są przyzwyczajeni do działania anonimowego (pokazywanie adresu publicznego zamiast nazwiska), ale takie podejście ma pewne wady. Dzięki stale rosnącej precyzji najnowocześniejsze narzędzia analityczne agregują podmioty w sieci w celu deanonimizacji.
Poufne transakcje to ulepszony sposób promowania prawdziwie prywatnych transakcji.
Co to jest transakcja poufna?
Koncepcja transakcji poufnych (CT) została po raz pierwszy zaproponowana w 2013 roku przez Adama Backa, dyrektora generalnego Blockstream, a następnie została rozszerzona i rozszerzona przez programistę Bitcoin Gregory'ego Maxwella. W pierwszej części Maxwell nakreślił wspomniane problemy „homogenizacji” i „słabej anonimowości” oraz zaproponował odpowiadające im rozwiązania. Zwrócił uwagę, że kwota transakcji może być ukryta w szerszej sieci i tylko uczestnicy transakcji mogą poznać konkretną wartość.

W normalnych okolicznościach (transakcje można przeglądać publicznie) węzły mogą łatwo zweryfikować, czy ilość otrzymanych monet przekracza kwotę wysłaną. Na przykład Alicja chce wysłać Bobowi 0,3 BTC, wykorzystuje niewydaną kwotę (nazwijmy to „1 BTC”) i dzieli ją na dwie części: 0,3 BTC dla Boba i 0,69 BTC, aby odesłać do portfela osobistego (pozostała środki są wydobywane w miarę uiszczania opłat wydobywczych).
W przypadku innych węzłów jest to kwestia prostej algebry: 1 > 0,3 + 0,69, wszystkie podpisy są poprawne, a dane wejściowe Alicji nie są wykorzystywane gdzie indziej, więc transakcja musi być ważna. Po ukryciu kwoty sytuacja się skomplikowała. Jak ustalić, czy nieznana kwota jest większa lub równa sumie dwóch innych nieznanych kwot?
Przegląd stosowanych zasad kryptograficznych
Aby ukryć dane, należy zastosować pewne techniki szyfrowania. Jednak tradycyjna metoda przypomina przechowywanie dokumentów w sejfie: po zamknięciu nie można ich wyjąć, dopóki nie zostaną odblokowane. Poufne transakcje działają podobnie do cyfrowego sejfu, w którym zawartość jest ukryta, a własność aktywów może zostać zweryfikowana przez osoby z zewnątrz.
Odpowiedź leży w „szyfrowaniu homomorficznym” – mechanizmie zwanym obietnicą Pedersena. Ten rodzaj szyfrowania umożliwia osobom postronnym wykonywanie operacji na zaszyfrowanych danych w różnych celach, bez możliwości przeglądania określonej zawartości.
Do przesłania danych, które chcesz wyświetlić, można użyć zwykłego skrótu. Załóżmy, że chcesz ogłosić w mediach społecznościowych konkurs, w którym możesz wygrać 0,01 BTC za odgadnięcie ulubionej giełdy. Uczestnicy mogą być sceptyczni co do konkursu, bo po konkursie na pewno można spojrzeć na ich odpowiedzi i wybrać giełdę, o której nikt nie wspomniał.
Robisz to, udostępniając swoim fanom hash: pozornie losowy ciąg liczb i znaków (odpowiadający konkretnym danym wejściowym), przekazując odpowiedź przez określoną funkcję (tj. określając wymianę) i ostatecznie uzyskując wynik. Weźmy jako przykład algorytm SHA256:
f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191Bazując na powyższej wartości skrótu, nie znasz konkretnych danych wejściowych i nie możesz uzyskać poprzednich danych wejściowych, wykonując funkcję wstecz. Ale jeśli wiesz, że dane wejściowe to „Binance”, możesz łatwo ustalić, że jego skrót odpowiada haszowi wymienionemu powyżej. W ten sposób fani będą czuli się bardziej komfortowo, wiedząc, że nie zmienisz swojej odpowiedzi na koniec gry, co spowodowałoby zupełnie inny wynik.
Tak naprawdę ta metoda nie jest całkowicie bezpieczna. Chociaż fani nie mogą odwrócić algorytmu, mogą stworzyć listę wymian i dopasowywać skróty jeden po drugim, aż otrzymają poprawną odpowiedź. Aby uniknąć takich operacji, do danych wymagających zaszyfrowania możemy dodać losowe dane, zwane „czynnikiem maskującym”.
Jeżeli wpiszemy „Binance to moja ulubiona giełda spośród wszystkich innych giełd 2#43Wr”, konkurenci będą mieli trudności z odgadnięciem wyniku (w końcu nie mogą próbować niezliczoną ilość razy za jedyne 0,01 BTC).
Dzięki obietnicom Pedersena możemy dodawać dane wejściowe po obietnicy. Maxwell wyjaśnił to następująco:

C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)
gdzie BF odnosi się do współczynnika maskowania, a D odnosi się do danych
Kilka następnych kroków obejmuje kryptografię krzywą eliptyczną i dowód zasięgu, ale podstawową ideą jest wykonanie przetwarzania zobowiązań Pedersena na adresie. Podczas wysyłania środków system wygeneruje dwa dodatkowe „zobowiązania” (adres zmiany i adres docelowy zwrotu środków).
Nikt nie zna wysłanej kwoty, ale można sprawdzić, czy zmiana i zobowiązanie dotyczące miejsca docelowego (lewa strona równania Maxwella) są równe pierwotnemu adresowi (prawa strona równania). Jeśli obliczenia są prawidłowe, wystarczy wykazać, że dane wejściowe i wyjściowe są sobie równe, co oznacza, że transakcja użytkownika jest ważna.
Co można osiągnąć dzięki poufnym transakcjom
Jeśli w Bitcoinie zostaną zaimplementowane poufne transakcje, można stworzyć bardziej prywatny system. Wejścia i wyjścia do systemu zostaną ukryte, a jednostki w księdze zaciemnione, ale węzły nadal będą mogły zweryfikować ich autentyczność. Przy znacznie poprawionej prywatności analiza łańcucha nie jest w stanie ujawnić historii danej jednostki, co sprawia, że Bitcoin jest skutecznie zamienny.
Jeśli chodzi o możliwość uwzględnienia w umowie „poufnych transakcji”, wydaje się to obecnie mało prawdopodobne. Po dodaniu tej funkcji wielkość transakcji będzie większa niż w przypadku zwykłych transakcji, co w naturalny sposób stworzy większy popyt na rynku, biorąc pod uwagę ograniczoną przestrzeń blokową. Ponadto większość uczestników sieci musi wyrazić zgodę na zmianę kodu, co stanowiło problem w przeszłości.
Podsumować
Niektóre kryptowaluty w pewnym stopniu nawiązały do poufnych transakcji w łańcuchach bocznych Bitcoin. Na przykład Monero doskonale integruje poufne transakcje ze strukturą „podpisu pierścieniowego”, aby osiągnąć anonimowość i jednorodność. Znacząco poprawiono także prywatność zarówno Liquid sidechain, jak i MimbleWimble.
Poufne transakcje mają wiele zalet, ale wiążą się z problemem zwiększonego wolumenu przetwarzania. Kryptowaluty od dawna stawiają czoła wyzwaniom w zakresie skalowalności i przepustowości warstwy bazowej, a duże wolumeny transakcji również będą dla wielu osób powstrzymywania. Niemniej jednak zwolennicy prywatności argumentują, że konieczne jest ukrywanie kwot transakcji i uczestników, aby kryptowaluty stały się naprawdę jednorodnymi walutami.


