Это шестой эпизод в нашей серии, посвященной основам HOPR. Ссылки на предыдущие эпизоды можно найти в конце статьи.
В основе построения стимулированной микснета лежит парадокс: как убедиться, что узлы правильно выполняют свою задачу по передаче данных, а не просто получают вознаграждение и не делают никакой работы?
Решение HOPR называется - доказательство передачи данных (proof of relay), и в этом эпизоде мы объясним, как оно работает.
Конфиденциальность без доверия
Мы не можем полагаться на то, что люди будут следовать правилам, потому что это правильно. Мы должны сделать соблюдение правил рациональным и выгодным делом. Это краеугольный камень многих криптовалютных систем, и именно это делает их бездоверительными (немного запутанный термин, который означает, что система надежна, потому что вам не нужно доверять никому из ее членов). По сути, когда самый эгоистичный способ поведения - это способ, которым система хочет, чтобы вы себя вели, нам не нужно полагаться на то, что кто-то будет хорошим.
В случае HOPR нам нужен способ обеспечить справедливое вознаграждение каждого, но только после того, как он передал данные. Этот механизм должен обеспечивать честность каждого без явного отслеживания и проверки каждого, иначе вся работа по обеспечению конфиденциальности, которая была проделана при разработке микснета, будет сведена на нет.
Обеспечение честности узлов
В прошлом эпизоде мы рассмотрели первый подход к платежам, когда пользователь предварительно оплачивает весь путь по сети, а на каждом переходе нода забирает свою долю и передает остаток дальше по цепочке.
Проблема в том, что здесь нет никаких гарантий. Почему бы просто не взять деньги и не переслать данные? Анонимность сети HOPR позволила бы узлам воровать из системы, не выполняя своей ретрансляционной работы. Помните, только отправитель знает полный маршрут, по которому должен пройти пакет данных, а смешивание означает, что нет возможности отследить, где пролег маршрут.
Поэтому нам нужен способ гарантировать, что узлы получат оплату только после того, как выполнят свою ретрансляцию. Это интуитивно понятное решение. В конце концов, люди обычно получают деньги после выполнения работы, а не до. Но как этого можно добиться?
Один простой подход заключается в том, чтобы каждый узел в цепочке платил предыдущему узлу. Таким образом, когда Dmytro получает данные от Chao, он посылает Chao оплату в качестве вознаграждения. Но теперь мы снова сталкиваемся с той же проблемой. Зачем Dmytro беспокоиться? Почему бы просто не сэкономить усилия и не отправить деньги обратно? Опять же, конфиденциальность сети означает, что нет никакого способа быть пойманным.
(Это небольшое упрощение - в конце концов, Chao знает, что отправил некоторые данные Dmytro, и знает, что не получил никакой оплаты. Но он не может доказать, что это был злой умысел. В сетях все время что-то идет не так! И даже если Dmytro заработал репутацию человека, который не пересылает платежи, он может просто выйти из сети и начать все сначала с новой личностью. Опять же, конфиденциальность становится палкой о двух концах).
Как же мы можем решить эту проблему?
Доказательство передачи данных
Инновация HOPR заключается в том, что каждая последовательная пара узлов в цепочке зависит друг от друга для получения оплаты. Chao не может требовать оплаты, пока не передаст данные Dmytro, но и Dmytro также не может требовать оплаты, пока не разблокирует долю Chao.
Это достигается с помощью криптографической технологии, но понять ее очень просто.
Когда данные отправляются через сеть HOPR, для каждого узла в цепочке генерируется платеж. Он фиксируется с помощью криптографического ключа. Если у вас есть весь ключ, вы можете получить свой платеж. Но если какая-либо его часть отсутствует, он ничего не стоит.
Эти ключи делятся пополам, поэтому вы можете требовать выплаты только после того, как у вас есть обе половины.
По мере прохождения данных по цепочке последовательные пары узлов обмениваются половинками ключей друг с другом. Chao меняет первую половину своего ключа на вторую половину ключа Betty. Он меняет первую половину ключа Dmytro на вторую половину своего ключа. Затем он может потребовать свою оплату, но только потому, что данные успешно перешли от Betty к Chao и Dmytro.
Это заставляет всех соблюдать правила. Если я являюсь узлом, получающим данные от вас, то ни один из нас не сможет потребовать деньги, если мы не обменяемся половинками ключей. Нет никакой выгоды в уклонении от ответственности, нет лазейки для кражи денег. Эгоистичный поступок - это сотрудничество, что означает, что стимулы каждого идеально согласованы.
Сохранение конфиденциальности
Эта простая, но чрезвычайно мощная инновация открывает целый мир возможностей. Благодаря доказательству передачи данных, мы наконец-то сможем построить полностью стимулированный частный микснет, который может расти до неограниченных масштабов, потому что нам не придется полагаться на поиск надежных альтруистов для его управления.
Однако мы еще не выбрались из затруднительного положения. Если каждый платеж будет генерировать транзакцию в публичной блокчейн сети , мы окажемся в опасной близости от случайного предоставления базы данных обо всем, что происходит в сети. HOPR использует вероятностные платежи, чтобы отделить платежный уровень HOPR от уровня обмена сообщениями, что гарантирует сохранение конфиденциальности. Мы объясним, как это работает, в следующий раз.
Sebastian Bürgel,
Основатель HOPR
Основы HOPR:
Эпизод 1: Что такое HOPR? - ENG, RUS
Эпизод 2: Что такое метаданные? - ENG, RUS
Эпизод 3: Анонимная маршрутизация - ENG, RUS
Эпизод 4: Микснеты - ENG, RUS
Эпизод 5: Стимулы - ENG, RUS
Эпизод 6: Proof of Relay - ENG, RUS
Эпизод 7: Билеты и каналы оплаты - ENG, RUS