Построение нового протокола на блокчейне VIZ (репост)
Сложная тема для понимания, но необходимая, чтобы развиваться
Поговорим о проблеме связанности данных.
В распределенном реестре построенном на согласовании блоков всё просто. Блок за блоком строится согласованность общего состояния системы. Действие вида: Пользователь 1 перевел токены пользователю 2 — записывается в транзакцию, делегат складывает транзакции от разных пользователей в блок, ссылаясь на предыдущий и отправляет его в сеть. Другие делегаты подтверждают, что всё правильно — своим участием.
Блоки нужны чтобы согласовать состояние системы: балансы пользователей, статус их социального капитала, голоса в комитете за разные инициативы, состояние платных подписок и соглашений. А что делать с социальной связанностью?
то будет хранить «лайк» одного пользователя и комментарий под фото другого пользователя? Кто будет держать в уме, что пользователь выложил статью, чтобы её могли найти в блокчейне?
Первый ответ, который приходит на ум — может быть делегаты? Но попытки заставить делегатов обслуживать связанность данных выльется в раздувание и дублирование хранимых данных. Ноды должны заниматься блоками и критически важными элементами в системе, её состоянием, внутренней экономикой, расчетами между пользователями, криптографическому подтверждению транзакций и целостности цепочки.
Делегаты не должны обеспечивать обслуживание надстроек над блокчейном. Это задача другого порядка. А если кто-то сделает протокол игры поверх блокчейна? Например, шахматы? Делегаты тоже должны будут следить за целостностью новой надстройки и проверять возможность хода в каждой партии? Нет, тут явно что-то не так.
Термин сущности, которая будет проверять соответствие операций протоколу уже существует. Этот термин — Оракул. Любой независимый участник может создать любой протокол, любую структуру данных и следить за ней в блокчейне.
Как пример — медиа-платформа (media). Да, в VIZ уже действует один дополнительный протокол, который основан на правилах заложенных в Steem. В нем присутствует 2 действия: content и delete_content для создания контента и его удаления, соответственно.
Есть дополнительное расширение для протокола media: follow. В нем есть 2 действия, первое — одноименный follow для подписки на блог, игнорирования или удаление из списка для следования. Второе действие — reblog, для репоста контента.
Мне не нравится эта структура данных, она кажется… сломанной и не продуманной. Но она досталась нам в наследство от блокчейн медиа-платформы Steem и просто осталась.
Эти 2 протокола дополняющих друг друга реализованы через операцию custom, которая позволяет записывать в блокчейн любые json данные. И control.viz.world/media как раз демо-приложение и оракул для этого протокола.
Приложение, так как предоставляет интерфейс для выполнения custom операции к блокчейну VIZ по протоколу media в виде действия content для создания постов или комментариев. И оракул, так как следит за появлением подобных действий в блокчейне VIZ, обрабатывая и связывая данные в нем по правилам протокола. Например, если оракул видит действие от пользователя reblog по протоколу follow, то проверяет наличие поста от указанного автора и добавляет её в ленту активности инициатора транзакции.
Оракул может следить и учитывать все действия пользователей, а может лишь за частью. Например в демо-приложении оракул проверяет наличие платной подписки инициатора на аккаунт viz.world.
Любой желающий может сам написать оракула, который будет обрабатывать VIZ блок за блоком и обрабатывать тот или иной протокол.
Протокол может быть как открытый (про который все знают), так и закрытый (правила и механики учета не ясны).
Что будет, если один из оракулов дополнит протокол новыми возможностями? Ничего существенного, просто другие оракулы не будут учитывать эти данные.
Что будет, если кто-то будет отправлять транзакции не соблюдая правила протокола? Ничего существенного, просто оракулы проигнорируют такие операции.
Как видите — использование протокола может добавить гибкости блокчейну. Можно придумать протокол магазина цифровых товаров, оценки музыки, реестр права собственности, механизм игрового процесса, списка точек для гео-позиционирования сети отелей. Можно заложить в протокол любые структуры и данные, которые позволяет хранить формат JSON. И, конечно же, протокол может содержать действия, подтвержденные криптографически инициатором транзакции, которые могут учитывать сторонние оракулы и следить за собственным состоянием отдельной системы по своим правилам.
В продолжении (ссылка на статью про протокол Голос Voice на VIZ) мы обсудим возможность создания протокола для децентрализованной социальной сети, где оракулами могут выступать сами пользователи, без необходимости доверять посреднику в виде отдельного сайта.
Источник https://viz.media/custom-protocol-viz-blockchain/