Агент UUPS: модель обновления смарт-контракта с легкостью и гибкостью в качестве ядра
Агент UUPS: модель обновления смарт-контракта с легкостью и гибкостью в качестве ядра

Благодаря быстрому развитию технологии блокчейна,,Обновляемые смарт-контракты стали важным требованием для разработчиков. Обновления контрактов должны не только обеспечивать непрерывность бизнес-логики.,Все равно придется сокращатьсложностьирасходы。Режим прокси-сервера UUPS (Universal Upgradeable Proxy Standard)появился на свет,Он обеспечивает легкий, гибкий и безопасный механизм обновления контракта.

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

Что такое прокси-сервер UUPS?

УУПС проксиоснован на ERC-1967 Модель обновления смарт-контракта стандартного дизайна. По сравнению с традиционным режимом прозрачного прокси (Transparent Прокси) другой, UUPS Встройте логику обновления в контракт реализации, а не в сам контракт агента. Прокси-контракт используется только для переадресации вызовов, а вся логика обрабатывается контрактом реализации.

Данная конструкция имеет следующие существенные преимущества:

  1. Легкий:актерское Контракт мастерства не содержит сложной логики обновления.
  2. гибкость:Разработчики могут полностью настраивать разрешения на обновление.ипроцесс。
  3. стандартизация:на основе ERC-1967 и ERC-1822,Хорошая совместимость,Легко интегрируется.

Ключевые компоненты прокси UUPS

Агент UUPS состоит из следующих основных компонентов:

  1. Агентский договор (прокси Contract):
    • Обязанности
      • Сохраняет адрес текущего реализованного контракта.
      • использовать delegatecall Перенаправлять все вызовы на контракт внедрения.
    • Характеристики хранения
      • следовать ERC-1967 Стандартный, использует фиксированные слоты для хранения данных IMPLEMENTATION_SLOT Сохраните адрес контракта на реализацию.
    • Легкий дизайн
      • Прокси-контракт не содержит никакой логики обновления и отвечает только за переадресацию вызовов.
  2. Договор на реализацию Contract):
    • Обязанности
      • Содержит конкретную бизнес-логику и логику обновления.
      • Предоставить новыевыполнитьдоговориз Проверка совместимости。
    • Спецификация интерфейса
      • выполнить ERC-1822 в стандарте proxiableUUID Функция, используемая для проверки совместимости контракта.
      • обычно на основе OpenZeppelin из UUPSUpgradeable Модули разработаны.
  3. Управление обновлениями:
    • Контроль разрешений
      • контракт принят _authorizeUpgrade Функция ограничивает разрешения на обновление.
    • Выполнение обновления
      • Операция обновления по контракту восстановления upgradeTo или upgradeToAndCall выполнение функции.
    • механизм безопасности
      • Встроенная проверка контекста,убеждатьсятолькоактерское Контракт мастерства может вызывать логику обновления.
      • Проверьте совместимость нового контракта конфигурации.,Избегайте случайных обновлений.

Как работает прокси UUPS

Рабочий процесс агента UUPS разделен на две части: переадресация звонков и обновление контракта.

  1. Переадресация звонков:
    • Пользователь отправляет запрос на прокси-контракт.
    • Агентский договор заключен delegatecall Перенаправить запрос на текущий контракт восстановления.
    • Активировать логику обработки контракта,ииспользоватьактерское Договор мастерства по хранению.
  2. Обновление контракта. Процесс обновления выполняется с помощью контракта в разделе «Выбрать». upgradeTo или upgradeToAndCall Заканчивать:
    1. Проверка контекста:Проверьте, является ли вызывающий абонентактерское Контракт мастерства предотвращает прямые вызовы логики обновления в контракте калибровки.
    2. Проверка разрешения:вызов _authorizeUpgrade Проверьте разрешения на обновление.
    3. Проверка совместимости:Подтвердить новыйвыполнитьдоговориз proxiableUUID будь то с ERC-1967 Соответствует стандартам.
    4. Обновления магазина:Воляактерское Адрес в мастерском контракте будет обновлен на новый адрес контракта.
    5. Инициализация (необязательно):существоватьобновление Заканчиватьназад,проходить upgradeToAndCall Выполнить логику инициализации.

UUPS против прозрачного прокси

характеристика

УУПС прокси

Transparent Proxy

Gas расходы

Еще ниже: в контракт внедрения включена только логика обновления.

Выше необходимо поддерживать дополнительный прокси-администратор.

сложность

Средний уровень, необходимо реализовать логику разрешений и безопасности.

Ниже логика обновления управляется прокси-администратором.

безопасность

Разработчикам необходимо вручную обеспечить контроль разрешений и совместимость.

Proxy Admin обеспечивает дополнительный уровень безопасности.

гибкость

Высокие, настраиваемые разрешения и логика обновления.

Нижний, ограничен прокси-администратором.

Масштабируемость

Более гибкий и может поддерживать несколько стратегий обновления.

Нижний, подходит для сценариев с одним режимом обновления.

Вопросы безопасности для агентов UUPS

  1. Контроль разрешений
    • убеждаться _authorizeUpgrade выполнитьстрогийиз Проверка разрешения(нравиться onlyOwner)。
    • Запретите любому пользователю запускать логику обновления.
  2. планировка хранилища
    • старый и новыйвыполнитьдоговоризпланировка Хранилище должно быть полностью совместимым, иначе произойдет путаница в данных.
  3. Проверка совместимости
    • новыйвыполнитьдоговордолженвыполнить proxiableUUID И верните правильное значение слота хранилища.
  4. инициализация
    • Если вам потребуется инициализация новых переменных состояния после обновления, обязательно пройдите upgradeToAndCall Вызовите функцию инициализации.

УУПС прокси — это гибкая и гибкая модель обновления смарт-контрактов, подходящая для сценариев, требующих эффективного управления логикой обновления. Он построен из Проверка разрешения、Проверка контекстаи Проверка совместимости,убеждатьсяобновлениеизбезопасность。в то же время,Разработчики могут настроить логику обновления в соответствии с потребностями.,Значительно улучшилась из Маштабируемость контракта.

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

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose