Смарт-контракты — это сбывшаяся мечта порядочных людей, так как они гарантируют выполнение контракта всеми сторонами сделки, причем без участия каких-либо посредников или гарантов. В этой статье мы подробно расскажем, что они из себя представляют, какими бывают и как самому разработать смарт-контракт.
Что такое смарт-контракты?
Еще в 1994 году Ник Сабо, ученый-компьютерщик, правовед и криптограф (многие считают, что именно он скрывается за псевдонимом Сатоши Накамото, создателя Bitcoin), понял, что децентрализованный реестр можно использовать для создания самоисполняющихся контрактов, или смарт-контрактов. «Я называю эти контракты “умными”, потому что они гораздо более функциональны, чем их неодушевленные бумажные предки. Смарт-контракт — это набор обещаний, прописанных в цифровой форме, включая протоколы, в рамках которых стороны выполняют эти обещания», — говорил Ник Сабо, когда описывал концепцию своих смарт-контрактов.
Если разобрать это определение, то можно сказать, что смарт-контракт — это самоисполняющийся компьютерный алгоритм, в котором условия его исполнения напрямую закодированы в строках компьютерного кода, хранящегося в
распределенной децентрализованной сети, такой как блокчейн. Этот код содержит данные и инструкции, которые выполняют все прописанные в договоре транзакции и обеспечивают их отслеживание и необратимость. При этом смарт-контракту не нужны банк, государство или иной посредник для обеспечения соблюдения контракта.
Как работают смарт-контракты?
Если не вдаваться в технические детали, то можно сказать, что смарт-контракты нужны для автоматического обмена ценностями, например для обмена фиатных денег на биткоины, видеоигру, золото или доступ к веб-сайту. При этом принцип их работы можно сравнить с механизмом обычного кофейного автомата, который без продавца или владельца кофе меняет деньги покупателя на чашку кофе. Ценности в этом случае — кофе и деньги, а условия обмена — внесение некоторого количества денежных знаков (цены кофе) и напитков в хранилище автомата. Механизм автомата сначала принимает ценности обеих сторон (продавца и покупателя кофе) и затем производит автоматический обмен.
Смарт-контракт действует по аналогичному принципу, только его «механизм» прописан в виде компьютерного кода, который запускает определенные действия (функции, операции, транзакции, алгоритмы) при выполнении заранее прописанных условий и инструкций. Условия и инструкции действуют по логике «
если →тогда»:
- ЕСЛИ смарт-контракт получил объект A (например, 1 биткоин), ТОГДА тот,
кто отдал смарт-контракту объект A, получит объект Б (например, 16 эфира);
- ЕСЛИ смарт-контракт получил объект B, ТОГДА будет запущена функция Х (например, воспроизведение анимации, музыки, кинофильма или сериала);
- ЕСЛИ смарт-контракт получил объект C, ТОГДА тот, кто отдал смарт-контракту объект C, получит доступ к какому-то приложению.
Такие смарт-контракты
можно разрабатывать и развертывать на различных блокчейн-платформах (например, Ethereum, Cardano и Hyperledger Fabric). Каждая платформа имеет свои особенности работы и разработки смарт-контрактов. Однако обычно все смарт-контракты состоят из двух разных частей: набор кода и некоторые данные. Код — это функции контракта, тогда как данные считаются состоянием. Эти два компонента смарт-контракта находятся на определенном адресе в блокчейне.
Также стоит отметить, что смарт-контракты, как правило, являются типом учетной записи, обладающей теми же правами, что и учетные записи пользователей. Только в случае смарт-контрактов их учетные записи не контролируются пользователями — учетная запись смарт-контракта управляется кодом внутри самого контракта.
Это важно, поскольку благодаря тому, что смарт-контракты являются учетными записями, мы,
как пользователи блокчейна или DApps, можем взаимодействовать со смарт-контрактами. Например, мы можем отправлять токены в смарт-контракт, чтобы тот обменял их на другие токены (как в случае обмена криптовалютой c человеком) или чтобы смарт-контракт выполнил какую-то другую инструкцию / функцию.
Схема работы смарт-контракта. Источник: Мedium.
Смарт-контракт vs обычный контракт
Преимущества смарт-контрактов
Количество преимуществ, которые обычные пользователи, бизнес и государства могут получить при использовании соглашений на основе технологий блокчейна и смарт-контрактов, довольно велико. Вот лишь некоторые из них.
- Прозрачность. Одно из главных преимуществ децентрализованных блокчейнов — это 100% прозрачность. Все транзакции внутри блокчейна публичны и проверяемы, при этом никто не может изменить информацию, внесенную в сеть. Таким образом, обычный пользователь или владелец бизнеса может создать / использовать смарт-контракт, не опасаясь, что злоумышленник его тайно изменит, чтобы украсть деньги или данные.
- Экономическая эффективность. Во-первых, смарт-контракты могут автоматизировать многие ручные бизнес-процессы, связанные с заключением и выполнением договоров. Во-вторых, смарт-контрактам не нужны посредники (юристы, банки, брокеры). Оба эти фактора позволяют сильно сэкономить.
- Экономия времени и автономность. Для составления традиционного договора нужно довольно много времени и усилий, как и на отслеживание и контроль его выполнения. В случае смарт-контрактов все намного проще и быстрее: программист один раз пишет программный код контракта, который затем используется каждый раз, когда он нужен (например, чтобы создать NFT или автоматически заполнить коносамент и произвести по нему транзакции).
- Превышение уровня доверия между сторонами. При выполнении смарт-контракта человеческий фактор исключается. Это способствует укреплению доверия между контрагентами и развитию прочных, долгосрочных деловых отношений. И если что-то случится, то стороны не станут обвинять другу друга в нарушении договора, а будут совместно искать причину сбоя.
- Безопасное хранение и резервное копирование. Потеря данных всегда является серьезным риском для любого бизнеса или госструктуры, поэтому все постоянно делают резервные копии важных данных. Однако даже самые надежные системы резервирования не дают 100% гарантии сохранности всех данных. Они банально могут сломаться, их могут украсть или взломать. Но не в случае с блокчейном и смарт-контрактами, поскольку помещенные в них данные хранятся на множестве устройств (узлов) и не будут утеряны, пока не перестанет работать сам блокчейн, что очень и очень маловероятно.
- Предотвращение мошенничества. При правильно написанном коде блокчейн и смарт-контракты исключают возможность несанкционированного доступа в систему, что перекрывает лазейки для мошенничества. Да, остается возможность фишинга, но и эту уязвимость со временем можно будет закрыть.
- Безопасность и надежность. Как и криптовалюты, смарт-соглашения известны тем, что используют защиту данных и самую высокую степень шифрования, доступную в настоящее время на ИТ-рынке. Этот факт делает соглашения на основе блокчейна и смарт-контрактов одним из самых безопасных способов заключения соглашений в настоящее время.
Недостатки смарт-контрактов
Существует несколько сложностей и ограничений, которые необходимо учитывать при планировании развертывания смарт-контрактов.
- Безопасность. Смарт-контракты защищают определенные ключевые элементы бизнес-процесса, в котором участвуют несколько сторон . Однако эта технология является довольно новой и необкатанной, поэтому время от времени хакеры находят новые возможности для атак, которые позволяют им воровать деньги и данные. Чтобы этого избежать, смарт-контракты нужно тщательно тестировать, причем как с помощью внутренней команды разработчиков, так и с помощью независимых аудиторов.
- Выравнивание. Смарт-контракты могут очень сильно ускорить бизнес-процессы, в которых одновременно задействованы множество контрагентов. Это их несомненное преимущество, но эта особенность также может увеличить ущерб ошибок, когда события или система выходят из-под контроля. В консалтинговой компании Gartner прогнозируют, что это может создать существенные проблемы с управляемостью и масштабируемостью смарт-контрактов в недалеком будущем.
- Управление. Смарт-контракты сложны в реализации и управлении. Они работают таким образом, что их невозможно изменить. И хотя это можно считать преимуществом, но это также может создать большие проблемы, связанные с обновлением кода смарт-контракта, даже если вам нужно изменить лишь одну запятую.
Три разновидности смарт-контрактов
Смарт-контракты обычно делят на три типа. Давайте изучим их, чтобы узнать, какую пользу они могут принести.
Smart Legal Contract
Это смарт-контракты, основанные на правильно оформленном юридическом соглашении, поэтому его контрагенты несут юридическую ответственность за исполнение условий договора. Причем это может быть как смарт-контракт для перевода криптовалюты в фиат, так и смарт-контракт для регистрации квартиры.