Смарт-контракт - компьютерный алгоритм, который формирует, хранит и автоматически регулирует договоренности между двумя или более сторонами. Как только активируется ранее прописанное условие, он тут-же выполняет соответствующее ему соглашение. Объектом могут выступать криптовалюты, акции, NFT и другие цифровые активы.
Содержание
Понятие умного контракта было введено разработчиком Нико Сабо, но оно никогда не предполагало использование искусственного интеллекта. Согласно его видению, обычный вендинговый автомат представляет собой образец смарт-контракта.
- Пользователь изучает условия соглашения.
- Принимает их, опуская деньги в купюроприемник.
- Техника автоматически выполняет договоренность - выдает покупку.
До создания блокчейна не было платформ, на которых можно было бы реализовать идею умных соглашений, поэтому она существовала только в виде концепции. Теперь, благодаря записи условий в отдельный блок блокчейна, цифровой договор не может быть подделан или аннулирован любой из сторон. Все участники берут на себя обязательства без доверия и знания друг друга. Если кто-то не выполнит свою часть, то сделка будет отменена, а объекты возвращены изначальным владельцам.
Например, при участии в ICO инвесторы без опасений переводят средства, т.к. в случае неудачного краудфандинга деньги вернуться на кошелек. Если же нужная сумма собрана и достаточное количество участников активировало ключи, то доходы пересылаются на счет разработчиков.
Как понять - Smart или не Smart
Отличия от обычных контрактов:
- концепция соблюдения (самостоятельное срабатывание независимого алгоритма),
- метод написания (программирование),
- возможные юридические последствия (практически отсутствуют, т.к. технология находится в серой зоне и не подходит под текущие законы).
Главные элементы умных соглашений.
- Наличие среды, в которой они могут фиксироваться и работать. Например, децентрализованный сервис Ethereum.
- Для электронной подписи используются публичные и приватные ключи, которыми владеют все стороны.
- Объект договора и необходимый объем средств для оплаты (как правило, криптовалюты на электронном кошельке).
- Четко прописанные условия, при которых контракт будет выполнен. Подтвержденное согласие участников сделки.
Принцип работы
Основной алгоритм работы - выполнение принципа “если… то...”
Это значит, что если соблюдены определенные условия, то программа выполняет заранее заложенные в нее действия. Функционирование определяется кодом, записанным и запущенным в распределенной системе.
Впервые технология была применена на блокчейне биткоина, но из-за его ограниченного языка сценариев подходила только для финансовых переводов. Создавать собственные, более сложные сценарии, разработчикам позволила другая сеть. В блокчейне Etherium смарт-контракты регулируют исполнение договоренностей между пользователями. Они представлены в виде адресов, на которые направляются запросы участников сети. Личными аккаунтами являются адреса кошельков, которые не являются контрактами.
Внутри содержатся следующие данные:
- код с условиями,
- публичный ключ от создателя соглашения,
- второй публичный ключ в виде самого контракта (цифровой ID).
При проведении подходящей транзакции в сети, активируется выполнение прописанных действий. Запуск может произойти благодаря личному аккаунту пользователя или другому smart-контракту. При это запустить цепочку взаимозависимых алгоритмов может только личный аккаунт (т.е. человек).
Важно! Благодаря среде Etherium разработчики создают децентрализованные приложения (dApps), которые управляются единым универсальным протоколом. Это упрощает и ускоряет использование dApps пользователями, т.к. нет необходимости постоянно переключаться между ними.
Области применения
- ICO - первичное размещение криптовалюты и его аналоги (IFO, IDO). Умные алгоритмы защищают инвесторов и перераспределяют собранные деньги по заранее оглашенным правилам.
- Сервисы децентрализованных финансов - приложения DeFi сектора используются для выдачи кредитов, получения займов под залог цифровых ценностей. На DeFi биржах анонимно торгуют токенами, деривативами.
- DAO - децентрализованные автономные организации. Вся деятельность, в том числе и управление ресурсами, осуществляется по заранее согласованным правилам, записанными в виде четкого алгоритма. Яркий пример - The DAO, фонд венчурного инвестирования (на ICO собрано $150 млн).
- Интеллектуальная собственность. Музыка, картины, видео могут быть сконвертированы в невзаимозаменяемые токены, владение которым будет подтверждать права на привязанные к нему ценности. Например, картину Бэнкси стоимостью $95 тыс. превратили в NFT, а после сожгли. Теперь права на изображение принадлежат владельцу токена.
Перспективы дальнейшего развития
- Автоматические банковские платежи. Смарт-контракт гарантирует, что нужная сумма будет переведена в точное время на конкретные счета.
- Транзакции в энергосекторе. В будущем поставка, траты и оплата энергоресурсов могут регулироваться автоматически между источником и конечным потребителем-физлицом.
- Регистрация собственности или смена владельца. Вся сопроводительная документация может фиксироваться в блокчейне. Здесь же можно будет проследить достоверную историю объекта собственности, внести изменения через умный договор.
Топ-7 блокчейнов, поддерживающих технологию
- Ethereum. Большинство мировых децентрализованных приложений запускается именно на этом блокчейне. Основными проблемами остается масштабируемость и низкая скорость (максимум 20 бит/сек).
- RSK. Платформа на базе блокчейна Bitcoin, что делает ее одной из самых безопасных и надежных среди конкурентов. Функционал не уступает Эфириуму, и в перспективе может решить все его проблемы. Быстрому развитию мешает невысокая известность проекта.
- EOS. Основное преимущество проекта в опытной команде разработчиков, среди которых Дэн Лаример (ex Steem, Bitshares). Минус - централизация многих процессов. Например, формирование блоков доступно только для 21 узла.
- TRON. Имеет четкий роадмэп, согласно которому будет децентрализовано все онлайн-пространство. Тормозит реализацию планов нестабильная медийная атмосфера вокруг проекта. То появляются слухи о болезни основателя, то он сотрудничестве с организацией Ponzi.
- Stellar. Генеральный директор Джэд Маккалеб (ex Ripple, Mt. Gox) заключил договора с Wirex и IBM о продвижении криптовалютной сферы в развивающихся странах. Платформа находится в сильной зависимости от нескольких узлов, из-за чего транзакции могут застрять на час и более.
- Binance Smart Chain. Проект реализован одноименной криптовалютной биржей. Благодаря обширной маркетинговой поддержки приобрел популярность в DeFi.
- NEO. ICO стало одним из наиболее успешных по показателю ROI. В сети применяется делегированный алгоритм консенсуса византийской отказоустойчивости. Это упрощает масштабирование, и при оптимизации может повысить скорость до 10000 Tps. Одна из проблем - агрессивная политика Китая, который является важной частью экосистемы NEO, по отношению к криптовалютам.
- Waves. Российский проект построен на языке программирования RIDE, созданном специально для платформы. Для проведения транзакций не используется “газ”, комиссия всегда известна заранее. До 2019 г. в сети Waves работали только ограниченные смарт-контракты, а после уже появился тип полного тюринга.
Создание и развертка смарт-контрактов
Для этого нужно знать язык программирования (Mutan, Serpent или Solidity). Как правило, разработчиками смарт-контрактов являются опытные программисты, прошедшие программу повышения квалификации. В русскоязычном сообществе ее проводит Waves Enterprise.
Базовая платформа SCP используется для создания и управления контрактами в той или иной сети. Дополнительный протокол SCMS облегчает эти процессы, добавляя графическую оболочку. То есть работа может вестись не только с помощью ручного вбивания кода.
Вот как это происходит (на примере Azure в Visual Studio Code):
- В командах выбирают “Создать проект Solidity”, далее “Базовый проект”.
- Применяют команду Build Contracts для компиляции всех контрактов проекта.
- Кликают правой кнопкой по файлу HelloBlockchain sol, в ниспадающем меню нажимают Deploy contracts.
- Выбрать сеть консорциума.
- Запустить команду Generate mnemonic, вписать название для файла с мнемоническим кодом.
Для дальнейшего развертывания используется Truffle.
Где посмотреть адреса
Узнать адрес действующего контракта на Etherium и адреса, которые туда отправляли деньги можно с помощью сервиса Etherscan. Для каждого блокчейна есть аналогичный сервис. Так, посмотреть транзакции и адреса в Binance Smart Chain можно на Bscscan. Также это можно сделать программно с помощью библиотеки Web3.
Пример смарт-контракта
Вот как выглядит код простейшего смарт-контракта:
contract Bank {
address owner;
mapping(address => uint) balances;
function Bank() {
owner = msg.sender;
}
function deposit() public payable {
balances[msg.sender] += msg.value;
}
function withdraw(uint amount) public {
if (balances[msg.sender] >= amount) {
balances[msg.sender] -= amount;
msg.sender.transfer(amount);
}
}
function getMyBalance() public view returns(uint) {
return balances[msg.sender];
} function kill() public {
if (msg.sender == owner)
selfdestruct(owner);
Этот договор будет аккумулировать средства пользователей и выдавать их владельцам по запросу.
Преимущества и недостатки
Плюсы:
- Автономность. Для заключения договора не нужна третья сторона (посредник).
- Надежность и безопасность. Все детали и условия шифруются, многократно дублируются в сети. Их невозможно взломать и подменить в результате хакерской атаки. Все условия будут выполнены без участия людей.
- Экономия и скорость. Все происходит автоматически и без задержки, поэтому неторопливый высокооплачиваемый посредник не помешает сделке.
- Точность. В отличие от обычных контрактов, которые заполняются вручную и часто содержат ошибки, здесь все подобные операции сведены к минимуму.
- Снижение комиссий за транзакции.
Минусы:
- Из-за ошибок разработчиков из контракта могут быть выведены деньги, как это уже было с 3 000 000 эфира, украденными из The DAO.
- В дальнейшем автоматизация приведет к потере миллионов административных рабочих мест (клерки, нотариусы, банковские служащие).
- Сомнительный правовой статус. В большинстве стран до сих пор не имеют юридической силы. В случае сбоев в работе смарт-контракта доказать свою правоту в суде будет очень сложно.
- Сложность создания. Нужно не только владеть необходимыми языками программирования, но и точно прописывать все возможные варианты развития ситуации, реакции на них. Чем больше разнообразных условий, тем большим уровнем компетенции должен обладать программист.
- Социальная неосведомленность. Большинство людей не понимают технологию, принцип работы и поэтому сторонятся ее.
Отзывы и обсуждения