В мире криптографических валют нередко появляется надобность подтверждения фактов без их общественного раскрытия. Однако что если таким образом необходимо обосновать реализация целой цепочки действий? Один из вариантов — протокол Proof of Process.
Что подобное Proof of Process
Proof of Process (подтверждение процесса) — это протокол, позволяющ?? участникам доверять общему процессу, отделяя подтверждение от реальных данных и содержания самого процесса. Цель: получить единое подтверждение, которое представляет реализация всех шагов процесса.
Процесс — это последовательность шагов, в какой участники делают определенные деяния в определенное относительно прошлых шагов время.
Пример с шахматной партией
Рассмотрим в качестве примера логики действий игру в шахматы. В данной игре принимают участие два игрока, любой из которых имеет шахматную доску 8×8 клеток, которая представляет 2D -координаты, набор из 16 фигур. Каждый игрок расставляет фигуры на собственной доске, чтоб потом фиксировать ходы и изменения позиций.
Процесс игры смотрится последующим образом:
-
Поначалу каждый игрок расставляет фигуры.
-
Потом игроки по очереди делают ходы, перемещая фигуры по доске и пробуя осуществить захват фигуры противника.
-
Игроки каждый ход фиксируют методом записи нового установившееся на доске состояния и соглашаются вместе, что ход был изготовлен согласно правилам.
-
Игрок, который первым ставит мат противнику, выигрывает игру.
Все очень просто? Представим, что Алиса и Боб играют в шахматы. Любая партия представляет из себя процесс, а каждый ход — шаг в данном процессе. На первом шаге Алиса и Боб расставляют свои фигуры в изначальную позицию. Отныне они по очереди делают ходы, пока не будет определен победитель.
В итоге, каждый шаг содержит в себе последующие характеристики:
-
Кто делает ход.
-
Какая фигура перемещается.
-
Куда она перемещается.
-
Когда изготовлен ход (если игра ведется на время).
-
Какой это ход в общей последовательности ходов.
Как надежно поделиться плодами партии, не раскрывая её содержание? Во время каждого хода игрок должен быть думает, что соперник соблюдает правила. Кроме того, каждый игрок обязан иметь возможность удостоверить собственный ход. И, до того как подводить результат игры, нужно беспристрастно обосновать реальность каждого хода.
Представим, что Алиса выигрывает партию. Если Алиса желает повытрепываться победой, но не открывать ходы, то нет полностью надежного метода показать победу без публикации записи всей игры вместе с доказательством каждого хода беспристрастным очевидцем.
Естественно, можно решить эту дилемму, зафиксировав свидетельство беспристрастного наблюдающего в подписанном документе. Чтоб эти сведения с документом могли рассматриваться как факт: собственного рода цифровой нотариус. Однако это подразумевает участие третьего лица и поэтому не может считаться децентрализованным решением. Кроме того, чтоб обосновать результаты партии, необходимо будет поначалу обосновать надежность нотариуса, что делает излишние издержки и сдвигает фокус в сторону централизации.
Короче говоря, данный вариант не является хорошим. Необходима система, с помощью которой каждый игрок сумеет без помощи других обосновать результат партии как беспристрастный факт. Кроме того, при всем этом необходимо показать надежность результата игры без обнародования ходов и участия в качестве гаранта третьей стороны. Этот вариант вероятен через создание системы подтверждения.
Система подтверждения
В логике Proof of Process есть два типа систем подтверждения.
-
Для фактов, устанавливаем?? на базе опыта и являются личными, можно сделать систему, которая собирает по ходу процесса довольно инфы, чтоб сформировать подтверждение, удостоверенное по меньшей мере логикой процесса.
-
Факты, которые можно провести проверку заблаговременно и которые можно посчитать, могут быть доказаны при помощи реализации кода.
Proof of Process берет на себя 1-ый, больше непростой, тип и пробует сделать систему подтверждения для фактов, которые можно обосновать отталкиваясь от хода процесса.
Однако вместе с тем являясь только протоколом, PoP не обещает чудес: он не может инспектировать настоящую объективность фактов, инспектировать — были ли они установлены добросовестным образом. Он может только продемонстрировать, что логика процесса была соблюдена, и стороны не нарушили доверия. Однако это, беря во внимание трудность задачи, совершенно много.
В итоге, Proof of Process дает систему доказанных фактов, которая может показать реализация каждого шага в процессе.
Возвратимся например с шахматами: там имеется сам процесс (игра с определенными правилами, в которую играют Алиса и Боб), где каждый делает свои ходы. Потом существует подтверждение валидности процесса. Это подтверждение формируется методом извлечения нужной инфы из каждого шага — без включения самих шагов полностью, создавая криптографические подтверждения, которые могут употребляться для проверки надежности каждого хода и партии в общем.
С этой целью система доказанных фактов обязана соблюдать ряд мер предосторожностей в отношении данных.
Требования к данным
С той целью, чтоб можно было доверять процессу, для Proof of Process требуется реализация определенных условий:
-
Целостность данных: информация на каждом шаге процесса обязана точно соответствовать задуманному шагу, чтоб обосновать отсутствие искажений либо подделок. Целостность данных предполагает сохранение точности и полноты инфы в протяжении всего актуального цикла процесса. Пользователи обязаны иметь возможность обосновать: данные не были изменены несогласованным образом. С этой целью употребляется хеширование.
-
Подтверждение участия: участники процесса должны быть зафиксированы так, чтоб нельзя было колебаться в их аутентичности. С этой целью употребляются цифровые подписи.
-
Подтверждение времени: временные метки (timestamp): когда случается шаг. Они тоже должны быть зафиксированы.
-
Подтверждение контекста: нужно совершенно точно фиксировать последовательность шагов относительно друг дружку в процессе.
Можно сделать одно подтверждение для каждого шага, объединив личные подтверждения по всем четырем аспектам. После чего их можно соединить в одно — для всего процесса.
Proof of Process в действии
Возвратимся к игре в шахматы. Представим, 1-ый ход Алисы – это традиционный «E2–E4». Чтоб сделать хеш этого хода, строчку «E2–E4» пропускают через криптографический метод, к примеру, SHA-256, и сохраняют получившийся хеш. Алиса может записать собственный реальный ход раздельно. Однако это необязательно, в связи с тем, что ход не необходим для подтверждения процесса; довольно сохранить хеш. Это дозволяет Алисе держать свои ходы в тайне.
Если кто-то оспорит надежность хеша, Алиса сумеет применять собственный скрытый ход для его последующего сотворения, тем удостоверив соответствие. Так она может обосновать, что ход практически был изготовлен.
Подтверждение участия предполагает, что стороны не могут опровергать участие в процессе. С этой целью употребляется цифровая подпись. Алиса и Боб должны быть зафиксированы как ответственные за свои ходы, и их идентичность быть может доказана при помощи цифровых подписей либо общественных ключей. Это дозволяет хоть какому, который имеет доступ к подтверждению, провести проверку: вправду ли Алиса либо Боб делали ходы.
Дальше. Ходу Алисы присваивается временная метка, добавляется хеш-ссылка на начальную позицию (для первого хода), и очередь перебегает к Бобу. Он хеширует собственный ход, добавляет свою подпись, временную метку и хеш-ссылку на предшествующий ход Алисы. Обмен ходами продолжается до конца игры, а последний шаг фиксирует итог. К примеру, хешироваем строчки «белые одолели» и добавлением ссылки на предшествующий шаг с победным ходом.
По финишному хешу можно будет проследить, что процесс игры шел в согласовании с правилами, партию игрались вправду Алиса и Боб и финишный итог — это победа белых. При всем этом нет никакой надобности открывать все ходы партии. Proof of Process служит залогом: в итоге можно не колебаться.
Кроме того, процесс можно усложнить и сделать больше надежным, к примеру, введя третью сторону — судью (либо шахматный движок), который будет подписывать каждый ход и удостоверять соответствие правилам игры.
Для чего необходим Proof of Process
Ясно, что для обычный игры в шахматы нет никакой надобности проворачивать такие процедуры. Однако даже тут, если гроссмейстер захотит утаить свои выработки либо стиль игры от остальных, но при всем этом докладывать об итогах партий, внедрение Proof of Process может иметь смысл.
Больше органичное применение этого протокола быть может соединено с ситуациями, когда необходимо обосновать, что какая-то последовательность действий была выполнена — без сильной надобности открывать содержание каждого шага.
К примеру, KYC («Знай собственного клиента»). Представим, Джон решил пройти функцию KYC на бирже. Джон прошел через определенный процесс и в итоге сотрудничества с биржей получил с помощью Proof of Process допуск к торгам. Сейчас, чтоб обосновать, что он прошел KYC, Джону не нужно открывать ничего, не считая финишного хеша Proof of Process. И если, к примеру, остальные биржи готовы принять это подтверждение, Джон может предоставить его, не раскрывая свои данные третьей бирже.
Остальные примеры использования Proof of Process могут включать цепочки поставок, страхование, контроль качества, аудит, online-игры, торговлю и т.д.. На данный момент протокол Proof of Process – главной продукт компании Stratumn, предлагающ?? его как b2b-услугу.
Вывод
Proof of Process дозволяет сделать криптографическое подтверждение реализации определенной последовательности действий. На самом деле, Proof of Process — это одна из вариантов нулевого обнародования, когда необходимо обосновать факт реализации определенных шагов (процесса) — без сильной надобности открывать содержание этих шагов.
Источник: cryptonews.net