Verifiable Delay Functions ✨ Дмитрий Ховратович
В четверг, 7 октября, во время митапа Дмитрий Ховратович поднял очень сложную, но интересную тему — Verifiable Delay Functions или функции проверяемой задержки. Собрали основные тезисы со встречи в краткий конспект.
Что несет в себе понятие Verifiable Delay Functions (VDF)?
Если разбирать дословный перевод, то оно означает, что такая функция выполняется с определенной задержкой, и что мы можем проверить, с каким результатом функция выполнена и с какой именно задержкой.
Почему VDF — это важно?
Представьте ситуацию, в которой несколько человек, которые не доверяют друг другу, должны выбрать из своей группы кого-то одного для получения ценной награды. При этом критически важно сделать выбор максимально случайным и беспристрастным.
Примером такой ситуации может служить выбор валидатора следующего блока в Eth2, где некому поручить выбор следующего валидатора, который получит вознаграждение за блок, кроме самих валидаторов. ¯\_(ツ)_/¯
Как работает идеальное распределение вознаграждений с VDF или Can’t Be Evil…
Потенциальные валидаторы отправляют свои «билеты» (входы) в функцию, которая определяет победителя, условно говоря, через 3 дня после того, как последний валидатор «отправил свой билет в лототрон».
Сейчас ситуация обстоит по-другому. Недобросовестные валидаторы имеют возможность подождать, пока все отправят входы, и в последний момент отправить свои. Поскольку функция рассчитывается сразу, они могут подобрать и отправить в нее такой вход, чтобы на выходе вознаграждение досталось кому-то из их шайки.
С VDF такой маневр уже не пройдет. Группа вредоносных валидаторов не может заранее определить, при каких вводных можно рассчитывать на благоприятный исход. Манипулировать конечным результатом расчета функции, утаивая свои входы, больше не получится, ведь они вовсе лишат себя всяких шансов на получение вознаграждения.
Используя VDF можно полностью предотвратить любые попытки жульничества и сговора валидаторов с целью манипуляции системой вознаграждений.
Важно, чтобы расчет отложенной функции не был требователен к вычислительным мощностям и, чтобы ее проверка не занимала больше времени, чем сам расчет (в идеале, намного меньше времени, чем расчет). Также не стоит забывать о потенциальной угрозе со стороны квантовых компьютеров и защите от них этих функций.
Как будет работать VDF в Ethereum 2.0?
Это будет компактная функция, которая будет просчитываться миллиарды раз на основании загруженных в неё входов и выводить некий результат. Правильность результата можно будет быстро (за несколько минут) проверить при помощи zk-SNARKS. Доказательство рассчитывается частями, потом агрегатируется протоколом SnarkPack и весит около 10 КБ.
VDF vs PoW
Основное отличие заключается в том, что в PoW короткая функция, под которую нужно найти определенный вход, чтобы получить из него нужный выход. При этом увеличение вычислительных мощностей ускоряет нахождение подходящего входа.
В VDF вход может быть любой, но зато верхняя и нижняя границы времени, необходимые для её вычисления, достаточно жесткие. Больше «железа» не поможет решить функцию быстрее.
Заключение
Тем, у кого есть опыт в программировании (особенно на Rust), и есть желание применить свои навыки в криптографии, Дмитрий советует обратить внимание на перечень нерешенных криптографических задач, публикуемых Ethereum Foundation. За их решение полагается вознаграждение. Ещё можно посетить cryptographic workshops (например, Eurocrypto), также посвященные вопросам криптографии, на которые пока не нашли ответы.
Cyber Academy — образовательная платформа для блокчейн-разработчиков. Присоединяйтесь к нам
Поддержите нас на Gitcoin ✨
Анонсы | Website | Twitter | Телеграм-чат | GitHub | Facebook | Linkedin