
Внутри экосистемы интеллектуального контракта Ethereum: безопасность, токены и проверка белого списка
15 июля 2025 г.Таблица ссылок
Аннотация и 1. Введение
Фон
2.1 Ethereum Primer
2.2 Проверка адреса белого списка
2.3 Анализ Taint по интеллектуальным контрактам и 2,4 модели угрозы
Мотивирующий пример и проблемы
3.1 Мотивирующий пример
3.2 Проблемы
3.3 Ограничения существующих инструментов
Дизайн Avverifier и 4.1 Обзор
4.2 обозначения
4.3 Компонент № 1: График кода
4.4 Компонент № 2: симулятор EVM
4.5 Компонент № 3: детектор уязвимости
Оценка
5.1 Экспериментальная настройка и исследовательские вопросы
5.2 RQ1: эффективность и эффективность
5.3 RQ2: характеристики уязвимых контрактов реального мира
5.4 RQ3: обнаружение в реальном времени
Дискуссия
6.1 Угрозы для достоверности и 6.2 ограничения
6.3 Этическое рассмотрение
Связанная работа
Заключение, доступность и ссылки
2 фон
2.1 Ethereum Primer
В Ethereum есть два типа счетов:Внешний аккаунт (EOA)иУмный контракт.В частности, EOA - это обычная учетная запись, которая определяется уникальным адресом и контролируется закрытым ключом. Кроме того, интеллектуальные контракты можно рассматривать как сценарии, которые в основном написаны в отношении прочности [28], четко определенного и простого в использовании языка программирования, предложенного чиновником Ethereum. Взаимодействие между учетными записями достигается путем инициирования транзакций, которые несут соответствующие данные. Умные контракты выполняются в виртуальной машине Ethereum (EVM) [43], которая встроена в клиентские узлы Ethereum. EVM основан на стеке, и все данные хранятся либо навсегда, либо временно. В частности, все операторы операторов и промежуточные значения выдвигаются и выпадают изкучаПолем АпамятьПлощадь [42], временная, хранит данные только в контексте текущей транзакции. Только данные, хранящиеся вхранилищеПлощадь [56] является постоянной, то есть хранится в цепочке. Мы часто обозначаем набор интеллектуальных контрактов, которые совместно достигают определенной функциональности в качестве децентрализованного приложения (DAPP).
DAPPs продемонстрировали значительный потенциал с момента их роста в 2016 году [40]. Появилось много жанров DAPPS, например, азартные игры [61], обмен жекенами [76] и кредитование [71]. Наряду с сотнями миллиардов долларов США, вложенных в Ethereum, появились децентрализованные версии традиционных финансовых инструментов, например, биржи и страхование, которые называются децентрализованными финансами, то есть Defi. Используя преимущества децентрализации, бессмысленности и прозрачности в Ethereum, Defi начинает подниматься как ракета. Согласно статистике, DEFI составила 163 миллиарда долларов на конец 2022 года [54].
За исключением официального токена, Ether, Ethereum позволяет пользователям выпускать токены по своему усмотрению, если эти токены соответствуют стандарту, таким как ERC-20 [63]. Стандарт ERC-20 состоит из шести обязательных функций. Любой интеллектуальный контракт реализует эти функции, которые могут выпускать действительные токены, которые могут распространяться в Ethereum, таких как USDT [16] и USDC [9]. Следовательно, DEFI также может выпустить свои собственные токены ERC-20 и принимать другие токены ERC-20 в качестве действительных. Взаимодействие между токенами ERC-20 и Defi продвигает процветание Ethereum.
2.2 Проверка адреса белого списка
В Ethereum изучение обоснованности данных адресов является обычной практикой, которая называетсяПроверка адреса в белом спискеПолем Это широко принято в приложениях DEFI, таких как кредитование [77] и Bank [6].Проверка адреса является краеугольным камнем для обеспечения безопасности интеллектуальных контрактовПолем Поэтому Openzeppelin [64], известный стандартный провайдер библиотеки в Ethereum, предлагает метод проверки белой списки. Более того, благодаря всестороннему изучению 40 лучших проектов DEFI, ранжированных по TVL (общая стоимость заблокированная) [53], которые составляют более 95% от общего рынка DEFI, мы суммировали методы проверки, которые они приняли. Короче говоря, участвуют три метода проверки в белом списке, то естьСравнение с жестким кодированием, проверка картирования и перечисление с жестким кодированием адреса.Обратите внимание, что, хотя мы не можем гарантировать, что все примененные методы проверки адреса покрываются, мы покрываем наиболее распространенные. Учитывая обширную копию и использование в интеллектуальных контрактах Ethereum [40], эти три механизма являются представительными.
Листинг 1 иллюстрирует, какСравнение с жестким кодированиемРабота Как мы видим, передача токена на L2 [2] должен равняться адресу USDT, в противном случае он поднимает исключение.Отображение проверкипринимаеткартированиеСтруктура, которая может динамически поддерживать статус белых списков адресов, например, отображение (адрес => bool) белый список. Что касаетсяжестко кодируемые адреса перечисления, это вариант первого. Как показано в списке 2, массив именованные адреса сохраняет все адреса белых списков. Следовательно, после того, как функция депозита вызвана, токен аргумента передается в функцию «Содержит», определенную на L3, что в основном представляет собой жесткое сравнение, обернутое петлей. На уровне байт -кодов эти три метода работают аналогично. Контракт загружает адрес в аргументах Calldataload и выполняет экзамен с помощью условного opcode Jumpi. Если адрес белый список, поток управления будет направлен наОсеннийветвь, и будет использоваться следующая логика. В противном случаепрыжокФилиал отвечает за обработку неудачных утверждений.
2.3 Анализ по усадке на интеллектуальные контракты
Анализ Taint - это фундаментальный метод анализа программы, используемый для обнаружения уязвимостей [34] и отслеживания чувствительного потока информации [47]. Прежде чем выполнить арестанализдолжны быть специально определены источники и раковины, гдеисточникотносится к входным полям, контролируемым противниками, ираковинаотносится к любой части системы, где потенциально опасные данные могут использоваться небезопасно. Анализ Taint будет отслеживать поток данных от источников к раковинам и выявлять любые операции или преобразования по данным на этом пути.
В контексте интеллектуальных контрактов Ethereum источник часто является функцией интеллектуальных контрактов, которые принимают транзакции из других счетов, в то время как раковина варьируется, в зависимости от конкретных целей. Например, чтобы изучить, может ли договор быть уничтоженным, Ethainter [14] принимает код самоопределения в качестве раковины. Более того, Michael et al. [34] вводят инструмент, основанный на символическом исполнении и анализе Taint, определяя STORE в качестве основной раковины для его оценки.
2.4 Модель угрозы
Бедротисты в нашем исследовании не требуют никаких дополнительных привилегий. Это связано с тем, что Ethereum представляет собой платформу для блокчейна без разрешений, которая позволяет любой не привилегированной учетной записи, включая вредоносные, инициировать транзакции с достаточным количеством газа, развернуть действующие интеллектуальные контракты и вызывать любые уже развернутые. Однако определенные ограничения все еще существуют. Например, они не могут нарушить целостность сети Ethereum или манипулировать процессом генерации блоков и не могут получить доступ к частным ключам законных счетов. Короче говоря, мы едва можем отличить противников от благополучных счетов.
Авторы:
(1) Tianle Sun, Университет науки и техники Хуажонга;
(2) Ningyu HE, Peking University;
(3) Цзян Сяо, Университет науки и техники Хуажонга;
(4) Yinliang Yue, лаборатория Zhongguancun;
(5) Сяпу Луо, Гонконгский политехнический университет;
(6) Хаою Ван, Университет науки и техники Хуажонга.
Эта статья есть
Оригинал