Статья Без посредников: что такое смарт-контракты и насколько им можно доверять

BOOX

Стаж на ФС с 2012 года
Команда форума
Служба безопасности
Private Club
Регистрация
23/1/18
Сообщения
29.405
Репутация
11.800
Реакции
62.063
RUB
50
Смарт-контракты можно назвать революцией в мире транзакций. Эта технология позволяет автоматизировать выполнение условий договоров и соглашений без участия посредников.


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

v85516d4hhbbryrfi7dvuscin2ou2zt6.jpeg


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

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

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

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

Так как смарт-контракт представляет собой ПО, то прочитать его может только человек, владеющий языком программирования: Solidity, Golang, Java, Kotlin. Иногда для понятности в код добавляют комментарии на родном языке.

Где используется

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

Для существования смарт-контрактов необходимо:
  1. Использование электронной подписи на основе публичных и приватных ключей.
  2. Открытые и доверительные сторонам контракта базы данных для транзакций, которые работают без человеческого участия.
  3. Децентрализация среды исполнения умного контракта.
  4. Достоверность источника цифровых данных.

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

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

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

Преимущества и недостатки

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

Как ни странно, главные преимущества смарт-контрактов одновременно являются и главными их недостатками. Речь про безотзывность, независимость и полную «автоматичность». Удивительно, но спрос на услуги с такими характеристиками довольно небольшой. Даже нотариальные документы всегда можно отозвать. А здесь – нет, в этом и риск.

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

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

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

Так, например, юристы относятся настороженно к смарт-контрактам по следующим причинам:
  • Смарт-контракты — новая технология, и законодательство многих стран еще не адаптировано к ним. Поэтому правовое регулирование еще не определено.
  • Сложность понимания. Не все юристы знают языки программирования, что затрудняет оценку рисков и возможных последствий.
  • Риск ошибок. Юристы опасаются, что ошибки в коде могут привести к нарушению прав и законных интересов сторон.
  • После заключения смарт-контракта его условия изменить невозможно, что может создать проблемы в случае изменения обстоятельств.
  • Проблемы с исполнением. В некоторых случаях исполнение смарт-контракта может быть затруднено из-за технических проблем или отсутствия необходимых инструментов. Юристы хотят быть уверены, что смарт-контракт будет исполнен должным образом.

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

Немало недостатков в смарт-контрактах видят и ИБ-специалисты.

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

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

Специалисты по кибербезопасности отмечают следующие недостатки смарт-контрактов:
  • сложность аудита и тестирования. Разработка и тестирование смарт-контрактов требуют высокого уровня экспертизы и внимания к деталям. Из-за сложности кода и взаимодействия с блокчейном, ошибки и уязвимости могут остаться незамеченными, что делает смарт-контракты потенциальной целью для атак;
  • необратимость транзакций. Транзакции в блокчейне являются необратимыми, что означает, что если в смарт-контракте обнаружена уязвимость, которая позволяет злоумышленникам украсть средства, вернуть их будет крайне сложно;
  • рекурсивные вызовы и целочисленные переполнения. Смарт-контракты могут содержать уязвимости, связанные с рекурсивными вызовами и целочисленными переполнениями, которые могут привести к потере средств или нарушению работы системы;
Одним из самых громких стал взлом The DAO. Атака стала возможна из-за уязвимости в коде смарт-контракта, позволявшей атакующему многократно извлекать средства из DAO перед обновлением баланса. Хакеры использовали рекурсивные вызовы функции splitDAO. В итоге, были украдены более 3,6 миллионов ETH.

Четыре года назад проект Yam Finance сначала привлек более 400 миллионов долларов, а затем потерял почти все. Причина в том, что не был проведен вовремя аудит кода. Ошибка в смарт-контракте проекта увеличила количество токенов YAM в 10 раз.

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

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

Будущее смарт-контрактов​

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

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

Теория систем говорит о том, что 100% безопасность в принципе недостижима.

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


 
  • Теги
    smart-contract смарт-контракт транзакции
  • Сверху Снизу