Підтвердження резервів WOO X із деревом Меркла: знайдіть свій баланс серед активів криптобіржі

Підтвердження резервів WOO X із деревом Меркла: знайдіть свій баланс серед активів криптобіржі

WOO Network продовжує завойовувати довіру користувачів криптовалютної біржі WOO X. Тепер компанія представила власне підтвердження резервів та зобов'язань із застосуванням дерева Меркла. Нова система стане доповненням до платформи прозорості, завдяки чому криптовалютні біржі загалом стануть надійнішими, ніж представники сфери традиційних фінансів.

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

Як підтвердити акаунт на WOO X за допомогою дерева Меркла

Використовувати дерево Меркла на криптобіржі WOO X дуже просто. Для цього достатньо вибрати час снепшота аудиту та вставити унікальний геш Меркла. Щоб отримати його, необхідно авторизуватися на WOO X і натиснути кнопку “Get your Merkle hash URL” (Отримати URL геша Меркла) на платформі прозорості.

При цьому унікальний геш Меркла знаходиться на сторінці "Аудит" у профілі користувача WOO X.

Переконайтеся, що час снепшот аудиту збігається з відповідним гешем Меркла. Потім натисніть “Verify” (Підтвердити).

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

Користувачі можуть завантажити повне дерево Меркла для перевірки його даних. Для додаткової прозорості відповідний початковий код є відкритим та доступним на GitHub. Для перевірки ситуації достатньо натиснути кнопку “Download Merkle Tree” (Завантажити дерево Меркла).

У разі невдалого підтвердження з'явиться відповідне повідомлення. Зверніть увагу, що облікові записи з нульовим балансом або без процедури підтвердження особи KYC не враховуються в дереві Меркла. Те саме стосується негативних активів.

Як працює дерево Меркла на WOO X

Приклад коду на GitHub показує перевірку дерева Меркла, причому сам він написаний мовою Java і складається з одного файлу.

MerkleCheck.java.

Точка входу тут – функція main() у MerkleCheck.java. Усього потрібно надати та замінити лише дві змінні:

  • Шлях до бінарного файлу дерева Меркла — його потрібно завантажити на WOO X.
  • Геш користувача для вашого рахунку у певному аудиті. Отримати його вдасться після авторизації на WOO X.

Дві названі змінні дозволять коду запустити процес перевірки дерева Меркла та отримати баланс вашого облікового запису для аудиту. За бажання можна перевірити підхід до перевірки за допомогою вивчення коду – у цьому немає жодної проблеми.

Двійковий формат дерева Меркла

Структура дерева

Вузли у вигляді листків є балансами користувачів, поділені на N частин, причому даний показник визначається для кожного аудиту випадковим чином. Водночас дерево Меркла є двійковим деревом. З огляду на це кожен лист дерева відображає частину балансу кожного користувача на момент створення контрольного снепшота, ну а кореневий вузол представляє всі баланси користувачів в той же момент.

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

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

Формат дерева Меркла

Для дерева Меркла використовується формат серіалізації ProtoBuffer. Файли Proto такі:

Двійковий файл дерева починається зі списку назв токенів за типом BTC, ETH тощо, а індекс токена використовується для його репрезентації у відповідному поданні [1].

Другий файл є списком повідомлень вузла Меркла і є одним вузол у дереві Меркла. Формат тут наступний:

Атрибути left/right — це геші лівої/правої доньки нинішнього вузла. Після завантаження дерева можна побудувати структуру двійкового дерева з використанням лівого, правого та батьківського атрибутів.

Атрибут hash є гешем вузла. Геш проміжного некінцевого вузла MerkleNode генерується так:

При цьому геш кінцевого вузла MerkleNode створюється наступним чином:

Для частин leaf_balance_vector та leaf_position_index використовуються Proto-повідомлення MerkleBalanceVector як вхідний масив байтів. Формат показаний нижче:

Атрибут index — це список токенів, причому відображення токенів доступне в [1]. А атрибут balance показує кількість кожного токена.

Розрахунок геша листового вузла виглядає так:

Нарешті, userHash використовує повідомлення ProtoBuffer за таким прикладом:

Алгоритм валідації

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

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


Будьте в курсі всього, що відбувається з WOO Network!

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

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

We use cookies to improve your experience. To find out more, please read our Privacy Policy. By clicking "Accept", you consent to our cookie and Privacy Policy. Or you may click "Decline" to refuse to consent.