Прошу помощи в разработке эффективного решения для хранения и валидации больших данных с использованием blockchain. Предлагаю поучаствовать в совместной разработке каждого, кому интересен этот вопрос. Я думаю, что многим пригодится эта инфа.
Передо мной стоит задача хранить базу данных, которая постоянно обновляется и предоставить гарантию, что исторические данные в ней никак не могут быть скорректированы (подделаны).
Я изучил текущие решения и выбрал для себя IPFS + любой оптимальный блокчейн для подтверждения.
Хочу реализовать по следующей схеме.
Хранение данных
- Ежедневно база данных выкладывается в IPFS
- Хеш нового файла бекапа вписывается в каждый следующий бекап
- Сумма хешей всех предыдущих файлов бекапов вписывается в каждый файл бекапа кроме первого и второго
Валидация данных
- База данных не зашифрована
- Реализую открытый инструмент, который будет сравнивать записи в бд на сходство и показывать, что исторические данные в каждом бекапе совпадают
- Инструмент выложу на github
Точка доверия
Для того чтобы исключить возможность подделки всех файлов бекапа, зафиксирую хеш первого файла бекапа в месте где его нельзя будет исправить. Дата создания первого бекапа и его хеш будут совпадать с данными из опубликованной записи. По идее этого достаточно чтобы не было сомнений. Предполагаю создать транзакцию в одном из уже существующих блокчейнов: bitcoin, ethereum c официального кошелька компании. Или использовать этот хеш в токенах, которые будут выпущены проектом и разданы его пользователям.
Пока у меня такие вопросы:
1. Что думаете о точке доверия?
2. Видите ли вы в моей схеме узкие места?
3. Как защитить бекапы от взлома?
P.S. База бекапится ежедневно и теоритически возможность подделки есть только в промежутке времени между последним и предстоящим бекапами. В моем случае это не проблема.
Спасибо за внимание! Буду рад обратной связи!