💬 Компания Dedaub обнаружила ошибку в компиляторе Solidity

Компания Dedaub обнаружила ошибку в компиляторе Solidity 👑 Premium-робот: получай более 20-ти торговых идей в день!
Размер текста

Компания Dedaub обнаружила ошибку в компиляторе Solidity

Dedaub, ведущая компания по аудиту безопасности блокчейна, обнаружила ошибку компилятора Solidity, которая влияет на равенство функций и дает представление о ее механике и планируемом решении.

Команда Dedaub недавно объявила об обнаружении ошибки в компиляторе Solidity, влияющей на равенство функций. По словам команды, ошибка была подтверждена и, как ожидается, будет исправлена ​​в следующем выпуске Solidity 0.9.

В подробной ветке Twitter Дедауб объяснил механизм ошибки, ее влияние на компиляцию функций и шаги, предпринимаемые для решения проблемы.

Команда Dedaub обнаружила ошибку компилятора Solidity, которая нарушает равенство функций. Ошибка была подтверждена и, как ожидается, будет исправлена ​​в Solidity 0.9. Давайте углубимся в механику этой ошибки, компиляцию функций и способы ее исправления. ? pic.twitter.com/kkup7SBfSV — Дедауб (@dedaub) 4 апреля 2023 г.

Команда Dedaub обнаружила ошибку компилятора Solidity, которая нарушает равенство функций. Ошибка была подтверждена и, как ожидается, будет исправлена ​​в Solidity 0.9. Давайте углубимся в механику этой ошибки, компиляцию функций и способы ее исправления. ? pic.twitter.com/kkup7SBfSV

Solidity, основной язык программирования для написания смарт-контрактов на блокчейне Ethereum, поддерживает функции более высокого порядка. Это означает, что функции могут сами воздействовать на другие функции. Реализация указателей функций в Solidity тесно связана с базовой реализацией функций, при этом смещения байт-кода первой инструкции используются в качестве идентификаторов функций.

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

Эта ошибка считается редким, единичным случаем, поскольку большинство смарт-контрактов не используют равенство указателей функций. Разработчики могут обойти эту проблему, временно отключив оптимизацию. Команда Solidity планирует отключить равенство указателей функций в предстоящем выпуске Solidity 0.9, эффективно устраняя ошибку.

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

Solidity, основной язык программирования для написания смарт-контрактов на блокчейне Ethereum, был первоначально предложен соучредителем Ethereum Гэвином Вудом в 2014 году. Solidity был разработан как высокоуровневый язык со статической типизацией, вдохновленный C++, Python и JavaScript. . Он был создан специально для облегчения разработки смарт-контрактов на платформе Ethereum.

Разработка и последующее внедрение Solidity были вызваны потребностью в языке программирования, который мог бы обеспечить безопасный и надежный способ создания, развертывания и взаимодействия со смарт-контрактами на блокчейне Ethereum. С тех пор язык претерпел многочисленные обновления и улучшения для решения проблем безопасности, улучшения функциональности и оптимизации использования газа. Непрерывная эволюция Solidity внесла значительный вклад в рост экосистемы децентрализованных приложений (dApp), позволяя разработчикам создавать инновационные решения в различных отраслях, таких как финансы, цепочки поставок и игры.

Как язык программирования Solidity столкнулся с проблемами безопасности, масштабируемости и удобства использования. Несколько громких инцидентов, таких как взлом DAO в 2016 году и уязвимость мультиподписного кошелька Parity в 2017 году, выявили потенциальные недостатки Solidity и смарт-контрактов, на которых он основан. Эти инциденты побудили команду Solidity, разработчиков и более широкое сообщество блокчейнов искать улучшения в языке, уделяя особое внимание безопасности и надежности.

В последние годы альтернативные языки смарт-контрактов, такие как Vyper и Rust, стали потенциальными конкурентами Solidity. Несмотря на это, Solidity остается доминирующим языком для разработки смарт-контрактов Ethereum, и активное сообщество постоянно работает над его усовершенствованием и оптимизацией.

Ранее в этом году Дедауб также обнаружил и надлежащим образом раскрыл крупномасштабную уязвимость маршрутизатора Uniswap.

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

Отказ от ответственности: эта статья предназначена только для информационных целей. Он не предлагается и не предназначен для использования в качестве юридического, налогового, инвестиционного, финансового или иного совета.

Ограничение / снятие ответственности (дисклеймер): Вся информация на этом сайте предоставляется исключительно в информационных целях и не является предложением или рекомендацией к покупке, продаже или удержанию каких-либо ценных бумаг, акций или других финансовых инструментов. Авторы контента не несут ответственности за действия пользователей, основанные на предоставленной информации. Пользователи обязаны самостоятельно оценивать риски и проконсультироваться со специалистами перед принятием каких-либо инвестиционных решений. Вся информация на сайте может быть изменена без предварительного уведомления.

Свежие новости по теме: Криптовалюта, NFT и криптобиржи

🚀