Внутри экосистемы интеллектуального контракта Ethereum: безопасность, токены и проверка белого списка

Внутри экосистемы интеллектуального контракта Ethereum: безопасность, токены и проверка белого списка

15 июля 2025 г.

Аннотация и 1. Введение

  1. Фон

    2.1 Ethereum Primer

    2.2 Проверка адреса белого списка

    2.3 Анализ Taint по интеллектуальным контрактам и 2,4 модели угрозы

  2. Мотивирующий пример и проблемы

    3.1 Мотивирующий пример

    3.2 Проблемы

    3.3 Ограничения существующих инструментов

  3. Дизайн Avverifier и 4.1 Обзор

    4.2 обозначения

    4.3 Компонент № 1: График кода

    4.4 Компонент № 2: симулятор EVM

    4.5 Компонент № 3: детектор уязвимости

  4. Оценка

    5.1 Экспериментальная настройка и исследовательские вопросы

    5.2 RQ1: эффективность и эффективность

    5.3 RQ2: характеристики уязвимых контрактов реального мира

    5.4 RQ3: обнаружение в реальном времени

  5. Дискуссия

    6.1 Угрозы для достоверности и 6.2 ограничения

    6.3 Этическое рассмотрение

  6. Связанная работа

  7. Заключение, доступность и ссылки

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], эти три механизма являются представительными.

Listing 1: An example of hard-encoded address comparison.

Listing 2: An example of hard-encoded address enumeration.

Листинг 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) Хаою Ван, Университет науки и техники Хуажонга.


Эта статья естьДоступно на ArxivПод CC по лицензии 4.0.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE