Х правил безпечного CEX-у від Віталіка Бутеріна

Фото - Х правил безпечного CEX-у від Віталіка Бутеріна
Віталік Бутерін поділився своїми ідеями стосовно ненадійності сучасних СЕХ та як це можна виправити
Банкрутство біржі FTX в черговий раз занепокоїло інвесторів і регуляторів. Перші вкотре втратили кошти, а другі отримали ще один привід для більш суворішого контролювання ринку криптовалют. Послугами FTX користувались не лише роздрібні, а й інституціональні інвестори, зокрема пенсійні фонди (наприклад, канадський Ontario Teachers' Pension Plan). Отже, питання «Хто винен?», «Чому так сталось?» та «Як таке не допустити у майбутньому?» знову стали на часі. 

У своєму блозі Віталік Бутерін поділився наслідками чергової CEX-ої революції і разом з СТО Coinbase Balaji Srinivasan та іншими колегами «по цеху» з бірж Coinbase, Kraken та Binance подискутував на тему, яким чином можливо уникнути подібних ситуацій у майбутньому.

Доказ балансу, плюс можливість регулювання з боку користувача

Приклади банкрутств Mt. Gox та FTX вказують на те, що шукати рішень чи покладатися виключно на стандартні підходи, які можуть працювати по відношенню до банків чи страхових компаній, немає ніякого сенсу. Це сфера віртуальних активів і тут діють свої правила гри, що не визнають будь-якої централізації чи впливу ззовні. Усі державні ліцензії та сертифікати, аудиторські перевірки якості корпоративного управління чи репутації ТОП-менеджерів не зможуть стати ефективними інструментами у сфері децентралізованих фінансів та блокчейн-технологій. Лізти зі старими, консервативними методами регуляції до світу цифрових активів та криптовалютного банкінгу – це те саме, що вимагати у космічних кораблів рухатись у просторі за правилами цивільної авіації.

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

Інший, ще більш амбітний підхід, може базуватися на побудові біржою такої автоматизованої системи управління ресурсами та фінансами, яка б перешкоджала вилученню чи нецільовому використанню коштів вкладника без його згоди на те. Це б дозволило створити новий, більш справедливий консенсус між «злими» CEX, що намагаються лише здаватися «добрими», та  непопулярними DEX, які не мають змоги «бути злими» але функціонують неефективно, використовуючи вразливі смарт-контракти та «діряві» протоколи.

Списки балансів та дерева Меркла: підтвердження платоспроможності згідно з правилами «старої школи»

Перша спроба біржі довести за допомогою блокчейн-технологій, що вони не дурять своїх інвесторів, була здійснена ще у 2011 році. Найбільша на той час CEX-біржа Mt. Gox довела наявність коштів, відправивши транзакцію на 424 242 BTC на заздалегідь оголошену адресу. 

У 2013 році почали точитися дискусії про те, як вирішити іншу проблему: довести, що загальний баланс біржі не менший від загальної суми вкладів інвесторів. Якщо надати докази, що сума всіх депозитів користувачів дорівнює X («наявність зобов’язань»), при цьому підтвердивши право власності на приватні ключі активів на суму X («доказ наявності активів»), тоді це можна вважати підтвердженням платоспроможності. Таким чином, СЕX може довести факт наявності достатньої суми коштів для виплат всім своїм інвесторам.

Найпростіший спосіб підтвердити наявність коштів – опублікувати список балансів. Це реєстр, у якому були б зазначені імена користувачів та баланси їх рахунків. Кожен користувач може перевірити наявність власного балансу і загального. Звісно, це певним чином порушує конфіденційність, тому слід схему дещо змінити: опублікувати список пар, що містили б лише хеш та баланс. Але, навіть таким чином, це все одно буде витоком конфіденційної інформації. У бажанні зберегти приватність Віталік пропонує вдатися до такого: техніки дерева Меркла.
Приклад дерева Меркла

Приклад дерева Меркла

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

Покращення конфіденційності та надійності за допомогою ZK-SNARK

ZK-SNARKs – це потужний криптографічний протокол з нульовим розголошенням, який захищає приватність. Алгоритм повинен забезпечувати коректну роботу та правильну відповідь, не порушуючи приватність користувача. І тому, звісно, ми можемо використати ZK-SNARK для покращення конфіденційності в протоколах підтвердження зобов’язань.

Найпростіше, що ми можемо зробити – це помістити всі депозити користувачів у дерево Меркла і використати ZK-SNARK, щоб довести, що всі баланси в дереві є невід’ємними та дорівнюють заявленій ​​вартості. Якщо ми додамо рівень хешування для конфіденційності, гілка Меркла, надана кожному користувачеві, нічого не розкриє про баланс будь-якого іншого користувача.
Приклад використання ZK-SNARK

Приклад використання ZK-SNARK

Корінь такої структури може бути навіть опублікований в публічному доступі. Така реалізація наближає нас до однієї з ідей, яка обговорювалася в статті «Децентралізоване суспільство: пошук душі Web3». Як вважають її автори (серед яких був і Віталік Бутерін), Web3 поки не вистачає душі, точніше багатьох душ, поєднаних між собою безліччю зв’язків. Це і має стати основою Web3, що, в свою чергу, закладе фундамент ще складнішої структури під назвою “децентралізоване суспільство” (DeSoc). Таке суспільство зможе повністю автономно існувати без посередників – урядів та корпорацій.

Підтвердження активів

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

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

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

Чи можливо зробити CEX некастодіальним сервісом?

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

Plasma працює шляхом поділу (дефрагментації) балансу на набір окремих «монет», де кожна з них отримує індекс і зберігається в певній позиції дерева Меркла у блоці Plasma. Щоб здійснити санкціонований користувачем переказ, слід розмістити транзакції в правильному місці дерева, корінь якого публікується в ланцюжку блоків. CEX не має важелів, щоб виконати такий переказ. Це схоже на відсутність у біржі прав на певні операції з чужими активами. 
Приклад технології Plasma. Монети зберігаються в смарт-контракті, який забезпечує дотримання правил протоколу Plasma під час виведення коштів

Приклад технології Plasma. Монети зберігаються в смарт-контракті, який забезпечує дотримання правил протоколу Plasma під час виведення коштів

Більш сучасна версія ідеї Plasma — це Validium. Технологія схожа на ZK-rollup, за винятком випадків, коли дані зберігаються офф-чейн. За цієї схеми «оператор» (CEX) не має можливості вкрасти кошти, хоча є ймовірність їх «зависання» у випадку бездіяльності біржі.

Як виявляється, CEX і DEX – не єдині формати функціонування бірж. Може існувати ще цілий спектр варіантів, включаючи різні форми гібридної централізації, де ви отримуєте певні переваги, наприклад, у вигляді ефективності, але все ще маєте багато криптографічних «огорож», які обмежують CEX у зловживанні становищем, унеможливлюючи крадіжку активів.

Висновок

У короткостроковій перспективі продовжують існувати два протилежних «класи» бірж: кастодіальні та некастодіальні. Сьогодні остання категорія — це просто DEX, такі як Uniswap. В майбутньому ми вже можемо побачити криптографічно «обмежені» CEX, де кошти користувачів зберігаються в чомусь на кшталт смарт-контракту Validium. Це вже буде next level.

Найпростіший спосіб покращити безпеку кастодіальних бірж — додати підтвердження резерву. Процедуру повинні поєднувати підтвердження активів і підтвердження зобов’язань.
У довгостроковій перспективі рано чи пізно ми прийдемо до того, що всі біржі стануть некастодіальними (DEX), а CEX та спроби крадіжки ними активів підуть в історію. Залишиться лише продумати user-friendly процедуру відновлення доступу до гаманців, від яких втрачений пароль чи приватні ключі, але це вже зовсім інша тема…