SHA256
3.3 KiB
3.3 KiB
Future Fast Burn Executor
Зачем это нужно
Обычный DAO burn proposal уязвим к сценарию:
- proposal уже создан;
- в него уже зашит конкретный token account;
- владелец NFT быстро перекладывает токен на другой кошелек;
executeDAO burn больше не совпадает с актуальным местом хранения.
Для такого случая нужен отдельный быстрый исполнитель.
Идея
DAO не сжигает токен напрямую через обычную burn-инструкцию, а делает одноразовое разрешение для отдельной программы.
Эта программа:
- получает право только на один конкретный
mint; - получает ограничение по числу исполнений
max_uses = 1; - может иметь
expires_at; - может принимать исполнение только от разрешенного исполнителя;
- после успешного burn закрывает право навсегда.
Что должно быть зашито в разрешении
target_mintgovernance_realmdao_governanceexecutor_pubkeymax_uses = 1expires_atstatus = active | used | expired | revoked
Как должен работать burn
- DAO голосованием создает запись-разрешение.
- В запись попадает один конкретный
mint. - Быстрый исполнитель вызывает программу.
- Программа находит текущее место хранения NFT.
- Программа проверяет, что найден именно нужный
mint. - Программа делает burn.
- Программа помечает разрешение как
used.
Главная цель
Исполнитель не должен иметь глобальное право сжигать любые токены.
Он должен иметь только одноразовое право:
- либо на один конкретный
mint; - либо на маленький заранее зафиксированный список
mint; - но не на всю коллекцию и не на весь governance mint.
Что это дает
- DAO принимает политическое решение голосованием;
- исполнение становится быстрым;
- даже если владелец перекладывает NFT, программа сможет сжечь актуальный текущий token account;
- риск "исполнитель спалит всех" резко снижается.
Текущее состояние
В этом комплекте программа fast-burn executor пока не реализована.
Здесь зафиксирована только правильная целевая архитектура, чтобы потом делать ее как отдельный следующий этап без повторного обсуждения логики.