:RU: Релиз инструмента с открытым исходным кодом для расчета вознаграждений

Перевод статьи https://Cardanofoundation.org/en/news/releasing-an-open-source-rewards-calculation/

image

Согласно протоколу Cardano с доказательством ставки (PoS) — Ouroboros— делегаты и операторы стейк пулов (SPO) получают вознаграждение за свой вклад в обеспечение безопасности сети. В спецификациях леджера Cardano описаны формулы для расчета этих вознаграждений. Основываясь на этой информации в рамках усилий Фонда Cardano, направленных на повышение операционной устойчивости сети, мы опубликовали инструмент с открытым исходным кодом для расчета вознаграждения, независимый от ноды. Проект направлен на создание средства выполнения и проверки расчета вознаграждений, которое не зависит от отдельно взятой реализации. Он также направлен на предоставление исчерпывающей документации, связанной с казной Cardano, резервами и вознаграждениями пула.

Являясь репозиторием с открытым исходным кодом по лицензии MIT, инициатива также укрепляет приверженность Фонда к зрелости открытого исходного кода и направлена на привлечение вклада экосистемы в целом. Наконец, инструмент расчета может в равной степени служить учебным пособием, например, в отношении того, как изменения параметров протокола могут повлиять на продвижение средств. В конечном счете это повышает прозрачность и операционную устойчивость.

Повышение операционной устойчивости с помощью открытого исходного кода

Блокчейн Cardano предлагает несколько уникальных, тщательно продуманных функций. Ключевой из них является то, что делегированные ADA остаются в кошельках пользователей, позволяя осуществлять переводы на другие кошельки в любое время. Хотя эта функциональность имеет преимущества, она также создает проблемы при расчете вознаграждений. Это требует использования снапшотов (моментальных снимков) для расчета вознаграждений, как описано в спецификации леджера.

Процесс начинается с расчета новых резервов, комиссий, общего банка наград и казны. Впоследствии награды пула определяются на основе этого общего банка наград. Вознаграждения пулов используются для расчета вознаграждений делегатов стейк пулов и операторов пулов. Из-за требования к вычислениям на основе снапшотов может случиться так, что аккаунт для делегирования может стать незарегистрированным после создания снапшота. Таким образом, аккаунт для делегирования не может получать вознаграждения после завершения расчета и нуждается в специальных правилах для обработки этих особых ситуаций.

Эти правила естественным образом распределены по базе кода, поскольку сам процесс вычисления распределен во времени. Репозиторий леджера Cardano объединяет большую часть бизнес-логики, а также соответствующую документацию. Некоторые дополнительные компоненты, необходимые для этого процесса, можно найти в самой ноде Cardano или в репозитории сети Ouroboros.

Код выполняется с использованием планировщика на основе слотов, который может оказаться сложным для чтения и выполнения тем, кто не знаком с кодовой базой. Несмотря на то, что были введены определенные оптимизации для повышения производительности вычислений, эти оптимизации могут сделать код менее простым для понимания. Расчет вознаграждений с открытым исходным кодом направлен на решение этих проблем при сохранении надежных функций, присущих сети Cardano.

Механизм вознаграждений Cardano

Спецификация леджера Cardano включает в себя множество уравнений, которые в совокупности определяют поток ADA в конце каждой эпохи. Каждая нода будет независимо вычислять вознаграждения за каждую эпоху распределенным образом, а любые потенциальные вознаграждения затем распределяются на основе механизма консенсуса. Примечательно, что ни один субъект не завершает этот расчет и никто не может удержать вознаграждение. Вознаграждения в ADA рассчитываются каждую эпоху и являются результатом взаимодействия двух источников: комиссий за транзакции и денежной экспансии.

  • Комиссии за транзакции: В конце каждой эпохи сумма из банка комиссий (сумма всех комиссий за транзакции в эту эпоху) переходит в общий банк наград.
  • Денежная экспансия: В дополнение к собранным комиссиям за транзакции фиксированный процент от резерва зачисляется в тот же банк наград.

Затем общий банк наград делится на две части. Первая часть поступает в казну, в то время как вторая формирует банк наград стейк пулов. Отметим, что упомянутый резерв первоначально начинался примерно с 14 миллиардов долларов ADA и постепенно уменьшается.

Одновременно другой расчет вычисляет вознаграждение для пулов, используя параметры стейк пулов, которые в сочетании с показанной производительностью пула определяют индивидуальные вознаграждения для стейк пулов. Полученные результаты формируют основу для расчета вознаграждения как делегатов, так и операторов. Важно отметить, что все эти вычисления зависят от параметров протокола. Расчет вознаграждений является неотъемлемой частью блокчейн экосистемы Cardano, поэтому крайне важно обучать людей тому, как это работает. Эти знания дают людям возможность выбрать стейк пул, который соответствует их видению и ценностям.

