Что значит мы не принимаем переводы с адресов смарт контрактов

Уязвимости смарт-контрактов Etherium. Примеры кода

Данным постом начинаю цикл статей на тему безопасности смарт-контрактов Ethereum. Считаю эту тему весьма актуальной, так-как количество разработчиков лавинообразно растет, а уберечь от «граблей» — некому. Пока — переводы…

1. Сканирование Live Ethereum контрактов на ошибку «Unchecked-Send»

Начиная с марта 2015 года программисты смарт-контрактов были предупреждены о конкретных опасностях программирования, которые могут возникнуть, когда контракты отправляют сообщения друг другу [6].

В нескольких руководствах по программированию содержится рекомендация, как избежать распространенных ошибок (в официальных документах Ethereum [3] и в независимом руководстве от UMD [2] ). Хотя эти опасности достаточно понятны, чтобы избегать их, последствия такой ошибки являются ужасными: деньги могут быть заблокированы, потеряны или украдены.

Насколько распространены ошибки, возникающие в результате этих опасностей? Есть ли еще уязвимые, но живые контракты на block-chain Ethereum? В этой статье мы отвечаем на этот вопрос, анализируя контракты на живом block-chain Ethereum с помощью нового инструмента анализа, который мы разработали.

Что такое ошибка «unchecked-send»?

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

Проблема здесь в том, что метод send может выполниться с ошибкой. Если он не сработает, то победитель не получит деньги, однако переменная prizePaidOut будет установлена в True.

Как можно избежать этой ошибки?

В документации Ethereum содержится краткое предупреждение об этой потенциальной опасности [3] :»Есть некоторая опасность при использовании send — передача завершается с ошибкой, если глубина стека вызовов составляет 1024 (это всегда может быть вызвано вызывающим), и также терпит неудачу, если у получателя заканчивается «газ». Поэтому, чтобы обеспечить безопасную передачу эфира, всегда проверяйте возвращаемое значение send или даже лучше: используйте шаблон, в котором получатель изымает деньги.»

Два предложения. Первое — проверить возвращаемое значение send, чтобы убедиться, успешно ли оно завершено. Если это не так, то генерируйте исключение, чтобы откатить состояние назад.

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

Однако это ошибка, поскольку она вводит дополнительную уязвимость. В то время как этот код защищает winner от атаки callstack, он также делает winner и loser уязвимыми друг для друга. В этом случае мы хотим предотвратить атаку callstack, но продолжаем выполнение, если команда send по какой-либо причине не сработает.

Поэтому даже лучшая передовая практика (рекомендованная в нашем «Руководстве программиста для Ethereum и Serpent», хотя она одинаково применима к Solidity), заключается в проверке наличия ресурса callstack. Мы можем определить макрос callStackIsEmpty (), который вернет ошибку, если и только если callstack пустой.

Еще лучше рекомендация из документации Ethereum — «Использовать шаблон, в котором получатель забирает деньги», является немного загадочной, но имеет объяснение. Предложение состоит в том, чтобы реорганизовать ваш код, чтобы эффект неудачи send был изолирован, и влиял только на одного получателя за раз. Ниже приведен пример этого подхода. Однако этот совет также является анти-шаблоном. Он принимает на себя ответственность за проверку callstack самим получателям, что делает вероятными попадание в одну и ту же ловушку.

Источник

Не отправляйте ETH напрямую на адрес смарт-контракта Ethereum

Функция системы кодирования смарт-контрактов Ethereum состоит в том, что она позволяет получать или отправлять токены. Но с этой системой могут быть связаны серьезные проблемы. Например, вы не можете отправить ETH напрямую в смарт-контракт, и вместо этого вам нужно отправить и получить токены. В чем причина этой ошибки и как мы можем её исправить?

Каждый контракт Ethereum можно закодировать так, чтобы ETH можно было отправить на адрес контракта. Этот метод упрощает работу со смарт-контрактом Ethereum, и при его использовании нет необходимости в разных приложениях для работы со смарт-контрактом.

Не отправляйте ETH напрямую на адрес смарт-контракта Ethereum

Вы можете воспользоваться этой функцией, встроив строку кода в смарт-контракт, но стоит запомнить, что отправка ETH напрямую в контракт — это неправильно.

Согласно документам Solidity, при включении этого фрагмента кода требуется более 2300 единиц газа для отправки каждого ETH на смарт-контракт Ethereum. Таким образом, это становится одним из самых дорогостоящих процессов на смарт-контрактах.

Ошибка при отправке ETH на адрес контракта Ethereum также связана с контрактами по умолчанию, называемыми ECRECOVER. Резервный процесс в ECRECOVER требует более 2300 единиц газа для выполнения операций по передаче ETH. Так что лучше не делать этого и использовать токены только для смарт-контрактов.

Как отправить ETH на контракт Ethereum

