Біткоіни можна пересилати без вказівки особистих даних, і тому його часто називають анонімної валютою. Однак це вкрай помилкове формулювання – приватність користувача біткоіна на практиці виявляється під великим питанням, якщо не сказати, що часто вона просто неможлива.
Більш правильним визначенням біткоіна буде псевдонімність. Відправлення біткоіни-транзакцій можна порівняти з написанням книги, де замість справжнього імені автора вказано його псевдонім. Якщо цей псевдонім виявиться пов’язаний з справжнім автором, все, що він буде писати під цим ім’ям, буде асоціюватися тільки з ним.
У біткоіна в ролі псевдоніма виступає адреса, на яку користувач отримує монети або з якої відправляє кошти. Кожна транзакція за участю цієї адреси назавжди зберігається в блокчейні, і якщо адреса пов’язана з яким-небудь користувачем, всі інші транзакції також будуть пов’язані з ним.
У white-paper Сатоши Накамото рекомендується кожен раз при скоєнні нової транзакції використовувати нову адресу, що можна порівняти з написанням багатьох книг під різними псевдонімами. Ця рекомендація залишається актуальною і сьогодні, проте часто і цього виявляється недостатньо, щоб забезпечити приватність і анонімність користувачів.
Зарадити цьому – з різним ступенем ефективності – можуть технології, запропоновані розробниками біткоіну. Нижче представлений адаптований переклад статті Аарона ван Вірдума в Bitcoin Magazine, присвячений найперспективнішим останнім проектам із захисту приватності і анонімності в мережі біткоін.
З самого моменту своєї появи біткоін ніколи не давав справжньої приватності. І хоча white paper Сатоши Накамото і говорить про те, що приватність є метою протоколу, урядові структури, аналітичні компанії та інші зацікавлені сторони (давайте називати їх «шпигунами») володіють можливостями аналізувати публічний блокчейн і p2p-мережу, групуючи біткоіни-адреси і пов’язуючи їх з IP-адресами або інший ідентифікаційної інформацією.
Недостатня приватність – це проблема. Назвемо лише кілька прикладів: користувачі біткоіна можуть не бажати, щоб хтось знав, на що вони витрачають свої гроші, скільки вони заробляють і чим володіють, а компанії можуть не бажати, щоб інформація про транзакції потрапила до конкурентів. Крім того, недостатня приватність може привести до втрати взаємозамінності – характеристики, що означає, що кожна монетарна одиниця має ту ж цінність, що і будь-яка інша. Це основне вимога до грошей. Наприклад, якщо можна встановити, що певні монети в якийсь момент були використані в політично неоднозначних цілях, у кого-то може виявитися менше бажання приймати ці «заплямовані» монети в якості оплати, а це завдає шкоди взаємозамінності всіх біткоінів.
На щастя, вести стеження за користувачами біткоіну стає все складніше. Останнім часом з’явилося кілька рішень щодо підвищення приватності, деякі з них будуть доступні до кінця цього або протягом наступного року.
1. TumbleBit
Розробка TumbleBit ведеться вже майже два роки, і це одне з найбільш очікуваних рішень, спрямованих на захист анонімності користувачів біткоін. TumbleBit є протоколом мікшування монет, який використовує централізований перемикач для створення платіжних каналів між учасниками сесії мікшування. Використовуючи ці канали, всі учасники сесії можуть відправляти монети і отримувати у відповідь відповідну кількість інших монет. Цей процес знищує сліди володіння монетами – ні шпигуни, ні інші учасники сесії не можуть визначити, хто і кому платив. Що ще більш важливо, TumbleBit використовує такі криптографічні прийоми, які не дають можливості навіть самому перемикачу встановити зв’язок між користувачами.
TumbleBit вимагає двох ончейн-транзакцій на учасника (одна для відкриття каналу, інша – для його закриття). Це рішення працює в середовищі що не вимагає довіри, однак пов’язане з більш високими транзакційними комісіями.
TumbleBit вперше був запропонований в 2016 році науково-дослідницькою командою Бостонського університету, Університету Джорджа Мейсона і Університету штату Північна Кароліна під керівництвом Етана Хейлмана. Восени того ж року протокол був представлений на конференції Scaling Bitcoin Milan.
Справжнім поштовхом до розвитку TumbleBit стала імплементація ранньої версії протоколу, автором якої є розробник NBitcoin Ніколас Доріер. Пізніше технологію вдосконалили спеціалізується на питаннях приватності Адам Фічор і інші розробники, і в підсумку вона була інтегрована в Breeze Wallet від команди Stratis.
Офіційний реліз Breeze Wallet відбувся близько місяця тому, і це означає, що TumbleBit тепер доступний будь-якому користувачеві, хоча рівень використання гаманця і, відповідно, самого інструменту для забезпечення анонімності, поки ще невисокий.
2. Chaumian CoinJoin і ZeroLink
Технологія CoinJoin була вперше запропонована розробником Bitcoin Core Грегорі Максвеллом ще в 2013 році. Суть прийому полягає в об’єднанні кількох транзакцій в одну велику транзакцію, за рахунок чого ховається, які саме біткоіни пересилаються з відправляють адрес (входи) на отримують адреси (виходи).
Простий приклад: припустимо, що Еліс, Боб і Керол хочуть змікшувати монети між собою. За допомогою CoinJoin вони можуть створити транзакцію, яка буде відправляти гроші їм самим на нові адреси, не прив’язані до їх ідентифікаційним даними. За умови, що Еліс, Боб і Керол мають однакову кількість монет, шпигуни не можуть визначити, кому саме належать ці нові адреси. Однак, якщо кількість монет буде відрізнятися, буде легко визначити, які монети і куди були відправлені.
CoinJoin-транзакції доступні вже багато років, проте довгий час була присутня одна проблема: кому – Еліс, Бобу або Керол – необхідно цю транзакцію створити. Ця людина повинна знати, які саме старі адреси використовуються для відправки монет на нові адреси, інакше створити транзакцію буде неможливо. Якщо ця людина виявиться шпигуном, що часто не можна передбачити, усі зусилля стають безглуздими: шпигун зможе встановити приналежність монет.
Цю проблему, втім, можна вирішити, використовуючи прийом, який в тому ж 2013 році згадав Грегорі Максвелл. Він називається Chaumian CoinJoin.
При цьому методі Еліс, Боб і Керол підключаються до центрального Chaumian CoinJoin-сервера, оператором якого може виступати провайдер гаманця. Спершу вони надають всі свої адреси, а також отримують адреси, криптографично підписані сервером. Після цього Еліс, Боб і Керол відключаються від сервера, щоб перепідключитися через приховане з’єднання (наприклад, Tor) і надалі вже демаскувати адреси. Задіявши технологію сліпих підписів Чаум, сервер може верифікувати, що ці демаскувані адреси відповідають замаскованим адресами, тобто підтвердити, що адреси дійсно належать Еліс, Бобу і Керол, а не тому хто може здійснювати атаку. При цьому сервер як і раніше не знає, яка із адрес кому належить.
3. Підписи Шнорра
Незважаючи на те що технологія CoinJoin, а потім і Chaumian CoinJoin, була запропонована ще кілька років тому і весь цей час була доступна, по-справжньому вона так і не була реалізована. CoinJoin-транзакції вимагають певного рівня технічної підкутості і дають мало переваг тим, хто про приватність особливо не дбає, і жоден з популярних гаманців її так і не запропонував.
Підписи Шнорра, технологія, яку розробник Bitcoin Core і Blockstream Пітер Велле недавно представив у вигляді офіційної пропозиції щодо покращення біткоін. Названі так на честь свого винахідника Клауса-Петера Шнорра, підписи Шнорра вважаються багатьма криптографами кращими з наявних криптографічних підписів. Їх практичною перевагою для біткоіна є можливість об’єднати безліч підписів в один. Це означає, що для транзакції потрібен тільки один підпис, незалежно від того, як багато адрес відправників в неї включено. Підписи Шнорра таким чином пропонують додаткову перевагу при використанні CoinJoin: вони дають всім учасникам не тільки можливість об’єднати свої транзакції в одну, але також об’єднати всі підписи в цій транзакції. Це робить розмір CoinJoin-транзакції менше, ніж у всіх окремих транзакцій разом узятих, і як наслідок веде до зниження транзакційних комісій, що стягуються майнерами.
Таким чином, підписи Шнорра дають економічну вигоду при використанні цієї орієнтованої на захист анонімності опції, і це може виявитися достатнім стимулом для того, щоб її впровадили гаманці, зробивши доступною для широкого кола користувачів.
За оптимістичними прогнозами підписи Шнорра будуть доступні вже в 2019 році.
4. STONEWALL
Ще одна пов’язана з CoinJoin і спрямована на забезпечення приватності технологія під назвою STONEWALL була представлена розробниками Samourai Wallet в травні 2018 року. За своєю суттю STONEWALL-транзакції є звичайними транзакціями: за їх допомогою один користувач відправляє біткоіни іншому. Хитрість полягає в тому, що вони включають в себе необов’язкову кількість адрес-відправників і змінюють адреси отримувачів. Завдяки цьому створюється видимість CoinJoin-транзакції, хоча в дійсності це не так.
Ідея STONEWALL-транзакцій полягає в тому, щоб перешкодити шпигунам, коли вони роблять якісь висновки при аналізі блокчейна біткоіна. Якщо шпигуни не можуть достовірно визначити, чи мають вони справу з CoinJoin-транзакціями чи ні, будь-який висновок, що ґрунтується на цих даних, виявляється марним.
5. Dandelion
Зовсім інший метод деанонімізація користувачів біткоіни полягає в аналізі p2p-мережі – Ноди-шпигуни можуть моніторити мережу в спробі визначити походження транзакцій, оскільки перша нода, яка передає транзакцію, швидше за все її і створила.
Рішення під назвою Dandelion було запропоновано командою дослідників з Університету Карнегі-Меллона, Університету Іллінойсу і Массачусетського технологічного інституту (MIT). Професор Університету Карнегі-Меллон Джулія Фанти презентувала його на недавній конференції Building on Bitcoin в Лісабоні.
Dandelion ускладнює аналіз мережі, змінюючи порядок розподілу транзакцій. Замість негайної трансляції та передачі нової транзакції якомога більшій кількості нод, протокол відправляє нову транзакцію тільки однієї ноді. Ця нода випадковим чином вирішує, чи передає вона далі цю транзакцію наступної ноді чи ні. Якщо транзакція передається тільки однієї ноді, ця наступна нода приймає точно таке ж рандомноє рішення і т. Д.
6. BIP-151
BIP-151 – ще одне більш стара пропозиція щодо обмеження аналізу мережі біткоіни від розробника Bitcoin Core і Shift Йонаса Шнелль. Певною мірою воно досить прямолінійний: метод дозволяє біткоіни-Нодаме шифрувати проходить між ними трафік (транзакції і дані про блоках).
У своєму чистому вигляді BIP-151, однак, не є панацеєю щодо забезпечення приватності. Не тільки блокчейн біткоіни є публічним, але і, що більш важливо, Ноди можуть обмінюватися даними з тими самими шпигунами, від яких вони вважали за краще б ці дані приховувати. Проте BIP-151 може бути основою для протидії декільком різновидам атак на анонімність, включаючи атаку посередника. Також використовується при цьому методі p2p-шифрування може виявитися корисним і при інших сценаріях – наприклад, стає неможливим відстеження трафіку в мережі біткоіни через ISP або відкриті wifi-мережі.
Після своєї появи BIP-151 кілька років залишалося в тіні, проте недавно Шнелль знову повернувся до цієї пропозиції, переписавши його з метою подальшого обговорення і потенційного включення в кодову базу біткоіни. Можливо, це станеться вже в наступному році.
7. Компактна фільтрація блоку на стороні клієнта
Щоб користуватися біткоін без необхідності завантажувати і верифікувати весь блокчейн, багато хто вдається до легких клієнтів, наприклад, мобільного гаманця. На жаль, у всіх цих легких клієнтів дуже слабкий рівень захисту приватності: як правило, вони діляться адресами з центральним сервером або рандомних нодою в мережі, які можуть бути шпигунами або самі перебувати під наглядом.
Багато легких клієнтів, які діляться адресами з рандомних нодою, використовують метод під назвою «Спрощена верифікація платежів» (Simplified Payment Verification – SPV). Для запиту потенційно релевантних для них транзакцій ці SPV-клієнти зазвичай використовують фільтр Блума.
Цей фільтр може дати хибно0позитивне спрацьовування, що означає, що навіть якщо користувач і не викачує весь блокчейн, SPV-клієнт запитує більшу кількість транзакцій, ніж йому фактично необхідно. Таким чином SPV-гаманці фактично розкривають всі свої адреси Нодам, у яких вони запитують дані.
Для вирішення цієї проблеми розробники Lightning Labs Олаолува Осунтокун і Алекс Аксельрод, а також розробник Coinbase Джим Поус запропонували нове рішення під назвою «компактна фільтрація блоку на стороні клієнта».
Спочатку воно було задумано для Lightning-гаманця Neutrino від Lightning Labs, але також може бути використано і звичайними біткоіни-гаманцями. Так, компактна фільтрація блоку на стороні клієнта вже інтегрована в бета-реліз Wasabi Wallet.
Суть рішення полягає у фактичному порушенні порядку роботи SPV-гаманців: замість запиту релевантних транзакцій за допомогою створення фільтра Блума, повні Ноди створюють інший схожий фільтр, завдяки якому ці транзакції не відображаються. Якщо ж фільтр знаходить відповідність, гаманець замість хибно-позитивного спрацьовування звертається до релевантного блоку щоб побачити, чи дійсно ця відповідність відноситься до конкретної транзакції.
Таким чином, оскільки SPV-гаманці з компактною фільтрацією блоку на стороні клієнта більше не запитують у блока будь-яку специфічну інформацію, вони також не розкривають ніяких даних про історію транзакцій.
8. Liquid і Confidential Transactions
Liquid став першим комерційним сайдчейном, розробленим блокчейн-компанією Blockstream. Його головне завдання – забезпечити канали транзакцій між біржами та іншими біткоін-компаніями з високими обсягами (наприклад, брокерами), даючи їм можливість пересилати один одному біткоіни і інші активи набагато швидше, ніж це дозволяє блокчейн біткоіну. В майбутньому звичайні користувачі (в першу чергу трейдери) також повинні отримати доступ до сайдчейнів через спеціальні Liquid-гаманці.
Одна з імплементованих у Liquid функцій – Confidential Transactions (конфіденційні транзакції). Це криптографічний метод маскування суми відправлених і отриманих коштів, при якому всі користувачі Liquid можуть верифікувати, що отримані суми не перевищують відправлені суми. Іншими словами, не знаючи, які саме суми були відправлені, вони можуть верифікувати, що монети не були створені з повітря.
В контексті Liquid це серед іншого означає, що кошти можуть переміщатися між біржами і ніхто не буде знати, про які саме суми йдеться. Конкуренти не зможуть знати, які суми зберігаються на біржах, а трейдери не зможуть використовувати таку інформацію при торгах, що вони нерідко роблять сьогодні: публічна природа блокчейна дає можливість тим, хто має інформацію про майбутню велику операцію, укласти угоду для отримання прибутку від зміни цін .
Крім того, коли Liquid стане доступний звичайним трейдерам, вони зможуть використовувати протокол для приховування своїх балансів від шпигунів не тільки коли переміщують кошти на іншу біржу, але і коли виводять їх з біржі на тимчасову адресу в сайдчейні.
Додатково для Liquid-гаманців можуть бути розроблені рішення в стилі CoinJoin, що забезпечить особливо потужні комбінації технологій із захисту приватності. Наприклад, при об’єднанні кількох транзакцій в одну і одночасному приховуванні сум встановити зв’язки між адресами буде практично неможливо.
Більш того, Confidential Transactions також можуть бути імплементовані в основний протокол біткоіни, і вже є кілька ідей, як це виконати через назад-сумісний софтфорк. Втім, незважаючи розвиток технологій, такі апгрейди все ще будуть надавати негативний ефект на масштабованість і, швидше за все, як і раніше далекі від реальності.
Відзначимо, що в даний огляд не ввійшли більш старі методи на кшталт stealth-адрес, де повна нода біткоіна використовується в якості гаманця, CoinControl, JoinMarket і інших CoinJoin-рішень, Ricochet, PayNyms, Spinx в Lightning Network, Monero-swapping і централізовані сервіси мікшування.