Перейти к содержанию

Смарт-контракты: как достать монетку из пустого кармана


Рекомендуемые сообщения

Если вы интересуетесь блокчейном и криптовалютами и даже разобрались в том, как работают смарт-контракты, то вам наверняка не помешает знать, что такое «целочисленное переполнение». И вот почему.
Говоря простыми словами, если целое число без знака хранится в ячейке памяти длиной 1 байт, то оно может принимать только значения от 0 до 255. Это значит, что если не заданы дополнительные условия, то 255 + 1 = 0, но, что гораздо неприятнее, 0 – 1 = 255. Именно так процессоры обычно обрабатывают данные.
В современных языках программирования (не во всех, конечно) программа сама контролирует, а не произошло ли переполнения во время арифметических действий. Если да, то, вероятнее всего, это совсем не то, что хотел программист, и чтобы проблемы не возникли намного позже, выполнение программы стоит прервать сразу же.

При чем тут смарт-контракты?

 

А при том, что в смарт-контрактах для Ethereum такого контроля не предусмотрено. То есть, если у вас ноль токенов, а вы переводите один другу, то у вас становится квинтиллион токенов. Куда логичнее было бы, чтобы программа прервала работу, а ошибочная транзакция отменилась.
Почему разработчики Ethereum реализовали арифметику так, а не иначе — загадка. Однако для того, чтобы в смарт-контрактах работала привычная нам арифметика, каждый программист смарт-контрактов вынужден добавлять в свой код более 100 строчек с функциями сложения, умножения и так далее.
В противном случае злоумышленник может получить квинтиллион токенов на своем счету, завести их на биржу криптовалют и купить на все токены биткойны или эфир. По любой цене.
И это не теория, так уже неоднократно случалось с несколькими валютами. Вот пример описанной транзакции. Как правило, о проблеме в коде узнают, когда злоумышленник уже все провернул и наварился. На тот момент уже ничего нельзя сделать, ведь смарт-контракт высечен в камне — его нельзя менять или править в нем баги.
 
Читать далее >>

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Похожий контент

    • Nikola-krug
      Автор Nikola-krug
      У меня телевизор без интернета, на телефоне не всегда удобно смотреть видео. Помогите пожалуйста выбрать смарт ТВ приставку. Вот один вариант
      https://ozon.ru/t/V069zog
       
    • Shmonov_M
      Автор Shmonov_M
      Здравствуйте, такая проблема в Kaspersky Security Center нет событий на хостах, хотя хранение событий включены в политиках, иногда они появляются и минут через 20 снова пропадают, также нет статистики о вирусах, угрозах и тд. В чекм может быть проблема? 


×
×
  • Создать...