Як вони це роблять? Огляд технологій анонімізації криптовалют

Напевно ви, як користувач біткоїну, ефіру або будь-якої іншої криптовалюти, були стурбовані тим, що будь-хто може бачити, скільки монет у вас у гаманці, кому ви їх переводили і від кого отримували. Навколо анонімних криптовалют ходить багато суперечок, але з чим не можна не погодитися — як сказав керуючий проектом Monero Рікардо Спаньї (Riccardo Spagni) у своєму Twitter-акаунті: «Що якщо я просто не хочу, щоб касир у супермаркеті знав, скільки грошей у мене на балансі і на що я їх витрачаю?»

Як вони це роблять? Огляд технологій анонімізації криптовалют

У цій статті ми розглянемо технологічний аспект анонімності — як вони це роблять, і наведемо короткий огляд найпопулярніших методів, їхні плюси та мінуси.

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

Існуючі на даний момент технології анонімізації умовно можна розділити на дві групи: засновані на замішуванні — де монети, що використовуються, замішуються з іншими монетами з блокчейну, — і технології, які використовують докази, засновані на поліномах. Далі ми зупинимося на кожній із цих груп і розглянемо їх плюси та мінуси.

Засновані на замішуванні

CoinJoin

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

В її основі лежить проста ідея — що якщо користувачі будуть скидатися та проводити свої платежі єдиною транзакцією? Виходить, якщо Арнольд Шварценеггер і Барак Обама скинулися і зробили два платежі Чарлі Шину і Дональду Трампу в одній транзакції, то складніше зрозуміти, хто профінансував передвиборну кампанію Трампа — Арнольд чи Барак.

Але з головного плюсу CoinJoin випливає його головний мінус – слабка захищеність. На сьогоднішній день вже є способи виявити CoinJoin-транзакції в мережі та зіставити набори входів наборам виходів шляхом порівняння сум витрачених та згенерованих монет. Приклад інструменту для такого аналізу CoinJoin Sudoku.

Плюси:

• Простота

Мінуси:

• Продемонстровано можливість злому

Monero

Перша асоціація, яка виникає за словами «анонімна криптовалюта», — Monero. Ця монета довела свою стійкість та приватність під мікроскопом спецслужб:

Як вони це роблять? Огляд технологій анонімізації криптовалют

В одній зі своїх недавніх статей ми дуже детально описали протокол Monero, і сьогодні підсумовуємо сказане.

У протоколі Monero кожен витрачений у транзакції вихід замішується з не менше ніж 11 (на момент написання статті) довільними виходами з блокчейну, тим самим ускладнюючи граф перекладів у мережі та роблячи завдання відстеження транзакцій обчислювально складним. Замішані входи підписуються кільцевим підписом, який гарантує, що підпис поставив власник однієї із замішаних монет, але не дає можливості визначити, хто саме.

Для приховування одержувачів кожна новостворена монета використовує одноразову адресу, що позбавляє спостерігача можливості (настільки, наскільки складною є завдання злому ключів шифрування, зрозуміло) пов'язати будь-який вихід з публічною адресою. А з вересня 2017 року Monero почала підтримувати протокол Конфіденційні операції (CT) з деякими доповненнями, таким чином, ще й приховуючи суми переказів. Трохи пізніше розробники криптовалюти замінили кільцеві підписи Борромео (Borromean signatures) на Bulletproofs, значно зменшивши розмір транзакції.

Плюси:

• Перевірена часом
• Відносна простота

Мінуси:

• Генерація та верифікація доказу повільніша, ніж у ZK-SNARKs та ZK-STARKs
• Не стійка до злому з використанням квантових комп'ютерів

Змішувальний

Mimblewimble (MW) був вигаданий як масштабована технологія анонімізації перекладів у мережі Bitcoin, але знайшов свою реалізацію як самостійний блокчейн. Використовується в криптовалютах сірий и BEAM.

MW примітний тим, що немає публічних адрес, а щоб відправити транзакцію, користувачі обмінюються виходами безпосередньо, у такий спосіб виключаючи можливість сторонньому спостерігачеві проаналізувати переклади від адресата до адресату.

