close-btn

Почему смарт-контракты не работают? ТОП-3 провала в истории технологии

АЛЕКСАНДР ОЛЬШЕВСКИЙ

Автор блога L4A ICO, Blockchain and Web Development,  контент менеджер в Look4App

 

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

В чем причина неудачных смарт-контрактов? Фото: coinvedi.com

Команда Look4App, которая располагает инсайтами в сфере ICO, blockchain и веб-разработок, собрала 3 примера из реальной жизни, когда люди потерпели поражение, пытаясь создать идеальный смарт-контракт.

 

ТОП-3 провала в индустрии смарт-контрактов

 

№1 — Parity

Проблемы со смарт-контрактом привели к заморозке средств клиентов Фото: i1.wp.com

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

Похожая история случилась с кошельком Parity. Команда «Kill» навсегда удалила библиотеку из цепочки блоков, частично повредив одну из самых современных платформ.
В результате этого инцидента на кошельках пользователей было заморожено более $150 млн долларов в эквиваленте Ethereum.

Cпустя полгода после этого инцидента, Parity все еще не смог разморозить средства клиентов, несмотря на то, что предпринимал попытки внести изменения в цепочку блоков Ethereum.

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

Пользователи смарт-контрактов должны принять грустную правду. Участие в Smart Contract — это как заключение юридического договора, только на языке Solidity. Подписавшись на это, вы соглашаетесь со всеми условиями, которые в нем прописаны.

№2 — EEAR

Перейдем к проектам меньшего масштаба. Из-за обычной ошибки EEAR registry вывел деньги из собственного кошелька.

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

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

Неисправности в коде может выявить даже простая проверка на тестовой сети.

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

Проблему со смарт-контрактам удалось исправить вручную Фото: cryptoallinfo.ru

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

№3 — Децентрализованная автономная организация

Вернемся к крупному бизнесу. DAO (Distributed Autonomous Organization)- это инвестиционный инструмент, который позволяет вкладывать средства через блокчейн Ethereum. Сделка заключается на основе смарт-контракта, разработанного специально для устранения потребности в человеческом доверии.

О том, как работает этот смарт-контракт, было известно всем. Однако некоторые смогли разобраться в специфике его работы немного лучше. В DAO была найдена уязвимость, которая позволила вывести с площадки средства на сумму 50 миллионов долларов США.

Впоследствии «взлом» был отменен, а деньги вернулись обратно. Но на самом деле эта уязвимость была одной из функцией Smart-контракта. Если бы она не была прописана, «взлом» был бы невозможен.

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

История похожа на Parity — участвуя в проекте и финансируя его, каждый должен согласиться с содержанием смарт-контракта.

Подписав смарт-контракт, вы не сможете отменить его условия Фото: i2.wp.com

Смарт-контракты не работают. И вот почему

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

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

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

Именно поэтому наш подход к проектам ICO и blockchain подразумевает использование стресс-тестирования.

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

В конце концов, смарт-контракты слишком логичны.

ВАС ЗАИНТЕРЕСУЕТ — Чего ждать от мирового рынка ICO: тренды и тенденции

google news