Когда сеть Dusk запускается, дело не ограничивается только виртуальной машиной Piecrust: она также разворачивает набор генезисных контрактов для обработки самых базовых операций. В разделе 6.2 белой книги они называются "genesis contracts" — это специальные смарт-контракты, разворачиваемые при инициализации сети и отвечающие за проверку транзакций, механизм стейкинга, первоначальное распределение токенов и другие ключевые функции. В белой книге особо описаны два из них.
Первый — transfer contract (контракт перевода). Он управляет всеми переводами DUSK, $DUSK а также одновременно обрабатывает списание gas-комиссий. Если транзакция включает развёртывание или вызов смарт-контракта, transfer contract тоже отвечает за обработку: он проверяет, соответствует ли транзакция правилам Moonlight или Phoenix, а затем списывает соответствующую газовую комиссию со счёта отправителя. В белой книге он назван "точкой входа в блокчейн Dusk", и все транзакции в конечном итоге проходят через него.
Второй — stake contract (контракт стейкинга). Он управляет полным жизненным циклом стейкинга: проверяет, достигает ли внесённая пользователем сумма минимального порога стейкинга, блокирует токены и регистрирует пользователя как provisioner. Чем больше DUSK застейкано, тем выше вероятность быть выбранным алгоритмом DS для участия в консенсусе. Контракт также обрабатывает запросы на выход из стейкинга: после окончания периода блокировки пользователь может забрать токены обратно, при этом обеспечивается корректное начисление вознаграждений и списание штрафов. Порог в 1000 DUSK, упомянутый в разделе 1, а также вознаграждения и штрафы из раздела 9, на практике реализуются именно этим контрактом. @Dusk
В разделе 6.3 также добавлены две "другие контракта". Один — license contract (лицензионный контракт), который на основе протокола Citadel управляет выдачей и проверкой лицензий в сети, отслеживая право собственности на каждую лицензию, её действительность и срок истечения, а также обрабатывая отзыв или продление. Другой — Zedger contracts, которые создают отдельные смарт-контракты для каждого типа ценных активов, предоставляя функции выпуска, сжигания, выплаты дивидендов, принудительного перевода и т. д.; это конкретная реализация протокола Zedger, упомянутого в разделе 7.
Распределение ролей у этих четырёх контрактов очень чёткое: transfer contract отвечает за движение средств, stake contract — за участие в консенсусе, license contract — за права доступа, а Zedger contracts — за активы. Но это также означает, что ключевые функции Dusk в высокой степени зависят от корректности работы этих четырёх контрактов: если в любом из них появится ошибка, пострадает не только отдельное приложение, но и базовые операции всей сети. #dusk
Первый — transfer contract (контракт перевода). Он управляет всеми переводами DUSK, $DUSK а также одновременно обрабатывает списание gas-комиссий. Если транзакция включает развёртывание или вызов смарт-контракта, transfer contract тоже отвечает за обработку: он проверяет, соответствует ли транзакция правилам Moonlight или Phoenix, а затем списывает соответствующую газовую комиссию со счёта отправителя. В белой книге он назван "точкой входа в блокчейн Dusk", и все транзакции в конечном итоге проходят через него.
Второй — stake contract (контракт стейкинга). Он управляет полным жизненным циклом стейкинга: проверяет, достигает ли внесённая пользователем сумма минимального порога стейкинга, блокирует токены и регистрирует пользователя как provisioner. Чем больше DUSK застейкано, тем выше вероятность быть выбранным алгоритмом DS для участия в консенсусе. Контракт также обрабатывает запросы на выход из стейкинга: после окончания периода блокировки пользователь может забрать токены обратно, при этом обеспечивается корректное начисление вознаграждений и списание штрафов. Порог в 1000 DUSK, упомянутый в разделе 1, а также вознаграждения и штрафы из раздела 9, на практике реализуются именно этим контрактом. @Dusk
В разделе 6.3 также добавлены две "другие контракта". Один — license contract (лицензионный контракт), который на основе протокола Citadel управляет выдачей и проверкой лицензий в сети, отслеживая право собственности на каждую лицензию, её действительность и срок истечения, а также обрабатывая отзыв или продление. Другой — Zedger contracts, которые создают отдельные смарт-контракты для каждого типа ценных активов, предоставляя функции выпуска, сжигания, выплаты дивидендов, принудительного перевода и т. д.; это конкретная реализация протокола Zedger, упомянутого в разделе 7.
Распределение ролей у этих четырёх контрактов очень чёткое: transfer contract отвечает за движение средств, stake contract — за участие в консенсусе, license contract — за права доступа, а Zedger contracts — за активы. Но это также означает, что ключевые функции Dusk в высокой степени зависят от корректности работы этих четырёх контрактов: если в любом из них появится ошибка, пострадает не только отдельное приложение, но и базовые операции всей сети. #dusk