Смарт-контракты Ethereum. Как это работает?
Часть 1. Когда бумага знает, что ты ей сказал и делает это
Немного истории
На заре своего развития интернет представлял собой довольно скучное зрелище — на весь мир было не более пары десятков достойных внимания сайтов с интересным контентом. Технология Blockchain, которую часто называют новым интернетом, возвращает нас в то самое время: на всю сеть существует всего несколько полноценных программных решений, которые все еще очень далеки от совершенства.
Но именно тогда, в 1996 году, когда наступил первый виток глобального развития сети Интернет, американский программист и криптограф Ник Сабо впервые предложил концепцию «смарт-контрактов», которая сегодня немыслима без привязки к Blockchain экосистеме. Сабо описал смарт-контракт как компьютерный протокол, который на основе математических алгоритмов самостоятельно проводит сделки с полным контролем за их выполнением. Такое определение смарт-контрактов актуально до сих пор.
Вот как сам Сабо комментирует это сейчас: «Удивительно видеть, как мое видение смарт-контрактов, которое я описал более двадцати лет назад, расцветает в самых разных творческих направлениях. Технология Blockchain появилась очень вовремя, став идеальной экосистемой для развития смарт-контрактов, которые уже сейчас становятся самым обычным явлением в бизнес-транзакциях и за его пределами. Мне приятно принадлежать к сообществу, причастному к развитию технологий с открытым исходным кодом, которые обеспечивают безопасность и конфиденциальность всех операций, и работать на достижение всеобщего блага».
Умный контракт сам все сделает
Прообразом смарт-контрактов являются обычные бумажные контракты, которые использует в своей деятельности любая современная организация. После составления такие контракты обычно вручную подписываются, отправляются в долгосрочные путешествия по всему миру для сбора необходимых подписей, и далее люди лично исполняют все их положения.
Наиболее очевидным развитием этих процессов могли бы стать технологии, которые, во-первых, позволили бы преодолевать все пространства за считанные секунды, а во-вторых, автоматизировали бы основные условия соглашения. Контракт в таком случае стал бы исполняться автоматически, без человеческого участия. Как показывает развитие технологий – Blockchain и смарт-контракты подходящие для этого дело решения.
Что же такое смарт-контракт? Если упростить, то смарт-контракт — это всё то же соглашение между людьми и/или организациями, но только описанное в виде программного кода, который исполняется автоматически и получает все необходимые данные при помощи так называемых «оракулов» — программ, которые обеспечивают связку реального и цифрового мира воедино.
Обычно смарт-контракты записываются в Blockchain (хотя они могут существовать и в другой среде). В Blockchain-среде вся программная логика смарт-контракта записывается и находится в блоке, который является программным контейнером, который объединяет все сообщения, относящиеся к конкретному смарт-контракту. Сообщения могут выполнять роль входов и выходов программного кода смарт-контракта и приводить к каким-либо действиям в реальном или цифровом мире за пределами блока Blockchain.
Важно только отметить, что для смарт-контракта необходимо наличие нескольких обязательных элементов:
1. Цифровая идентификация и наличие цифровых подписей (публичного и приватного ключа) двух или более сторон договора.
2.для заключения смарт-контрактов необходима приватная децентрализованная среда, в которую будут записываться смарт-контракты, и которая поддерживает входы и выходы для оракулов;
3. Сам предмет договора и наличие необходимых для его исполнения инструментов. Например, если предполагаются какие-либо расчеты – то это криптовалютные расчетные счета, если необходима сцепка с реальным миром – то программы-оракулы.
4. конкретно описанные условия его исполнения, которые участники подтверждают одновременно с заверением подписью всего смарт-контракта.
Какие бывают смарт-контракты
В зависимости от степени автоматизации смарт-контракты могут быть различных моделей:
- Полностью автоматизированные смарт-контракты;
- Смарт-контракт с копией в виде бумажного носителя;
- Контракты на бумажном носителе, часть положений которого перенесена в программный код (частично автоматизированные смарт-контракты). Например, могут быть автоматизированы только платежи. К таким видам смарт-контрактов можно отнести, например, трудовые смарт-контракты, если оценку работы человека нельзя перевести в конкретные величины).
Вполне естественно, что сейчас смарт-контракты проходят обкатку и нет функциональных возможностей и достаточного доверия к системе для программирования по-настоящему сложных смарт-контрактов. Поэтому большая часть исполняемых на сегодняшний день смарт-контрактов принадлежит к третьему виду контрактов, которые автоматизируют только отдельные аспекты соглашений, в частности, обмен цифровыми активами (например, обмен денежных средств на имущественные права).
Тем не менее, есть все основания полагать, что в ближайшей перспективе, с развитием блокчейн-инфраструктуры и появлением заслуживающих доверия оракулов, смарт-контракты перестанут быть только дополнением к бумажной версии документа и станут основным гарантом исполнения любого соглашения. Бумажная версия потеряет всю свою значимость и будет использоваться разве что только для удобства изучения документов.
Глядя на то, с какой скоростью такие гиганты, как IBM, Intel, Cisco, Microsoft и Linux разрабатывают фреймворки для создания закрытых блокчейн-экосистем, которые позволяют хранить и исполнять смарт-контракты, не нарушая при этом корпоративных принципов конфиденциальности данных и режима коммерческой тайны — это все не за горами.
Обратите внимание: публичные Blockchain-экосистемы которые позволяют любому желающему получить доступ к транзакциям по смарт-контрактам совершено неприемлемы для бизнеса. Ведь, обычно организации не слишком охотно раскрывают свои деловые связи, и уж тем более не горят желанием открыть доступ ко всем своим транзакциям.
Ли Брейн, CTO инвестиционного офиса в Barclays, также подтвердил данное положение, заявив, что умные контракты должны быть защищены от несанкционированного доступа, и в этом смысле, публичность некоторых блокчейн-решений может оказаться проблемным местом в использовании смарт-контрактов бизнесом и организациями.
Примеры использования
Потенциальные возможности использования смарт-контрактов действительно обширны. Вы можете использовать смарт-контракты для всех возможных ситуаций, начиная от обычных трудовых смарт-контрактов и заканчивая торговлей финансовыми деривативами и страховыми премиями.
Самый известный пример использования технологии — это децентрализованные автономные организации, или DAO (The DAO, Digix.io, Fermat). Работа в таких организациях полностью основана на смарт-контрактах и управляется коллективными решениями ее участников, владельцами токенов. При этом абсолютно все рабочие моменты, от ежедневных задач до графика выплаты зарплат, прописываются в программном коде. Это делает децентрализованные организации гораздо более эффективными по сравнению с традиционными: если участник такой организации систематически не выполняет свои обязанности или, например, часто грубит другим членам сообщества, то владельцы токенов могут просто отозвать свою поддержку в отношении этого участника, и тогда он автоматически потеряет контракт и будет исключен из DAO.
Однако смарт-контракты необязательно делать основой существования компании — они могут быть и удобным дополнением, инструментом для решения определенных бизнес-задач. Например, это может быть оборот документов, бухгалтерский учет, аудит и даже поставки товаров.
Например, британский банк Barclays, который в сентябре прошлого года провел первую в мире торговую сделку через блокчейн, уже использует смарт-контракты для того, чтобы регистрировать переход права собственности и перечислять платежи в другие кредитно-финансовые учреждения, а разработчик протокола Bitcoin Core Джефф Гарзик однажды предложил следующее применение смарт-контрактов: «UPS может исполнять контракты, в которых будет сказано: «Если мы получим оплату за доставку товара, то его производитель, который в цепочке поставок находится на много звеньев выше, немедленно начнет создавать новый такой товар, поскольку этот уже доставлен по назначению».
Часть 2. От хайпа к реальности
Зачем использовать смарт-контракты? Что это дает?
По сравнению с обычными бумажными контрактами смарт-контракты обладают рядом фундаментальных преимуществ:
Автономность. Вы самостоятельно заключаете все соглашения — больше нет необходимости обращаться к брокерам, банкам, нотариусам, адвокатам и прочим посредникам для подтверждения или заверения сделки. Кстати, это также исключает возможность манипуляций со стороны данных лиц, поскольку договор исполняется автоматически сетью, а не одним или несколькими людьми.
Доверие и сохранность. Криптография, шифрование данных и хранение в блокчейне отвечают за сохранность ваших документов. Существуют сотни дубликатов, и никто не сможет сказать, что потерял ваши документы. Блокчейн и его децентрализация также делают практически невозможными хакерские атаки и подмену вашего смарт-кода.
Скорость. На работу с бумажными документами и их сопровождение обычно тратится очень много времени. Программный код смарт-контрактов автоматизирует эти задачи, тем самым освобождая вас от личного участия во многих бизнес-процессах, которые обычно выполняются вручную.
Экономия. Смарт-контракты сохраняют ваши средства, так как они устраняют из бизнес-процессов посредников, о которых говорилось выше. Стоимость нотариальных заверений сделок может доходить до сотен тысяч долларов. А ведь заверять у нотариуса иногда необходимо не только сам контракт, но каждую транзакцию по нему. Думаю, что каждый из вас уже сталкивался с этим в своей деятельности и понимает, о каком объеме средств идет речь.
Точность. Автоматизированные контракты не только быстрее и дешевле, чем обычные, они также помогают избегать ошибок, которые возникают при ручном заполнении форм документов и исключают человеческий фактор при проведении транзакций по контракту.
Немного примеров из экономики:
Инвестиционный банкинг: при торговле синдицированными кредитами корпоративные клиенты с помощью смарт-контрактов могли бы рассчитывать на более короткие циклы расчетов. Вместо нынешних 20 или более дней, умные контракты могут обеспечить циклы расчетов продолжительностью в 6-10 дней. Это может привести к увеличению спроса на торговлю данными инструментами на 5%, что приведет к дополнительным доходам в размере от $2 до 7 млрд в год для профессиональных трейдеров.
Страхование. Использование смарт-контрактов в потребительском секторе страхования может привести к ежегодной экономии в размере $21 млрд за счет автоматизации и сокращения накладных расходов на обработку претензий. Потребители также могут ожидать более высоких страховых выплат, поскольку страховщики могут использовать часть сэкономленных средств именно для этого.
Банковские услуги: индустрия банковских инструментов и кредитования (корпоративного, потребительского, ипотечного и др.) сможет получить огромную выгоду при внедрении смарт-контрактов. Автоматизировав процедуры заключения банковских контрактов и исполнения транзакций по ним, а также исключив из процесса людей, которые занимаются обработкой и заполнением документов, банки смогут рассчитывать на экономию в размере от $480 до 960 за каждый кредит — это приведет к экономии от $3 до 11 млрд в год. Для потребителей данная экономия может выразиться в снижении пунктов по процентным ставкам кредитования, а также снижении операционных издержек на банковские комиссии и транзакции.
*Смарт-контракты можно использовать даже при всенародном голосовании. В таком случае защита от всякого рода взломов будет обеспечиваться тем, что взломщикам будут необходимы вычислительные мощности самого господа Бога, чтобы взломать блокчейн и подменить необходимые транзакции по голосованию.
Недостатки
Отсутствие среды и инфраструктуры. Как мы уже говорили в первой статье, технология блокчейн напоминает нам интернет 90-х годов, когда на всю сеть едва ли было 20-30 достойных программ и сервисов. Вследствие этого многие возможности еще не реализованы. В случае со смарт-контрактами, например, нет программ-оракулов, которые могли бы обеспечить привязку цифрового мира к реальному и предоставить смарт-контрактам все необходимые входные данные для исполнения их бизнес-логики. Это создает определенные препятствия для интеграции смарт-контрактов в повседневную жизнь организаций. Большинство контрактов так или иначе имеют отношение к внешнему миру – отгрузки, таможня, логистика и прочее. Для всех этих данных требуется прочная сеть оракулов, которые будут предоставлять их безопасным и надежным способом.
Решение. Ускоренное развитие технологий и участие в их разработке таких гигантов как Linux, IBM, Intel, Microsoft и многих других, позволяет нам с разумной уверенностью говорить о том, что решение данного недостатка — это всего лишь вопрос пары лет.
Неизменяемость смарт-контрактов. Еще одним возможным препятствием может стать неизменяемость смарт-контрактов. Смарт-контракты — это запрограммированная бизнес-логика, сохраненная в Blockchain и недоступная для изменений. Но в реальной жизни контракты имеют свойства пересматриваться, в них часто вносятся дополнения или изменения по соглашению сторон. Будущие смарт-контракты должны иметь возможность оставлять в себе свободные входы, к которым смарт-контракт сможет обращаться и проверять свой код на актуальность, либо использовать данные из дополнительного соглашения для исполнения обязательств по контракту.
Решение:
Согласимся, выглядит страшно и непонятно для большинства. На самом деле на картинке происходит работа системы смарт-контрактов с проксирующим смарт-контрактом. Проксирующий смарт-контракт — это контракт, позволяющий клиентам выполнять косвенные запросы к другим смарт-контрактам. Таким образом, если у вас, например, заключен трудовой смарт-контракт с вашим сотрудником с окладной системой оплаты, и вы хотите его перевести на контрактную систему, то вам достаточно будет разработать дополнительное соглашение в виде отдельного смарт-контракта и в прокси-контракте заменить адрес на актуальный.
Недостаток квалифицированных специалистов. Для разработки смарт-контрактов, их деплоя и разрешения потенциальных споров по ним любой организации потребуется сопровождение специализированных фирм, либо наличие в штате так называемых codelawyers. Codelawyers – это новый яркий термин, применимый к людям с очень редким набором компетенций, включающим в себя программирование смарт-контрактов и юридическое образование с опытом юридической практики.
Решение. Выходом из этой ситуации может стать существенное упрощение процедур создания простых шаблонных смарт-контрактов для решения типовых задач бизнеса.
Регулирование смарт-контрактов. Скорость развития технологий действительно впечатляет. В этой области человечество несется на сверхскоростях, и регулирующие органы просто не успевают вырабатывать законодательную базу под новые технологии.
Решение. Прогрессивное общество, если хочет и далее развивать технологии, должно самостоятельно выработать новый фундамент и достичь общественного консенсуса, подтверждающего, что код и есть закон, по которому он должен регулироваться.
Секретность смарт-контрактов. В настоящее время все использующиеся для записи смарт-контрактов блокчейны являются публичными, а записи транзакций открыты и могут быть проанализированы любым пользователем интернета, что создает определенные ограничения. Банки, финансовые сервисы и другие компании не слишком охотно раскрывают свои корпоративные связи, а у большинства крупных компаний вообще действует режим коммерческой тайны в отношении корпоративных взаимодействий, что делает публичные блокчейны непригодными для корпоративных смарт-контрактов.
Решение. Чтобы скрыть эти данные от третьих лиц, компаниям необходима возможность строить смарт-контракты на закрытом enterprise-блокчейне, который позволит сохранить конфиденциальность всех данных и транзакций.
источник: geektimes.ru