64 / 736PRIV

Приватність у Bitcoin

Bitcoin Privacy

Оплачуючи щось біткоїном, ви навряд чи хочете показати одержувачу всі свої фінанси. Але публічна історія платежів може розкрити більше, ніж здається. Приватність починається з розуміння того, що видно, хто вас знає та які відомості ви без потреби пов’язуєте.

Приватність у Bitcoin означає обмеження зв’язків між публічними платежами, конкретними людьми та їхніми іншими коштами. Звичайна транзакція не вимагає офіційного імені, але показує використані кошти, нові виходи та суми. Ім’я може додати рахунок за послугу, обліковий запис або сам одержувач. Тому Bitcoin не є анонімним автоматично.

Анна отримала за роботу 100 000 sat — найменших одиниць біткоїна. Згодом вона платить із цих коштів Павлу 20 000 sat; 79 000 sat повертаються до її гаманця, а 1 000 sat становлять комісію. Вихід містить суму й умови, за яких її можна витратити. Мережа бачить усю операцію. Павло знає свою суму й Анну, тому може спробувати визначити, який інший вихід є її рештою. Це не відкриває автоматично всі її заощадження, але дає підказку. На відміну від банківської виписки, запис доступний не лише банку та власнику рахунку. Будь-хто може повернутися до нього навіть через роки. [1]

Незнайомець бачить публічний запис, Павло ще й знає Анну, а біржа може мати її документи. Постачальник гаманця може знати, про які адреси запитує застосунок. Визначення того, від кого і які відомості ви хочете захистити, називається моделлю загроз. Це не означає вважати всіх зловмисниками. Воно допомагає обрати доречний захист: приховати доходи від клієнтів — не те саме, що захистити мережеве з’єднання. Приватний ключ — це секретні дані, за допомогою яких гаманець створює цифровий підпис для схвалення платежу. Саме лише збереження ключа в таємниці не приховує історію платежів. [1] [3]

Анна може давати кожному клієнтові нову адресу для отримання коштів. Так не вдасться просто підсумувати всі платежі на одну багаторазово використану адресу. Гаманець зазвичай створює нові адреси й для решти, що повертається відправнику, — change. Це добрий початок, але не гарантія неможливості встановити зв’язки. Якщо згодом Анна об’єднає кошти з різних адрес в одному платежі, вона сама створить нову підказку. Публічна адреса для пожертв — окремий випадок: прозорість може бути навмисною, проте надходження на неї вже не приватні. [1]

Гаманець не має одного нероздільного балансу. Він керує невитраченими виходами попередніх транзакцій — UTXO — і вибирає деякі з них як входи платежу. Коли кілька входів використовують разом, аналітик часто припускає спільного власника. Це евристика, тобто спосіб робити припущення, а не доказ: спільні транзакції кількох людей спростовують це припущення. Coin Control дозволяє впливати на вибір. Позначки походження коштів допомагають підтримувати розділення, але залишаються нотатками гаманця й нічого не нав’язують мережі. Ручний вибір без розуміння решти може погіршити і приватність, і комісію. [2] [7]

Розширений відкритий ключ XPUB дає змогу виводити інші відкриті ключі, а разом із правилами гаманця — й адреси відповідної гілки. Маючи ці дані, можна стежити за її платежами, але самого XPUB недостатньо для підписання платежу. Масштаб залежить від того, який ключ передано: він не обов’язково розкриває весь гаманець, але все одно є чутливим. Сервіс також може пов’язати виведення коштів з ім’ям, перевіреним через KYC — встановлення особи клієнта. Вебоглядач транзакцій може записувати ваші запити та їхнє джерело. Ніколи не передавайте слова відновлення або приватний ключ для перевірки балансу. Навіть відкриті дані варто поширювати лише в потрібному й зрозумілому обсязі. [1] [6]

