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

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

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

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

История смарт-контрактов

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

Хотя общее представление о смарт-контрактах можно увидеть в таких системах, как торговые автоматы (например, определенный код приводит к получению ожидаемой еды), блокчейн стал основой смарт-контрактов, которые были цифровыми, защищенными от взлома и не требующими разрешения. Появление блокчейна Bitcoin в 2009 году поддержало, пожалуй, первый протокольный смарт-контракт - установление набора условий, которые должны быть выполнены для передачи биткойнов между пользователями сети. Эти условия включали подписание пользователем транзакции правильным закрытым ключом, соответствующим его публичному адресу (сродни паролю, привязанному к конкретному счету), и наличие у пользователя достаточных средств для оплаты транзакции.

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

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

В течение следующих нескольких лет блокчейн начал экспериментировать, добавляя новые программные условия (называемые кодами операций или опкодами). Однако следующий крупный скачок в области смарт-контрактов произошел после публикации "whitepaper" по Ethereum Виталиком Бутериным в 2013 году. В 2015 году Ethereum был запущен как новый тип блокчейна для программируемых смарт-контрактов. Вместо того чтобы блокчейн эффективно функционировал как единственное приложение для смарт-контрактов или предлагал несколько ограниченных опкодов, блокчейн для смарт-контрактов Ethereum предлагал "мировой компьютер", который мог одновременно запускать множество независимых смарт-контрактов.

Как работают умные контракты

Умные контракты — это защищенные от взлома программы на блокчейне со следующей логикой: "если/когда произойдет событие x, то выполнить действие y". Один смарт-контракт может иметь несколько различных условий, а одно приложение может иметь несколько различных смарт-контрактов для поддержки взаимосвязанного набора процессов. Существует также несколько языков программирования смарт-контрактов, наиболее популярным из которых является Solidity от Ethereum.

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

Примеры смарт-контрактов

Одна из целей смарт-контракта - автоматизировать определенный бизнес-процесс между отдельной группой субъектов. Эти субъекты коллективно приходят к соглашению по всем условиям смарт-контракта, таким как выплаты, ход процесса и разрешение споров. Простой пример смарт-контракта для глобальной торговли может содержать такие условия, как:

Условие 1: Если товар прибывает вовремя, то выполняется платеж от розничного торговца поставщику в полном объеме.Условие 2: Если товар прибывает с опозданием на один день, то выполняется платеж от розничного продавца поставщику на 98% от полной суммы.

Другие смарт-контракты поддерживают публичные децентрализованные приложения (dApps), с которыми может взаимодействовать любой желающий без необходимости получения каких-либо разрешений. Публичные dApp часто имеют открытый исходный код, поэтому любой человек в мире может ознакомиться с их функционированием, прежде чем решить, стоит ли с ними взаимодействовать. Одним из примеров публичного dApp является децентрализованный рынок кредитования/займов, который может иметь следующие условия:

Условие 1: Если пользователь вносит залог в определенный смарт-контракт, он может получить кредит в размере до 50% от стоимости своего залога (т.е. при депозите в $100 можно получить кредит в размере до $50).Условие 2: Если коэффициент обеспеченности пользователя (залог/стоимость кредита) опускается ниже 200%, то залог пользователя автоматически ликвидируется и передается кредиторам, чтобы они не потеряли деньги.Условия 3: Кредиторы могут внести средства в определенный контракт, по которому другие пользователи могут брать займы с заранее определенным коэффициентом обеспечения, а кредитор получает право на часть выплат по процентной ставке.

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

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

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

Умные контракты улучшают цифровые соглашения, предлагая несколько преимуществ.

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

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

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

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

Читать далее:

Телеграм канал про web3 разработку, смарт-контракты и оракулы.

И коммьюнити Chainlink Russia в Телеграм.

Начать дискуссию