Одна из основных
целей блокчейна DISCIPLINA - это предоставить
возможность педагогам
монетизировать достижения их учеников. Что если
рекрутеры смогут искать
достоверные записи об образовании и покупать записи об учениках, в которых они заинтересованы?
Довольно сложно реализовать идею правильно: если не учесть каждую деталь, может возникнуть очень много проблем, связанных с мошенничеством. Представьте, например, что образовательное учреждение заявило, что у него есть множество данных, и рекрутёр заплатил за них деньги. Образовательное учреждение их получило и отправило ложные данные рекрутёру. Как можно избежать подобной ситуации?
Эта проблема разрешается довольно легко: доверенный посредник, который может наблюдать за передачей денег и при нужном случае удержать их. Также существуют алгоритмы
"optimistic fair exchange", где посредник выступает в роли судьи, причём необязательно должен присутствовать онлайн. Протоколы обмена данными без посредника — задача более сложная: обычно честность сделки гарантируется только с определенной долей вероятности. В таких протоколах обе стороны обмениваются данными, повышая уровень уверенности в том, что другая сторона играет честно.
Мы в
DISCIPLINA любим вызовы. Перед нами стояла
задача разработать
протокол передачи данных без доверенного посредника, и при этом со стопроцентной вероятностью
исключить нечестное поведение обеих сторон. К счастью, в нашем распоряжении есть
блокчейн-технология.
Давайте рассмотрим задачу более формально. У протокола есть две стороны: Продавец и Покупатель. Также есть посредник, который может удержать деньги и подтверждать валидность данных, но в отличие от традиционных алгоритмов обмена данными посредник в нашем алгоритме — это
блокчейн, то есть
децентрализованный реестр с механизмом консенсуса, который может обеспечить
валидность всех транзакций (на основе согласия большинства).
Примечательно, что ноды блокчейна не должны получать доступ к самим данным при условии, что продаваемые данные достоверны.
Мы также предполагаем, что у каждой стороны есть возможность определить валидность данных (например, в
DISCIPLINA мы проверяем, совпадают ли корни Меркл-дерева оценок с теми, что опубликованы в общедоступной цепочке блоков). В спорных случаях мы используем блокчейн в принятии окончательного решения: ноды сети рассматривают данные, достоверность которых вызывает у Покупателя сомнения, и принимают решение, оправдано ли приобретение.
Как ноды это делают?
Основная идея заключается в следующем (мы опускаем переговоры о ценах и некоторые точки выхода сторон из протокола):
1. Перед сделкой
Покупатель уведомляет их о функции проверки, которая будет использоваться для сделки. Каждая часть продаваемых данных должна быть достоверна с точки зрения этой функции проверки.
2. Затем
Продавец шифрует данные сессионным ключом и рассчитывает корень дерева Меркла над зашифрованными данными. Затем он
публикует этот корень в общедоступной цепочке блоков.
3.
Покупатель создаёт сессионную пару ключей и отправляет сессионный ключ Покупателю с помощью транзакции в блокчейне. С этой транзакцией он также
отправляет монеты, которые блокируются на смарт-контракте.
4.
Продавец отправляет фиксированный депозит к контракту и ждёт периода подтверждения (который заранее согласован), чтобы удостовериться, что не было отката блокчейна.
5.
Продавец передает зашифрованные блоки данных Покупателю напрямую без использования блокчейна. Таким образом, мы избегаем хранения больших объемов информации в блокчейне и раскрытия всего набора данных в случае возникновения спора.
6. После того как Покупатель подтвердил, что он получил зашифрованные данные,
Продавец открывает сессионный ключ, зашифрованный при помощи публичного ключа Покупателя.
7. Теперь
покупатель может расшифровать данные.
7a.Если Покупатель найдёт данные недостоверными , то он может указать на это и открыть свой приватный сессионный ключ. Любой человек может расшифровать эту часть данных и проверить их с помощью функции валидации, о которой стороны договорились в самом начале. Чтобы доказать, что эта часть действительно была среди данных, отправленных Продавцом напрямую Покупателю, Покупатель также предоставляет путь от этой части до корня дерева Меркла, опубликованного продавцом на шаге (2).
В случае, если Покупатель может доказать, что данные недействительны, он получает свои деньги обратно вместе с гарантийным депозитом Продавца.
7b. Если данные достоверны, Покупатель подтверждает это транзакцией в блокчейне. Если он этого не сделает, контракт автоматически отправит деньги Продавцу после определенного времени.
Протокол, описанный выше, раскрывает способ обмена достоверной информацией на криптовалюту и гарантирует, что никакая сторона не может получить преимущество над другой. Мы используем этот протокол в
DISCIPLINA, чтобы гарантировать, что только достоверные данные об образовании будут предоставлены рекрутёру. Тем не менее, протокол может быть адаптирован для продажи почти всех типов данных до тех пор, пока их можно разделить хоть на какие-то значимые фрагменты, а достоверность этой информации будет определена самим блокчейном.
Вы найдете более детальное подробное описание протокола в технической документации блокчейна
DISCIPLINA:
https://disciplina.io/yellowpaper.pdf (см. sec. 3.7 Data Disclosure).