Как расчет вознаграждений повышает прозрачность

Казна, резервы, вознаграждения, депозиты и комиссии - часто называемые банками ADA - в сумме составляют максимальный запас в размере 45 миллиардов ADA. В то время как любой желающий может просмотреть данные банка ADA в эксплорерах блокчейна Cardano и в Cardano DB Sync, эти платформы способны предоставить только окончательные результаты вычислений, без каких-либо базовых данных, подтверждающих, как они были рассчитаны. Хотя эти вычисления существуют в коде Haskell в репозиториях ноды и леджера, в них используется сложная, высоко распределенная реализация формулы.

По этой причине Фонд начал внедрять независимый от ноды расчет вознаграждения, который реализует формулы, изложенные в спецификациях леджера Cardano, и служит документационным ресурсом для обработки крайних случаев, когда указанная формула не соответствует фактической реализации. Например, в одном случае ошибка в реализации ноды привела к тому, что владелец пула, использующий два разных пула, но с одним и тем же адресом для наград, получал вознаграждения только за один стейк пул. В данном случае исправление ошибки привело к тому, что владельцам пулов были выданы дополнительные награды из казны.

Хотя эти ручные вмешательства полностью соответствуют спецификации протокола и регистрируются прозрачным образом с помощью так называемых сертификатов мгновенного перемещения наград (MIR), банки ADA, рассчитанные для этой эпохи, были бы неверными. В частности, если бы кто-то рассчитал размер казны по простой формуле для этой эпохи, стало бы очевидно, что она не соответствует фактической сумме находящихся в ней ADA. Проще говоря, без знания таких экстраординарных событий расхождение между формулой и размером казны было бы сложно отследить, и в казне было бы меньше средств, чем указано в формуле.

Преимущества реализации формулы с открытым исходным кодом

Расчет вознаграждений изначально был интегрирован в LedgerSync, конвейер данных на базе Java, разработанный для наполнения данными из блокчейна Cardano нового эксплорера от Фонда Cardano. Однако инженерная команда Фонда вскоре поняла, что распутать множество компонентов, задействованных в различных аспектах расчета, окажется довольно сложным делом. Разнообразие входных данных, которые включают спецификации, сообщения в блогах, тематику форумов и документацию сообщества, размещенную самостоятельно, означает, что сбор необходимой информации из различных источников для всестороннего понимания движения потоков ADA становится особенно трудоемким.

С другой стороны, использование открытых источников для расчета вознаграждений может расширить возможности общественного контроля, рецензирования и верификации алгоритма, а также кода, используемого для определения способа распределения вознаграждений. Этот подход аналогичным образом помогает укрепить доверие к инфраструктуре Cardano, выступая в качестве репозитория, который включает интерактивную диаграмму, объясняющую движение ADA в конце эпохи, а также отчеты, в которых подчеркиваются различия между формулой и фактическим значением.

Этот инструмент также является полезным способом информирования людей о децентрализованной системе казны Cardano и способствует получению информации об использовании комиссий за транзакции. Являясь репозиторием с открытым исходным кодом, система расчета вознаграждений еще больше вовлекает сообщество, побуждая каждого вносить как можно больше документации. Более того, доступен инструмент для технической поддержки, поскольку он предоставляет API, позволяющий пользователям вычислять значения, доступные в настоящее время только с помощью Cardano DB Sync, инструмента Haskell от IOG для сканирования данных нод и обеспечения их доступности в базе данных PostgreSQL.

Работа над обеспечением прозрачности расчета вознаграждений

Как обсуждалось в предыдущем примере с крайним случаем, использование формулы для расчета для следующей эпохи, например, размера казны иногда не дает точных результатов. Такая динамика может возникнуть при переводе средств в рамках предложения Project Catalyst или, например, при использовании сертификата MIR для компенсации вознаграждений пула, пропущенных из-за ошибки в расчетах. Несмотря на прозрачную регистрацию в блокчейне Cardano с помощью механизма сертификатов MIR, такие крайние случаи не всегда подробно документируются публично, что приводит к отсутствию исторической подоплеки и, следовательно, значительно снижает прозрачность, что, в свою очередь, приводит к неопределенности и снижению доверия. Создание подходящей документации может предотвратить это, что позволит проводить будущие обзоры и аудиты, а также улучшать документацию, тем самым повышая доверие к Cardano и операционную устойчивость сети.

Работа Фонда началась с внедрения формулы и документации по крайнему случаю, но некоторые остающиеся неизвестными вопросы все еще нуждаются в решении. Например, необходимо учесть ранние фонды Catalyst или сертификаты MIR до эпохи 271, поскольку к ним не привязаны метаданные. Используя эту формулу с открытым исходным кодом, Фонд надеется на сотрудничество с членами сообщества для создания решения, независимого от источника данных. В настоящее время у нас есть провайдер данных Koios и провайдер данных для статических файлов JSON, которые обслуживают агрегированные данные. Кроме того, индексатор с ограниченной областью действия — потенциально основанный на Yaci-Store, реализации репозитория данных Cardano на базе Java - оказался бы полезным для обеспечения максимальной прозрачности при расчете вознаграждения.

