Благодаря быстрому развитию технологии блокчейна,,Обновляемые смарт-контракты стали важным требованием для разработчиков. Обновления контрактов должны не только обеспечивать непрерывность бизнес-логики.,Все равно придется сокращатьсложностьирасходы。Режим прокси-сервера UUPS (Universal Upgradeable Proxy Standard)появился на свет,Он обеспечивает легкий, гибкий и безопасный механизм обновления контракта.
В этой статье кратко представлены принципы, компоненты и методы реализации прокси-сервера UUPS, а также сравниваются его различия с традиционными прозрачными прокси-серверами, чтобы помочь разработчикам лучше понять и использовать эту модель обновления.
УУПС проксиоснован на ERC-1967
Модель обновления смарт-контракта стандартного дизайна. По сравнению с традиционным режимом прозрачного прокси (Transparent Прокси) другой, UUPS Встройте логику обновления в контракт реализации, а не в сам контракт агента. Прокси-контракт используется только для переадресации вызовов, а вся логика обрабатывается контрактом реализации.
Данная конструкция имеет следующие существенные преимущества:
ERC-1967
и ERC-1822
,Хорошая совместимость,Легко интегрируется.Агент UUPS состоит из следующих основных компонентов:
delegatecall
Перенаправлять все вызовы на контракт внедрения.ERC-1967
Стандартный, использует фиксированные слоты для хранения данных IMPLEMENTATION_SLOT
Сохраните адрес контракта на реализацию.ERC-1822
в стандарте proxiableUUID
Функция, используемая для проверки совместимости контракта.UUPSUpgradeable
Модули разработаны._authorizeUpgrade
Функция ограничивает разрешения на обновление.upgradeTo
или upgradeToAndCall
выполнение функции.Рабочий процесс агента UUPS разделен на две части: переадресация звонков и обновление контракта.
delegatecall
Перенаправить запрос на текущий контракт восстановления.upgradeTo
или upgradeToAndCall
Заканчивать:_authorizeUpgrade
Проверьте разрешения на обновление.proxiableUUID
будь то с ERC-1967
Соответствует стандартам.upgradeToAndCall
Выполнить логику инициализации.характеристика | УУПС прокси | Transparent Proxy |
---|---|---|
Gas расходы | Еще ниже: в контракт внедрения включена только логика обновления. | Выше необходимо поддерживать дополнительный прокси-администратор. |
сложность | Средний уровень, необходимо реализовать логику разрешений и безопасности. | Ниже логика обновления управляется прокси-администратором. |
безопасность | Разработчикам необходимо вручную обеспечить контроль разрешений и совместимость. | Proxy Admin обеспечивает дополнительный уровень безопасности. |
гибкость | Высокие, настраиваемые разрешения и логика обновления. | Нижний, ограничен прокси-администратором. |
Масштабируемость | Более гибкий и может поддерживать несколько стратегий обновления. | Нижний, подходит для сценариев с одним режимом обновления. |
_authorizeUpgrade
выполнитьстрогийиз Проверка разрешения(нравиться onlyOwner
)。proxiableUUID
И верните правильное значение слота хранилища.upgradeToAndCall
Вызовите функцию инициализации.УУПС прокси — это гибкая и гибкая модель обновления смарт-контрактов, подходящая для сценариев, требующих эффективного управления логикой обновления. Он построен из Проверка разрешения、Проверка контекстаи Проверка совместимости,убеждатьсяобновлениеизбезопасность。в то же время,Разработчики могут настроить логику обновления в соответствии с потребностями.,Значительно улучшилась из Маштабируемость контракта.
Однако при использовании UUPS разработчикам необходимо уделять особое внимание контролю разрешений и совместимости структуры хранилища, чтобы избежать потенциальных проблем безопасности или конфликтов хранилища. Благодаря правильному проектированию и реализации агенты UUPS могут обеспечить безопасные и эффективные возможности обновления смарт-контрактов, обеспечивая мощную инструментальную поддержку для разработчиков блокчейнов.