Płatności ukryte – tworzenie anonimowych transakcji Bitcoin.

2015-01-30 Dla wnikliwych Techniczne

  Tak zwane „standardowe” transakcje oferują nam pseudo-anonimowość. Jeśli zależy nam na większym stopniu anonimowości naszych transakcji, rozwiązaniem mogą być […]

 

Tak zwane „standardowe” transakcje oferują nam pseudo-anonimowość. Jeśli zależy nam na większym stopniu anonimowości naszych transakcji, rozwiązaniem mogą być płatności ukryte, dzięki którym jesteśmy w stanie chronić prywatność podmiotu odbierającego transakcję Bitcoin.

Nie istnieje mechanizm służący do ukrywania lub szyfrowania standardowej transakcji w łańcuchu bloków. Analiza łańcucha bloków daje nam możliwość prześledzenia całej historii standardowych transakcji. Na podstawie informacji z łańcucha, poprzez analizę powiązań z innymi adresami, serwisy typu blockchain.info są w stanie określić stan posiadanych monet należących do właściciela konkretnego adresu. Inaczej sytuacja ma się w przypadku płatności ukrytych.

Koncepcja ukrytych transakcji stworzona przez Petera Todda dla Bitcoin, po raz pierwszy pojawia się wśród developerów Bytecoin.

Pojawia się tam pojęcie „krytych transakcji” umożliwiających „ukryte płatności”. Dane dotyczące płatności są oczywiście publiczne, jednak dzięki wykorzystaniu kilku kryptograficznych sztuczek, sama transakcja pozostaje anonimowa.

Przykład tego rodzaju transakcji możecie odnaleźć wyszukując poniższy hash w eksploratorze bloków blockchain.info:

6ea5c6f1a97f382f87523d13ef9f2ef17b828607107efdbba42a80b8a6555356

Ukryte płatności są w zasadzie pomysłowym wykorzystaniem protokołu Diffiego-Hellmana.

Przedstawimy proste wyjaśnienie jego działania.

 

pu-1

 

Jacek i Placek komunikują się przez Internet, jednak ktoś pomiędzy nimi podsłuchuje całą transmisję. Jacek i Placek chcą w sekrecie ustalić, dajmy na to, wspólny kolor prezentu.

 

pu-2

 

Publicznie zgadzają się na wybór jednego koloru i wymieniają go między sobą.

 

pu-3

 

W ten sposób zarówno Jacek, Placek i podsłuchujący ciekawski zna ten wspólny kolor.

 

pu-4

 

Jacek i Placek mieszają swoje prywatne kolory z kolorem wspólnym, tworząc dwa nowe unikalne kolory…

 

pu-5

 

…którymi również się wymieniają.

 

pu-6

 

Teraz Jacek i Placek mieszają swój kolor prywatny z miksem otrzymanym od kolegi. Obaj otrzymają ten sam kolor!

Końcowy kolor Jacka to: [nieb]+[żółty]+[czerwony]

Placka: [czerw]+[żółty]+[nieb]

Podsłuchiwacza: [zółty]+[nieb]+[żółt]+[czerw]+[żółt] lub [żółt]+[ziel]+[pom]

Podsłuchiwacz nie ma możliwości aby określić ostateczny kolor. To jest sekret dzielony pomiędzy Jackiem i Plackiem.

Oczywiście operujemy na wielkich liczbach, i rozłożenie zmieszanych liczb na liczby pierwsze jest po pierwsze trudne, a po drugie daje więcej niż jeden „poprawny” wynik. Przez co sprawdzanie wszystkich możliwych kombinacji jest niewykonalne.

Wykonujemy płatność ukrytą

Standardowa transakcja Bitcoin zawiera listę wejść i wyjść. W płatności ukrytej, wyjścia transakcji zawsze są parą.

Pierwsze wyjście zawiera dane transakcji ukrytej. Odbierający płatność miesza swój klucz ukryty z tymi danymi, aby otrzymać klucz prywatny.

Drugie wyjście jest standardowym wyjściem transakcji. Jednakże, w płatności ukrytej wyjście to płaci na adres, którego część klucza prywatnego ukryta jest w pierwszym wyjściu.

  • Alicja generuje nowy adres ukryty:

 pu-7

Klucze SCAN_SECRET i SPEND_SECRET są używane do generowania ukrytego adresu

  • Bolek używa ukrytego adresu Alicji do stworzenia transakcji

pu-8

Bolek wygeneruje tymczasowy klucz. Adres jest generowany przy użyciu klucza ukrytego Alicji i klucza tymczasowego. Drugie wyjście transakcji płaci na ten adres.

  • Alicja skanuje łańcuch bloków w poszukiwaniu pasującego adresu.

pu-9

Używając klucza tymczasowego z danych pierwszego wyjścia i swojego ukrytego adresu, Alicja może wygenerować adres podobny do Bolka w kroku 2. Jeżeli Alicja znajdzie pasujący adres, oznacza to, że transakcja ta jest skierowana do niej.

  • Alicja eksportuje klucz prywatny.

pu-10

Tak jest wykonywana płatność ukryta. Oczywiście, skanowanie całego łańcucha bloków w poszukiwaniu wyjść transakcji nie jest praktyczne. W przyszłości, gdy wzrośnie ilość transakcji ukrytych, transakcje będzie można rozbijać – dzielić na części. Ograniczając potrzebę skanowania.

Nie ma możliwości potwierdzenia, że Alicja otrzymała płatność od Bolka. Każdy, kto będzie analizował dane z łańcucha bloków otrzyma dane ukrytej transakcji z drugiego kroku. Alicja zostaje anonimowym odbiorcą płatności od Bolka.

Ukryte płatności przerzucają odpowiedzialność za generowanie kluczy na kupującego. W zasadzie ukryta płatność jest jak zakopanie skarbu i oznaczenie lokalizacji symbolem pirata. Symbol oznacza, który z piratów może otworzyć skrzynię, jednakże nikt nie wie, do którego pirata należy dany symbol.

Oprogramowania portfeli które obecnie wspierają ukryte płatności:

sx http://sx.dyne.org/stealth.html

Dark Wallet https://github.com/darkwallet/darkwallet

Na podstawie: CryptocoinNews.com

Tagi
anonimowość bitcoin Blockchain kryptowaluty łańcuch bloków płatności płatności ukryte transakcja transakcje ukryte

Newsletter

Najważniejsze newsy i insiderskie informacje prosto na Twój email.

>

Dbamy o ochronę Twoich danych. Przeczytaj naszą Politykę Prywatności.

bitbay rejestracja na gieldzie gielda geco one
rozlicz kryptowaluty

Redakcja Bitcoin.pl ostrzega:
Uważaj na oszustów. Dbaj o bezpieczeństwo.