
Команда розробників Bitcoin Core 12 червня опублікувала допис у X, підтвердивши, що нова функція -privatebroadcast у версії Bitcoin Core 31.0 містить проблему з конфіденційністю: за певних мережевих умов, якщо v2-встановлення зв’язку (handshake) не вдається, Bitcoin Core підключатиметься до рівних (пірингових) вузлів через IPv4 або IPv6, тим самим розкриваючи стороні-отримувачу відкриту (безпосередню) IP-адресу відправника.
Згідно з офіційним оголошенням Bitcoin Core, вузол зазнає впливу цього вразливості лише тоді, коли одночасно виконуються всі такі п’ять умов:
· Вузол працює під Bitcoin Core 31.0 і ввімкнено функцію -privatebroadcast
· Транзакції транслюються (ширяться) через RPC-команду sendrawtransaction (гаманецьні RPC на кшталт sendtoaddress, sendall тощо не використовують private broadcast, тож не підпадають під вплив)
· Можна напряму встановити вихідне IPv4 або IPv6-з’єднання (без обмеження -onlynet і без налаштування -proxy=...)
· BIP324 v2-передача не вимкнена (не встановлено -v2transport=0)
Підключення до onion- та I2P-пірингових вузлів не зазнають впливу, оскільки під час будь-яких повторних спроб у рамках v1 ці підключення завжди здійснюються через відповідні проксі-маршрути.
Згідно з офіційними поясненнями, механізм тригера вразливості такий: коли для private broadcast обирається підтримуваний v2 (BIP324) протокол передачі до IPv4 або IPv6-пірингового вузла, початкове з’єднання, як і очікується, проходить через Tor-проксі-маршрут. Якщо v2-handshake не вдається, Bitcoin Core намагатиметься повторити з’єднання за протоколом v1; при цьому повтор у режимі v1 не проходить через Tor-проксі-маршрут, а встановлюється напряму через IPv4 або IPv6-з’єднання, через що розкривається IP-адреса ініціатора.
Ця поведінка порушує конфіденційні гарантії, описані для версії 31.0: «Отримувачі ніколи не дізнаються їхню IP-адресу (а також геолокацію)». Команда розробників підтвердила, що вразливість найімовірніше штучно спричиняють, коли зловмисний піринговий вузол навмисно вимикає v2-handshake, щоб примусово викликати повтор у режимі v1.
Офіційно Bitcoin Core пропонує такі три тимчасові рішення:
Рішення перше (рекомендоване): напряму вимкнути налаштування -privatebroadcast, встановивши -privatebroadcast=0
Рішення друге: вимкнути v2-передачу, встановивши -v2transport=0. Увага: це налаштування призведе до того, що всі підключення вузла використовуватимуть незашифрований протокол v1, що на відкритій мережі (в «clear net») робить вузол більш уразливим до відбитків (fingerprinting) і цензури.
Рішення третє: спрямувати вихідний трафік IPv4/IPv6 через Tor, налаштувавши -proxy=127.0.0.1:9050 (замініть порт на фактичний порт SOCKS Tor). Увага: це налаштування робить вузол більш вразливим до атак «молитвника» (Sybil Attack).
Згідно з офіційним оголошенням Bitcoin Core, гаманцеві RPC (наприклад, sendtoaddress, sendall тощо) не використовують private broadcast, тому цей вразливості не стосується. Вразливість спрацьовує лише під час трансляції через sendrawtransaction і лише за умови, що виконуються решта чотири умови.
Згідно з офіційними поясненнями, для реальних пірингових вузлів, які підтримують v2-передачу, у звичайних умовах v2-handshake навряд чи зазнає збою. Найімовірніше вразливість штучно спричиняють, коли зловмисний піринговий вузол навмисно вимикає v2-handshake, щоб примусово викликати повтор у режимі v1.
Згідно з офіційним оголошенням Bitcoin Core, виправлення буде доступне разом із версією 31.1, але в оголошенні не вказано конкретної дати релізу. Офіційно рекомендовано перед оновленням до 31.1 скористатися одним із трьох тимчасових рішень, описаних вище.
Пов’язані новини
Coinbase повідомляє про попередження щодо квантових ризиків для 7 млн біткоїнів і пропонує три основні варіанти дій
Circle запускає Arc Privacy для захисту даних корпоративного блокчейну
Circle запускає Arc Privacy для конфіденційних смартконтрактів
Щоденний дайджест Gate (11 червня): торговий бот Raydium для автоматичного маркетмейкінгу зазнав атаки; Том Лі заявив, що пропозиція ETH (у мережі) скорочується