Treść
Wstęp
Czym są transakcje poufne?
Przegląd stosowanej kryptografii
Do czego służą Poufne Transakcje?
Wniosek
Wstęp
Często uważa się, że przejrzystość systemu ma kluczowe znaczenie dla funkcjonowania łańcucha bloków. Oznacza to, że każdy węzeł w sieci musi mieć możliwość przechowywania kopii i sprawdzania, czy nie naruszono żadnych zasad. W przypadku wielu rozproszonych rejestrów każdy może załadować eksplorator bloków online, który umożliwi mu przeszukiwanie bloków, transakcji i adresów.
Z punktu widzenia prywatności nie jest to sytuacja idealna. W systemie takim jak Bitcoin każdą transakcję można powiązać z poprzednią. Monety nie są technicznie zamienne, co oznacza, że można je powiązać z konkretnymi transakcjami. Nikt nie może powstrzymać Cię przed wysyłaniem bitcoinów, ale Twoja transakcja może zostać odrzucona, jeśli powiązane z nią monety przeszły wcześniej przez „adres z czarnej listy”.
W najgorszym przypadku brak zamienności może mieć głęboki wpływ na same fundamenty systemu. „Czyste” monety mogłyby zyskać przewagę nad swoją wartością, natomiast stare, ze względu na swoją historię, straciłyby na wartości.
W Bitcoinie prywatność jest często przeceniana. Można śledzić nie tylko monety, ale także użytkowników. Korzystają one z „pseudonimizmu” (zamiast imion widoczne są adresy publiczne), co nie jest pozbawione wad. Zaawansowane techniki analizy mogą z coraz większą precyzją agregować adresy w celu deanonimizacji podmiotów sieciowych.
Jedną z propozycji aktualizacji, które sprawią, że transakcje będą naprawdę prywatne, są transakcje poufne.
Czym są transakcje poufne?
Transakcje poufne (CT) zostały po raz pierwszy poruszone w 2013 r. przez Adama Backa, dyrektora generalnego Blockstream; a później Gregory Maxwell – programista Bitcoina – rozszerzył swoją analizę. Maxwell podkreśliłby problemy wspomniane w poprzedniej sekcji (tj. zamienność i słabą „pseudonimowość”) i zaproponował rozwiązanie. Wysyłane kwoty mogłyby być odsłonięte od reszty sieci, tak aby tylko strony zaangażowane w transakcję mogły znać te dane.
W normalnych okolicznościach (w przypadku transakcji widocznych publicznie) węzeł może łatwo sprawdzić, czy otrzymana kwota nie przekracza kwoty wysłanej. Jeśli Alicja chce wysłać Bobowi 0,3 BTC, weźmie niewydaną kwotę (powiedzmy 1 BTC) i podzieli ją na dwie części: 0,3, które wyśle Bobowi, i 0,69, które odeśle sobie (różnica Czego brakuje odpowiada potrąceniu prowizji wydobywczej).
W przypadku pozostałych węzłów jest to prosta algebra: 1 jest większe niż 0,3 + 0,69, wszystkie podpisy są prawidłowe, a dane wejściowe Alicji nie zostały jeszcze wydane nigdzie indziej, więc transakcja musi być ważna. Kiedy jednak ilości są zaciemnione, sprawy nie są już takie trywialne. Jak w ogóle ocenić, czy nieznana ilość jest równa lub większa od sumy dwóch innych nieznanych wielkości?
Przegląd stosowanej kryptografii
Aby ukryć dane, wymagane jest szyfrowanie. Tradycyjne metody można jednak porównać do przechowywania dokumentów w sejfie: zamknięte w środku nie nadają się do użytku, dopóki sejf nie zostanie wyjęty. Aby Transakcje Poufne mogły działać, potrzebujemy cyfrowego sejfu, który nie ujawnia swojej zawartości, ale którego właściwości może zweryfikować osoba z zewnątrz.
Odpowiedź na to pytanie leży w szyfrowaniu homomorficznym, a konkretnie w schemacie zwanym „zaangażowaniem Pedersena”. Ten rodzaj szyfrowania umożliwia osobie z zewnątrz wykonywanie operacji na zaszyfrowanych danych (których nie może zobaczyć) w różnych celach.
Zwykłego skrótu można użyć do zatwierdzenia danych, które chcesz później ujawnić. Wyobraź sobie, że chcesz ogłosić konkurs w sieciach społecznościowych, w którym każdy, kto odgadnie Twoją ulubioną giełdę, wygra nagrodę w wysokości 0,01 BTC. Uczestnicy mogą wątpić, czy po zakończeniu konkursu będzie można zobaczyć odpowiedzi i wybrać giełdę, o której nie wspomniano.
Możesz udostępnić swoim obserwującym hash: ciąg pozornie losowych liczb i znaków, które odpowiadają konkretnemu wpisowi. Przekazujesz swoją wymianę przez funkcję, aby uzyskać określony wynik. Zilustrujemy to za pomocą algorytmu SHA256:
f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191Patrząc na to, nie masz pojęcia, jakie było wejście. Nie można również odwrócić funkcji, aby ją uzyskać. Jeśli jednak wiesz, że wpis brzmiał „Binance”, możesz łatwo sprawdzić, czy Twój skrót pasuje do tego wspomnianego powyżej. W ten sposób Twoi obserwujący będą pewni, że nie zmienisz swojej odpowiedzi pod koniec konkursu, ponieważ dałoby to zupełnie inny wynik.
Jednak realistycznie rzecz biorąc, nie jest to zbyt bezpieczne. Chociaż Twoi obserwujący nie mogą dokonać inżynierii wstecznej algorytmu, mogą utworzyć listę potencjalnych transakcji, mieszając każdą z nich, aż zostaną znalezione dopasowanie. Możemy zmniejszyć prawdopodobieństwo takiej sytuacji, dodając losowe dane zwane czynnikami zaślepiającymi do danych, które będziemy szyfrować.
Jeśli wpiszemy „Binance to moja ulubiona giełda, kocham ją bardziej niż jakąkolwiek inną giełdę 2#43Wr”, przeciwnikowi znacznie trudniej będzie zgadnąć (a za 0,01 BTC z pewnością nikt nie będzie próbował).
Zobowiązanie Pedersen pozwala nam dodać wkłady leżące u podstaw zobowiązań. Jak ilustruje Maxwell:
C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)Gdzie BF jest czynnikiem zaślepiającym, a D jest danymi.
Jest jeszcze kilka kroków obejmujących kryptografię krzywej eliptycznej i testowanie zasięgu, ale podstawowa idea jest taka, że użytkownik jest silnie przywiązany do swojego adresu. Podczas wysyłania środków tworzone są dwa dodatkowe zobowiązania (jedno na adres zmiany, który ma zostać zwrócony użytkownikowi, drugie na adres docelowy).
Nikt nie wie, ile zostało wysłane, ale może sprawdzić, czy zobowiązania dotyczące wymiany i miejsca docelowego (lewa strona równania Maxwella) sumują się z adresem źródłowym (prawa strona równania). Jeśli wynik jest prawidłowy, transakcja użytkownika jest ważna, ponieważ można wykazać, że dane wejściowe są równe wynikom.
Do czego służą Poufne Transakcje?
Gdyby w Bitcoinie zaimplementowano poufne transakcje, cieszylibyśmy się znacznie bardziej prywatnym systemem. Zarówno wejścia, jak i wyjścia zostałyby zamaskowane w szerszej sieci, a wpisy w księdze zostałyby zaciemnione, ale węzły nadal byłyby w stanie zweryfikować ich autentyczność. Dzięki tak ogromnemu wzrostowi prywatności bitcoiny mogą stać się skutecznie zamienne, ponieważ analiza łańcucha nie ujawnia już historii danej jednostki.
Jeśli chodzi o to, czy poufne transakcje zostaną włączone do protokołu, obecnie nie wydaje się to prawdopodobne. Dzięki tej dodatkowej funkcjonalności transakcje są znacznie większe niż standardowe: biorąc pod uwagę ograniczoną przestrzeń blokową, zwiększyłoby to tylko popyt. Wymagałoby to również, aby większość uczestników zgodziła się na zmianę kodeksu, co jest zadaniem, które tradycyjnie okazywało się trudne.
Podsumowując
Poufne transakcje doczekały się kilku iteracji w innych kryptowalutach i łańcuchach bocznych Bitcoin. Na przykład Monero używa ich w połączeniu z konstrukcjami zwanymi podpisami pierścieniowymi, aby osiągnąć anonimowość i zamienność. Liquid sidechain implementuje je w celu zapewnienia większej prywatności, a MimbleWimble rozszerza je na te same punkty końcowe.
Ze względu na korzyści, jakie przynoszą, transakcje poufne wiążą się z kompromisem w postaci większego zasięgu. Kryptowaluty często mają problemy ze skalowalnością i wydajnością w warstwie bazowej, a większe rozmiary transakcji nie są atrakcyjne dla wszystkich. To powiedziawszy, zwolennicy prywatności uważają, że ukrywanie kwot transakcji jest niezbędne, a uczestnicy faktycznie zezwalają, aby kryptowaluta służyła jako zamienny pieniądz.



