вступ
Біткойн часто розглядають як цифрову готівку, але це під питанням. Якщо Аліса заплатить Бобу 10 доларів готівкою, Боб не зможе дізнатися, звідки взялися ці гроші. Коли Боб переказує 10 доларів Керол, вона не може дізнатися, що 10 доларів надійшли від Аліси.
Однак невід'ємний публічний характер біткойна диктує іншу ситуацію. Історія певного токена (виходів невитрачених транзакцій або UTXO, якщо бути точним) доступна для перегляду всім. Це дуже схоже на написання суми операції та імен учасників на рахунку.
Однак публічні адреси можна зробити анонімними, що дозволяє користувачам легко приховувати свою особу. Однак біткоін не може повністю приховати свої сліди. Технологія аналізу для блокчейну стає все більш зрілою і може ефективно зіставляти адреси з ідентифікаторами. На додаток до інших методів стеження, спеціальні організації також можуть деанонімізувати користувачів криптовалюти. Щоб вирішити цю проблему, на ринку з’явилися різноманітні технології для відокремлення транзакцій.
Що таке змішування токенів?
Загалом кажучи, змішування токенів стосується всіх операцій, які змішують кошти за допомогою свопів. Однак у світі криптовалют змішування монет надають треті сторони. Постачальник послуг зазвичай бере токени користувача (разом з невеликою комісією), а потім повертає деякі токени, які не мають відношення до надісланих токенів. Такі послуги також відомі як стакани або монетні міксери.
Звичайно, безпека та анонімність таких централізованих служб викликає сумніви. Користувачі не мають жодної гарантії, що мікшер поверне кошти або що повернуті токени не будуть якимось чином зіпсовані. Крім того, під час використання мікшера IP-адреси та біткойн-адреси також можуть бути записані третіми сторонами. Результатом змішування токенів є те, що користувачі відмовляються від контролю над своїми коштами в надії отримати непов’язані токени.
Зараз існує нова схема під назвою «Трансакція CoinJoin», яка дає користувачам широкі можливості для відмови. Іншими словами, після використання CoinJoin точні докази зв’язку між користувачем і минулими транзакціями стираються. Багато рішень CoinJoin стають децентралізованою альтернативою міксерам. Хоча координатор може втрутитися, користувачам не потрібно відмовлятися від прав на управління коштами.
Що таке CoinJoin?
Торгівля CoinJion з'явилася в 2013 році і вперше була запропонована розробником Bitcoin Грегорі Максвеллом. У дописі він коротко представив структуру таких транзакцій і те, як отримати високий приватний прибуток без модифікації протоколу.
По суті, транзакції CoinJoin включають дані кількох користувачів. Перш ніж пояснювати, як працює ця технологія, давайте спочатку зрозуміємо структуру основної транзакції.
Біткойн-транзакції складаються з входів і виходів. Коли користувач бажає здійснити транзакцію, він приймає UTXO як вхідні дані, визначає вихідні дані та підписує введені дані. Будь ласка, зверніть увагу, що кожен вхід окремо підписується, але користувач може налаштувати кілька виходів (націлювання на різні адреси).

Взявши за приклад дану транзакцію, що складається з чотирьох входів (0,2 BTC кожен) і двох виходів (0,7 BTC і 0,09 BTC), ми можемо зробити низку припущень щодо неї. Спочатку подивіться, як відбувається платіж — відправник надсилає комусь один із вихідних даних, а потім отримує здачу. Ця транзакція використовує чотири входи, тому більший вихід має бути спрямований одержувачу. Будь ласка, зверніть увагу, що нам потрібно заплатити майнеру комісію, і результат втратить 0,01 BTC.
Відправник також може захотіти створити великий UTXO, таким чином поєднуючи невеликі вхідні дані для досягнення цільового виходу в 0,7 BTC.
Ми також можемо припустити, що кожен вхід має незалежний підпис. Цю транзакцію підписують щонайбільше чотири сторони. Саме так працює CoinJoin.
Як працює CoinJoin?
Основна ідея полягає в тому, що кілька сторін співпрацюють для створення транзакцій, причому кожна сторона надає вхідні дані та очікувані результати. Коли всі вхідні дані змішані, інші не можуть визначити відповідність між виходом і користувачем. Давайте подивимося на наступну діаграму:

Як показано на малюнку, чотири учасники хочуть порушити кореляцію між транзакціями. Вони координують один одного (або через спеціального координатора), щоб оголосити вхідні та вихідні дані, які вони бажають враховувати.
Координатор візьме всю цю інформацію та оформить її в транзакцію, змусивши кожного учасника підписати її перед трансляцією в мережу. Після підписання користувачем транзакцію неможливо змінити, доки вона не стане недійсною. Тому координатор не може красти кошти.
Ця транзакція діє як чорний ящик для змішування монет. Не забувайте, ми знищуємо початковий UTXO, щоб створити новий UTXO. Єдиним зв’язком між старим і новим UTXO є сама транзакція, і, звичайно, ми не можемо розрізняти учасників. Ідеальна ситуація полягає в тому, щоб знати, що є учасники, які вносять свій внесок і можуть бути власниками кінцевих результатів.
Незважаючи на це, ми не можемо бути впевнені на 100 відсотків. Бачачи описану вище транзакцію, хто може бути впевнений, що учасників чотири? Або лише одна особа надсилає кошти на його чотири адреси? Або дві людини купують двічі кожна, і кожна адреса отримує 0,2 BTC? Також можливо, що чотири людини надіслали кошти новим учасникам або що кошти повернулися до цієї особи. Ми не можемо визначити конкретні обставини.
Захист конфіденційності через «заперечення»
Поява реалізації CoinJoin була достатньою, щоб поставити під сумнів методи аналізу транзакцій. У багатьох випадках ви можете зробити висновок, що відбулося CoinJoin, але не можете визначити власника вихідних даних. Оскільки ця технологія стає все більш поширеною, припущення про те, що всі дані належать одному користувачеві, поступово слабшає. У широкій і комплексній екосистемі конфіденційність значно покращилася.
У прикладі вище ми припускаємо, що анонімний набір транзакцій має 4 власників вхідних даних, а власником вихідних даних може бути будь-який із цих 4 осіб. Чим більший набір анонімності, тим менша ймовірність знайти відповідність між транзакцією та початковим власником. На щастя, нещодавно розроблена схема CoinJoin дозволяє десяткам користувачів об’єднувати введені дані без довіри, значно покращуючи «заперечення». Нещодавно CoinJoin успішно провів сотні угод.
Підведіть підсумки
Для користувачів, які приділяють велику увагу конфіденційності, змішування валют є дуже ефективним додатковим методом. На відміну від запропонованих оновлень конфіденційності, таких як конфіденційні транзакції, ця технологія сумісна з існуючими протоколами.
Для користувачів, які довіряють чесності та ефективним методам третіх сторін, послуги змішування валют прості та зручні. Для користувачів, які віддають перевагу верифікованим рішенням або рішенням без зберігань, CoinJoin є чудовим вибором. Технічно підковані користувачі можуть абстрагуватися від більш складних механізмів вручну або за допомогою програмних засобів. Сьогодні, коли потреба в конфіденційності зростає, такі інструменти ставатимуть все більш популярними на ринку.