Чтобы отправить ETH на смарт-контракт, покупатель должен приобрести актив за эфиры. Контракт требует, чтобы владелец актива удерживал его до момента получения.

После подтверждения покупки и получения актива эта сумма передается продавцу. Происходит перевод ETH с контракта на определенный адрес.

Если покупатель не получает актив, контракт возвращает тот же ETH, отправленный покупателю. В этом случае блокчейн отправит ETH на адрес из контракта.

Чтобы отправить ETH на контракт

Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть фото Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть картинку Что значит мы не принимаем переводы с адресов смарт контрактов. Картинка про Что значит мы не принимаем переводы с адресов смарт контрактов. Фото Что значит мы не принимаем переводы с адресов смарт контрактов

Вызывая функцию buyCollectible, покупатели могут купить желаемое количество активов из смарт-контракта.

Вы можете проверить баланс контракта —

web3.fromWei (web3.eth.getBalance (contractAddress), ‘ether’)

Как переместить ETH со смарт-контракта на другой адрес

function confirmCollRecv (uint _certNum)

Также проверьте количество активов в смарт-контракте и количество переводов, используя следующие функции в Web3:

Источник

Простыми словами: смарт-контракты, Ethereum, ICO

Смарт-контракты сделали криптовалюту Ethereum второй по величине. Рассказываем о том, что это такое и как это связано с модным понятием ICO.

Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть фото Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть картинку Что значит мы не принимаем переводы с адресов смарт контрактов. Картинка про Что значит мы не принимаем переводы с адресов смарт контрактов. Фото Что значит мы не принимаем переводы с адресов смарт контрактов

Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть фото Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть картинку Что значит мы не принимаем переводы с адресов смарт контрактов. Картинка про Что значит мы не принимаем переводы с адресов смарт контрактов. Фото Что значит мы не принимаем переводы с адресов смарт контрактов

Про Биткойн слышали многие, что и не удивительно — эта криптовалюта была первой и до сих пор остается самой популярной и самой крупной. Успех Биткойна вдохновил на подвиги кучу людей, поэтому за последние пару лет разных криптовалют — так называемых альткойнов — насоздавали ужас сколько, больше 1000.

Так вот, Биткойн — на данный момент однозначно номер один. А знаете, какая криптовалюта на втором месте? Ethereum. Когда мы говорим про места, мы имеем в виду капитализацию, то есть суммарную стоимость всех монет валюты.

Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть фото Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть картинку Что значит мы не принимаем переводы с адресов смарт контрактов. Картинка про Что значит мы не принимаем переводы с адресов смарт контрактов. Фото Что значит мы не принимаем переводы с адресов смарт контрактов

Капитализация и цены TOP-5 криптовалют. Источник

Как видите, Ethereum с большим отрывом опережает другие «альткойны», а в июне 2017 чуть было даже не обогнал Биткойн, «великий и ужасный». Давайте разберемся, что же в Ethereum такого особенного и почему подавляющее большинство проводимых в этом году ICO используют именно его.

Идея Ethereum

Ethereum запустился совсем недавно, 30 июля 2015 года. Одним из его создателей был нынче известный в блокчейн-тусовке и, не побоюсь этого слова, влиятельный Виталик Бутерин. Он родился в России, но с шести лет жил в Канаде. На тот момент, когда он изложил свои идеи, которые в итоге легли в основу сети Ethereum, ему было 19 лет.

Так вот, в чем же идея? В сети Биткойн с точки зрения пользователя все устроено довольно просто. Есть кошельки, можно передавать деньги с одного кошелька на другой или на несколько сразу. Сеть построена на весьма остроумных принципах, позволяющих обходиться без единого центра, но задачи решаются вполне классические. Обычная платежная система, по большому счету: люди, деньги, переводы — все, больше ничего нет.

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

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

Программы — их называют смарт-контрактами — записываются в блокчейн. Таким образом, эта программа запоминается навсегда, у всех участников сети есть ее копия (блокчейн ведь у всех одинаковый), соответственно и выполняется смарт-контракт у всех тоже идентично.

И вот это нововведение существенно расширило сферу применения блокчейн-валют.

Примеры смарт-контрактов

Какие программы можно написать? Да какие угодно. Например, финансовую пирамиду. Для этого в сети Ethereum достаточно создать смарт-контракт со следующими правилами:

Или можно устроить аукцион. Пишем программу:

Есть еще миллион применений: кошельки с несколькими владельцами, финансовые инструменты, самоисполняющиеся пари, голосования, лотереи, игры, казино, нотариат и прочее.

Напомним преимущество: это блокчейн — все уверены, что никто не жульничает, все видят текст программы и понимают, что она работает именно так, как в ней написано. Программа — не человек. Она не скроется с деньгами, не обанкротится, и так далее. Если, конечно, в ней нет багов или «неожиданного поведения».

