Post
Topic
Board Кодеры
Re: Большие данные с защитой от подделки
by
Frankwood
on 19/01/2019, 23:46:59 UTC
Есть несколько подобных проектов. Работающих.
Например, https://originstamp.org
Конечно, вам надо делать своё, но идею понять не мешает.

Большое спасибо за ссылку! Вдоль и поперек изучил их сайт и просмотрел выступление создателя. После выступления, зрители задали доктору Bela Gipp вопросы, которые навели меня на новые мысли.

По их продукту:
У них уже есть решение для коммерческого использования с API, dashboard. В принципе можно уже внедрять и тестить.

Минус1: они держат хеши в блокчейне Bitcoin
Минус2: они отправляют данные с хешами с интервалом в 24 часа.

Как вы правильно заметили, это решение сторонних разработчиков и мне не охото доверять им целиком и полностью. К тому же теперь я согласен с вами, и все больше понимаю что хранение хешей в стороннем блокчейне тоже не совсем правильное решение, хотя в текущем моменте выглядит оптимально.

Это невозможно без фиксации в блокчейне хэша каждого бэкапа.
Согласен.
На самом деле, фиксация хеша каждого бэкапа в солидном блокчейне  решает все вопросы.  
Лучше Биткоин, у Эфира уже был откат. Smiley
И это достаточно простое решение. Зачем искать еще проще.

С утвержденного адреса каждые сутки делается одна транзакция, фиксирующая хеш.
Сумма хешей, цепочка хешей никакой дополнительной защиты уже не дают.
Ни один бэкап нельзя сфальсифицировать.

Мне пока не нравятся в этой схеме следующие места:

1. Между последним и текущим бекапом есть возможность фальсификации. Чем больше этот промежуток времени - тем больше простора для творчества. Мы как проект, конечно не будем этим заниматься, но я хочу чтобы пользователи были уверены в честности данных на все 100%.
Quote
1. В системе все доверяют валидатору
2. Валидатор делает публичный бекап базы данных раз в сутки
Это не стыкуется с Вашей постановкой задачи.  И что такое "последний" и "текущий" бэкап?
Кто фальсифицирует данные, бэкап которых еще не сделан?

Последний - крайний бекап, хеш которого последним был отправлен в блокчейн биткойна
Текущий - тот что будет отправлен в конце дня.

В промежутке между последним и текущим, валидатор может править любые данные о записях созданных в этот промежуток. В течении суток можно делать все что угодно с записями которые добавлены в этот день.

Quote
2. Врятли пользователи будут держать у себя наши бекапы. Чтобы обезопасить себя от их утраты, нужно будет поднимать дополнительные сервера для репликации по IPFS. Получается не совсем децентрализованно т.к. основные хранилища будут наши. С первого взгляда, выглядит немного подозрительно.
Но у Вас и так централизованный валидатор. То, что бэкапы держит валидатор, не так страшно. Главное, что он не может уже изменить их. Даже если захочет.

Quote
3. Нужно куда-то вложить хеш первого бекапа и адрес с которого будут делаться транзакции с хешами. В случае утраты контроля над адресом, возникнет неприятная ситуация.
Адрес, блокчейн и правила публикуется валидатором. Это все равно надо сделать, используя какие-то доверенные источники.

Можно сделать первую транзакцию с этого адреса, которая фиксирует хеш этого же адреса в блокчейне. Если в течение суток таких хитрых транзакций нет, значит этот адрес уже никуда не потеряется. А следующие транзакции идут уже хеши бэкапов. Можно предусмотреть смену адреса при фиксации хеша. Можно при публикации указать второй адрес, транзакция с которой прекратит действие основного адреса. Но это технические нюансы и скорее для удобства. Принципиально ничего не меняют.

Потеря контроля адреса -неприятная ситуация. Думаю, что валидатор может опубликовать: с такой то даты новый адрес. Правила могут меняться, только в будущем. Главное, что они не меняются задним числом. И блокчейн можно поменять.

Несколькими постами ранее, Neiros дал реф на алгоритм DAG. За что ему тоже спасибо! На основе этого алгоритма построена технололгия Tangle, а на ней монета IOTA. Проект IOTA позиционирует себя, как средство коммуникации устройств в "интернете вещей".

ref
https://ru.wikipedia.org/wiki/Интернет_вещей
https://ru.wikipedia.org/wiki/IOTA_(технология)

Примечательно вот что:

- Транзакции являются бесплатными вне зависимости от их размера
- Время подтверждения транзакций невелико
- Количество одновременно обрабатываемых транзакций не ограничено
- Сама система легко поддается масштабированию
- Нет майнинга

Получается что это решение лишено всех недостатков. Транзакции можно создавать и сразу отправлять в неизменяемый реестр (в Iota не блокчейн, но ключевые характеристики системы схожи и соотвествуют, на мой взгляд, требованиям).
В описании сказано, что в транзакцию можно вложить 2000 символов описания. Мне кажется, что это решение возможно самое удачное. Почему бы не заносить все транзы в свою ноду построенную по принципу IOTA.

Я сейчас занимаюсь углубленным изучением IOTA. В процессе этого обсуждения многие вещи встали на свои места, а так-же появились и новые представления о том, как это должно работать в идеальном варианте. В скором времени сформулирую задачу более четко и емко.