OpenZeppelin

Pause

OpenZeppelin — набор открытых, многократно используемых и прошедших аудит библиотек смарт-контрактов на языке Solidity, предназначенный для разработки и обеспечения безопасности децентрализованных приложений (dApps) в сети Ethereum и других EVM-совместимых блокчейнах[1]. Проект появился в 2016 году и поддерживается компанией OpenZeppelin. Модульная архитектура пакета позволяет импортировать только необходимые компоненты, тем самым сокращая размер байткода и стоимость транзакций[2].

Общие сведения
OpenZeppelin Contracts
Тип Библиотека смарт-контрактов
Разработчик OpenZeppelin
Написана на Solidity
Операционная система Кроссплатформенная (EVM-совместимые блокчейны)
Первый выпуск 2016
Репозиторий GitHub
Состояние Активно разрабатывается и обновляется
Лицензия MIT
Сайт openzeppelin.com

Функции

OpenZeppelin Contracts структурирована по тематическим модулям, каждый из которых решает определённые задачи разработки и безопасности[3].

  • Стандарты токенов (Tokens) — реализации ERC-20, ERC-721, ERC-1155, ERC-777 и др., содержащие базовые операции чеканки, сжигания и передачи активов[4].
  • Управление доступом (Access Control)
    • Ownable — единый владелец, ограничивающий вызовы критически важных функций.
    • AccessControl — гибкая система ролей с возможностью создания произвольных разрешений[5].
  • Безопасность (Security)
    • ReentrancyGuard — защита от повторных (реентрантных) вызовов[6].
    • Pausable — механизм экстренной остановки контракта[7].
    • PullPayment и другие шаблоны, минимизирующие риски при выплатах.
  • Utilities — вспомогательные библиотеки для безопасной математики, верификации подписей (ECDSA), структур данных (Counters, EnumerableSet) и низкоуровневых операций (Address, Strings)[8].
  • Upgradeable Smart Contracts — шаблоны Initializable, UUPSUpgradeable, TransparentUpgradeableProxy, позволяющие обновлять логику без изменения адреса и потери состояния[9].
  • Governance — модуль Governor для реализации голосований и создания DAO[10].
  • Cross-chain — экспериментальные компоненты для взаимодействия между сетями[11].

Примеры использования

Ниже приведены типичные сценарии, иллюстрирующие применение библиотеки.

  • Выпуск собственного ERC-20 токена

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 {
  constructor(uint256 supply) ERC20("MyToken","MTK") { _mint(msg.sender, supply); }
}
Наследование от готовой реализации гарантирует соответствие стандарту без самостоятельной проработки функций `transfer`, `approve` и т. д.[12]

  • Защита вывода средств от реентрантных атак

function withdraw(uint256 amount) public nonReentrant { … } Модификатор `nonReentrant` из ReentrancyGuard блокирует повторный вызов функции до её завершения[13].

  • Обновляемые контракты по стандарту UUPS

С помощью плагина OpenZeppelin Upgrades для Hardhat разработчик развёртывает прокси и первую версию контракта. Далее команда `upgradeProxy` привязывает прокси к новой реализации `MyUpgradeableCounterV2`, сохранив состояние[14].

Примечания

  1. ↑ OpenZeppelin Contracts documentation. OpenZeppelin Docs. Дата обращения: 20 июня 2025.
  2. ↑ OpenZeppelin — обзор. IQ.wiki. Дата обращения: 20 июня 2025.
  3. ↑ OpenZeppelin Smart-Contracts Library: Overview. Metlabs. Дата обращения: 20 июня 2025.
  4. ↑ How to create an ERC-20 token. SpeedRunEthereum. Дата обращения: 20 июня 2025.
  5. ↑ OpenZeppelin Contracts — GitHub. GitHub. Дата обращения: 20 июня 2025.
  6. ↑ Reentrancy Guard quick-start guide. Medium. Дата обращения: 20 июня 2025.
  7. ↑ Security modules API. OpenZeppelin Docs. Дата обращения: 20 июня 2025.
  8. ↑ Utilities API. OpenZeppelin Docs. Дата обращения: 20 июня 2025.
  9. ↑ How to implement an upgradeable smart contract with UUPS. Medium. Дата обращения: 20 июня 2025.
  10. ↑ Governance. OpenZeppelin Docs. Дата обращения: 20 июня 2025.
  11. ↑ OpenZeppelin Smart-Contracts Library: Overview. Metlabs. Дата обращения: 20 июня 2025.
  12. ↑ How to create and deploy an ERC-20 token. QuickNode Guides. Дата обращения: 20 июня 2025.
  13. ↑ Reentrancy Guard quick-start guide. Medium. Дата обращения: 20 июня 2025.
  14. ↑ Upgrading smart contracts using OpenZeppelin plugin. Дата обращения: 20 июня 2025.
© Правообладателем данного материала является АНО «Интернет-энциклопедия «РУВИКИ».
Использование данного материала на других сайтах возможно только с согласия АНО «Интернет-энциклопедия «РУВИКИ».
Pause