Ограничения смарт-контрактов

Но есть и существенные ограничения, вот некоторые из них:

Иными словами, как и в других областях, многое зависит от профессионализма авторов контрактов.

Главное использование смарт-контрактов

Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть фото Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть картинку Что значит мы не принимаем переводы с адресов смарт контрактов. Картинка про Что значит мы не принимаем переводы с адресов смарт контрактов. Фото Что значит мы не принимаем переводы с адресов смарт контрактов

Простой смарт-контракт Ethereum. Имеющаяся ошибка позволяет украсть все деньги, кто нашел — молодец

Пирамиды, голосования, казино, лотереи — это все здорово. Но что оказалось действительно удобно делать при помощи смарт-контрактов — это надувать пузыри собирать деньги на свой стартап.

Ведь при помощи смарт-контракта можно автоматизировать всю «бухгалтерию»: контракт сам запомнит, от кого и сколько пришло денег, сам начислит «акции», а также даст возможность каждому участнику передавать и продавать эти акции. Не нужно никакой возни с адресами почты, кредитными картами, проверкой карт, авторизацией инвесторов и тому подобного. Вдобавок все видят, сколько всего было выпущено акций и как они распределились по участникам. От скрытого допечатывания акций и продажи одной акции несколько раз защищает блокчейн.

Смарт-контракты дали миллиону «криптоинвесторов» возможность «швырять деньги в монитор».Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть фото Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть картинку Что значит мы не принимаем переводы с адресов смарт контрактов. Картинка про Что значит мы не принимаем переводы с адресов смарт контрактов. Фото Что значит мы не принимаем переводы с адресов смарт контрактов

ICO — Initial Coin Offering

Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть фото Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть картинку Что значит мы не принимаем переводы с адресов смарт контрактов. Картинка про Что значит мы не принимаем переводы с адресов смарт контрактов. Фото Что значит мы не принимаем переводы с адресов смарт контрактов

График стоимости Ethereum. Источник

Обсудим ICO поподробнее. Типичная схема криптостартапа такова:

Сумма обычно составляет 10-20 миллионов долларов и собирается буквально за несколько минут, иногда дней. Как правило, ICO ограничено по времени или собираемой сумме — и это формирует ажиотаж.

Окупаемость криптоинвестиций

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

Как правило, сами токены выводятся на криптобиржу, и открываются торги. Те, кто не успел поучаствовать в ICO, могут купить их уже на бирже — скорее всего, подороже. Те, кто участвовал в ICO, чтобы потом перепродать подороже, могут их на бирже продать.

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

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

В 2017 году (к сентябрю) на ICO разные проекты уже собрали порядка 1,7 миллиарда долларов. Об успешных проектах слышно мало, но инвесторы не теряют оптимизма.

Источник

Что такое смарт-контракты?

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

В центре внимания этой статьи смарт-контракты, работающие на виртуальной машине Ethereum (EVM), которая является важнейшей частью блокчейна Ethereum.

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

Простыми словами, смарт-контракт работает как детерминированная программа. Она выполняет определённые действия, когда соблюдены заданные условия. Исходя из этого, система смарт-контрактов часто использует «if… then…» выражения. Несмотря на общепринятую терминологию, смарт-контракты не являются ни контрактами в юридическом смысле, ни «умными». Это всего лишь фрагменты кода, запущенного в распределенной системе (в блокчейне).

В сети Ethereum смарт-контракты отвечают за выполнение операций между пользователями (адресами). Любой адрес, не являющийся смарт-контрактом, называется личным аккаунтом (EOA). Таким образом, смарт-контракты управляются программным кодом, а личные аккаунты – пользователями.

По существу, смарт-контракты Ethereum состоят из кода контракта (содержащего условия выполнения) и двух публичных ключей. Первый публичный ключ предоставлен создателем контракта. Другой ключ представляет собой сам контракт, являясь цифровым идентификатором, уникальным для каждого смарт-контракта.

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

Основные характеристики

Смарт-контракт Ethereum зачастую имеет следующие характеристики:

Распределенность. Смарт-контракты реплицированы и распределены по всем узлам сети Ethereum. Это одно из главных отличий от других решений, использующих централизованные сервера.

Детерминированность. Смарт-контракты выпоняют действия, для которых они предназначены, по достижении удовлетворённых требований. Кроме того, результат всегда будет одинаковым вне зависимости от того, кто выполняет требования.

Автономность. Смарт-контракты могут автоматизировать все виды задач, работая как самоисполняемая программа. В большинстве случаев, если смарт-контракт не инициирован, он находится «в бездействии» и не выполняет каких-либо действий.

Неизменность. Нельзя изменить процесс работы смарт-контракта после его разработки и активации. Изменения могут быть внесены только в том случае, если разработчики до этого реализовали определенную функцию. Таким образом, мы можем сказать, что смарт-контракты могут обеспечить защиту от взломов для кода посредством доказательства подлинности.

