ForkLog | Статьи | Ethereum (ETH|USD) | Bitcoin (BTC|USD)

Немного истории: что такое умные контракты и зачем они нужны

15 июня 2017  Источник http://forklog.com/
Сегодня существует отдельный тип юристов, который занимается составлением и сопровождением контрактов. Такие контракты написаны юридическим языком, содержат большое количество страниц и не всегда до конца понятны подписантам.

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

С приближением цифровой эры, дигитализация затронула и эту важную часть общественных взаимоотношений. В 1994 году юрист и криптограф Ник Сабо описал концепцию умных контрактов (smart contracts), определив такой контракт как “электронный протокол передачи информации, обеспечивающий исполнение сторонами условий контракта”.

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

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

Умные контракты на блокчейне

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

«Блокчейн — это распределенный реестр, позволяющий пользователям передавать информацию и ценность без помощи банков и посредников».

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

В отличие от юридического языка бумажных договоров, код не подвержен лингвистическим нюансам и двойным толкованиям. Поскольку смарт-контракты являются программами и создаются на основе компьютерной логики, стороны сделки могут быть уверены, что условия, прописанные в коде контракта, будут соблюдены неукоснительно и не могут быть изменены задним числом. В обиходе это правило формулируется кратко: «код — это закон».

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

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

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

Простой пример

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

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

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

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

Проблемы, о которых не стоит забывать

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

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

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

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

Смарт-контракты в реальном мире

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

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

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

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

Многие страны мира, включая ЕС, Австралию, Россию и Украину, всерьез рассматривают переход на блокчейн-голосование. Не исключено, что в ближайшем будущем мы будем выбирать государственных лидеров, не опуская бумажки в урны, а запуская смарт-контракт.

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

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

Пожалуй, важнейшим применением смарт-контрактов может стать зарождающаяся уже сегодня инфраструктура Интернета вещей. Экономика будущего — это глобальная сеть умных вещей, общающихся друг с другом с помощью смарт-контрактов. Благодаря смарт-контрактам и “оракулам” (механизмам, позволяющим смарт-контрактам обмениваться информацией с внешним миром), умные автомобили смогут самостоятельно парковаться и заправляться, умные дома — осуществлять финансовые отношения с арендаторами, а дроны — доставлять покупки и разносить пиццу.

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

Концепции развития умных контрактов: биткоин vs Ethereum

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

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

Скриптовый язык биткоина позволяет программировать условные транзакции (простейшие алгоритмы “if-then-else”), но не обладает полнотой по Тьюрингу. А сам блокчейн биткоина не содержит маркеры состояний. Поэтому консервативный биткоин не смог дать программистам желаемой свободы действий, и дальнейшая разработка пошла по двум большим направлениям — эксперименты с сайдчейнами (ответвлениями основного блокчейна биткоина) и создание новых блокчейнов с нуля.

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

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

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

Полнота по Тьюрингу

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

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

Более того, с жесткой критикой тьюринг-полных блокчейнов выступают так называемые “биткоин-максималисты”. По их мнению, включение излишних вычислений в блокчейн грозит существенными нагрузками на сеть. В результате это может привести к замедлению работы блокчейна, а, учитывая небольшой размер блока биткоина и десятиминутный промежуток между блоками, тьюринг-полные смарт-контракты являются неподъемными для биткоина. Но даже на более гибких и быстрых платформах вычисления, производимые на блокчейне, — довольно дорогое удовольствие.

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

«Те, кто желает найти «тьюринг-полные» умные контракты в рамках общественной криптовалютной сети, глубоко и фундаментально заблуждаются в том, какие задачи на самом деле решают такие системы», — заявил Максвелл.

По мнению Максвелла, для системы важна лишь верификация подлинности входящей информации, а не сами вычисления.

Основатель Ethereum Виталик Бутерин отвергает подобную критику с некоторыми оговорками. Он утверждает, что нужно разделять простые и сложные вычисления. Первые используются в элементарных умных контрактах и не требуют значительной мощности. Однако он соглашается, что совершать сложные вычисления в блокчейне глупо и бессмысленно. Именно поэтому существуют сервисы, подобные Ethereum Computation Market, которые производят необходимые расчеты офчейн.

