Как Dandelion++ пази в тайна произхода на транзакциите на Monero

Публикувано:
By Diego Salazar

Поверителността като приоритет

Като криптовалута Monero може да изглежда много скучно погледнато от пръв поглед. То няма големи претенции за слава като например да бъде „световен компютър“ или „да революционизира xyz индустрия“. Просто се опитват да бъдат частни, цифрови, заменими пари и всяко надграждане и нова технология само допринасят за тази цел.

Тези които смятат тази цел за твърде тясна или безинтересна обикновено не разбират колко трудно е да се постигне смислена поверителност, особено в постоянна отворена книга като блокчейн. Всеки път за изтичане на метаданни е потенциал за ерозия на поверителността.

Monero взема предпазни мерки за да скрие данните във веригата като получател, подател и суми съответно чрез скрити адреси, подписи на пръстена и ангажименти на Педерсен. Това минимизира шансовете на случаен наблюдател да извлече критична информация след като транзакциите вече са били изпратени и сега са само част от записаната история. Има обаче някои атаки които могат да бъдат извършени в момента на извършване на транзакция която не може да бъде извършена по-късно.


Атака за разкриване на IP адрес

Тези атаки се въртят около идентифицирането на кой IP адрес идва транзакцията. Ако тази информация бъде извлечена тя може да разкрие че физическо лице е изпратило транзакция на Monero. Не е в състояние да покаже на кого и колко но има някои случаи в които знанието на някой който използва Monero е достатъчно за да причини вреда.

Добрата новина е че ако тази информация не бъде събрана в момента на извършване на транзакцията тя не може да бъде научена на по-късен етап тъй като IP адресите не се съхраняват в блокчейна. Също така е утешително да се знае че подобна атака е малко вероятно да бъде видяна в дивата природа тъй като за да я осъществи нападателят ще се нуждае от голямо мнозинство от възли в мрежата. Ако обаче човек можеше да управлява това голямо мнозинство той би могъл да идентифицира „посоката“, от която идва транзакцията.

Това може да е объркващо така че тук ще обясним малко основна информация. Всеки възел се свързва с други възли в мрежата така че да могат да поддържат своя блокчейн актуален както и да споделят това което знаят с другите. Тези връзки им позволяват да научават за нови транзакции да ги разпространяват и да изпращат свои собствени. Тъй като един възел може да каже на своите връстници само за транзакции за които знае логично е че първият възел който разпространява транзакция е възелът който всъщност изпраща Monero.

Ако хакерът притежава голямо мнозинство от възли в мрежата всеки възел ще чуе за транзакция от един от своите връстници и въз основа на времето в което всеки възел получава тази информация те могат да изведат вероятни кандидати за мястото откъдето е започнала транзакцията.

Ако това все още е объркващо предлагаме този пример. Да предположим че и двамата имаме общ приятел който се невидим. Този приятел вика силно. Чувам звъна му първи и го чувам по-силно от теб. От тази информация можем да знаем че вероятно съм по-близък с нашия приятел от вас. Фактът че чувате звука по-късно (дори само с част от секундата) и звукът е по-слаб означава че трябва да започнем търсенето около моя район а не във вашия.

Ако нападателят успешно отгатне кой от неговите връстници е изпратил транзакцията тъй като те имат IP адреса който е свързан към техния възел и го е препратил към тях те могат да бъдат сигурни за IP адреса който го е изпратил. Това е мощна информация тъй като IP адресите съдържат информация за държавата и доставчика на интернет услуги (ISP) на потребителя а самите ISP знаят кой потребител е свързан към кой точен IP адрес като ефективно деанонимизира потребителя на Monero.

Смекчавания

Едно възможно смекчаване на тази атака е използването на наслагваща се мрежа като Tor или I2P. Това прави обстоятелствата в които дори ако нападателят може да извлече IP адрес на източник той вероятно не е този който е направил транзакцията а по-скоро изходящият прокси (I2P) или изходният възел (Tor) на мрежата с наслагване. Това обаче не е всеобхватно решение тъй като мрежите с наслагване VPN и подобен софтуер са забранени в много страни и е нереалистично да се очаква всеки да използва синхронизира и разпространява в тези мрежи. Трябва да има решение което не изисква използването на външен софтуер и мрежи; такъв който е достъпен за обикновения човек.

Това решение е Dandelion++ (DPP) който е надграден протокол към оригиналното предложение на Dandelion за биткойн. В този протокол има две фази, фаза на стъблото и фаза на мъх; и двете заедно трябва да представляват формата на глухарче.

В основната фаза на всеки няколко минути изпращащият възел произволно избира двама партньори от всички възли към които е свързан. Когато изпращащият възел изпрати транзакция или от свое име, или просто препраща транзакцията от друг възел във фазата на основата той произволно избира един от тези два избрани партньора и изпраща транзакцията към него.

Фазата на раздуване е когато възел получава транзакция и я излъчва към всяка изходяща връзка а не само към една произволно избрана това позволява истинско разпространение на транзакция. На всеки няколко минути възел се самоопределя като такъв, който или ще се разпространи чрез стем или чрез флъф на случаен принцип, така че стем фазата може да бъде доста дълга ако всеки свързващ възел се е дефинирал като стем нод но след като транзакцията достигне фазата на флъф остава там.

Това означава че атакуващият вече няма да може просто да слуша посоката на дадена транзакция тъй като преди да бъде разпространена до всички тя е преминала през основната фаза а началният възел на фазата на пух не е възелът от който произхожда транзакцията и не е известно на колко скока по стеблото е претърпяла транзакцията.

Разбира се комбинирането на решенията по-горе (DPP плюс мрежа с наслагване) ще даде още по-силни гаранции за поверителност и защита срещу IP проследяване. Трябва също да се отбележи, че DPP не защитава срещу друга форма на атака за проследяване на мрежата която може да бъде направена с ISP, но това е извън обхвата на тази статия.

Dandelion++ е настроен да работи на живо в мрежата на Monero и да се използва по подразбиране на референтния клиент в изданието 0.16. Тази малка промяна допълнително ще смекчи възможните атаки в мрежата на Monero и е пример защо Monero води групата в практичните приложени технологии за поверителност.

Допълнителна информация

© 2024 Blue Sunday Limited