Застосунок має визначити, які платежі належать йому. Якщо він надсилає перелік адрес чужому серверу, то може розкрити їхній зв’язок. Full Node — це комп’ютер із програмою, яка самостійно перевіряє транзакції та блоки Bitcoin за правилами мережі. Власний Full Node допомагає, коли гаманець справді отримує через нього дані, за потреби через власну службу індексування. Просто встановити вузол поруч із гаманцем недостатньо. Легкі гаманці можуть використовувати компактні фільтри BIP 157 і шукати збіги локально замість надсилання списку адрес. Проте інші мережеві сліди залишаються. Tor може обмежити розкриття IP-адреси — адреси вашого інтернет-з’єднання, але не змінює публічних сум чи зв’язків між транзакціями. [1] [3]

Спостерігачеві не обов’язково знаходити ім’я безпосередньо в адресі. Може вистачити публічного рахунку з точною сумою, часу оголошеної покупки та наступного платежу. Будова транзакції й імовірна решта дають додаткові підказки. Жодна ознака сама не доводить власність надійно, але сукупність посилює припущення. Поділ коштів між гаманцями теж не допоможе, якщо потім знову їх об’єднати. Розширена функція avoid partial spends у Bitcoin Core може вибрати виходи однієї адреси для спільного витрачання. Це обмежує поступове пов’язування нових платежів із цієї адреси, але може додати входи й збільшити комісію. Результат також залежить від заданого ліміту комісії; це не універсальний засіб анонімізації. [1] [5]

CoinJoin об’єднує кошти кількох людей в одну транзакцію. Спостерігачеві може стати складніше визначити, якому початковому власнику належить кожний новий вихід. PayJoin працює інакше: одержувач додає власний вхід до платежу відправника, тож просте припущення про єдиного власника всіх входів не справджується. Жоден метод не стирає історію й не гарантує анонімності. Результат залежить від протоколу, учасників, відомостей інших спостерігачів і подальших платежів. Перед використанням потрібно зрозуміти координацію, комісії та наслідки переривання процесу. Сама назва функції нічого не гарантує. [2] [7]

Silent Payments за BIP 352 дозволяє опублікувати постійні платіжні реквізити, з яких відправники формують різні виходи призначення. Одержувачеві не потрібно заздалегідь передавати кожному нову звичайну адресу. Однак його гаманець має підтримувати протокол і переглядати дані для виявлення надходжень. Специфікація відокремлює ключ пошуку платежів від ключа витрачання. Резервування та відновлення мають відповідати гаманцю; використані мітки також можуть бути важливими. Мітки Silent Payments не створюють окремих ідентичностей: їхні публічні реквізити мають спільний відкритий ключ сканування. Цей метод теж не приховує всіх подальших рухів коштів. [4]

Для кожного звичайного надходження використовуйте нову адресу, не публікуйте без потреби платіжні документи та з’ясуйте, звідки гаманець отримує дані. Пам’ятайте про походження коштів і розділяйте цілі, які не хочете пов’язувати. Перед ручним вибором входів чи складною технікою зрозумійте їхні наслідки: помилки не є неминучою платою за приватність. Перевірка адрес, резервних копій і комісій залишається не менш важливою. Мета — розкривати менше зайвої інформації, а не вірити, що ніхто ніколи не зможе пов’язати вас із жодним платежем. [1] [3] [4]

Для повної картини прочитайте також Псевдонімність, CoinJoin, Coin Control, KYC, Bitcoin, Біткоїн-адреса. На цю статтю також посилаються Watch-only Wallet, Coin Control, Change Address, Extended Public Key (xpub).

DOC · 001Bitcoin.org — Protect Your PrivacyДокументація DOC · 002BIP 78 — A Simple Payjoin ProposalСпецифікація DOC · 003BIP 157 — Client Side Block FilteringСпецифікація DOC · 004BIP 352 — Silent PaymentsСпецифікація DOC · 005Bitcoin Core 0.21 — Avoid Partial SpendsДокументація DOC · 006BIP 32 — Hierarchical Deterministic WalletsСпецифікація DOC · 007Gregory Maxwell — CoinJoin: Bitcoin privacy for the real worldПервинне джерело
Переглянуто: Спочатку джерела · Не інвестиційна порада