Что такое "умный контракт" и для чего он нужен

16 октября

"Умные контракты" - это ещё один шаг на пути к прогрессу. Это способ автоматизации взаимодействия между двумя сторонами, где необходимо доверие.

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

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

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

Принцип работы

Любая транзакция большинства разновидностей блокчейн является контрактом. Возможности такого контракта зависят от платформы блокчейн, на которой существует реализация контрактов. Например, на биткоине - ограниченные возможности для создания "умных контрактов", что и подтолкнуло Виталика Бутерина на написание платформы Etherium ("Эфириум") для того, чтобы расширить потенциал. Чтобы понять принцип работы контракта, для начала нужно рассмотреть принцип работы обычной транзакции.

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

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

Сферы применения

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

Электронное голосование

Идея о справедливом государстве посещает людей еще со времён Платона. С появлением технологии блокчейн появляется возможность это осуществить. С помощью “умных контрактов” на базе блокчейн можно добиться абсолютно прозрачного и справедливого голосования. Вероятность фальсифицировать выборы при такой технологии сводится к нулю. Идея состоит в том, что председатель создаёт бюллетень в виде "умного контракта", в котором указываются имена избирателей. Такой контракт может собирать и хранить всю необходимую информацию в процессе голосования и автоматически вести подсчёт голосов.

Банковские операции

Рутинность некоторых банковских операций может быть заменена автоматизированными контрактами. Это позволит значительно ускорить процесс обработки данных, сделать его абсолютно прозрачным для клиента и сократить расходы на сотрудников, которые, по сути, выполняют те же действия. Крупнейший банк Великобритании Barclays (рус. Барклайс) применяет контракты для регистрации перехода прав собственности и регистрации платежей в кредитные учреждения.

Оплата товаров

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

Правовые вопросы

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

Контракты в физическом мире

Технология интернета вещей IoT (от англ. Internet of Things), которая на данный момент активно развивается, позволяет получить доступ к вещам физического мира. Таким образом, существует возможность управлять как самими вещами, так и правами на них с помощью контракта. Такой подход использует немецкий стартап Slock.it. Благодаря этим технологиям станет возможным сдавать реальные объекты мира в аренду, что по заявлению компании весьма востребованно.

Уязвимости

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

Примеры уязвимости

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

ДЗ
Зубов Денис
@zubovd
Войдите на сайт, чтобы оставить комментарий
0 комментариев
Популярные
Новые

Рассылка

Подписывайтесь на обновления и анонсы

18+
Москва, Берсеневская набережная 6/2
+7 (495) 118-41-48
2019 © Blockchain.ru, Сделано в Charmer
  • Дисклеймер
  • Пользовательское соглашение
  • Политика конфиденциальности

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

Google Chrome Firefox Opera