📌Как Æ предотвращает любимую схему хакеров на уровне протокола

Пример тогоб как повышение лимитов Ethereum предотвращает хаккерские атаки, которые на сегодняшний день принесли владельцам токенов ERC20 ущерб свыше нескольких миллионов.

Иногда неожиданные события приводят к катастрофическим последствиям. При разработке “умных” контрактов к хаосу не всегда приводит запутанный код или слабая логика. Иногда требуется что-то настолько простое, как арифметические вычисления с начальной школы: сложение, вычитание и умножение.

Возьмем к примеру наименьшее и наибольшее число (беззнаковые целые числа), которое могут быть представлены в Ethereum Virtual Machine (EVM).

0

и

2²⁵⁶ — 1

Несмотря на то, что с арифметической точки зрения они кажутся максимально удаленными друг от друга, для разработчиков они слишком близки: Вычитая 1 из первого числа или прибавляя 1 ко второму, вы получаете следующие результаты:

0–1 == 2²⁵⁶ — 1

и

2²⁵⁶ — 1 + 1 == 0

Таким образом происходит выход за границы допустимых целочисленных значений.

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

Почему это важно?

В 2018 и последующие годы так называемая “ошибка batchOverflow” во многих контрактах Ethereum позволила хакерам генерировать токены из воздуха, тем самым серьезно вредя биржам и держателям токенов.

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

Чтобы подробнее обьяснить суть этой ошибки и способ, с помощью которого Aeternity предотвращает ее, давайте рассмотрим алгоритм работы Sophia в Aeternity’s Smart Contract Language. Критической строкой кода будет строка 13.

Если вы не программист и/или просто хотите узнать, как работает эксплойт, пропустите скрин кода.

Как это работает?

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

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

После этой проверки, значение добавляется к балансу каждого получателя.

Et voilà - прибыль!

Почему это невозможно в Aeternity?

The Fast Æternity Transaction Engine (FATE) VM тип безопасного программирования, который не позволяет беззнаковым числам обернуться ниже 0 (читай: вычитание 1 из вашего токен-баланса 0 не делает вас миллионером).

В FATE также нет фиксированных верхних границ для чисел, то есть 2²⁵⁶ - 1 - не самое большое число. Единственными ограничениями для арифметических значений являются транзакционные издержки и, в конечном счете, хранение.

В примере выше хакер может попытаться отправить 2²⁵⁶ - 1 или большее колличество токенов X числу людей за одну транзакцию. Однако контракт не будет обманут и транзакция может быть осуществлена в том случае, если отправитель фактически владеет необходимой суммой.

Меньше лазеек для хакеров, меньше забот для разработчиков.

3 Likes

Слышал об этом, вообще это очень круто что противодействуют хакерам, главная проблема как по мне на сегодняшний день

Встречался с такой неприятной проблемой, это круто что разрабы не стоят на месте!

Как тебе такое Илон Маск!?
Вообще очень крутая тема

Надеюсь дальше будет еще круче!

поживем увидим)

ну согласись, что АЕ имеет большие перспективы!

Очень даже неплохие, ну и минусов тоже хватает

Идеального ничего не бывает, ну как по мне у АЕ есть весомые преимущества перед конкурентами

какие например?

АЕ одна из самых стабильных и быстрых площадок, это ли не круто?

Круто конечно, но что с ростом

С ростом сейчас у всех проблемы, главное преимущество АЕ в том то она так сильно не проседает как остальные

ну будем надеяться на лучшее и верить в АЕ)

поддерживаю, разрабы на верном пути!

…that moment you find your article being translated to russian :grin::+1: спосибо ребята !

2 Likes

哈哈:joy: :joy: :joy: :joy: :joy: :joy:

可惜没人用,在好也没用