Вступ
З точки зору конфіденційності ця структура далеко не ідеальна. У такій системі, як Bitcoin, кожна транзакція може бути пов'язана з попередньою. Монети технічно невзаємозамінні, а це означає, що кожна з них може бути прив'язана до конкретних транзакцій. Ніхто не може заборонити вам відправляти Bitcoin, але вони можуть відмовитись прийняти вашу транзакцію, якщо ці монети раніше пройшли через адресу з чорного списку.
У гіршому випадку відсутність взаємозамінності може серйозно вплинути на основи системи. Чисті монети можуть коштувати більше, тоді як старіші будуть менш цінними, враховуючи їхню історію.
Конфіденційність Bitcoin часто перебільшується. Можна відстежувати не лише монети, а й користувачів. Механізм цієї монети передбачає псевдоанонімність (публічні адреси видно замість імен), але і він не позбавлений недоліків. Складні методи аналізу можуть зі зростаючою точністю групувати адреси у спробі деанонімізувати мережеві об'єкти.
Одним із запропонованих покращень було використання конфіденційних транзакцій, щоб зробити транзакції справді приватними.
Що таке конфіденційні транзакції?
Про конфіденційні транзакції вперше заговорив Adam Back, генеральний директор Blockstream, ще в 2013 році, а потім їх розширив розробник Bitcoin, Gregory Maxwell. Maxwell описав проблеми, згадані в першому розділі (взаємозамінність і слабка псевдоанонімність), і запропонував рішення. Огляд суми переказів може бути прихований від учасників мережі, і лише дві сторони знатимуть скільки монет було надіслано.
Як тут використовується криптографія
Відповідь полягає саме в гомоморфічному шифруванні, зокрема у схемі під назвою "зобов'язання Педерсена". Такий тип шифрування дозволяє стороннім особам проводити різні операції із зашифрованими даними (з якими вони не можуть ознайомитися) для різних цілей.
Звичайний хеш може використовуватися для фіксації даних, які ви хочете розкрити пізніше. Припустимо, ви хочете оголосити конкурс у соціальних мережах, де той, хто вгадає вашу улюблену біржу, отримає приз 0,01 BTC. Учасники можуть бути скептичними, оскільки припускають, що ви можете просто переглянути відповіді після закінчення конкурсу та вибрати біржу, яка не була згадана.
f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191
Проте насправді це не дуже безпечно. Хоча ваші підписники не можуть перепроєктувати алгоритм, вони можуть скласти список можливих бірж, хешуючи кожну з них, доки не знайдуть відповідність. Ми можемо зменшити ймовірність цього, додавши деякі випадкові дані, які називають сліпучим фактором, до даних, які ми збираємося хешувати.
"Зобов'язання Педерсена" дозволяє нам додавати входи, уникаючи різних зобов'язань. Як це ілюструє рівняння Максвела:
C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)
Тут також є ще декілька кроків, що включають криптографію на еліптичних кривих та перевірку діапазону, але основна ідея полягає в тому, що перед кожною адресою користувача стоїть зобов'язання Педерсена. При надсиланні коштів створюються два додаткові зобов'язання (одне для зміни адреси, яка має бути повернена користувачеві, та одне для адреси призначення).
Ніхто не знає, скільки монет було відправлено, але можна перевірити, що зобов'язання щодо зміни та призначення (ліва частина рівняння Максвелла) додаються до вихідної адреси (права частина рівняння). Якщо все правильно складається, транзакція користувача дійсна, оскільки можна довести, що вхідні дані збігаються з даними на виході.
Який потенціал конфіденційних транзакцій?
Якби конфіденційні транзакції були реалізовані в Bitcoin, ми отримали б більш приватну систему. Як вхідні, так і вихідні дані були б замасковані від загального огляду, тоді як записи в регістрі обфусковані, але ноди все ще могли б підтверджувати справжність операцій. З таким значним підвищенням конфіденційності, Bitcoin могли б стати взаємозамінними, оскільки аналіз ланцюга більше не розкривав би історію кожної окремої одиниці монети.
В даний час малоймовірно, що конфіденційні транзакції будуть інтегровані в протокол. З такою додатковою функціональністю, транзакції стануть набагато більшими за стандартні, і враховуючи обмежений простір блоків, це тільки збільшить навантаження на мережу. Для цього також потрібно, щоб більшість учасників погодилася внести зміни до коду, що є вкрай трудомістким та складним завданням.
Заключні думки
Конфіденційні транзакції мають безліч переваг, але це слабкий компроміс, враховуючи всі технічні нюанси. Криптовалюти регулярно борються зі слабкою масштабованістю та пропускною спроможністю на базовому рівні, а великі об'єми таких транзакцій категорично не підходять для цього. Тим не менш, прихильники конфіденційності вважають, що приховувати суми транзакцій та адреси учасників є необхідністю, щоб дозволити криптовалюті виступати в якості взаємозамінних грошей.