Эта инициатива также в конечном счете касается размера казны, которую Cardano использует для финансирования децентрализованного развития экосистемы, наград для пулов и комиссий за транзакции. Следовательно, это напрямую влияет на аспекты, о которых должен заботиться каждый пользователь Cardano, включая внедрение вознаграждений в экосистеме, частью которой он является. В то же время все участники, независимо от того, делятся ли они кодом или информацией, играют важную роль в повышении доверия и прозрачности экосистемы, тем самым улучшая условия для более широкого принятия блокчейна.

Взлом вычисления

Фонд генерирует отчет вместе с каждой новой версией репозитория. Мы добавили среднюю абсолютную разницу между расчетным и фактическим размером казны в качестве метрики, и вместе с сообществом мы надеемся добиться снижения этого значения с течением времени.

Вклад в этот репозиторий не ограничивается только кодом; люди могут добавлять данные, ссылки, документацию и информацию о существенных различиях, происходящих в какие-то эпохи. Сам репозиторий использует подход, основанный на тестировании, поэтому имеет смысл начать с создания тестов, например, связанных с конкретными вознаграждениями пула в конкретные эпохи. Фонд создал отчет только для казны, но мы видим потенциал для внедрения такого типа отчетов для других составляющих банка ADA, а также подробных отчетов о выбранных стейк пулах и наград участников в будущем.

В большинстве случаев размер казны в среднем примерно на 3500 ADA выше, чем предсказывает формула. Правило Pool Reap направляет невостребованные депозиты пула — например, когда пул прекращает свою деятельность, а соответствующий адрес для делегирования уже был отменен — обратно в казну. Кроме того, каждый пул может получить максимальную сумму ADA для каждой эпохи. Казна также направляет любую разницу между суммой, рассчитанной по формуле, и максимальной суммой. Эти корректировки текущей реализации должны уменьшить среднюю абсолютную разницу.

Фонд уже добился определенных успехов в изучении основ расчета и выявлении причин по некоторым из этих расхождений. Однако было бы полезно иметь исчерпывающую документацию по каждой исходящей транзакции из казны.

Следующие шаги также включают внедрение правила Pool Reap, а также добавление возврата вознаграждений, которые превышают максимально возможный размер, в казну, учет сертификатов MIR и направление невостребованных вознаграждений в резервы. Кроме того, несмотря на то, что с каждой новой эпохой мы в настоящее время сбрасываем значение до известного, чтобы предотвратить накапливать ошибки из предыдущих эпох, в будущем было бы полезно иметь анализатор для комиссий, удаленных пулов, удаленных аккаунтов для делегирования, обновлений пулов и многого другого. Такая структура позволила бы выполнять динамические вычисления, основанные на предыдущем расчете.

Однако, если в вычислении будет еще что-либо, что будет приводить к несоответствию между вычисленными и фактическими значениями, можно было бы завершить углубленное изучение реализации Haskell в репозиториях ноды и леджера Cardano. Этот сценарий был бы направлен на выявление изменений, которые объясняют расхождения, путем изучения истории фиксации и обсуждений проблем.

В дальнейшем Фонд намерен использовать отчеты и интерактивные диаграммы, поступающие из этого репозитория, для разъяснения токеномики ADA регулирующим органам, предприятиям и учреждениям. В сентябре мы также встретились с командами из Koios CNTools, чтобы познакомить их с репозиторием и собрать первоначальные отзывы. Они поприветствовали инициативу, а также идею внедрения и документирования расчета вознаграждения и отметили, что перенос другими разработчиками этой эталонной реализации Java на дополнительные языки придаст дополнительную ценность.

Подход с открытым исходным кодом всегда обогащает экосистему, предлагая взаимную выгоду всем вовлеченным сторонам, одновременно способствуя прозрачности и повышая вероятность широкого принятия технологии блокчейн. Таким образом, Фонд Cardano планирует продолжать использовать репозитории и решения с открытым исходным кодом с целью содействия зрелости открытого исходного кода Cardano.

// От переводчика: для получения дополнительных переведенных на русский язык статей о Cardano посетите русскоязычный раздел на форуме Cardano. Видеоролики о Cardano на русском языке можно найти на YouTube канале нашего замечательного амбасадора Тимура Сахабутдинова, а также на канале Чарльз Хоскинсон на русском. Хотите поговорить или задать вопрос о Cardano? Тогда приглашаем в наше уютное русскоязычное сообщество Cardano в Telegram. Оставайтесь на связи, все только начинается!