Для приховування сум входів та виходів використовується досить поширений протокол, запропонований Грегом Максвеллом (Greg Maxwell) у 2015 році. Конфіденційні операції (CT). Тобто суми шифруються (а точніше, використовується схема зобов'язань), і замість них мережа оперує так званими commitment-ами. Щоб транзакція вважалася валідною, необхідна рівність сум витрачених монет та згенерованих плюс комісія. Так як цифрами безпосередньо мережа не оперує, рівність забезпечується за допомогою рівняння цих самих commitment-ів, що називається commitment to zero.

В оригіналі CT для гарантії невід'ємності значень (так званий range proof) використовують Borromean Signatures (кільцеві підписи Борромео), які займали дуже багато місця в блокчейні (близько 6 кілобайт на один вихід). У зв'язку з цим до мінусів анонімних валют, що використовують цю технологію, відносили великий розмір транзакції, проте зараз вирішили відмовитися від цих підписів на користь компактнішої технології — Bulletproofs.

У самому блоці MW немає поняття транзакції, є лише виходи, витрачені та згенеровані у ньому. Немає транзакції – немає проблеми!

Щоб запобігти деанонімізації учасника перекладу на етапі надсилання транзакції до мережі використовується протокол Кульбаба, який використовує ланцюжок proxy-нод мережі довільної довжини, що передають транзакцію один одному перед фактичним поширенням її по всіх учасників, таким чином заплутуючи траєкторію влучення транзакції в мережу.

Плюси:

• Малий розмір блокчейна
• Відносна простота

Мінуси:

• Генерація та верифікація доказу повільніша, ніж у ZK-SNARKs та ZK-STARKs
• Підтримку таких можливостей, як скрипти та мульти-підписи, складно реалізувати
• Не стійка до злому з використанням квантових комп'ютерів

Докази на поліномах

ZK-СНАРКИ

Вигадлива назва цієї технології розшифровується як «Нульові знання Succinct Non-Interactive Argument of Knowledge», що можна перекласти як «Стислий неінтерактивний доказ з нульовим розголошенням». Вона стала продовженням протоколу zerocoin, який далі еволюціонував у zerocash та вперше був реалізований у криптовалюті Zcash.

Загалом zero-knowledge proof дозволяє одній стороні довести другий істинність деякого математичного твердження, не розкриваючи жодних відомостей про нього. Щодо криптовалют, такі методи використовують для доказу того, що, наприклад, транзакція не виробляє монет більше, ніж витрачає, не розкриваючи при цьому сум переказів.

ZK-SNARKs дуже складна для розуміння, а для опису принципів її роботи буде потрібно не одна стаття. На офіційній сторінці Zcash, першої валюти, що реалізує цей протокол, опис його роботи присвячений 7 статей. Тому в цьому розділі ми обмежимося лише поверховим описом.

За допомогою поліномів алгебри ZK-SNARKs доводить, що відправник платежу володіє монетами, які витрачає, і що сума витрачених монет не перевищує суми згенерованих.

Цей протокол створювався з метою зменшення розміру доказу валідності затвердження і навіть швидкої його верифікації. Так, згідно презентації Зуко Вілкокса (Zooko Wilcox), CEO Zcash, розмір доказу займає лише 200 байт, а перевірити його коректність можна за 10 мілісекунд. Причому в останній версії Zcash розробникам вдалося знизити час генерації доказу до приблизно двох секунд.

Однак перед початком використання цієї технології потрібна процедура складного налаштування довіреними особами (trusted setup) «суспільних параметрів», яка називається «церемонією» (Церемонія). Вся складність полягає в тому, щоб у ході встановлення цих параметрів в жодній із сторін не залишилося приватних ключів від них, які називаються «токсичними відходами», інакше вона отримає можливість генерувати нові монети. Про те, як відбувається ця процедура, можна дізнатися з відео на YouTube.

Плюси:

• Мінімальний розмір доказу
• Швидка верифікація
• Щодо швидка генерація доказу

Мінуси:

• Складна процедура встановлення публічних параметрів
• Токсичні відходи
• Відносна складність технології
• Не стійка до злому з використанням квантових комп'ютерів

ЗК-СТАРКи

У авторів останніх двох технологій добре виходить грати з акронімами, і черговий акронім розшифровується як «Прозорий доказ, що масштабується, з нульовим розголошенням» («Zero-Knowledge Scalable Transparent ARguments of Knowledge»). Цей метод був покликаний вирішити недоліки ZK-SNARKs, які є на той момент: необхідність у довіреній установці публічних параметрів, наявність токсичних відходів, нестійкість криптографії до злому за допомогою квантових алгоритмів і недостатньо швидку генерацію доказу. Проте з останнім недоліком розробники ZK-SNARK упоралися.

ZK-STARKs також використовують докази, що ґрунтуються на поліномах. Технологія не передбачає використання криптографії на публічних ключах, натомість покладаючись на хешування та теорію передачі. Відмова від цих криптографічних засобів робить технологію стійкою до квантових алгоритмів. Але це має свою ціну — доказ може сягати кількох сотень кілобайт.

Зараз ZK-STARK не мають реалізації в будь-якій криптовалют, а існують тільки у вигляді бібліотеки libSTARK. Однак розробники мають на неї плани, що далеко йдуть за межі блокчейнів (у своєму Біла книга автори наводять приклад із доказом наявності ДНК у базі даних поліції). Для цієї мети була створена StarkWare Industries, яка на кінець 2018 року зібрала 36 млн доларів інвестицій від найбільших компаній галузі.

Про те, як влаштовані ZK-STARK, докладніше можна прочитати у постах Віталіка Бутерина (частина 1, частина 2, частина 3).

Плюси:

• Стійкість до злому квантовими комп'ютерами
• Щодо швидка генерація доказу
• Відносно швидка перевірка доказу
• Відсутність токсичних відходів

Мінуси:

• Складність технології
• Великий розмір підтвердження

Висновок

Блокчейн і попит на анонімність, що росте, ставлять перед криптографією нові вимоги. Так, зароджений у середині 1980-х розділ криптографії — докази з нульовим розголошенням — лише за кілька років поповнився новими методами, що динамічно розвиваються.

Таким чином, політ наукової думки зробив CoinJoin застарілим, а MimbleWimble — перспективним новачком із досить свіжими ідеями. Monero незмінно залишається непохитним гігантом на варті нашої конфіденційності. А SNARKs та STARKs, хоч і мають недоліки, можуть стати лідерами області. Можливо, найближчими роками зазначені нами пункти у графі «Мінуси» кожної з технологій стануть неактуальними.

Джерело: habr.com

Додати коментар або відгук