что такое смарт контракты в криптовалюте
Автономность и безопасность. Как работают смарт-контракты
Смарт-контракт — компьютерная программа, которая выполняет соглашения, заключенные между двумя и более сторонами, в результате которых, при выполнении тех или иных условий происходят определенные действия. То есть, когда задействуется ранее запрограммированное условие, смарт-контракт автоматический выполняет соответствующее соглашение. Если рассматривать обычный контракт и смарт-контракт, то можно точно сказать, что они оба являются соглашениями, в которых две или более стороны соглашаются соблюдать ряд условий. Их фундаментальные элементы одинаковы: добровольное согласие всех сторон, объект договора (товара или услуги) и единая цель. Тем не менее, оба отличаются по трем факторам: способ написания, его юридические последствия и концепт соблюдения.
История смарт-контрактов
Термин «умные контракты» был придуман ученым-программистом Ником Сабо, вероятно, в 1993 году, чтобы объяснить цель внедрения в разработку протоколов того, что он назвал «высокоразвитой» ступенью договорного права и связанных с ними бизнес-практик в электронной коммерции. Сабо, вдохновленный такими исследователями, как Дэвид Чаум, также полагал, что разработка умных-контрактов с помощью выполнения криптографических протоколов и других механизмов цифровой безопасности могут стать значительным улучшением по сравнению с традиционными юридическими контрактами.
Сабо использовал слово «умный» в кавычках и заявил о том, что искусственный интеллект задействован не будет. Он приводил классический пример смарт-контракта: это вендинговый автомат. Если условия «контракта» устраивают покупателя (т. е. он опускает деньги в автомат), то машина автоматически соблюдает условия неписаного соглашения и предоставляет покупку.
В настоящее время было разработано несколько формальных языков, которые были предложены для определения условий договора. На данный момент есть много рабочих групп, специализирующиеся на смарт-контрактах, которые содействуют продолжению этого исследования в будущем. До появления блокчейна не было платформы, которая могла бы сделать смарт-контракты реальностью, поэтому она была определена только концептуально.
Как работают смарт-контракты?
Умные контракты полностью цифровые и написаны на языке программирования. В дополнение к установлению обязательств и последствий таким же образом, как и в обычном физическом документе, код может выполняться автоматически. Следовательно, он может получать и обрабатывать информацию, касающуюся переговоров, уже принимая меры в соответствии с правилами договора. BTC ограничен в использовании токенов для финансовых переводов.
Платформа Ethereum заменяет более ограниченный язык BTC (язык сценариев, насчитывающий около ста) языком, который позволяет разработчикам задавать собственные сценарии. Ethereum позволяет разработчикам программировать свои собственные смарт-контракты. Язык является «полным по Тьюрингу», что означает, что он поддерживает более широкий инструментарий вычислительных инструкций.
Платформа Ethereum использовалась для распространения децентрализованных приложений (DApps). Вместо множества приложений, управляемых многими протоколами, Ethereum позволяет управлять всеми приложениями по одному протоколу.
Ethereum — это платформа, которая позволяет разработчикам создавать любую программу, и запускать ее на основных функциях блокчейна, используя смарт-контракты для автоматического выполнения своих действий, задействуя предопределенные условия, встроенные в алгоритм. В случае, если условия будут выполнены, заданная функция автоматически завершается без необходимости предпринятия каких-либо действий.
Преимущества смарт-контрактов
Используя смарт-контракты, больше нет необходимости прибегать к помощи третьей стороны, например, адвоката или нотариуса, который, помимо возможных ошибок, влечет за собой значительные расходы. Блокчейн способен защитить информацию в зашифрованной сети, к которой можно обращаться из любой точки мира, поэтому скорость и безопасность очевидны. Самыми главными преимуществами контрактов являются:
Автономность
Эти контракты всегда заключаются между одним или несколькими физическими или юридическими лицами, но без посредников. Для подтверждения договора не требуется юрист. Поэтому стороны сокращают и могут даже устранить любого лишнего человека, который не участвует в договоре.
Снижение затрат
Поскольку контракты не зависят от третьей стороны, затраты снижаются. Меньшее вмешательство человека приводит к снижению затрат.
Скорость
Умные контракты используют программный код для автоматизации задач, которые в противном случае выполнялись бы вручную. Поэтому они увеличивают скорость бизнес-процессов и менее подвержены ошибкам вручную.
Безопасность
Основывая контракты на блокчейне Ethereum, они не могут быть потеряны. Все является неизменным. Ничто и никто не может заставить его исчезнуть, и у вас всегда есть к ним доступ.
Процесс децентрализованного управления исключает риск манипуляций, поскольку выполнение управляется автоматически всей сетью, а не отдельной частью.
Недостатки смарт-контрактов
С другой стороны, программы такого типа также имеют определенные недостатки. Главный состоит преимущественно в использовании технологий, которые он задействует: интернет-вещей и блокчейн.
IoT может обеспечить связь с активами, но ему еще предстоит пройти долгий путь в области безопасности. IoT-устройства легко взломать. Блокчейн более чем безопасен, но он неизменен. После того, как условия согласованы, их нельзя будет впоследствии изменить, что невыгодно для одной из сторон.
Как создать смарт-контракт?
Контракт разработан на определенном языке (Solidity, Serpent или Mutan), скомпилирован в EVM и, за некоторыми исключениями, соответствует стандартному интерфейсу ERC-20. Solidity является языком, который основан на JS, Python и C++.
Чтобы подойти к созданию смарт-контракта, нужно знать Solidity. Как бумажные контракты создаются людьми, которые знают всю правовую среду вокруг них, в умных контрактах необходимо знать компьютерный код, называемый Solidity.
В документе «Введение юриста в смарт-контракты» для смарт-контрактов описываются два «уровня»: платформа смарт-контрактов (SCP), которая представляет собой инфраструктуру, позволяющую создавать их и управлять ими на блокчейне, и система управления смарт-контрактами (SCMS). Этот протокол добавляется к этой инфраструктуре, чтобы пользователю было проще взаимодействовать с контрактами. То есть, он является графическим интерфейсом.
Контракт выполняется в сети, внутри виртуальной машины Ethereum (EVM). Это исполнение не является бесплатным, но оплачивается в форме «газа», небольшого количества эфирной валюты, внесенного одним или несколькими участниками контракта. Важной деталью является то, что исполнение децентрализовано и производится во всех узлах сети. Это одна из причин, по которой EVM работает так медленно и может обрабатывать только около 15 транзакций в секунду.
Как происходит процесс оформления смарт-контрактов
Инфраструктура интеллектуальных контрактов может быть реализована с помощью реплицированных записей, а выполнение контрактов может осуществляться с использованием древа Меркле, который работает через криптографические хеш-функции и репликацию задачи византийских генералов (BFT), которая является обобщенной задачей двух генералов. Каждый узел в одноранговой сети действует как реестр доверия или гарантии, выполняя изменения держателей контракта и автоматически проверяя правила, наложенные транзакцией, а также проверяя ту же работу других узлов. Криптовалюты типа BTC реализовали особые случаи для тех записей или узлов, где собственностью и ядром транзакции являются деньги. BTC и многие его производные содержат более обобщенные механизмы для прав собственности и исполнения контрактов. Ведение кода — очень важная и часть протокола BTC, основанная на репликации конечного автомата.
Как можно использовать смарт-контракты?
В двадцать первом веке существует возможность перевода всевозможных бумажных договоров в цифровые смарт-контракты, а следственно, появляется и широкий спектр потенциального применения.
Автоматизация платежей: контракт может быть запрограммирован, чтобы гарантировать, что требуемая сумма поступит в указанное время указанным лицам или организациям.
Регистрация и смена владельца: необходимые документы могут быть зарегистрированы в блокчейне, чтобы установить собственность с самого начала и сменить владельца посредством интеллектуальных договоров.
Энергетические транзакции: считается, что это создает цифровую экосистему для обмена энергией. Таким образом, источники электричества или топлива будут связаны с смарт-контрактами, заключенными только между физическими лицами или с вовлеченными организациями, которые, в свою очередь, могут персонализировать потребление каждого клиента.
Интеллектуальная собственность: можно встроить смарт-контракт в любой объект, который контролируется цифровыми средствами. Именно здесь рождается «умная собственность», которая может быть ассимилирована с объектами IoT, подключенными к сети. Они могут варьироваться от дома до автомобилей. Таким образом, например, аренда этих свойств может быть автоматизирована.
Также, криптовалюты, такие как Биткоин, можно рассматривать как набор смарт-контрактов, которые обеспечивают соблюдение закона о собственности. Криптографические методы используются, чтобы гарантировать, что их может потратить только владелец цифрового токена. Уже существует несколько децентрализованных рынков активов, так что многие различные цифровые активы могут быть проданы в одной цепочке блоков. Тот же принцип можно распространить и на физические продукты с электронным управлением или встроенными микрочипами.
Финансовые услуги: Криптовалюты, очевидно, открывают широкий спектр различных вариантов использования для умных контрактов, которые иначе были бы невозможны. Например, системы, подобные используемой BurstCoin, могут проводить аукционы, которые автоматически проверяют самую высокую цену в заданный срок и автоматически переводят неактивные средства.
Больше новостей о криптовалютах вы найдете в нашем телеграм-канале РБК-Крипто.
Блокчейн, смарт-контракты… Это просто или сложно?
В случае с хранением информации в базе данных, злоумышленник может получить тем или иным способом доступ и внести изменения, чтобы завладеть денежными средствами.
Ему не нужно изменять всю базу данных, а подменить только часть данных хранящихся в базе. В случае с блокчейном нужно будет изменить всю цепочку блоков с данными, что будет сделать крайне сложно.
Итак, есть данные и их нужно защитить от нежелательных изменений. Информация может быть любая – транзакции денежных средств, перемещение посылок, билеты на самолёт и т.д.
Информацию (данные) мы будем делить на части (блоки) и будем выстраивать цепочку этих блоков.
В нашем примере будут хранится данные о денежных транзакциях.
Создадим первый блок.
Так как блок первый в нём будут хранится только данные и номер блока.
Данные в блоке будут содержать размер всего выпуска криптовалюты и номер первого кошелька, на котором они все находятся на начальном этапе.
Для наглядности можно сформировать массив данных, состоящий из хэша и номера кошелька.
Хэш – функцию будем использовать не SHA 256, а «по проще» MD5, просто получаемый хэш с помощью этой функции лучше читаем человеком (он короче), чем SHA 256.
Хэш первого кошелька будет c4ca4238a0b923820dcc509a6f75849b (это цифра 1).
Объём выпуска нашей криптовалюты 1 млн.
В блок поместим номер блока (цифру 1) и будем нумеровать блоки последовательно (1, 2, 3, …).
Это всё, что будет храниться в нашем первом блоке и хэш первого блока будет таким: 45d04629fc2f54182ba55aad029152ae.
Второй блок будет содержать данные о транзакциях, хэш блока № 1 и соответственно свой номер блока «2».
Данные о транзакциях будут содержать номер транзакции, кошелёк, того кто перечисляет криптовалюту, кошелёк кому будет перечислена криптовалюта и сколько будет перечислено.
Данные в блоке
Третий и последующие блоки будет построены по аналогии со вторым.
Таким образом мы получим следующую цепочку блоков.
Изменение в любом из блоков повлечёт изменения его собственного хэша и хэша всех последующих блоков.
В случае изменения хэш сумм блоков необходимо принять соответствующие меры, чтобы не навредить хранящимся данным (сохранить неизменность данных), чтобы средства остались у тех, у кого они должны быть.
Один из таких способов — это отвергнуть цепочку, с которой начинается несоответствие, а включённые в них транзакции признать недействительными.
Что такое смарт-контракт и как он работает?
Как и в обычном контракте для совершения сделки (приобретения или отчуждения чего-либо) необходимо выполнить определённые условия и произвести определённые действия.
Предположим, стороне 1 (первый контрагент) необходимо продать криптовалюту и купить рубли, и есть другая сторона (контрагент 2), кто хочет продать рубли и купить криптовалюту.
Чтобы состоялась сделка (контракт был исполнен) необходимо выполнение определённых условий, то есть необходим алгоритм, который проверяет эти условия для того, чтобы прошла транзакция в следствии которой контрагент 1 получит определённую сумму рублей по определённому курсу, а другой контрагент (2) криптовалюту в соответствующем объёме и по соответствующему курсу (установленному курсы, например криптовалютной биржей).
Прежде чем совершить сделку одного лица с другим (контрагентов 1 и 2) необходимо проверить есть ли у контрагента 1 необходимое количество криптовалюты для совершения сделки, уплаты комиссии, налогов, и есть ли у контрагента 2 необходимая сумма рублей для совершения сделки, уплаты комиссии, налогов и пр.
Необходимо также проверить, что у контрагента продающего криптовалюту должен быть счёт для зачисления рублей, а у контрагента покупающего криптовалюту должен быть рублёвый счёт.
На счета могут быть наложены ограничения, например по размеру суммы и это нужно тоже проверить.
Если такие условия выполняются (условий может быть больше), то необходимое количество средств у контрагентов должно быть зарезервировано, а после их резервирования должна совершиться транзакция в результате которой продавец криптовалюты получит на свой рублёвый счёт рубли, а продавец рублей получит на свой криптовалютный счёт криптовалюту.
Выполнение условий контролируют по обычному контракту сами стороны (участники сделки) или третьи стороны, например сотрудниками банка, юристами и т.д., что бывает стоит не дёшево и затрачивается на эти процедуры много времени.
В случае со смарт – контрактами выполнение условий контролируется по созданному для этого алгоритму без участия человека в автоматическом режиме (вычислительными машинами) и на это уходит значительно меньше времени, чем при совершении сделки по обычному контракту.
Простыми словами: смарт-контракты, Ethereum, ICO
Смарт-контракты сделали криптовалюту Ethereum второй по величине. Рассказываем о том, что это такое и как это связано с модным понятием ICO.
Про Биткойн слышали многие, что и не удивительно — эта криптовалюта была первой и до сих пор остается самой популярной и самой крупной. Успех Биткойна вдохновил на подвиги кучу людей, поэтому за последние пару лет разных криптовалют — так называемых альткойнов — насоздавали ужас сколько, больше 1000.
Так вот, Биткойн — на данный момент однозначно номер один. А знаете, какая криптовалюта на втором месте? Ethereum. Когда мы говорим про места, мы имеем в виду капитализацию, то есть суммарную стоимость всех монет валюты.
Капитализация и цены TOP-5 криптовалют. Источник
Как видите, Ethereum с большим отрывом опережает другие «альткойны», а в июне 2017 чуть было даже не обогнал Биткойн, «великий и ужасный». Давайте разберемся, что же в Ethereum такого особенного и почему подавляющее большинство проводимых в этом году ICO используют именно его.
Идея Ethereum
Ethereum запустился совсем недавно, 30 июля 2015 года. Одним из его создателей был нынче известный в блокчейн-тусовке и, не побоюсь этого слова, влиятельный Виталик Бутерин. Он родился в России, но с шести лет жил в Канаде. На тот момент, когда он изложил свои идеи, которые в итоге легли в основу сети Ethereum, ему было 19 лет.
Так вот, в чем же идея? В сети Биткойн с точки зрения пользователя все устроено довольно просто. Есть кошельки, можно передавать деньги с одного кошелька на другой или на несколько сразу. Сеть построена на весьма остроумных принципах, позволяющих обходиться без единого центра, но задачи решаются вполне классические. Обычная платежная система, по большому счету: люди, деньги, переводы — все, больше ничего нет.
Но можно пойти дальше и создать такую платежную сеть, которая позволяет писать программы, которые бы работали с кошельками, сами бы принимали с кошельков деньги, решали, кому сколько отправить и так далее. С важным условием: для всех пользователей каждая такая программа будет работать по известным принципам, предсказуемо, одинаково, прозрачно, и чтобы никто не мог ее изменить.
Собственно, создатели Ethereum как раз и добавили к базовой функциональности криптовалют возможность создавать подобные программы. Все кошельки в Ethereum делятся на два типа: те, что управляются людьми, и те, что управляются автономно программами.
Программы — их называют смарт-контрактами — записываются в блокчейн. Таким образом, эта программа запоминается навсегда, у всех участников сети есть ее копия (блокчейн ведь у всех одинаковый), соответственно и выполняется смарт-контракт у всех тоже идентично.
И вот это нововведение существенно расширило сферу применения блокчейн-валют.
Примеры смарт-контрактов
Какие программы можно написать? Да какие угодно. Например, финансовую пирамиду. Для этого в сети Ethereum достаточно создать смарт-контракт со следующими правилами:
Или можно устроить аукцион. Пишем программу:
Есть еще миллион применений: кошельки с несколькими владельцами, финансовые инструменты, самоисполняющиеся пари, голосования, лотереи, игры, казино, нотариат и прочее.
Напомним преимущество: это блокчейн — все уверены, что никто не жульничает, все видят текст программы и понимают, что она работает именно так, как в ней написано. Программа — не человек. Она не скроется с деньгами, не обанкротится, и так далее. Если, конечно, в ней нет багов или «неожиданного поведения».
Ограничения смарт-контрактов
Но есть и существенные ограничения, вот некоторые из них:
Иными словами, как и в других областях, многое зависит от профессионализма авторов контрактов.
Главное использование смарт-контрактов
Простой смарт-контракт Ethereum. Имеющаяся ошибка позволяет украсть все деньги, кто нашел — молодец
Пирамиды, голосования, казино, лотереи — это все здорово. Но что оказалось действительно удобно делать при помощи смарт-контрактов — это надувать пузыри собирать деньги на свой стартап.
Ведь при помощи смарт-контракта можно автоматизировать всю «бухгалтерию»: контракт сам запомнит, от кого и сколько пришло денег, сам начислит «акции», а также даст возможность каждому участнику передавать и продавать эти акции. Не нужно никакой возни с адресами почты, кредитными картами, проверкой карт, авторизацией инвесторов и тому подобного. Вдобавок все видят, сколько всего было выпущено акций и как они распределились по участникам. От скрытого допечатывания акций и продажи одной акции несколько раз защищает блокчейн.
Смарт-контракты дали миллиону «криптоинвесторов» возможность «швырять деньги в монитор».
ICO — Initial Coin Offering
График стоимости Ethereum. Источник
Обсудим ICO поподробнее. Типичная схема криптостартапа такова:
Сумма обычно составляет 10-20 миллионов долларов и собирается буквально за несколько минут, иногда дней. Как правило, ICO ограничено по времени или собираемой сумме — и это формирует ажиотаж.
Окупаемость криптоинвестиций
Что будет дальше с выданными инвесторам токенами, зависит от проекта. Кто-то обещает выплачивать дивиденды с будущей прибыли, кто-то планирует принимать эти токены к оплате услуг, реализуемых проектом, кто-то ничего не обещает.
Как правило, сами токены выводятся на криптобиржу, и открываются торги. Те, кто не успел поучаствовать в ICO, могут купить их уже на бирже — скорее всего, подороже. Те, кто участвовал в ICO, чтобы потом перепродать подороже, могут их на бирже продать.
Иногда первых настолько больше, что цена растет стремительно, и капитализация проекта раздувается до миллиарда долларов. При том, что у него нет прибыли нет продукта, есть только идея, план и, в лучшем случае, команда.
Так как автор проекта собрал много денег, он этими же деньгами имеет возможность на бирже выкупать свои же токены, подогревая цену токена еще больше. На обычных биржах с обычными акциями такое поведение запрещено, но в криптоиндустрии регуляторов нет.
В 2017 году (к сентябрю) на ICO разные проекты уже собрали порядка 1,7 миллиарда долларов. Об успешных проектах слышно мало, но инвесторы не теряют оптимизма.
Умный контроль. Зачем нужны смарт-контракты
Смарт-контракты — «незаметная» технология, которая уже начинает менять нашу жизнь, устраняя ненужных посредников и повышая прозрачность процессов в самых разных сферах — от недвижимости до логистики.
Концепцию смарт-контрактов — программного кода, который выполняется автоматически, независимо от чьего-либо желания, — предложил еще в девяностых годах прошлого века американский ученый Ник Сабо. Однако тогда реализовать его идею было технически невозможно.
Ситуация изменилась с изобретением блокчейна, который позволяет не просто сохранить транзакцию, но и автоматически обработать ее, реализовав некоторую логику.
Причем смарт-контракты — это технология, которая для конечного пользователя остается «невидимой». Он вообще не должен знать, что существую какие-то там смарт-контракты. Главное, чтобы приложение, которым он пользуется, работало корректно и надежно, исключая возможность манипуляций. А за это как раз и отвечают смарт-контракты.
Суть этой технологии — в том, что она находится «под капотом», а человек просто пользуется ее преимуществами.
Смарт-контракты уже в ближайшее время могут улучшить жизнь обычных людей, потому что всевозможные посредники будут заменяться автоматически выполняющейся программой, и, соответственно, стоимость услуг будет снижаться.
Самый простой пример — автоматизация платежей ЖКХ. Есть поставщики услуг — электроэнергии, газа и т.д., — и есть конечные пользователи, которые платят поставщикам за предоставление этих услуг.
Смарт-контракт осуществляет валидацию данных, проверяя, пришел ли платеж от уполномоченного сборщика платежей, рассчитывает комиссию и суммы, предназначенные для отправки поставщикам услуг. На следующем этапе смарт-контракт может автоматически формировать платежные поручения для перевода денег поставщикам услуг.
Если смарт-контракт будет автоматически отправлять платежи пользователей поставщикам, это поможет избавиться от ненужных посредников. В цепочке будет только три участника — поставщик, потребитель и банк, — и ситуация, когда деньги, уплаченные за газ и электричество, могут быть присвоены посредником, будет исключена.
Еще один пример — управление цепочками поставок. Смарт-контракты позволяют проконтролировать всю цепочку доставки товара: от отгрузки производителем до поступления конечному потребителю. Вся информация о перемещении товара в неизменном виде хранится на блокчейне, а смарт-контракты контролируют соблюдение всех условий поставки.
Возможно применение смарт-контрактов и для так называемого кэш-менеджмента: осуществления денежных потоков между счетами материнской и дочерних компаний. Например, если на счету дочерней организации есть остатки, банк автоматически переводит их на счет материнской компании. Если, напротив, дочерней компании нужно совершить платеж, а средств на счету недостаточно, банк может провести платеж, зарезервировав соответствующую сумму на счету материнской компании. Благодаря смарт-контрактам подобные операции будут осуществляться гораздо проще и быстрее.
Интересны решения на основе блокчейна и смарт-контрактов и в sharing economy (экономике совместного потребления). Например, каршеринговая компания может использовать «токены доступа» на смарт-контрактах, чтобы клиент, оплативший доступ к автомобилю, мог пользоваться им без всякого физического ключа.
Недвижимость — еще одна потенциально интересная сфера применения смарт-контрактов. С их помощью, например, можно регулировать взаимоотношения застройщиков, банков и заемщиков. Как только банк одобряет покупателю квартиры ипотечный кредит, смарт-контракт автоматически инициирует процесс оформления квартиры в собственность.
Нельзя сказать, что внедрение смарт-контрактов в реальную жизнь идет легко. Проблемы существуют и на законодательном, и на техническом уровне.
Само название «смарт-контракт» предполагает, что он должен иметь юридическую силу, заменяя собой обычные контракты. При этом смарт-контракт не является криптовалютой и не подпадает под действие законодательных ограничений на операции с цифровыми активами.
Но смарт-контракты существенно отличаются от той логики, которая реализована в законодательстве, и вступают в противоречие с существующими нормативными актами. Поэтому нужны изменения в законодательство, которые признают юридическую силу смарт-контракта.
Существуют и технические ограничения. Развитие смарт-контрактов сдерживают такие факторы, как недостаточная скорость и производительность блокчейна и невозможность записывать в него большие объемы данных.
И, самое главное: лидеры бизнеса должны осознать суть блокчейна и смарт-контрактов и принять неизбежность распространения этой технологии.
Эволюция вместо революции
Но, несмотря на все проблемы, смарт-контракты на блокчейне применяются все активнее, являясь частью более широкой концепции Web 3.0 — интернета нового поколения, в котором также задействованы технологии интернета вещей (IoT) и искусственного интеллекта (AI).
Конечно, было бы неправильно ждать, что концепция Web 3.0, основанная на блокчейне и смарт-контрактах, внезапно полностью вытеснит Web 2.0. Здесь не будет резкого, революционного перехода, как, например, в свое время от парового двигателя к двигателю внутреннего сгорания или от текстового интернета конца прошлого века к динамическому интернету Фейсбука.
По крайней мере, в течение ближайшего времени будет происходить параллельное развитие двух концепций. Но доля Web 3.0 будет постепенно увеличиваться, все большее количество технологий, которыми мы пользуемся, будут децентрализованными и базироваться на принципах Web 3.0.