Jak Dandelion++ prywatyzuje źródło transakcji Monero
Prywatność jako priorytet
Jako kryptowaluta, Monero może wydawać się bardzo nudne na pierwszy rzut oka. Nie chwali się, że zostanie „komputerem światowym”, bądź, że „zrewolucjonizuje przemysł xyz”. Po prostu stara się być prywatnym, cyfrowym, zamiennym pieniądzem, a każda aktualizacja i nowa technologia dąży do tego celu.
Ci, którzy uważają ten cel za niezbyt wielki lub ciekawy, nie rozumieją, jak trudno jest osiągnąć znaczącą prywatność, szczególnie w trwałej, otwartej księdze jaką jest blockchain. Każdy wyciek metadanych jest potencjalnym słabym punktem prywatności.
Monero ostrożnie chowa dane on-chain, takie jak odbiorca, nadawca i kwoty, za pomocą stealth addresses, ring signatures i Pedersen commitments. Minimalizuje to szanse na to, że zwykły obserwator wydedukuje te informacje po wysłaniu transakcji. Istnieją jednak niektóre ataki, które można wykonać w momencie gdy nastąpi transakcja i nie można wykonać potem.
Atak w celu ujawnienia adresu IP
Dobra wiadomość jest taka, że jeśli ta informacja nie jest zebrana od razu to nie da się jej potem zdobyć, jako że adresy IP nie są przechowywane na blockchainie. Pocieszające jest, że taka forma ataku jest mało prawdopodobna, ponieważ przeprowadzenie go wymaga kontroli nad znaczną ilością węzłów Monero.
To może być trochę skomplikowane, więc wyjaśnimy kilka spraw. Każdy węzeł Monero łączy się z innymi węzłami w sieci, tak aby wzajemnie synchronizowały swoje kopie blockchaina. Te połączenia umożliwiają im dowiedzenie się o nowych transakcjach, ich propagację i wysyłanie własnych. Jako że węzeł może tylko poinformować inne o transakcji, o której sam wie, można się domyśleć, że pierwszy węzeł propagujący transakcję jest jej autorem.
Jeśli atakujący posiada większość sieci, każdy węzeł dowie się o transakcji od jednego ze swoich rówieśników i w oparciu o czas kiedy każdy węzeł się dowiedział, może wydedukować gdzie transakcja była nadana za pierwszym razem.
Jeśli nadal jest to skomplikowane to przedstawimy następujący przykład. Załóżmy, że oboje mamy wspólnego przyjaciela, który ukrywa się poza naszym polem widzenia. Ten przyjaciel głośno woła. Najpierw ja słyszę jego wezwanie i słyszę je głośniej niż Ty. Z tych informacji możemy wywnioskować, że prawdopodobnie jestem bliżej naszego przyjaciela niż Ty. Fakt, że usłyszysz dźwięk później (nawet o ułamek sekundy), a dźwięk jest cichszy, oznacza, że powinniśmy rozpocząć poszukiwania w mojej okolicy, nie Twojej.
Jeśli atakujący jest w stanie z powodzeniem odgadnąć, który z ich rówieśników wysłał transakcję, ponieważ zna adresy IP podłączone do swojego węzła, może być pewien, który adres IP go nadał. To są cenne dane, ponieważ adresy IP zawierają informację o kraju i dostawcy usług internetowych, a sami dostawcy wiedzą, który z ich użytkowników jest powiązany z którym adresem IP, skutecznie deanonimizując użytkownika Monero.
Zabezpieczenia
To rozwiązanie to Dandelion++ (DPP), który jest ulepszeniem dla pomysłu Dandelion pierwotnie opracowanego dla Bitcoina. W tym protokole istnieją dwie fazy, stem phase i fluff phase; razem mają reprezentować dojrzewanie dmuchawca.
W fazie stem, co kilka minut, węzeł wysyłający losowo wybiera dwóch rówieśników ze wszystkich węzłów, z którymi jest podłączony. Gdy węzeł wysyła transakcję, własną, albo propagując transakcję z innego węzła w fazie stem, losowo wybiera jednego z tych dwóch wybranych rówieśników i wysyła do niego transakcję.
Faza puchu zachodzi, gdy węzeł odbiera transakcję i nadaje ją do każdego wychodzącego połączenia, a nie tylko do jednego losowo wybranego. Umożliwia to prawdziwą propagację transakcji. Co kilka minut węzeł definiuje się jako ten, który albo będzie propagował w trybie stem lub losowo w trybie fluff, więc faza stem może być dość długa, jeśli każdy węzeł łączący się jest definiowany jako węzeł stem, ale gdy transakcja trafi węzeł w fazie puchu, zostanie w niej.
Oznacza to, że atakujący nie będzie w stanie po prostu nasłuchiwać kierunku, z którego nadchodzi transakcja, ponieważ zanim została ona nadana do wszystkich, przeszła fazę stem, a węzeł początkowy fazy fluff nie jest węzłem, z którego pochodzi transakcja i nie wiadomo, z ilu węzłów stem przeszła transakcja wcześniej.
Oczywiście połączenie powyższych rozwiązań (DPP i sieci nakładki) zapewni jeszcze silniejszą gwarancję prywatności i ochrony przed śledzeniem IP. Należy również zauważyć, że DPP nie chroni przed inną formą ataku śledzenia sieci, którą można wykonać za pośrednictwem dostawców usług internetowych, ale jest to poza zakresem tego artykułu.
Dandelion++ jest dostępny w sieci Monero i będzie domyślnie używany na kliencie referencyjnym w wersji 0.16. Ta niewielka zmiana dodatkowo zapobiega możliwym atakom na sieć Monero i stanowi przykład, dlaczego Monero jest wiodącą, praktyczną, stosowaną, technologią prywatności.
Więcej do przeczytania
View tags: Jak jeden bajt skróci czas synchronizacji portfela Monero o 40%+
Czy sprzedaż Bitcoinów za Monero jest tak samo prywatna jak kupno Monero?
Dlaczego Monero nie wykorzystuje specjalnej konfiguracji w przeciwieństwie do Zcasha
Dlaczego Monero ma najbardziej krytycznie myślącą społeczność
Jak Monero rozwiązało problem rozmiaru bloku nękający Bitcoina