Ми кажемо, що записи цін незмінні. Це легко сказати — тому нижче спосіб перевірити це без довіри до нас.
Наприкінці кожної доби ми беремо всі спостереження за цінами за цей день, будуємо з них дерево Меркла й записуємо його корінь. Корінь кожної доби «зшивається» з попереднім у ланцюжок.
Якщо змінити хоч один запис заднім числом — зміниться корінь тієї доби, а разом із ним усі наступні ланки. Тихо підмінити ціну неможливо.
Якби корені жили лише в нашій базі, ми теоретично могли б перерахувати весь ланцюг після підміни. Тому вони щодня виносяться в публічний репозиторій — підробка означала б переписування публічної історії git, а це видно.
І ще чесно: печатка доводить незмінність наших записів, а не те, що крамниця показувала саме цю ціну. Ми ручаємось за те, що виміряли, — не за те, чого не бачили.
Кожен вимір має доказ: /api/verify/proof/{id} віддає лист, шлях до
кореня й сам корінь. Перевірка — десять рядків будь-якою мовою:
лист = sha256("id|ціна|стара|1/0|час")
вузол = sha256(лівий_hex + правий_hex) # склеюємо ШІСТНАДЦЯТКОВІ рядки
далі йдемо шляхом до кореня й порівнюємо з опублікованим
Формат листа — публічний контракт: ми не можемо змінити його «на місці», не зламавши всі попередні докази.