Дерево Меркла — це двійкова деревоподібна структура хеш-даних. У двійковому дереві у ноди може бути не більше двох дочірніх нод — лівої та правої. Кожна нода-листок дерева Маркла зберігає значення хеша певного елемента даних. Коли ми знаємо дані лівої і правої нод, ми можемо отримати повну інформацію про материнську ноду. Ця повна інформація складається з двох секцій: дані про баланс адреси гаманця та хеш-дані.
- Дані про баланс Враховуючи структуру даних двійкового дерева, дані про баланс материнської ноди можуть складатися тільки з даних про баланс правої та лівої нод під нею.
- Хеш-дані Кожна нода включає дані про баланс, ієрархічні дані про двійкове дерево (пунктирна лінія на малюнку) та хеш-дані дочірніх нод (дані лівої ноди та правої ноди зберігаються під кожною нодою).
Дерево Меркла перевіряється шляхом підрахунку, як показано на зелених елементах (B і D) на рисунку вище, і за двома такими критеріями:
1. Чи відповідає баланс принципу розщеплення.
2. Легітимність хешу.
У дереві Меркла використовується функція хешування, яка дозволяє користувачам перевіряти приналежність до цілого дерева без отримання інформації, що міститься в материнських нодах. Підтвердження Меркла є унікальними для індивідуальних користувачів. Наприклад, якщо дерево Меркла складається з 24 рівнів, для підтвердження інформації про баланс структура балансу користувачів повинна мати 24 елементи, причому ця структура використовується тільки для підтвердження балансу користувачів.
Якщо інформація, що отримується користувачем, не перевищує 50% від даних всіх користувачів дерева Меркла, на підставі власної фрагментованої інформації користувачі не можуть відтворити всю структуру даних. Таким чином, для компаній дерево Меркла гарантує, що не буде витоку інформації про всі активи компанії і що конфіденційність облікових записів користувачів буде захищена.
Bybit використовує два такі способи підтвердження:
Підтвердження через платформу Bybit
На цій сторінці можна перейти в розділ Перевірити мій акаунт та подивитися своє місце в дереві Меркла. Ми графічно покажемо процес отримання та підтвердження ноди дерева Меркла, щоб вам було простіше переглядати свій баланс активів.
Примітка: Ми проводимо регулярні перевірки Підтвердження резервів (Proof of Reserves), щоб продемонструвати, що Bybit має достатні резерви. Якщо ви створили свій акаунт після проведення аудиту або у вас немає перевірених токенів, для вашого акаунту не буде жодних відповідних записів аудиту.
Інструмент самостійного підтвердження – відкритий вихідний код
Bybit опублікував вихідний код та код підтвердження свого дерева Маркла на GitHub, щоб користувачі могли самостійно перевірити свій баланс. Процес підрахунку в дереві Меркла включає обробку масивних даних користувачів, для чого зазвичай використовуються великі дані і Java. Шифрування Java є повністю відкритим та доступним для перевірки з боку користувачів.
Підготовка
Bybit відкрив вихідні коди наступних кодів, щоб професійні користувачі могли самостійно перевірити свій баланс. Користувачі можуть натиснути Копіювати дані на своїй сторінці Підтвердження резервів і скопіювати дані у файл підтвердження дерева Меркла у власну систему програмування, після чого зберігати їх на локальному диску як файл з ім'ям myProof.json.
Що далі
1. Створіть свій виконуваний файл
Завантажте останні файли з вихідним кодом і переконайтеся, що на робочій станції або комп'ютері встановлено JDK (версія 1.8 та вище) та Maven.
- Дозвольте залежності, скомпілюйте та створіть пакет
- У поточній папці проєкту перевірте скомпільований пакет jar, як показано нижче
2. дійсніть перевірку
- Можна вставити файл з підтвердженням, скопійований з вебсайту Bybit, до нового файлу в поточній папці та назвати його myProof.json. Після цього виконайте наступну команду:
- Далі можна запускати програму перевірки та вивчати отримані дані.