Бутерин также высказался по поводу критики использования принципа «полноты по Тьюрингу» и объяснил почему такое свойство системы необходимо для большей совместимости и простоты использования ее разработчиками.

«Здесь я провожу аналогию с группами крови. Если вы донор, вы хотите, чтобы у вас была первая группа крови, тогда кто угодно может использовать вашу кровь. Если же вы получаете кровь, вы предпочтете, чтоб у вас была четвертая группа, чтобы вам можно было переливать кровь от кого угодно. Подобным образом обстоит с языками программирования. Полнота по Тьюрингу — это четвертая группа крови: не важно, какой другой парадигмой вы пользуетесь, вы можете скомпилировать ее в тьюринг-полную», — объяснил Бутерин.

Масштабируемость и состояние

Вместе с тем Бутерин отметил, что видение Ethereum опирается не столько на тьюринг-полноту, сколько на хранение состояния в блокчейне (statefulness). Главное отличие модели Ethereum от биткоина он видит именно в этом, а тьюринг-полнота является всего-лишь следствием.

Простыми словами, разницу между двумя основными подходами можно объяснить так: смарт-контракты Ethereum способны хранить состояние в блокчейне (stateful), т.е. воспринимать каждую транзакцию как часть большой картины. Биткоин же использует контракты без хранения состояния (stateless), т.е. его блокчейн обрабатывает каждую транзакцию как абсолютно независимое событие.

С одной стороны, хранение информации о состоянии в блокчейне открывает перед программистами дополнительные возможности. По мнению Бутерина, парадигма Ethereum дает максимальную свободу разработчикам и позволяет им использовать любые вообразимые варианты функционала. Именно такой подход сделал возможным создание первых ДАО (децентрализованных автономных организаций).

Однако стоит отметить, что хранение состояния в блокчейне негативно сказывается на его масштабируемости. К тому же, бОльшая свобода предполагает бОльшие риски недостаточной оптимизации кода, которая может привести к дополнительным издержкам при его исполнении, что отлично иллюстрирует крах The DAO.

Продолжение дискурса

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

О вторых мы поговорим в следующей статье. Среди первых можно выделить проекты-сайдчейны, пытающиеся объединить гибкость смарт-контрактов с надежностью первого блокчейна. Эталонный пример такого гибридного подхода — Counterparty. У этой платформы нет собственного блокчейна, свою информацию она внедряет в транзакции биткоина. Обычные ноды эту информацию игнорируют, а ноды Counterparty распознают ее и обрабатывают. Для создания смарт-контрактов платформа поддерживает язык Solidity — тот же, что использует и Ethereum.

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

«Мы предполагаем, что Rootstock будет намного безопасней других платформ благодаря стоящим за ним мощностям хэширования биткоина».

Габриэль Курман, основатель RSK

Но привязка к блокчейну биткоина в то же время является и серьезным недостатком Rootstock, который, скорее всего, не позволит платформе стать “убийцей Ethereum”. Корень проблемы лежит в том, как происходит общение между Rootstock и основным блокчейном биткоина.

Транзакции проходят в обе стороны по определенным правилам — для перевода биткоинов в блокчейн Rootstock нужная сумма биткоинов отправителя блокируется в блокчейне биткоина, а получателю выдается эквивалент в токенах RSK в сети Rootstock. Так же происходит и обратный процесс. Но поскольку биткоин не использует “оракулы” и не может достоверно знать, что происходит в других блокчейнах (была ли заблокирована нужная сумма в RSK?), для осуществления переводов необходим гарант, третье лицо (в данном случае — RSK Federation), которое будет удостоверять соблюдение правил перевода активов между блокчейнами и получать за это вознаграждение с каждой такой транзакции. Учитывая, что устранение необходимости в сторонних гарантах — основная цель блокчейн-технологии, такой подход можно назвать шагом назад для индустрии.

Практика показывает, что блокчейн будущего обязательно должен обладать не только надежным механизмом консенсуса и инфраструктурой для тьюринг-полных смарт-контрактов, но и проработанной системой оракулов, которая позволит ему остаться децентрализованным и не зависящим от услуг третьих лиц при столкновении с внешним миром.
При полном или частичном использовании материалов - ссылка обязательна http://elitetrader.ru/index.php?newsid=345733. Присылайте свои материалы для публикации на сайте. Об использовании информации.