Что такое смарт контракты на блокчейне
Смарт-контракты — это своего рода алгоритм определенных действий, интегрированный в код блокчейна. При соблюдении установленных договоренностей, которые в нем прописаны, выполняется автоматический запуск последовательности.
Для примера возьмем самую простую операцию — процесс купли продажи криптовалюты между пользователями. Это транзакция происходит по требованиям анонимности и не регулируется посредническими организациями, выполняющими контроль ее проведения. Такая модель стала возможной, благодаря смарт-контрактам, в которые прописан подробный алгоритм проведения операции между двумя пользователям. Это позволяет исключить возможность мошенничества с обеих сторон и провести транзакцию в конкретном алгоритме последовательных действий.
Смарт- контракты — это необходимый элемент для обеспечения функционирования децентрализованных проектов (DeFi, DApps и т.д.), так как это системы без поддержки контролирующих органов. В данном случае, смарт-контракты применяются для обеспечения гарантии соблюдения обусловленных договоренностей в правильной алгоритмической последовательности.
Сам алгоритм прописан внутри блокчейна, потому правила осуществления сделок и прочих манипуляций не поддаются изменению и являются обязательными для всех участников.
Самое первое упоминание о цифровых договорах появилось еще в 1996 году. Ник Сабо, американский ученый в сфере криптографии, предложил использовать подобие смарт-контрактов. Результатом его идеи стал прописанный алгоритм цифровой валюты Bit Gold, которая считается предшественником всеми известной монеты BTC.
В то время идея была слишком футуристична и не сыскала достойного применения. Так продолжалось до 2008 года, в котором миру был представлен Bitcoin со своим блокчейном.
Полностью концепт Ника Сабо был реализован в 2013 году на блокчейне Ethereum, в основу которого легла современная технология смарт-контрактов. Он позволял разрабатывать и запускать приложения без новых распределительных реестров. Благодаря этому, ETH получил титул первого блокчейна с полноценной интеграцией технологии смарт-контрактов.
Смарт-являются частью программного кода блокчейна и работают непосредственно внутри сети. Они выполняют функцию привычных нам бумажных договоров, только в цифровом поле. Условия прописываются не ручкой на бумаге, а с применением математических алгоритмов и языков программирования.
Как и в бумажном договоре, условия подлежат обязательному выполнению. Только в таком случае сделка будет реализована и пользователи получат обусловленный результат. После завершения алгоритма и корректного проведения операции, смарт-контракты становятся частью реестра, попадая в саму цепочку блоков блокчейна.
Основной принцип смарт-контракта — полное исполнение обусловленного алгоритма последовательных действий.
Существует несколько основных видов смарт-контрактов, которые классифицируются по разным критериям:
- Среда выполнения. По среде выполнения смарт-контракты бывают централизованными и распределенными
- Степень анонимности. По степени анонимности смарт-контракты бывают конфиденциальными, частично открытыми и полностью открытыми.
- Механизм инициирования. По механизму инициирования смарт-контракты бывают ограниченными и предустановленными
Также, важную роль играет степень автоматизации смарт-контракта. Она показывает, может ли цифровой договор функционировать самостоятельно или потребуется дополнительный бумажный носитель информации.
- Полностью автоматизированные — бумажный носитель не требуется.
- Частично автоматизированные — необходима копия смарт-контракта на бумажном носителе
- Автоматизированные преимущественно в хранилище.
На этапе разработки и после официальной реализации монеты Bitcoin, блокчейн не предполагал интеграцию технологии смарт-контрактов. Его использовали для обработки данных о проведенных транзакция.
Однако, в блокчейне BTC частично можно реализовать технологию смарт-контрактов в некоторых сферах деятельности. Такие цифровые договора будут прописаны на основе упрощенных логических функциях.
- Эскроу. Во время обработки транзакций монеты сначала депонируются у посредника, который выступает в качестве гаранта и осуществлять контроль за корректным выполнением операции.
- Сейф. Доступ к счету блокируется до достижения определенного временного промежутка.
- Мультиподпись. Подтверждение корректного выполнения операции производится с привлечением нескольких заранее установленных участников.
- Завещание. Если возникает проблема отсутствия функционирования кошелька по истечению установленного временного промежутка, то средства, участвующие в проведении операции, переводятся на другой адрес, так называемым “наследникам”. Счетчик установленного времени обнуляется при использовании хранилища владельцам счета.
Это нельзя назвать полноценными смарт-контрактами. В блокчейне Ethereum потребовалось применение более сложных технологий смарт-контрактов, которые легли в основу платформы.
У блокчейнов Ethereum и Bitcoin есть еще несколько основополагающих различий. Во-первых, язык программирования Solidity. Во-вторых, разные статус определения транзакции. Блокчейн ETH идентифицирует операцию как полноценную часть экосистемы сети, в то время как блокчейн BTC определяет транзакцию как обособленный элемент.
В-третьих, Ethereum позволяет разрабатывать смарт-контракты, которые в дальнейшем будут осуществлять процесс генерирования новых токенов по стандарту ERC-20.
Во многом, нововведения блокчейна Ethereum позволили заметно упростить взаимодействие между различными платформами, сервисами и крипто-кошельками.
Смарт-контракты получили активное распространение по всему миру и с каждым днем набирают обороты. Во многом, такой расклад обуславливается рядом преимуществ, которые дают умные цифровые договоры. Они позволяют оптимизировать и ускорить множество рутинных процессов и снизить (или полностью исключить) участие посреднической стороны, что существенно уменьшает сопутствующие расходы.
Также, использование технологии смарт-контрактов позволяет исключить ошибки, которые были возможны из-за человеческого фактора. Потому, в последние годы, цифровые договора стали применяться в различных сферах деятельности, помимо криптовалюты.
В медицине используется огромное количество разнообразной информации, которая может быть потеряна, перемешана или использована не по своему назначению: медицинские карты пациентов, результаты обследований и анализов, прописание и назначение лекарственных препаратов и многое другое.
Все эти данные используются для лечения людей, страдающих от заболеваний с различной степенью тяжести, потому любые ошибки могут стоить человеческой жизни. Такой огромный объем информации трудно структурировать и обрабатывать обычным людям.
Технология блокчейна с интеграцией смарт-контрактов позволяет создать единую информационную базу с возможностью полной автоматизации процессов передачи и согласования материалов, в том числе и конфиденциальных.
Операций, связанных с процессами выдачи и погашением кредитных средств огромное количество. Применение технологий блокчейна на основе смарт-контрактов позволяет прописать алгоритмы в коде сети. Таким образом, история платежей, система безопасности и обнаружения фактов мошенничества, автоматическое кредитование и т.д. значительно облегчается.
Помимо этого, технология смарт-контрактов с сфере кредитования обеспечивает оптимизацию контроля за передвижением активов с возможностью постоянного мониторинга и выявления статусов имущества, которое оставляют в качестве залога при оформлении ипотеке.
Все эти факторы, в совокупности, могут значительно упросить банковскую сферу и снизить сопутствующие накладные расходы.
Примером интеграции блокчейна с технологией смарт-контрактов в банковской сфере является испанский банк BBVA (Banco Bilbao Vizcaya Argentaria.
Аналитики из компании Horizon State высказали свое мнение о том, что интеграция технологий блокчейна на основе смарт-контрактов смогут обеспечить максимальную объективность выборов и беспристрастно оценивать голоса избирателей. Это довольно острый вопрос, который часто возникает во время проведения выборов с их механизмами голосований.
Использование умных договоров, основанных на децентрализованных реестрах смогут решить многие проблемы во время избирательных процессов. Их нельзя изменить, нарушить или пренебречь алгоритмом в свою пользу. Потому у людей появится больше уверенности в прозрачности и необходимости участия в выборах.
Люди, которые производят свой контент в сфере искусства и интеллектуальной собственности (музыка, живопись, видео съемка, фотография, поэзия, фильмы и т.д.) должны получать достойное вознаграждение за свои труды, которые, в свою очередь, должны обладать авторским правом.
Применение блокчейн-технологий с интеграцией смарт-контрактов могут автоматизировать большую часть рутинных процессов в медиа пространстве. Они позволят корректно осуществлять зачисление платежных средств, распределение долей прибыли между автором и продакшн-компанией. Это во многом ускорить процессы и сделает их менее затратными.
IoT (Internet of Things) — новое, перспективное направление с быстрым развитием, которое набирает обороты с каждым днем. Для его корректного функционирования необходима единая система, позволяющая объединить в себе электронные устройства и персональные гаджеты. Технология блокчейна на основе смарт-контрактов может стать идеальным решения для осуществления этих процессов.
Процесс выдачи имущества во временное пользование (аренду), будь то машина, дом или чайник, состоит из нескольких простых последовательностей единого алгоритма:
- Выбор движимого или недвижимого объекта для получения во временное пользование
- Внесение залоговых средств в качестве гарантии соблюдения договоренностей
- Оплата пользование объектом в определенном промежутке времени с возможностью его дальнейшего продления.
Этот простой, рутинный процесс можно с легкостью прописать в коде блокчейна на основе смарт-контрактов. Такое решение позволит значительно сократить сопутствующие расходы и сэкономить время.
Система логистики поставок подразумевает обработку огромного количества информации о поставщиках, получателях, перевозке, маршрутах и т.д. Если все эти материалы объединить в одну общую систему блокчейна, то это значительно облегчит процесс обработки материалов, что приведет к исключению возможных ошибок и путанницы, связанных с человеческим фактором.
Если же во время планирования произойдут какие-либо изменения, то в цепочку поставок будет добавлено новое звено или последует изменение стоимость той или иной составляющей системы.
Одним из примеров успешной интеграции технологии смарт-контрактов с сферой поставок стал цифровой договор между авиакомпанией S7 и Газпромнефть-Аэро. Умный контракт на предмет заправки воздушного транспорта позволил полность автоматизировать процессы планирования поставки горючего и сопутствующие расчеты.
Клиринг представляет собой сложную систему взаимодействия физических или юридических лиц на предмет проведения безналичных расчетов с соблюдением обусловленных обязательств с обеих сторон. На обработку всех процессов уходит большое количество времени и сил людей, а также значительные траты на оплату комиссий за осуществление переводов. Все эти процессы сопровождаются большим количеством сопутствующей документации, в которой часто возникают ошибки.
Интеграция технологии блокчейна на основе смарт-контрактов позволит автоматизировать все расчеты и фиксировать полученные результаты в доступном для всех участников реестре.
Аналитики компании Santander InnoVentures заявили, что внедрение технологии смарт-контрактов в банковскую сферу позволит сократить накладные расходы на 15 — 20 миллиардов долларов США в 2022 году.
Индустрия азартных игры (казино, слоты, покер и т.д.) имеет довольно низкий кредит доверия пользователей. Многие сомневаются, что система работает честно и подозревают компании в откровенном мошенничестве.
Внедрение блокчейна в гемблинг позволит создать четкий алгоритм последовательных действий, который будет исполняться в 100% случаях без возможности корректировки или изменения. Такое решение позволит полностью исключить человеческий фактор и, как следствие, махинации в азартных играх.
Примером успешной интеграции технологии смарт-контрактов в гемблинг является платформа Xether, которая позволяет своим пользователям участвовать, имея ETH.
Направление ICO является одним из самых лучших примеров использования смарт-контрактов, за счет того, что данные проекты осуществляют запуск первичного предложения монеты для новой криптовалюты.
Алгоритмы смарт-контрактов прописывается еще на стадии разработки приложения и включает в себя следующее:
- Фиксация всех инвесторов. Алгоритм системы самостоятельно определяет пользователей, которые инвестировали в проект свои активы и вносит их в общий реестр.
- Начисления. Пользователи получают необходимое количество токенов автоматически, благодаря работе смарт-контракта
- Контроль легитимности. Алгоритмы автономно контролируют отклик пользователей о проведение сделки.
В наше время самостоятельно разработать смарт-контракт может любой желающий пользователь, который хоть немного разбирается в теме. Однако, такой проект, по понятным причинам, будет простым и его алгоритм будет содержать малое число последовательных действий легкого уровня.
Для разработки сложных алгоритмов цифровых документов необходимо углубленное изучение языков программирования, математических законов и архитектуры смарт-контрактов. В идеале еще и обзавестись командой высококвалифицированных специалистов.
Технология смарт-контракт — это очень полезная система, которая позволяет упростить множество рутинных процессов, доведя их до полной автоматизации без участия человека. Она активно используется в большинстве существующих блокчейнах, благодаря своим весомым преимуществам:
- Отказ от посредников. Смарт-контракты позволяют полностью (или частично) отказаться от участия 3-х лиц для контроля сделки. Это исключает влияние человеческого фактора, делает операции более безопасными и прозрачными, а также существенно сокращает накладные расходы.
- Безопасность. Вся информация об условиях осуществления договора и порядке их соблюдений находится в распределительном виде (в реестре). Это позволяет снизить риск мошенничества и других махинаций в отношение выполнения сторонами оговоренных моментов.
- Прозрачность. Любой участник может провести аудит и проверить корректность выполнения условий смарт-контракта в любое удобное для него время.
- Развитие сфер. Технология Smart Contract позволяет не только улучшить уже имеющиеся компании в разных сферах деятельности, но и создавать новые бизнес-модели и услуги финансирования.
Несмотря на существенные плюсы технологии Smart Contract, это достаточно новая сфера, которая имеет свои недостатки.
- Недоверие пользователей. Достаточно актуальная проблема — низкий кредит доверия. К сожалению, не все могут поверить, что технология может полностью автоматизировать рутинные процессы и полностью исключить человеческий фактор в виде посредника.
- Отсутствие юридического обоснования. Смарт-контракты не имеют определенного юридического статуса, что сильно затрудняет правовой процесс в этой сфере деятельности.
- Расчет в криптовалюте. Все расчеты в умных контрактах производятся в цифровых активах. Такой момент привлекает не всех пользователей, т.к. существуют определенные классы населения, которые не интересуются криптовалютой и не понимают, как она работает.
- Слабая система оракулов. Технологии смарт-контрактов необходимо обзавестись более развитой системой оракулов. Это можно сделать, улучшив качество внешних информационных источников.
- Риск ошибки. В юридической составляющей смарт-контрактов можно допустить серьезную ошибку при переводе правовых нормативов в программный код, что повлечет за собой очень негативные последствия при обработке сделки.
Уже сейчас множество организаций ведут активную работу над исправлением существующих недочетов технологии смарт-контрактов. Аналитики говорят о том, что в ближайшее время технология сможет получить полное юридическое обоснование, что в значительной сфере усилит кредит доверия людей.
В ближайшие годы смарт-контракты смогут заменить большую часть операций с документооборотом в сфере финансов. Многие ведущие банки мира экспериментируют с технологиями блокчейнов и переводят на них свои рутинные действия.
Не далеко и то время, когда смарт-контракты будут использоваться и на уровне государства для оптимизации процессов отчетности, документации и т.д.
О смарт-контрактах простыми словами
Добрый день! Ранее у нас в блоге были посты на блокчейн темы, в которых нередко возникали дискуссии о распределенных вычислениях в блокчейне. По мотивам этих дискуссий и возник этот пост.
Итак давайте попробуем сегодня разобраться, что такое смарт-контракты (умные контракты). Сначала мы достаточно общо обсудим сам концепт, а потом немного копнем в реализацию смарт-контрактов на примере блокчейна Ethereum.
О концепте смарт-контрактов
Термин «смарт-контракт» уже устоялся и по сути обозначает определенный код, который выполняется на какой-либо блокчейн-платформе таким образом, что его выполнение проверяется независимыми сторонами.
Что это значит? Это распределенные вычисления? В привычном нам понимании все же нет.
Когда мы говорим о распределенных вычислениях, обычно подразумевается распределение нагрузки. Скажем, у нас есть задача посчитать в огромном текстовом файле вхождения определенного слова. Мы режем файл на несколько частей, раздаем эти части на разные ноды (например, используя Hadoop), каждая выполняет подсчет и выдает ответ. Мы суммируем ответы и получаем результат. Таким образом мы значительно ускоряем выполнение задачи.
Если же говорить о смарт-контрактах, то тут совсем другая ситуация. Тут мы не режем файл на отдельные части, мы каждой ноде отдаем весь файл целиком, и каждая нода выдает нам один и тот же результат (в идеале). Вернемся к нашему вопросу: попадает ли такое действие под определение распределенных вычислений? Ну в целом почему нет? Они же распределены и они же вычисления? Только в данном случае мы говорим не о распределении нагрузки, а о распределении доверия.
И да, необходимо отметить, что такой концепт сложно масштабируется, потому что в него изначально не заложены необходимые механизмы. Для чего же может быть нужна такая конструкция? Наиболее очевидный пример — это создание общественного договора (контракта) между двумя и более сторонами. Отсюда и название концепта — «смарт-контракт». Стороны фиксируют договоренности и условия выполнения того или иного сценария развития отношений между собой, при помощи языка программирования, таким образом, что наступление определенных событий будет автоматически вызывать выполнение предопределенного кода.
Классический пример подобного контракта, описанный еще в 1996 году Ником Сабо, — вендинг-машина. Она работает всегда автоматически по строгому набору правил: вы вносите деньги, делаете выбор — машина отдает товар. Внеся деньги, вы не можете передумать и попросить их вернуть. В случае с умным контрактом код становится своего рода законом, его нельзя оспорить, и он всегда будет выполняться при наступлении необходимых условий.
Здесь необходимо сделать уточнение, что текущие реализации смарт-контрактов (далее мы будем говорить о сети Ethereum) все же по сути история, замкнутая в блокчейн-среде. Что это значит? Нельзя написать контракт, который будет получать данные извне (например, от поставщиков данных о погоде) и реализовывать логику на этих данных. Тут есть определенный подвижки, например Microsoft работает над концептом криплетов или существуют, так называемые, ораклы, но пока, думаю, там есть куда расти.
Потому предложу другой пример смарт-контракта, который замкнут полностью в блокчейне. Лотерея, причем абсолютно честная и прозрачная. Вы отправляете транзакцию на адрес смарт-контракта, и он по заранее заложенной в нем логике (пусть в ней будет какой-то рандомизатор) принимает решение, выиграли вы или нет. Если вы выиграли, вы получаете весь накопленный в смарт-контракте куш, а если проиграли, то ваша транзакция идет в общую копилку для будущих игроков.
Все эти примеры относительно просты и несколько оторваны от реальной жизни. Какую же пользу можно извлечь из работы умных контрактов, если подходить к ним серьезно? Сам концепт проверяемого исполнения кода позволяет строить системы, которые ранее были недоступны или же их создание было сильно затруднено.
Положим, у вас есть определенное сообщество, в котором необходимо принять какое-то решение. Допустим, это решение крайне важное, и сообщество не склонно просто так довериться отдельным своим членам. Возьмем как пример консорциум банков. Логично предположить, что ни один член консорциума не захочет делегировать проведение вычислений одному банку, особенно когда на основании этих вычислений будет приниматься наше «самое важное решение». Ведь, отдав и данные, и возможность проводить эти вычисления в одни руки, вы можете поставить свой бизнес в рискованное положение, и даже открытый код вычислений не убедит вас в правильности выполнения этого кода на чужом сервере. Вы захотите это выполнение проверить. И вот тут мы получаем ту самую пользу из концепта проверяемого исполнения: участники способны объединяться для выполнения общей задачи или принятия решения без центрального оператора и таким образом повышать эффективность своих бизнесов.
Да, смарт-контракты не слишком-то масштабируются в текущих реализациях, потому что в них это не заложено. Но даже сейчас можно тяжелые вычисления проводить вне среды смарт-контрактов и фиксировать в них лишь определенные опорные точки, о которых стороны могут договориться на берегу, таким образом достигнув в каких-то сценариях необходимой скорости работы.
Техническая сторона вопроса
Теперь попробуем поговорить о технической стороне реализации смарт-контрактов на примере блокчейн Ethereum. Как выглядит процесс написания, публикации и выполнения смарт-контракта?
В этой сети для написания смарт-контрактов используется язык Solidity, который несколько похож на JS, и он является Тьюринг-полным (то есть на нем можно реализовать любую вычислимую функцию).
Сам код выполняется в так называемом Ethereum Virtual Machine (EVM). Надо обратить внимание, что код выполняется и проверяется всеми участниками системы, потому необходим некий механизм, который как-то ограничит потребление ресурсов каждым смарт-контрактом (иначе можно бесконечный цикл написать). Потому в Ethereum введена сущность gas (топливо). Контракт в Ethereum может выполнять любые инструкции, вызывать другие контракты, писать и читать данные и так далее. Все эти операции потребляют топливо, топливо оплачивается криптовалютой (Ether). Цена на топливо криптовалюты Ethеr формируется динамически рынком. Триггером выполнения контракта является транзакция. Стоимость топлива, которое сжигается в определенной транзакции, снимается с аккаунта, который транзакцию запустил. Кроме того, есть лимит потребления топлива, сделан он для того, чтобы защитить аккаунт от ошибок в написании контракта, которые могут привести к бесконтрольному сгоранию всей криптовалюты на данном аккаунте.
Важно отметить, что среда смарт-контрактов все же сильно отличается от привычной нам среды выполнения кода. Ошибка может стоить очень дорого, сами операции дорогие и медленные. Затруднен механизм обновления смарт-контракта. Вы, по сути, пишете новый и должны убедить стороны использовать этот новый смарт-контракт. Нельзя сказать, что никак не перейти на новую версию своего контракта, но это часто новый общественный договор. Если вдуматься — разительное отличие, когда вы привыкли просто выкатывать апдейты вашей централизованной системы потребителям, не слишком интересуясь их мнением. Строя какую-то систему для работы в реальных жизненных сценариях на смарт-контрактах, стоит понимать эти ограничения.
Что такое смарт-контракты, где можно их применять и при чём тут блокчейн
Смарт-контракт — это набор описанных в цифровой форме обещаний, включающий набор протоколов, по которым стороны выполняют свои обещания. Детальнее в статье.
Рассказывает Дарья Шишко, комьюнити-менеджер в Aeternity
Классический контракт — это устное или письменное соглашение с набором условий. В современном мире выполнение условий контракта гарантирует государство. Если одна из сторон не соблюдает условия соглашения, суд определит правонарушителей и обяжет их нести ответственность. Такие контракты постоянно встречаются в быту: при аренде квартиры, страховании автомобиля или трудоустройстве.
С классическими контрактами связаны и трудности. Составлять текст документа должен специалист, иначе в условиях соглашения могут остаться пробелы и неточности. Юристы любят использовать профессиональную лексику, которую тяжело понять обычному человеку. Ещё один важный нюанс — наличие судьи, который разрешает споры между сторонами соглашения. К тому же, само по себе судебное разбирательство требует времени и денег.
До определённого момента такой формат соглашений оставался наилучшим.
Что такое смарт-контракт?
С переходом к цифровым методам общения, хранения и обработки информации появился фундамент для новой формы контрактов. В 1996 году Ник Сабо разработал концепцию самоисполнимых цифровых контрактов. Автор назвал их «смарт-контракты» (от англ. smart contract — умный контракт). Согласно определению Ника Сабо, смарт-контракт — это набор описанных в цифровой форме обещаний, включающий набор протоколов, по которым стороны выполняют свои обещания.
В отчёте Сената США за 2018 год сказано:
Оригинальный пример прообраза смарт-контракта из работы Ника Сабо — торговый автомат. Человек опускает в автомат монету, и автомат выдаёт напиток или шоколадку. Это взаимодействие — сделка, которая подразумевает покупку товара за установленную сумму. Отличие этой ситуации от классического контракта в том, что автомат самостоятельно выполняет условия сделки: если прошла оплата, механизм выдаёт товар.
Чтобы система была безопасной, максимальная сумма средств в автомате не должна превышать затраты на взлом.
Смарт-контракты на блокчейне
Реальное практическое применение смарт-контрактам нашлось с появлением технологии блокчейн. Децентрализованные системы на основе блокчейна — та среда, в которой выполнение смарт-контракта не зависит от третьего лица, а его код нельзя произвольно изменить. Вне такой среды смарт-контракт будет просто программным кодом.
Важный параметр смарт-контракта на блокчейне — полнота по Тьюрингу. Простыми словами, полнота по Тьюрингу — это возможность системы выполнить любую вычислимую функцию. То есть Тьюринг-полной будет система, которая может выполнить любую компьютерную программу.
Блокчейн Bitcoin использует неполный по Тьюрингу язык программирования Script. Bitcoin поддерживает простые смарт-контракты с мультиподписью (для выполнения действия нужны цифровые подписи нескольких участников), удержанием средств на установленное время и так далее.
Блокчейн Ethereum работает со смарт-контрактами на Тьюринг-полном языке программирования Solidity. Solidity позволяет создавать более сложные алгоритмы, но такие смарт-контракты гораздо сложнее проверить на наличие уязвимостей.
Разработчик и популяризатор блокчейн-технологий Джимми Сонг отметил:
Кроме Bitcoin и Ethereum, существуют специализированные платформы для работы со смарт-контрактами: Aeternity, EOS, Hyperledger Fabric, Stellar и другие. Такие платформы отличаются от названных выше пропускной способностью и стоимостью обработки транзакций, алгоритмом консенсуса и позиционированием.
Зачем нужны смарт-контракты?
С одной стороны, смарт-контракт — это просто программный код, обычное приложение как калькулятор, мессенджер или видеоигра. С другой стороны, смарт-контракт — это фундаментальный элемент любого распределенного приложения (distributed application или DApp), которое работает в среде без доверия и централизованной власти вроде администратора веб-сайта или государства. То есть смарт-контракт исполняет всё тот же программный код, но этот код нельзя произвольно изменить или воспрепятствовать его исполнению без вмешательства в работу всей сети. Это базис для любого децентрализованного приложения, особенно если имеет место обмен ценностями: деньгами, товарами, правами.
В централизованной платежной системе вроде гигантов Visa и Mastercard есть администрация, которая разрешает возможные споры, поддерживает работу серверов и взимает комиссию с платежей. Администрация может блокировать неугодные ей транзакции или перенаправить платёж на собственный счёт. Репутация системы пострадает, а администрацию такой компании будут преследовать по закону за мошенничество, но с технической точки зрения ничто не мешает таким манипуляциям. В децентрализованной системе ни у кого нет такой власти, а смарт-контракт подчиняется только заранее заложенным в него правилам.
Где можно применять смарт-контракты?
Согласно анализу Deloitte 2016 года, клиринг в торговых операциях и цепочки поставок — первые кандидаты на внедрение смарт-контрактов. Среди других перспективных областей исследователи назвали здравоохранение, страхование, медиаиндустрию, энергетику, ведение архивов и голосование.
Клиринг
Это безналичные расчёты между сторонами за товары, услуги или ценные бумаги с учётом взаимных обязательств. Клиринг подразумевает множество согласований между банками и юридическими или физическими лицами. Клиринговой компании нужно учесть все взаиморасчёты между клиентами, чтобы минимизировать движение денег между счетами и сумму комиссий за переводы.
Например, если Алиса должна заплатить Бобу 100 $ за ремонт компьютера, Боб должен заплатить Крису 150 $ за юридические услуги, а Крис должен заплатить 100 $ Алисе за дизайн сайта, всё, что нужно сделать, — перевести 50 $ от Боба Крису, и все будут в расчёте. Именно такими взаиморасчётами и их оптимизацией занимаются клиринговые компании, только в большем масштабе.
В реальном мире такая деятельность связана с комплексным документооборотом и ведением учёта множества сущностей и транзакций. Это дорого и долго, а из-за сложности процесса возникают ошибки и дополнительные задержки. Клиринговые компании и их клиенты могут использовать блокчейн-реестр для учёта транзакций и взаимных обязательств, а система смарт-контрактов обеспечит автоматическое проведение платежей и фиксацию данных в распределённом реестре. Согласно исследованиям Santander InnoVentures, к 2022 году внедрение блокчейна и смарт-контрактов может снизить ежегодные инфраструктурные затраты на 15–20 миллиардов долларов США.
Цепочки поставок
Смарт-контракты и блокчейн — актуальное решение для обслуживания цепочки поставок от сырья до готовых продуктов. Чаще всего сопроводительная информация для каждого из этапов хранится в отдельных базах данных, а бумажные документы до сих пор приходится пересылать физически. Чтобы собрать один ноутбук, кому-то нужно добыть нефть и металлы, из которых кто-то сделает пластиковый гранулят и нужные сплавы, которые впоследствии превратятся в детали и попадут в сборочный цех. На каждом из этапов нужно передавать и подписывать документы, высылать счета, переводить деньги и т. д. Всю эту информацию можно объединить в одном реестре, чтобы всем сторонам были доступны документы, история транзакций и поставок. Смарт-контракты позволят автоматически распределять платежи после согласования и получения нужных цифровых подписей. Кроме того, в цепочку поставок на блокчейне значительно проще добавлять новых участников вроде поставщиков и перевозчиков.
Здравоохранение
Блокчейн и смарт-контракты позволят создать единый безопасный реестр медицинских записей. Учитывая деликатность информации, доступ к записям можно ограничить смарт-контрактом с мультиподписью: если пациент и его лечащий врач согласны показать информацию другому специалисту, они поставят цифровые подписи и система откроет доступ указанному человеку. Объединение в один реестр поможет вести научные исследования и анонимные опросы, а если учёные решать наградить тех, кто делится информацией, смарт-контракты — оптимальный способ обеспечить выплату по факту передачи информации.
Интернет вещей
В интернете вещей (Internet of Things, IoT) безопасность и неизменяемость блокчейн-реестра вместе с возможностями смарт-контрактов позволят наладить прозрачные механизмы взаимодействия и обмена ценностями между гаджетами вроде умных холодильников, смартфонов, термостатов и автомобилей. Умный электромобиль может одной транзакцией инициировать оплату за электричество и смарт-контракт активирует зарядное устройство. Права владения этими гаджетами тоже можно фиксировать в блокчейне, а значит, пользователь сможет продать или подарить устройство не покидая блокчейн-сети и без привлечения третьих лиц.
Медиаиндустрия
Для правообладателей и создателей контента актуальна проблема роялти — платы за использование интеллектуальной собственности. Здесь смарт-контракты можно использовать для прозрачного распределения средств.
То же самое относится и к другим областям, где нужно обеспечить учёт и прозрачное проведение платежей без доверия между сторонами: страхованию, энергетике и так далее. Для голосования и ведения государственных архивов блокчейн и смарт-контракты — возможность оптимизировать доступ к данным и авторизацию участников, будь то архив земельного кадастра или избирательный процесс.
Проблемы смарт-контрактов
Оракулы
Одна из основных технических преград полномасштабному внедрению блокчейн-реестра и смарт-контрактов — необходимость создать эффективные и надёжные оракулы. Оракулы — это внешние агенты, которые отвечают за достоверность предоставленной информации извне.
Блокчейн-реестр — изолированная среда, внутри которой с помощью криптографических доказательств и протоколов консенсуса все участники могут проверить истинность тех или иных данных. Но для широкого применения этим системам нужно получать информацию из внешнего мира: подтверждать факт получения товара, идентифицировать участников, получать биржевые сводки и так далее. Такая информация поступает в систему через оракулы.
Оракулами могут быть:
- измерительные приборы вроде термометра или датчика освещенности;
- конкретные участники сети, которые оказывают услуги блокчейн-системе;
- децентрализованные системы с собственными механизмами консенсуса, построенные поверх основного реестра.
В некоторых случаях, как в блокчейне Aeternity, оракулы интегрированы с основным блокчейном и работают в рамках одного механизма консенсуса с остальной сетью. Пользователи сети посылают оракулам запросы посредством транзакций на блокчейне, а оракулы отвечают им соответствующей он-чейн транзакцией. Вопрос и ответ остаются в реестре, а остальные пользователи могут сверяться с этими данными.
Юридическая сила
Другая проблема — необходимость в новой регуляторной среде, которая учитывала бы возможности блокчейна и определила юридическую силу смарт-контрактов и внесенных в реестр данных, таких как права владения недвижимостью или предметами.
Недоверие к блокчейну
Блокчейн-технологии развиваются уже около десяти лет, если считать точкой отсчёта whitepaper Bitcoin, но в сравнении с другими технологиями и методиками, задействованными в современной финансовой системе, блокчейн остается молодой и не до конца зарекомендовавшей себя технологией. Из-за этого консервативные участники рынка относятся к нему скептически.
Выводы
Уже сейчас многие традиционные банки и ведомства экспериментируют с блокчейн-технологиями и смарт-контрактами и инвестируют в проекты в этой отрасли. По мере того, как проекты вроде Augur, Aeternity и Oraclize решают проблему оракулов и совершенствуют технологию, всё больше государственных структур и бизнесов будут внедрять распределённый реестр и смарт-контракты для оптимизации своей работы и прозрачного учёта.
Смарт-контракты уже сейчас могут заменить значительную часть существующего документооборота. Любые типовые соглашения о страховании или передаче имущества можно реализовать как смарт-контракты. Однако для нестандартных случаев традиционные контракты останутся основным элементом соглашения. В роли базиса для распределённых приложений и аналога обычной компьютерной программы для распределённой среды смарт-контракты скорее всего будут использоваться практически повсеместно.
Что такое смарт-контракт?
Смарт-контракт — это защищенная от взлома программа, которая исполняется в сети блокчейн при выполнении определенных предопределенных условий.
Умные контракты — это компьютерные программы, которые размещаются и выполняются в сети блокчейн. Каждый смарт-контракт состоит из кода, в котором определены заранее заданные условия, которые при выполнении приводят к определенным результатам. Благодаря работе на децентрализованном блокчейне вместо централизованного сервера, смарт-контракты позволяют нескольким сторонам прийти к общему результату точным, своевременным и защищенным от взлома способом.
Смарт-контракты являются мощной инфраструктурой для автоматизации, поскольку они не контролируются центральным администратором и не подвержены атакам со стороны злоумышленников. При применении к многосторонним цифровым соглашениям приложения смарт-контрактов могут снизить риск контрагента, повысить эффективность, снизить затраты и обеспечить новый уровень прозрачности процессов.
История смарт-контрактов
Смарт-контракты были впервые предложены американским компьютерным ученым Ником Сабо в 1994 году. В своем фундаментальном труде он дал широкое определение смарт-контракта следующим образом: “компьютерный протокол транзакции, который выполняет условия контракта”, с общими целями “удовлетворения общих условий контракта, минимизации изъянов, как злонамеренных, так и случайных, и минимизации потребности в доверенных посредниках”.
Хотя общее представление о смарт-контрактах можно увидеть в таких системах, как торговые автоматы (например, определенный код приводит к получению ожидаемой еды), блокчейн стал основой смарт-контрактов, которые были цифровыми, защищенными от взлома и не требующими разрешения. Появление блокчейна Bitcoin в 2009 году поддержало, пожалуй, первый протокольный смарт-контракт — установление набора условий, которые должны быть выполнены для передачи биткойнов между пользователями сети. Эти условия включали подписание пользователем транзакции правильным закрытым ключом, соответствующим его публичному адресу (сродни паролю, привязанному к конкретному счету), и наличие у пользователя достаточных средств для оплаты транзакции.
В 2012 году блокчейн Биткойна эволюционировал и предложил другой основной тип смарт-контракта, который называется транзакция с несколькими подписями. Транзакция с несколькими подписями требует, чтобы определенное количество людей (публичные ключи) подписали транзакцию своими приватными ключами, прежде чем она будет считаться действительной. Это повышает безопасность средств пользователей за счет снижения вероятности возникновения сбоев, таких как кража или потеря закрытого ключа.
В течение следующих нескольких лет блокчейн начал экспериментировать, добавляя новые программные условия (называемые кодами операций или опкодами). Однако следующий крупный скачок в области смарт-контрактов произошел после публикации “whitepaper” по Ethereum Виталиком Бутериным в 2013 году. В 2015 году Ethereum был запущен как новый тип блокчейна для программируемых смарт-контрактов. Вместо того чтобы блокчейн эффективно функционировал как единственное приложение для смарт-контрактов или предлагал несколько ограниченных опкодов, блокчейн для смарт-контрактов Ethereum предлагал “мировой компьютер”, который мог одновременно запускать множество независимых смарт-контрактов.
Как работают умные контракты
Умные контракты — это защищенные от взлома программы на блокчейне со следующей логикой: “если/когда произойдет событие x, то выполнить действие y”. Один смарт-контракт может иметь несколько различных условий, а одно приложение может иметь несколько различных смарт-контрактов для поддержки взаимосвязанного набора процессов. Существует также несколько языков программирования смарт-контрактов, наиболее популярным из которых является Solidity от Ethereum.
Любой разработчик может создать смарт-контракт и разместить его на публичном блокчейне для своих целей, например, агрегатор личной доходности, который автоматически переводит средства в наиболее высокодоходное приложение. Однако во многих смарт-контрактах участвуют несколько независимых сторон, которые могут знать или не знать друг друга и не обязательно доверять друг другу. Умный контракт определяет, как именно пользователи могут взаимодействовать с ним, в том числе кто может взаимодействовать с умным контрактом, в какое время и какие входы приводят к каким выходам. В результате многосторонние цифровые соглашения эволюционируют от сегодняшнего вероятностного состояния, когда они, вероятно, будут выполняться по желанию, к новому детерминированному состоянию, когда они гарантированно будут выполняться в соответствии с их кодом.
Примеры смарт-контрактов
Одна из целей смарт-контракта — автоматизировать определенный бизнес-процесс между отдельной группой субъектов. Эти субъекты коллективно приходят к соглашению по всем условиям смарт-контракта, таким как выплаты, ход процесса и разрешение споров. Простой пример смарт-контракта для глобальной торговли может содержать такие условия, как:
Условие 1: Если товар прибывает вовремя, то выполняется платеж от розничного торговца поставщику в полном объеме.
Условие 2: Если товар прибывает с опозданием на один день, то выполняется платеж от розничного продавца поставщику на 98% от полной суммы.
Другие смарт-контракты поддерживают публичные децентрализованные приложения (dApps), с которыми может взаимодействовать любой желающий без необходимости получения каких-либо разрешений. Публичные dApp часто имеют открытый исходный код, поэтому любой человек в мире может ознакомиться с их функционированием, прежде чем решить, стоит ли с ними взаимодействовать. Одним из примеров публичного dApp является децентрализованный рынок кредитования/займов, который может иметь следующие условия:
Условие 1: Если пользователь вносит залог в определенный смарт-контракт, он может получить кредит в размере до 50% от стоимости своего залога (т.е. при депозите в $100 можно получить кредит в размере до $50).
Условие 2: Если коэффициент обеспеченности пользователя (залог/стоимость кредита) опускается ниже 200%, то залог пользователя автоматически ликвидируется и передается кредиторам, чтобы они не потеряли деньги.
Термин 3: Кредиторы могут внести средства в определенный контракт, по которому другие пользователи могут брать займы с заранее определенным коэффициентом обеспечения, а кредитор получает право на часть выплат по процентной ставке.
Преимущества смарт-контрактов
В большинстве традиционных цифровых соглашений участвуют две стороны, которые не знают друг друга, что создает риск того, что один из участников не выполнит свои обязательства. Чтобы устранить риск контрагента, цифровые соглашения часто размещаются и исполняются крупными централизованными учреждениями, такими как банк, которые могут обеспечить соблюдение условий договора. Такие цифровые контракты могут заключаться непосредственно между пользователем и крупной компанией или же крупная компания выступает в качестве доверенного посредника между двумя пользователями. Хотя такая динамика позволяет существовать многим контрактам, которые в противном случае не приняли бы на себя такой риск, она также создает ситуацию, когда крупные централизованные учреждения оказывают асимметричное влияние на контракты.
Умные контракты улучшают цифровые соглашения, предлагая несколько преимуществ.
Безопасность — Выполнение контракта на децентрализованной инфраструктуре блокчейна гарантирует отсутствие централизованной точки отказа для атаки, централизованного посредника для подкупа и механизма, который может быть использован любой из сторон или центральным администратором для подделки результата.
Надежность — избыточная обработка и проверка логики контракта децентрализованной сетью узлов обеспечивает надежную защиту от несанкционированного доступа, бесперебойность и корректность, гарантируя, что контракт будет выполнен в срок в соответствии с его условиями.
Справедливость — Использование децентрализованной сети для размещения и обеспечения выполнения условий соглашения снижает возможность коммерческого посредника использовать свое привилегированное положение для поиска ренты и выкачивания стоимости.
Эффективность — автоматизация внутренних процессов соглашения — депонирования, обслуживания, исполнения и/или расчетов — означает, что ни одна из сторон не должна ждать, пока данные будут введены вручную, контрагент выполнит свои обязательства или посредник обработает транзакцию.
Примеры использования смарт-контрактов
Управление правами (токенами)
Смарт-контракты токенов используются для создания, отслеживания и назначения прав собственности на конкретные цифровые токены, существующие в сетях blockchain. Контракт на токены программирует функциональность выпускаемых им токенов, предоставляя держателям такие возможности, как использование/страхование в dApp (ютилити-токен), право голоса в протоколе (токен управления), доля в компании (токен безопасности), право собственности на уникальный реальный мир или цифровой актив (невзаимозаменяемый токен) и многое другое. Например, токен FIL используется для оплаты услуг децентрализованного хранилища Filecoin, а токен COMP позволяет пользователям участвовать в управлении протоколом Compound.
Финансовые продукты (DeFi)
Децентрализованные финансы (DeFi) состоят из приложений, использующих смарт-контракты для воссоздания традиционных финансовых продуктов и услуг, таких как денежные рынки, опционы, стейблкоины, биржи и управление активами, а также для объединения нескольких услуг с целью создания новых финансовых примитивов посредством композиции без разрешения. Смарт-контракт может хранить средства пользователя в условном депонировании и распределять их между пользователями на основе заранее определенных условий. Например, BarnBridge использует смарт-контракты для автоматизации сделок для пользователей, желающих получить фиксированный актив, подверженный воздействию ценовой пары (например, 45% токена A, 55% токена B), а Aave использует смарт-контракты для облегчения кредитования и заимствования без разрешения и децентрализованным образом.
Игры и NFT
Игры на основе блокчейна используют смарт-контракты для защиты от несанкционированного выполнения игровых действий. Одним из примеров является PoolTogether, беспроигрышная сберегательная игра, в которой пользователи вкладывают свои средства в общий пул, который затем направляется на денежный рынок, где на него начисляются проценты. По истечении заданного периода времени игра заканчивается, и победитель случайным образом получает все накопленные проценты, а все остальные могут снять свои первоначальные вклады. Аналогичным образом NFT с ограниченным тиражом могут иметь справедливые модели распространения, а ролевые игры могут поддерживать непредсказуемое выпадение лута с помощью случайности, помогая обеспечить всем пользователям справедливые шансы на получение редких цифровых активов. Многие проекты получают доступ к случайности с помощью верифицируемой случайной функции (VRF) Chainlink — генератора случайных чисел (RNG), который использует криптографию для доказательства своей защищенности от взлома, что означает публичный аудит процесса RNG (Random Number Generator).
Страхование
Параметрическое страхование — это вид страхования, при котором выплата напрямую связана с конкретным заранее определенным событием. Смарт-контракты обеспечивают защищенную от взлома инфраструктуру для создания параметрических договоров страхования, которые срабатывают на основе вводимых данных. Например, с помощью смарт-контрактов можно создать страхование урожая, когда пользователь приобретает полис на основе конкретной погодной информации, например, сезонных осадков в определенном географическом районе. По окончании срока действия полиса смарт-контракт автоматически выдаст выплату, если количество осадков в конкретном месте превысит первоначально заявленную сумму. Конечные пользователи не только получают своевременные выплаты с меньшими накладными расходами, но и сторона предложения страхования может стать открытой для общественности с помощью смарт-контрактов. Смарт-контракт позволяет пользователям вносить средства в пул, а затем распределяет собранные премии между участниками пула в зависимости от процента их вклада в пул.
Ограничения смарт-контрактов
Одним из неотъемлемых ограничений смарт-контрактов является то, что блокчейн, на котором они работают, представляет собой изолированную сеть, то есть блокчейн не имеет встроенной связи с внешним миром. Без внешней связи смарт-контракты не могут взаимодействовать с внешними системами для подтверждения наступления реальных событий и не могут получить доступ к экономически эффективным вычислительным ресурсам. Подобно компьютеру без Интернета, смарт-контракты крайне ограничены без связи с реальным миром. Например, они не могут узнать цену актива перед совершением сделки, не могут проверить среднемесячное количество осадков перед выплатой страхового возмещения по урожаю, а также не могут проверить поступление товара перед расчетом с поставщиком.
Таким образом, основным направлением развития блокчейн-индустрии являются программируемые смарт-контракты, которые связываются с данными реального мира и традиционными системами вне блокчейна, расширяя входы и выходы, используемые в логике смарт-контракта. Эти гибридные смарт-контракты используют безопасное промежуточное программное обеспечение, известное как оракул, для объединения кода на цепочке с инфраструктурой вне цепочки — например, для запуска смарт-контракта с помощью внешних данных или для расчета по контракту вне цепочки с помощью традиционной платежной системы.
Подобно влиянию Интернета на компьютеры, оракулы являются ключом к соединению развивающихся сетей блокчейн с современными традиционными системами для обеспечения взаимосвязанных, производительных и сохраняющих конфиденциальность смарт-контрактов, которые сохраняют безопасность и надежность базовой сети блокчейн. Обеспечивая гибридные смарт-контракты, оракулы значительно расширяют и усиливают ценные свойства блокчейн, что приводит к созданию превосходных цифровых соглашений, основанных на криптографической истине, в большем количестве отраслей и сценариев использования.
Присоединяйтесь к русскоязычному сообществу Chainlink в Телеграм.
Официальные источники на английском: Twitter для новостей, уведомлений о новых статьях; Telegram или Reddit для основных вопросов, Discord — для детальных технических вопросов и дискуссий.