Доверительность. Две или более стороны могут взаимодействовать с помощью смарт-контрактов, без знания и доверия друг к другу. В добавок к этому, технология блокчейн обеспечивает точность и учет всех данных.

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

Могу ли я изменить или удалить смарт-контракт?

В смарт-контракт Ethereum нельзя добавлять новые функции после активации. Однако, если разработчик включает в код контракта функцию под названием SELFDESTRUCT, в дальнейшем он сможет удалить его и заменить на новый. В свою очередь, если данная функция не была написана в коде, контракт нельзя будет удалить.

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

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

Преимущества и варианты использования

Поскольку это программируемый код, смарт-контракты легко настраиваются и могут разрабатываться разными способами, предлагая различные виды услуг и решений.

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

Преимущества смарт-контрактов в особенности проявляются, когда речь идет о денежных переводах или обмене средств между двумя или более сторонами.

ERC-20

Недостатки

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

Следует заметить, что проблема возникла не из-за работы блокчейна Ethereum. Вместо этого, ошибка была вызвана неправильной реализацией смарт-контракта.

Еще один недостаток смарт-контрактов связан с их неопределенным юридическим статусом. И это связано не только с тем, что в большинстве стран данная технология находится в «серой зоне», но и по причине того, что смарт-контракты не соответствуют их текущей нормативно-правовой базе.

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

Критика

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

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

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

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

Заключение

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

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

Источник

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

Что такое целочисленное переполнение и почему об этом нужно знать, если вы используете смарт-контракты?

Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть фото Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть картинку Что значит мы не принимаем переводы с адресов смарт контрактов. Картинка про Что значит мы не принимаем переводы с адресов смарт контрактов. Фото Что значит мы не принимаем переводы с адресов смарт контрактов

Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть фото Что значит мы не принимаем переводы с адресов смарт контрактов. Смотреть картинку Что значит мы не принимаем переводы с адресов смарт контрактов. Картинка про Что значит мы не принимаем переводы с адресов смарт контрактов. Фото Что значит мы не принимаем переводы с адресов смарт контрактов

Если вы интересуетесь блокчейном и криптовалютами и даже разобрались в том, как работают смарт-контракты, то вам наверняка не помешает знать, что такое «целочисленное переполнение». И вот почему.

Говоря простыми словами, если целое число без знака хранится в ячейке памяти длиной 1 байт, то оно может принимать только значения от 0 до 255. Это значит, что если не заданы дополнительные условия, то 255 + 1 = 0, но, что гораздо неприятнее, 0 – 1 = 255. Именно так процессоры обычно обрабатывают данные.

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

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

А при том, что в смарт-контрактах для Ethereum такого контроля не предусмотрено. То есть, если у вас ноль токенов, а вы переводите один другу, то у вас становится квинтиллион токенов. Куда логичнее было бы, чтобы программа прервала работу, а ошибочная транзакция отменилась.

Почему разработчики Ethereum реализовали арифметику так, а не иначе — загадка. Однако для того, чтобы в смарт-контрактах работала привычная нам арифметика, каждый программист смарт-контрактов вынужден добавлять в свой код более 100 строчек с функциями сложения, умножения и так далее.

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

И это не теория, так уже неоднократно случалось с несколькими валютами. Вот пример описанной транзакции. Как правило, о проблеме в коде узнают, когда злоумышленник уже все провернул и наварился. На тот момент уже ничего нельзя сделать, ведь смарт-контракт высечен в камне — его нельзя менять или править в нем баги.

Переполнение и биткойны

Справедливости ради, переполнение — проблема, свойственная не только Ethereum. Задолго до этого с такой же проблемой столкнулся и Bitcoin.

В августе 2010-го на двух биткойн-кошельках как раз из-за переполнения образовалось 184 миллиарда биткойнов. Нет смысла говорить, что такое развитие событий не устраивало создателей. Они (в лице Сатоши Накамото) быстро поправили баг, откатили финансовую историю и сделали вид, что ничего не произошло.

Этот случай, как и другие, показывает, что блокчейн непоколебим, но только в определенных рамках, когда все идет по плану. Иначе поменяют и план — и сам блокчейн заодно.

И вновь про смарт-контракты

Решение разработчиков Ethereum выглядит более чем странно: они расставили капканы для программистов смарт-контрактов, и надо быть очень опытным и внимательным, чтобы вы или ваши инвесторы не потеряли в одночасье все деньги. И это еще одна причина, по которой имеет смысл тщательно проверять код смарт-контрактов. В рамках предложения Kaspersky Token Offering Security наши эксперты проводят анализ исходного кода таких программ в поисках уязвимостей и незадокументированных особенностей. Подробнее — на странице проекта Kaspersky Token Offering Security.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *