Маючи понад 13 мільйонів користувачів, Gate.io усвідомлює важливість безпеки коштів і є піонером у вживанні ефективних заходів. Gate.io була однією з перших бірж, яка запровадила підтвердження резервів (PoR), оприлюднивши свій PoR ще в травні 2020 року. Лише після того, як у 2022 році FTX незаконно привласнила активи користувачів, що призвело до кризи ліквідності та подальшого банкрутства, підтвердження резервів стало широко визнаним як рішення для забезпечення безпеки коштів користувачів і підвищення надійності платформи.
Після інциденту з FTX Gate.io негайно оприлюднив своє друге підтвердження резервів. Незабаром після його випуску засновник Ethereum Віталік Бутерін опублікував статтю під назвою « Безпечний CEX: доказ платоспроможності та не тільки », обговорюючи, як біржі можуть краще продемонструвати свою платоспроможність. У статті пропонується інтеграція передових технологій, таких як zk-SNARK, на додаток до традиційного підтвердження резервів, щоб забезпечити більш публічний, прозорий і автентичний PoR. Gate.io планує використовувати нову технологію, згадану в статті, для оновлення свого підтвердження резервів, пропонуючи користувачам підвищену конфіденційність і справжню безпеку активів.
Підтвердження резервів (PoR) стосується перевірки балансів, що зберігаються на криптовалютних біржах або інших фінансових установах, перевіряючи, чи відповідає сума активів, зареєстрована компанією, фактичним активам. Якщо сума активів у резервах перевищує суму активів, депонованих користувачами, тобто коефіцієнт застави перевищує 100%, це доводить, що кошти користувачів забезпечені реальними активами на основі 1:1.
До появи PoR також існували пропозиції щодо передачі активів і підтвердження зобов’язань, щоб продемонструвати, що біржі мають достатньо коштів.
У 2011 році MtGox, на той час найбільша біржа біткойнів, довела, що володіє певними коштами, здійснивши транзакцію, яка перемістила 424 242 BTC на раніше оголошену адресу. Цей метод міг лише перевірити активи і не міг підтвердити зобов’язання біржі.
Пасиви біржі - це активи, депоновані її користувачами. Найпростіший спосіб підтвердити активи користувачів – опублікувати список із обліковими записами та балансами користувачів. Кожен користувач може отримати доступ до цього списку та перевірити, чи правильний баланс його рахунку. Однак цей спосіб має очевидні недоліки:
Немає гарантії, що список, наданий біржею, є достовірним.
У процесі розкривається інформація про обліковий запис і баланс користувача.
Цей метод також може використовувати структуру даних, таку як Merkle, щоб мінімізувати доступ до інформації користувача, що призводить до поточної концепції PoR.
Як показано на ілюстрації, дерево Merkle є деревоподібною структурою даних. Дані на нижньому рівні називаються «листовими вузлами», а середній можна назвати «проміжними вузлами». Два кінцевих вузла можуть пройти хешування (обробка будь-якого вхідного значення для отримання конкретного значення), щоб отримати значення проміжного вузла. Потім два проміжні вузли хешуються, щоб отримати унікальне вихідне значення для вузла наступного рівня. Після послідовних шарів обробки остаточно виходить кореневий вузол (Root) дерева Меркла. Це значення є унікальним, і будь-яка зміна в кінцевому вузлі призведе до зміни кореневого вузла.
Доказ запасу дерев Меркле (Джерело: Vitalik)
У цьому методі загальна сума активів, якою володіє біржа від імені її користувачів, визначається шляхом накопичення значень шар за шаром. Однак навіть після вставлення даних облікового запису користувача та балансу безпосередньо в листові вузли залишається незначний ризик витоку інформації. На прикладі ілюстрації користувач, позначений зеленим кольором (Чарлі), може отримати доступ до часткової інформації про Девіда, а також про баланси Аліси та Боба зліва. Отже, відбулися технічні вдосконалення листових вузлів:
Як показано на ілюстрації, ідентифікатор облікового запису користувача хешується разом із певним значенням.
Баланси користувачів розпорошені. Наприклад, 10ETH Чарлі можна розділити на дві суми 5ETH і розмістити в двох різних листових вузлах.
Ідентифікатор користувача та баланс хешуються окремо, а потім отримані значення хешуються ще раз. Підтвердження резервного фонду Gate.io використовує цей метод.
Незважаючи на ці досягнення на рівні кінцевого вузла, одна проблема залишається невирішеною: від’ємний баланс. На практиці, після того як користувачі внесуть криптовалюту, вони залучаються до біржових продуктів, таких як торгівля кредитним плечем і безстрокові контракти. У разі виникнення збитків максимальний збиток має становити 100% основної суми, тобто баланс облікового запису користувача завжди має бути більшим або дорівнювати нулю.
Як правило, негативний баланс ініціюється зловмисними біржами. Наприклад, якщо біржа незаконно привласнює 500 ETH, за стандартними розрахунками активи, якими насправді володіє біржа, можуть бути меншими за необхідну заставу, можливо, навіть меншими за 100%, що свідчить про незаконне привласнення. Проте біржа може створити обліковий запис, подібний до того, який називається Генрі, із балансом -500 ETH на наведеній ілюстрації, щоб зробити загальну вартість активів дерева Merkle рівною або меншою за активи, які біржа зберігає після незаконного привласнення, тим самим створюючи ілюзію. ставка застави перевищує 100%.
Вплив облікових записів із від’ємним значенням на ілюстрацію дерев Меркла (Джерело: Vitalik)
Щоб вирішити цю проблему, такі біржі, як Gate.io, почали використовувати технологію підтвердження з нульовим знанням zk-SNARK для покращення своїх резервних доказів.
Доказ з нульовим знанням — це техніка, за допомогою якої одна сторона може щось довести іншій, не розкриваючи конфіденційну інформацію. Щоб проілюструвати цю концепцію простим прикладом: якщо користувач A знає номер телефону користувача B, а користувач C запитує, чи знає його користувач A, користувач A може набрати номер B на місці, щоб переконатися, що він у нього справді є, не повідомляючи користувачеві фактичний номер. C. Цей процес, який зберігає конфіденційність користувача, але підтверджує знання, є прикладом механізму «підтвердження нульового знання».
У сфері криптовалют докази з нульовим знанням дозволяють користувачам продемонструвати право власності на закритий ключ, не розкриваючи сам ключ або будь-який електронний підпис. Платформи для торгівлі криптовалютою сподіваються підтвердити статус своїх резервних коштів, не розкриваючи конфіденційну інформацію про користувачів, як-от баланс індивідуальних рахунків.
zk-SNARK означає стислу, неінтерактивну техніку підтвердження з нульовим знанням. Він проходить «початкове довірене налаштування» для створення загального еталонного рядка (CRS), до якого всі перевіряючі можуть отримати прямий доступ. Це аналогічно системі оцінювання іспитів, де zk-SNARK безпосередньо завантажує правильні відповіді. Тоді учасники можуть перевірити свої відповіді (надіславши своє рішення питання до серверної системи, яка негайно надає правильний або неправильний результат), що робить процес високоефективним.
За допомогою zk-SNARK користувачі можуть засвідчити, що знають вихідне значення, яке було хешовано, не розкриваючи фактичний вміст цього значення. Не розкриваючи конкретних сум, цінностей або адрес, користувачі також можуть перевірити дійсність транзакції. Він зазвичай використовується в приватних транзакціях. У розробці резервних доказів zk-SNARK може попередньо визначити обмеження, усунути ненульові облікові записи та забезпечити конфіденційність користувачів.
Gate.io інтегрує технологію zk-SNARK з деревами Merkle, щоб створити більш прозорі, захищені конфіденційністю та стійкі до несанкціонованого доступу резервні докази.
Процес реалізації
Авторизація холодного гаманця
Усі холодні та гарячі гаманці переказують певну випадкову суму на адресу, визначену аудиторською фірмою для перевірки права власності. Потім аудиторська фірма підсумовує баланси з цих адрес, щоб визначити загальну суму, контрольовану біржею (включаючи кошти користувачів і власні).
Знімок балансу користувача
У певний момент часу робиться знімок балансів користувачів на платформі. Фактичний капітал рахунку розраховується з використанням таких даних, як невиконані замовлення, позичені суми, заборгованість по відсотках і нереалізовані прибутки/збитки.
Експорт залишків
Зашифрований UID і баланс кожного користувача надаються аудиторській фірмі з метою розрахунку сукупних активів користувача та публікації номера Merkle.
Пакетна обробка ресурсів користувача
Підтверджено, що чисті активи біржі є сумою чистих активів кожного користувача. Потім на основі чистих активів користувачів будується дерево Merkle.
(Основною причиною пакетної обробки є те, що Gate.io має 13 мільйонів користувачів. Одночасна обробка всіх даних користувача призведе до надзвичайних вимог до апаратного та програмного забезпечення. Пакетна обробка займає більше часу та є економічною без шкоди для безпеки чи конфіденційності даних.)
Реалізація обмежень схеми
① Перш ніж чисті активи користувача буде вставлено в дерево Merkle, вузол, що відповідає ідентифікатору цього користувача, буде порожнім.
② На основі списку активів користувача та ціни кожного активу обчисліть загальну суму активів/зобов’язань користувача. Загальні активи завжди повинні перевищувати загальні зобов'язання.
③ Додайте активи/зобов’язання користувача до активів/зобов’язань біржі.
④ Використовуючи ідентифікатор користувача, загальну суму активів/зобов’язань і список активів, обчисліть хеш статусу користувача. Вставте статус користувача в дерево Merkle, щоб отримати новий корінь Merkle.
⑤ Перед створенням операції для одного користувача хеш-значення кореня дерева має відповідати хеш-значенню кореневого вузла після створення операції для наступного користувача.
(Обмеження ① запобігає неправдивим даним вузлів, ② запобігає обліковим записам із від’ємними значеннями, а ⑤ гарантує, що дані користувача залишаються незмінними до та після операцій.)
Створення підтвердження резерву
Використовуючи схему zk-SNARK, визначте кількість ресурсів користувача, а потім видайте звіт про резервне підтвердження.
Для більш детального пояснення процесу розрахунку резерву та впровадження коду натисніть тут.
Продуктивність
На машині з 32 ядрами та 128 ГБ оперативної пам’яті потрібно 15 днів, щоб обчислити докази активів для 10 мільйонів користувачів. Обчислення доказу резерву можна розпаралелювати; таким чином, з 10 машинами це займає лише 1,5 дня.
Впровадження zk-SNARK є значним оновленням для Gate.io резервні докази та важливий крок у захисті активів користувачів. Цей чудовий захист безпеки та конфіденційності підвищує впевненість користувачів і встановлює новий стандарт для індустрії криптовалют. Як лідер галузі, Gate.io тепер має відкритий вихідний код, сподіваючись сприяти більш прозорим і безпечним розробкам галузі. У майбутньому Gate.io продовжуватиме свій інноваційний дух, досліджуючи та створюючи разом із своїми користувачами більш безпечне, комплексне криптографічне майбутнє, захищене конфіденційністю.
Список літератури
Маючи понад 13 мільйонів користувачів, Gate.io усвідомлює важливість безпеки коштів і є піонером у вживанні ефективних заходів. Gate.io була однією з перших бірж, яка запровадила підтвердження резервів (PoR), оприлюднивши свій PoR ще в травні 2020 року. Лише після того, як у 2022 році FTX незаконно привласнила активи користувачів, що призвело до кризи ліквідності та подальшого банкрутства, підтвердження резервів стало широко визнаним як рішення для забезпечення безпеки коштів користувачів і підвищення надійності платформи.
Після інциденту з FTX Gate.io негайно оприлюднив своє друге підтвердження резервів. Незабаром після його випуску засновник Ethereum Віталік Бутерін опублікував статтю під назвою « Безпечний CEX: доказ платоспроможності та не тільки », обговорюючи, як біржі можуть краще продемонструвати свою платоспроможність. У статті пропонується інтеграція передових технологій, таких як zk-SNARK, на додаток до традиційного підтвердження резервів, щоб забезпечити більш публічний, прозорий і автентичний PoR. Gate.io планує використовувати нову технологію, згадану в статті, для оновлення свого підтвердження резервів, пропонуючи користувачам підвищену конфіденційність і справжню безпеку активів.
Підтвердження резервів (PoR) стосується перевірки балансів, що зберігаються на криптовалютних біржах або інших фінансових установах, перевіряючи, чи відповідає сума активів, зареєстрована компанією, фактичним активам. Якщо сума активів у резервах перевищує суму активів, депонованих користувачами, тобто коефіцієнт застави перевищує 100%, це доводить, що кошти користувачів забезпечені реальними активами на основі 1:1.
До появи PoR також існували пропозиції щодо передачі активів і підтвердження зобов’язань, щоб продемонструвати, що біржі мають достатньо коштів.
У 2011 році MtGox, на той час найбільша біржа біткойнів, довела, що володіє певними коштами, здійснивши транзакцію, яка перемістила 424 242 BTC на раніше оголошену адресу. Цей метод міг лише перевірити активи і не міг підтвердити зобов’язання біржі.
Пасиви біржі - це активи, депоновані її користувачами. Найпростіший спосіб підтвердити активи користувачів – опублікувати список із обліковими записами та балансами користувачів. Кожен користувач може отримати доступ до цього списку та перевірити, чи правильний баланс його рахунку. Однак цей спосіб має очевидні недоліки:
Немає гарантії, що список, наданий біржею, є достовірним.
У процесі розкривається інформація про обліковий запис і баланс користувача.
Цей метод також може використовувати структуру даних, таку як Merkle, щоб мінімізувати доступ до інформації користувача, що призводить до поточної концепції PoR.
Як показано на ілюстрації, дерево Merkle є деревоподібною структурою даних. Дані на нижньому рівні називаються «листовими вузлами», а середній можна назвати «проміжними вузлами». Два кінцевих вузла можуть пройти хешування (обробка будь-якого вхідного значення для отримання конкретного значення), щоб отримати значення проміжного вузла. Потім два проміжні вузли хешуються, щоб отримати унікальне вихідне значення для вузла наступного рівня. Після послідовних шарів обробки остаточно виходить кореневий вузол (Root) дерева Меркла. Це значення є унікальним, і будь-яка зміна в кінцевому вузлі призведе до зміни кореневого вузла.
Доказ запасу дерев Меркле (Джерело: Vitalik)
У цьому методі загальна сума активів, якою володіє біржа від імені її користувачів, визначається шляхом накопичення значень шар за шаром. Однак навіть після вставлення даних облікового запису користувача та балансу безпосередньо в листові вузли залишається незначний ризик витоку інформації. На прикладі ілюстрації користувач, позначений зеленим кольором (Чарлі), може отримати доступ до часткової інформації про Девіда, а також про баланси Аліси та Боба зліва. Отже, відбулися технічні вдосконалення листових вузлів:
Як показано на ілюстрації, ідентифікатор облікового запису користувача хешується разом із певним значенням.
Баланси користувачів розпорошені. Наприклад, 10ETH Чарлі можна розділити на дві суми 5ETH і розмістити в двох різних листових вузлах.
Ідентифікатор користувача та баланс хешуються окремо, а потім отримані значення хешуються ще раз. Підтвердження резервного фонду Gate.io використовує цей метод.
Незважаючи на ці досягнення на рівні кінцевого вузла, одна проблема залишається невирішеною: від’ємний баланс. На практиці, після того як користувачі внесуть криптовалюту, вони залучаються до біржових продуктів, таких як торгівля кредитним плечем і безстрокові контракти. У разі виникнення збитків максимальний збиток має становити 100% основної суми, тобто баланс облікового запису користувача завжди має бути більшим або дорівнювати нулю.
Як правило, негативний баланс ініціюється зловмисними біржами. Наприклад, якщо біржа незаконно привласнює 500 ETH, за стандартними розрахунками активи, якими насправді володіє біржа, можуть бути меншими за необхідну заставу, можливо, навіть меншими за 100%, що свідчить про незаконне привласнення. Проте біржа може створити обліковий запис, подібний до того, який називається Генрі, із балансом -500 ETH на наведеній ілюстрації, щоб зробити загальну вартість активів дерева Merkle рівною або меншою за активи, які біржа зберігає після незаконного привласнення, тим самим створюючи ілюзію. ставка застави перевищує 100%.
Вплив облікових записів із від’ємним значенням на ілюстрацію дерев Меркла (Джерело: Vitalik)
Щоб вирішити цю проблему, такі біржі, як Gate.io, почали використовувати технологію підтвердження з нульовим знанням zk-SNARK для покращення своїх резервних доказів.
Доказ з нульовим знанням — це техніка, за допомогою якої одна сторона може щось довести іншій, не розкриваючи конфіденційну інформацію. Щоб проілюструвати цю концепцію простим прикладом: якщо користувач A знає номер телефону користувача B, а користувач C запитує, чи знає його користувач A, користувач A може набрати номер B на місці, щоб переконатися, що він у нього справді є, не повідомляючи користувачеві фактичний номер. C. Цей процес, який зберігає конфіденційність користувача, але підтверджує знання, є прикладом механізму «підтвердження нульового знання».
У сфері криптовалют докази з нульовим знанням дозволяють користувачам продемонструвати право власності на закритий ключ, не розкриваючи сам ключ або будь-який електронний підпис. Платформи для торгівлі криптовалютою сподіваються підтвердити статус своїх резервних коштів, не розкриваючи конфіденційну інформацію про користувачів, як-от баланс індивідуальних рахунків.
zk-SNARK означає стислу, неінтерактивну техніку підтвердження з нульовим знанням. Він проходить «початкове довірене налаштування» для створення загального еталонного рядка (CRS), до якого всі перевіряючі можуть отримати прямий доступ. Це аналогічно системі оцінювання іспитів, де zk-SNARK безпосередньо завантажує правильні відповіді. Тоді учасники можуть перевірити свої відповіді (надіславши своє рішення питання до серверної системи, яка негайно надає правильний або неправильний результат), що робить процес високоефективним.
За допомогою zk-SNARK користувачі можуть засвідчити, що знають вихідне значення, яке було хешовано, не розкриваючи фактичний вміст цього значення. Не розкриваючи конкретних сум, цінностей або адрес, користувачі також можуть перевірити дійсність транзакції. Він зазвичай використовується в приватних транзакціях. У розробці резервних доказів zk-SNARK може попередньо визначити обмеження, усунути ненульові облікові записи та забезпечити конфіденційність користувачів.
Gate.io інтегрує технологію zk-SNARK з деревами Merkle, щоб створити більш прозорі, захищені конфіденційністю та стійкі до несанкціонованого доступу резервні докази.
Процес реалізації
Авторизація холодного гаманця
Усі холодні та гарячі гаманці переказують певну випадкову суму на адресу, визначену аудиторською фірмою для перевірки права власності. Потім аудиторська фірма підсумовує баланси з цих адрес, щоб визначити загальну суму, контрольовану біржею (включаючи кошти користувачів і власні).
Знімок балансу користувача
У певний момент часу робиться знімок балансів користувачів на платформі. Фактичний капітал рахунку розраховується з використанням таких даних, як невиконані замовлення, позичені суми, заборгованість по відсотках і нереалізовані прибутки/збитки.
Експорт залишків
Зашифрований UID і баланс кожного користувача надаються аудиторській фірмі з метою розрахунку сукупних активів користувача та публікації номера Merkle.
Пакетна обробка ресурсів користувача
Підтверджено, що чисті активи біржі є сумою чистих активів кожного користувача. Потім на основі чистих активів користувачів будується дерево Merkle.
(Основною причиною пакетної обробки є те, що Gate.io має 13 мільйонів користувачів. Одночасна обробка всіх даних користувача призведе до надзвичайних вимог до апаратного та програмного забезпечення. Пакетна обробка займає більше часу та є економічною без шкоди для безпеки чи конфіденційності даних.)
Реалізація обмежень схеми
① Перш ніж чисті активи користувача буде вставлено в дерево Merkle, вузол, що відповідає ідентифікатору цього користувача, буде порожнім.
② На основі списку активів користувача та ціни кожного активу обчисліть загальну суму активів/зобов’язань користувача. Загальні активи завжди повинні перевищувати загальні зобов'язання.
③ Додайте активи/зобов’язання користувача до активів/зобов’язань біржі.
④ Використовуючи ідентифікатор користувача, загальну суму активів/зобов’язань і список активів, обчисліть хеш статусу користувача. Вставте статус користувача в дерево Merkle, щоб отримати новий корінь Merkle.
⑤ Перед створенням операції для одного користувача хеш-значення кореня дерева має відповідати хеш-значенню кореневого вузла після створення операції для наступного користувача.
(Обмеження ① запобігає неправдивим даним вузлів, ② запобігає обліковим записам із від’ємними значеннями, а ⑤ гарантує, що дані користувача залишаються незмінними до та після операцій.)
Створення підтвердження резерву
Використовуючи схему zk-SNARK, визначте кількість ресурсів користувача, а потім видайте звіт про резервне підтвердження.
Для більш детального пояснення процесу розрахунку резерву та впровадження коду натисніть тут.
Продуктивність
На машині з 32 ядрами та 128 ГБ оперативної пам’яті потрібно 15 днів, щоб обчислити докази активів для 10 мільйонів користувачів. Обчислення доказу резерву можна розпаралелювати; таким чином, з 10 машинами це займає лише 1,5 дня.
Впровадження zk-SNARK є значним оновленням для Gate.io резервні докази та важливий крок у захисті активів користувачів. Цей чудовий захист безпеки та конфіденційності підвищує впевненість користувачів і встановлює новий стандарт для індустрії криптовалют. Як лідер галузі, Gate.io тепер має відкритий вихідний код, сподіваючись сприяти більш прозорим і безпечним розробкам галузі. У майбутньому Gate.io продовжуватиме свій інноваційний дух, досліджуючи та створюючи разом із своїми користувачами більш безпечне, комплексне криптографічне майбутнє, захищене конфіденційністю.
Список літератури