Доказательство резервов 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!
- Социальные сети: http://cuda.io/woonetwork
- Сайт: https://woo.org
- Telegram (русский): https://t.me/woonetwork_ru
Контент выше не является рекомендацией в отношении инвестиций или трейдинга, а также не представляет собой предложение, призыв или совет для взаимодействия с определённым продуктом или сервисом. Данный контент предназначен исключительно для информационных целей. Любой человек, который принимает определённые инвестиционные решения или меняет их с учётом данного материала, несёт полную ответственность за возможные результаты или финансовые потери.
Содержание этого документа было переведено на разные языки и опубликовано на различных платформах. В случае каких-либо расхождений или несоответствий между разными вариантами этого текста вследствие неправильного перевода, окончательным вариантом считается английская версия на нашем официальном сайте.