Руководство по реализации смарт-контрактов для выпускников стейблкоинов в Гонконге
Первая часть Инфраструктура и стратегии соблюдения норм
1. Выбор базового распределенного реестра
Руководство по реализации
Приоритет на зрелые публичные цепочки: Рекомендуется в первую очередь использовать такие зрелые и высокобезопасные публичные блокчейны, как Ethereum, Arbitrum и др. Эти сети благодаря своей проверенной устойчивости, обширной сети валидаторов и постоянному общественному контролю обладают естественными преимуществами. Их высокие затраты на атаки могут напрямую ответить на обеспокоенность регуляторов по поводу защиты от атак 51% и обеспечения окончательности транзакций.
Строгая оценка альтернативных решений: если рассматривается возможность использования консорциума или других типов распределенного реестра, необходимо провести тщательный и количественно измеримый сравнительный анализ, чтобы доказать, что их стандарты безопасности не ниже, а даже превосходят стандарты основных публичных цепей.
Документ по оценке рисков: Отчет об оценке должен полностью охватывать способность противостоять распространенным атакам, типы алгоритмов консенсуса, а также риски, связанные с кодовыми дефектами, уязвимостями, эксплуатациями и другими угрозами, и подробно анализировать, как эти риски могут потенциально повлиять на выпуск, выкуп и повседневную деятельность стейблкоина. Этот документ является ключевым для подтверждения разумности выбора технологий перед регуляторами.
2. Стандарт основного токена и расширение функций регулирования
Руководство по реализации
Базовый стандарт: использование ERC-20 в качестве базового стандарта для обеспечения однородности токенов и их взаимозависимости в более широких экосистемах.
Расширение функционала: необходимо интегрировать следующие функциональные модули для выполнения требований регулирования:
Pausable:используется для реализации глобальной приостановки и восстановления всех токенов, что является основным инструментом для реагирования на серьезные события безопасности.
Mintable: предназначен для реализации лицензированными эмитентами процесса выпуска новых токенов через контролируемый процесс, а также для обеспечения строгого соответствия объема выпуска токенов достаточным резервным активам в фиатной валюте.
Сжигаемые: предоставляет функцию уничтожения токенов. В конкретной реализации эта функция будет строго контролироваться, а не разрешать любому пользователю уничтожать токены по своему усмотрению.
Freezable: используется для приостановки функции перевода токенов на определенные аккаунты ( в случае подозрительных сделок ).
Whitelist:для реализации дополнительных мер безопасности, только адреса, прошедшие дью-дилидженс и одобренные, могут участвовать в основных операциях (, таких как получение новых токенов ).
Чёрный список: используется для реализации торговых запретов на адреса, связанные с незаконной деятельностью (, такой как отмывание денег, мошенничество ), запрещая им отправлять/получать токены. Управление чёрным списком должно быть интегрировано с системой AML/CFT, обеспечивая мониторинг подозрительных транзакций в режиме реального времени.
AccessControl: это основа для реализации детализированной, основанной на ролях системы управления правами. Все функции управления должны контролироваться через этот модуль для соблюдения требований разделения обязанностей.
3. Основные модели соблюдения: выбор черного и белого списков
Руководство по реализации
Режим черного списка ( по умолчанию рекомендуемое решение ):
Преимущества: обладает высокой практичностью, может бесшовно взаимодействовать с обширной децентрализованной финансовой (DeFi) экосистемой, предоставляя пользователям более низкий порог входа и более плавный опыт.
Недостатки: соответствие требованиям в значительной степени зависит от мощных,实时链下监控分析能力, чтобы及时发现并封堵非法地址.
Способ реализации: в функции перевода смарт-контрактов добавить логическую проверку, чтобы убедиться, что адреса отправителя (from) и получателя (to) не занесены в черный список.
Режим белого списка
Преимущества: предоставляет высший уровень контроля AML/CFT, реализует профилактику до, а не восстановление после.
Недостатки: значительно ограничивает универсальность и уровень принятия стейблкоина, создает огромные операционные затраты на управление белым списком, что может затруднить его превращение в широко принимаемое средство обмена.
Способ реализации: в функции перевода смарт-контрактов добавить логическую проверку, требующую, чтобы адреса отправителя (from) и получателя (to) обязательно находились в белом списке. Рекомендуется разработать специализированную веб-систему для пользователей для упрощения операций.
Вторая часть реализация смарт-контрактов
1. Проектирование детализированной системы контроля доступа
Руководство по реализации
Необходимо определить ряд четких ролей и распределить эти роли между различными юридическими лицами или сотрудниками, контролируемыми мультиподписными кошельками, для реализации разделения обязанностей и минимизации риска единой точки отказа или сговора. Каждая роль должна быть ограничена определенными функциями, все операции требуют мультиподписного разрешения, и необходимо обеспечить, чтобы ни один сотрудник не занимал одновременно несколько высокорисковых ролей. Все операции должны фиксироваться в журналах и подлежать ежегодному стороннему аудиту, распределение прав должно контролироваться администрацией или советом директоров.
MINTER_ROLE: отвечает за обработку стейблкоинов (mint) операций, включая создание единиц токенов после получения действительного запроса на выпуск и обеспечение соответствия увеличения эмиссии и резервного активного пула.
BURNER_ROLE: отвечает за обработку уничтожения стейблкоинов (burn), включая уничтожение токенов после получения действительного запроса на выкуп.
PAUSER_ROLE: отвечает за приостановку (pause) операций со стейблкоином, например, временно останавливая переводы, выпуск токенов или выкуп при обнаружении аномальных событий (, таких как угроза безопасности ).
RESUME_ROLE:отвечает за восстановление операции (resume) стейблкоина, например, повторное включение переводов, выпуска или выкупа после решения ситуации с приостановкой.
FREEZER_ROLE: отвечает за заморозку ( freeze ) и разблокировку ( remove freeze ) определенных кошельков или токенов, например, временное замораживание активов при обнаружении подозрительной активности (, такой как риск отмывания денег ).
WHITELISTER_ROLE: отвечает за управление белым списком (whitelist), включая добавление или удаление разрешенных адресов кошельков, например, ограничение выпуска токенов только на адреса из белого списка.
BLACKLISTER_ROLE: отвечает за управление черным списком (blacklist) и удаление из черного списка (remove blacklist), например, добавление подозрительных кошельков в черный список для предотвращения переводов.
UPGRADER_ROLE: Если используется модель с возможностью обновления, отвечает за обновление (upgrade) смарт-контрактов, например, обновление кода контракта для исправления уязвимостей или добавления функциональности.
2. выпуск ( токенов ) механизм
Руководство по реализации
Предварительная проверка: перед выполнением выпуска токена функция должна проверить, находится ли целевой адрес to в черном списке или в замороженном состоянии.
Операционный процесс:
Оффлайн дью дилидженс: Клиент завершает все необходимые оффлайн процедуры идентификации личности (KYC) и дью дилидженс (CDD). Кроме того, в соответствии с требованиями AML/CFT, для установления деловых отношений или проведения случайных транзакций свыше установленного порога (, например, 8,000 гонконгских долларов ), необходимо выполнить CDD.
Получение средств: Клиент переводит эквивалентные средства в фиатной валюте на банковский счет, указанный эмитентом.
Внутренняя проверка: внутренние системы эмитента подтверждают получение средств и соответственно обновляют бухгалтерские записи резервных активов.
Исполнение на блокчейне: Операционная команда создает и подписывает многофункциональную транзакцию, вызывая функцию выпуска токенов смарт-контрактов, отправляя новые выпущенные стейблкоины на кошелек клиента, предварительно зарегистрированный и проверенный.
3. Выкуп ( механизм уничтожения )
Руководство по реализации
Подготовка к выкупу: пользователю необходимо сначала перевести токены, которые он хочет выкупить, на указанный адрес, контролируемый эмитентом.
Операционный процесс:
Внецепочечный запрос: Пользователь подает запрос на выкуп вне цепи через платформу эмитента. Перед обработкой запроса эмитент должен провести надлежащую проверку клиентов (CDD).
Системная проверка: система эмитента проверяет действительность запроса на верификацию и проверяет, завершил ли пользователь соответствующие операции по переводу токенов в блокчейне.
Фиатные платежи: Эмитент переводит эквивалентную сумму фиатной валюты на банковский счет, зарегистрированный и проверенный пользователем.
Уничтожение на блокчейне: после подтверждения успешного перевода фиатной валюты многоподписной кошелек с правами BURNER_ROLE вызывает функцию уничтожения, чтобы уничтожить соответствующее количество токенов из указанного адреса.
4. Введение экстренного контроля: приостановление и заморозка
Руководство по реализации
Приостановка функции: доступна только для многоподписного кошелька, обладающего PAUSER_ROLE, для глобальной приостановки функций смарт-контрактов. Условия срабатывания включают в себя обнаружение аномальных событий (, таких как атака на сеть или несоответствие резервных активов ), необходимо одобрение совета директоров или высшего руководства. Восстановление функции осуществляется независимой RESUME_ROLE для обеспечения разделения обязанностей.
Функция заморозки: вызывается многоподписным кошельком с ролью FREEZER_ROLE, используется для ограничения переводов для определенных адресов. Условия срабатывания включают подозрительную активность (, такую как уведомление AML или судебный приказ ), необходимо выполнить оффлайн-проверку. Размораживание обрабатывается той же ролью, но требуется дополнительная проверка аудита, публикация соответствующих уведомлений, чтобы предотвратить злоупотребления.
5. Фильтрация адресов и механизм черного списка
Руководство по реализации
Реализация функции: функция для добавления и удаления из черного списка, которая может вызываться только мультиподписным кошельком, обладающим BLACKLISTER_ROLE.
Ограничение перевода: запрещено передавать/получать токены с адресов, внесённых в чёрный список.
Процесс операции: инструмент анализа выдает сигнал тревоги, запускает внутреннюю проверку соответствия, после подтверждения командой по соблюдению норм, транзакция на добавление в черный список инициируется мультиподписным кошельком BLACKLISTER_ROLE.
6. Смарт-контракты: возможность обновления
Руководство по реализации
Модель прокси: для смарт-контрактов типа EVM можно использовать зрелую модель прокси ERC-1967 для достижения возможности обновления.
Контроль доступа: функция обновления должна вызываться только многофункциональным кошельком, обладающим ROLE_UPGRADER.
Процесс управления изменениями: в соответствии с требованиями регулирования, перед предложением любых обновлений необходимо завершить строгий процесс управления изменениями, который включает в себя полную независимую проверку безопасности новых логических смарт-контрактов третьей стороной.
7. Журнал событий в блокчейне для анализа и отчетности
Руководство по реализации
Помимо требований стандарта ERC-20 к переводу (Transfer) и одобрению (Approval), контракт должен определить и выпустить пользовательские события для всех управленческих действий и изменений состояния:
Выпуск/Сжигание ( Minted/Burned ) событие
Приостановка/Восстановление(Paused/Resume)событие
Добавление/удаление из черного списка ( BlacklistAdded/BlacklistRemoved ) событие
Добавление/удаление из белого списка ( WhitelistAdded/WhitelistRemoved ) событие
Изменение привилегий (RoleGranted/RoleRevoked) событие
обновление смарт-контрактов (Upgraded) событие
Третья часть Операционная безопасность и управление жизненным циклом
1. Архитектура управления безопасными ключами
Руководство по реализации
Генерация ключей: должна быть завершена через "ритуал ключей" (key ceremony), который документально зафиксирован, в физически безопасной среде с полным изолированием от внешних сетей.
Хранение ключей: Все управленческие роли должны контролироваться мультиподписными кошельками. Приватные ключи, используемые подписчиками этих мультиподписных кошельков, должны храниться в HSM или других безопасных аппаратных кошельках. Ключи, соответствующие наиболее критическим ролям, должны храниться в системе с воздушным зазором, физически изолированной от любых онлайн-сред.
Использование ключей: необходимо строго соблюдать политику многофакторной подписи. Для подписания транзакций, связанных с "важными закрытыми ключами", может потребоваться личное присутствие соответствующих лиц.
Резервное копирование и восстановление: резервное копирование ключевых шардов или мнемонических фраз должно храниться в нескольких безопасных и географически распределенных местах на территории Гонконга ( или в местах, одобренных регулирующими органами ), и должно быть упаковано с защитой от несанкционированного доступа.
2. Полный процесс развертывания и мониторинг во время выполнения
Руководство по реализации
Перед официальным развертыванием необходимо составить и строго соблюдать "список проверок перед развертыванием":
Полное тестирование: обеспечить покрытие юнит-тестов более 95%, покрытие основного кода 100%, обеспечить вывод отчета о покрытии юнит-тестов.
Независимый аудит: завершите независимый аудит безопасности, предоставленный по крайней мере одной, лучше двумя авторитетными аудиторскими компаниями.
Заморозка кода: после завершения аудита код замораживается до запуска, никаких изменений в коде больше не вносится.
Регрессионное тестирование: перед официальным развертыванием выполните модульные тесты и проведите регрессионное тестирование.
Коммерческое согласование: получение официального согласования внутренней команды по соблюдению правил, подтверждение того, что логика контракта соответствует всем соответствующим требованиям регулирования.
Деплоймент: подготовьте подробный скрипт развертывания и протестируйте его в тестовой сети, полностью идентичной основной сети.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Стандарты смарт-контрактов для выпуска стейблкоинов в Гонконге: Соответствие, безопасность и лучшие практики
Руководство по реализации смарт-контрактов для выпускников стейблкоинов в Гонконге
Первая часть Инфраструктура и стратегии соблюдения норм
1. Выбор базового распределенного реестра
Руководство по реализации
Приоритет на зрелые публичные цепочки: Рекомендуется в первую очередь использовать такие зрелые и высокобезопасные публичные блокчейны, как Ethereum, Arbitrum и др. Эти сети благодаря своей проверенной устойчивости, обширной сети валидаторов и постоянному общественному контролю обладают естественными преимуществами. Их высокие затраты на атаки могут напрямую ответить на обеспокоенность регуляторов по поводу защиты от атак 51% и обеспечения окончательности транзакций.
Строгая оценка альтернативных решений: если рассматривается возможность использования консорциума или других типов распределенного реестра, необходимо провести тщательный и количественно измеримый сравнительный анализ, чтобы доказать, что их стандарты безопасности не ниже, а даже превосходят стандарты основных публичных цепей.
Документ по оценке рисков: Отчет об оценке должен полностью охватывать способность противостоять распространенным атакам, типы алгоритмов консенсуса, а также риски, связанные с кодовыми дефектами, уязвимостями, эксплуатациями и другими угрозами, и подробно анализировать, как эти риски могут потенциально повлиять на выпуск, выкуп и повседневную деятельность стейблкоина. Этот документ является ключевым для подтверждения разумности выбора технологий перед регуляторами.
2. Стандарт основного токена и расширение функций регулирования
Руководство по реализации
Базовый стандарт: использование ERC-20 в качестве базового стандарта для обеспечения однородности токенов и их взаимозависимости в более широких экосистемах.
Расширение функционала: необходимо интегрировать следующие функциональные модули для выполнения требований регулирования:
Pausable:используется для реализации глобальной приостановки и восстановления всех токенов, что является основным инструментом для реагирования на серьезные события безопасности.
Mintable: предназначен для реализации лицензированными эмитентами процесса выпуска новых токенов через контролируемый процесс, а также для обеспечения строгого соответствия объема выпуска токенов достаточным резервным активам в фиатной валюте.
Сжигаемые: предоставляет функцию уничтожения токенов. В конкретной реализации эта функция будет строго контролироваться, а не разрешать любому пользователю уничтожать токены по своему усмотрению.
Freezable: используется для приостановки функции перевода токенов на определенные аккаунты ( в случае подозрительных сделок ).
Whitelist:для реализации дополнительных мер безопасности, только адреса, прошедшие дью-дилидженс и одобренные, могут участвовать в основных операциях (, таких как получение новых токенов ).
Чёрный список: используется для реализации торговых запретов на адреса, связанные с незаконной деятельностью (, такой как отмывание денег, мошенничество ), запрещая им отправлять/получать токены. Управление чёрным списком должно быть интегрировано с системой AML/CFT, обеспечивая мониторинг подозрительных транзакций в режиме реального времени.
AccessControl: это основа для реализации детализированной, основанной на ролях системы управления правами. Все функции управления должны контролироваться через этот модуль для соблюдения требований разделения обязанностей.
3. Основные модели соблюдения: выбор черного и белого списков
Руководство по реализации
Режим черного списка ( по умолчанию рекомендуемое решение ):
Преимущества: обладает высокой практичностью, может бесшовно взаимодействовать с обширной децентрализованной финансовой (DeFi) экосистемой, предоставляя пользователям более низкий порог входа и более плавный опыт.
Недостатки: соответствие требованиям в значительной степени зависит от мощных,实时链下监控分析能力, чтобы及时发现并封堵非法地址.
Способ реализации: в функции перевода смарт-контрактов добавить логическую проверку, чтобы убедиться, что адреса отправителя (from) и получателя (to) не занесены в черный список.
Режим белого списка
Преимущества: предоставляет высший уровень контроля AML/CFT, реализует профилактику до, а не восстановление после.
Недостатки: значительно ограничивает универсальность и уровень принятия стейблкоина, создает огромные операционные затраты на управление белым списком, что может затруднить его превращение в широко принимаемое средство обмена.
Способ реализации: в функции перевода смарт-контрактов добавить логическую проверку, требующую, чтобы адреса отправителя (from) и получателя (to) обязательно находились в белом списке. Рекомендуется разработать специализированную веб-систему для пользователей для упрощения операций.
Вторая часть реализация смарт-контрактов
1. Проектирование детализированной системы контроля доступа
Руководство по реализации
Необходимо определить ряд четких ролей и распределить эти роли между различными юридическими лицами или сотрудниками, контролируемыми мультиподписными кошельками, для реализации разделения обязанностей и минимизации риска единой точки отказа или сговора. Каждая роль должна быть ограничена определенными функциями, все операции требуют мультиподписного разрешения, и необходимо обеспечить, чтобы ни один сотрудник не занимал одновременно несколько высокорисковых ролей. Все операции должны фиксироваться в журналах и подлежать ежегодному стороннему аудиту, распределение прав должно контролироваться администрацией или советом директоров.
MINTER_ROLE: отвечает за обработку стейблкоинов (mint) операций, включая создание единиц токенов после получения действительного запроса на выпуск и обеспечение соответствия увеличения эмиссии и резервного активного пула.
BURNER_ROLE: отвечает за обработку уничтожения стейблкоинов (burn), включая уничтожение токенов после получения действительного запроса на выкуп.
PAUSER_ROLE: отвечает за приостановку (pause) операций со стейблкоином, например, временно останавливая переводы, выпуск токенов или выкуп при обнаружении аномальных событий (, таких как угроза безопасности ).
RESUME_ROLE:отвечает за восстановление операции (resume) стейблкоина, например, повторное включение переводов, выпуска или выкупа после решения ситуации с приостановкой.
FREEZER_ROLE: отвечает за заморозку ( freeze ) и разблокировку ( remove freeze ) определенных кошельков или токенов, например, временное замораживание активов при обнаружении подозрительной активности (, такой как риск отмывания денег ).
WHITELISTER_ROLE: отвечает за управление белым списком (whitelist), включая добавление или удаление разрешенных адресов кошельков, например, ограничение выпуска токенов только на адреса из белого списка.
BLACKLISTER_ROLE: отвечает за управление черным списком (blacklist) и удаление из черного списка (remove blacklist), например, добавление подозрительных кошельков в черный список для предотвращения переводов.
UPGRADER_ROLE: Если используется модель с возможностью обновления, отвечает за обновление (upgrade) смарт-контрактов, например, обновление кода контракта для исправления уязвимостей или добавления функциональности.
2. выпуск ( токенов ) механизм
Руководство по реализации
Предварительная проверка: перед выполнением выпуска токена функция должна проверить, находится ли целевой адрес to в черном списке или в замороженном состоянии.
Операционный процесс:
3. Выкуп ( механизм уничтожения )
Руководство по реализации
Подготовка к выкупу: пользователю необходимо сначала перевести токены, которые он хочет выкупить, на указанный адрес, контролируемый эмитентом.
Операционный процесс:
4. Введение экстренного контроля: приостановление и заморозка
Руководство по реализации
Приостановка функции: доступна только для многоподписного кошелька, обладающего PAUSER_ROLE, для глобальной приостановки функций смарт-контрактов. Условия срабатывания включают в себя обнаружение аномальных событий (, таких как атака на сеть или несоответствие резервных активов ), необходимо одобрение совета директоров или высшего руководства. Восстановление функции осуществляется независимой RESUME_ROLE для обеспечения разделения обязанностей.
Функция заморозки: вызывается многоподписным кошельком с ролью FREEZER_ROLE, используется для ограничения переводов для определенных адресов. Условия срабатывания включают подозрительную активность (, такую как уведомление AML или судебный приказ ), необходимо выполнить оффлайн-проверку. Размораживание обрабатывается той же ролью, но требуется дополнительная проверка аудита, публикация соответствующих уведомлений, чтобы предотвратить злоупотребления.
5. Фильтрация адресов и механизм черного списка
Руководство по реализации
6. Смарт-контракты: возможность обновления
Руководство по реализации
7. Журнал событий в блокчейне для анализа и отчетности
Руководство по реализации
Помимо требований стандарта ERC-20 к переводу (Transfer) и одобрению (Approval), контракт должен определить и выпустить пользовательские события для всех управленческих действий и изменений состояния:
Третья часть Операционная безопасность и управление жизненным циклом
1. Архитектура управления безопасными ключами
Руководство по реализации
2. Полный процесс развертывания и мониторинг во время выполнения
Руководство по реализации
Перед официальным развертыванием необходимо составить и строго соблюдать "список проверок перед развертыванием":