что такое смарт контракт в контексте блокчейн
Блокчейн, смарт-контракты… Это просто или сложно?
В случае с хранением информации в базе данных, злоумышленник может получить тем или иным способом доступ и внести изменения, чтобы завладеть денежными средствами.
Ему не нужно изменять всю базу данных, а подменить только часть данных хранящихся в базе. В случае с блокчейном нужно будет изменить всю цепочку блоков с данными, что будет сделать крайне сложно.
Итак, есть данные и их нужно защитить от нежелательных изменений. Информация может быть любая – транзакции денежных средств, перемещение посылок, билеты на самолёт и т.д.
Информацию (данные) мы будем делить на части (блоки) и будем выстраивать цепочку этих блоков.
В нашем примере будут хранится данные о денежных транзакциях.
Создадим первый блок.
Так как блок первый в нём будут хранится только данные и номер блока.
Данные в блоке будут содержать размер всего выпуска криптовалюты и номер первого кошелька, на котором они все находятся на начальном этапе.
Для наглядности можно сформировать массив данных, состоящий из хэша и номера кошелька.
Хэш – функцию будем использовать не SHA 256, а «по проще» MD5, просто получаемый хэш с помощью этой функции лучше читаем человеком (он короче), чем SHA 256.
Хэш первого кошелька будет c4ca4238a0b923820dcc509a6f75849b (это цифра 1).
Объём выпуска нашей криптовалюты 1 млн.
В блок поместим номер блока (цифру 1) и будем нумеровать блоки последовательно (1, 2, 3, …).
Это всё, что будет храниться в нашем первом блоке и хэш первого блока будет таким: 45d04629fc2f54182ba55aad029152ae.
Второй блок будет содержать данные о транзакциях, хэш блока № 1 и соответственно свой номер блока «2».
Данные о транзакциях будут содержать номер транзакции, кошелёк, того кто перечисляет криптовалюту, кошелёк кому будет перечислена криптовалюта и сколько будет перечислено.
Данные в блоке
Третий и последующие блоки будет построены по аналогии со вторым.
Таким образом мы получим следующую цепочку блоков.
Изменение в любом из блоков повлечёт изменения его собственного хэша и хэша всех последующих блоков.
В случае изменения хэш сумм блоков необходимо принять соответствующие меры, чтобы не навредить хранящимся данным (сохранить неизменность данных), чтобы средства остались у тех, у кого они должны быть.
Один из таких способов — это отвергнуть цепочку, с которой начинается несоответствие, а включённые в них транзакции признать недействительными.
Что такое смарт-контракт и как он работает?
Как и в обычном контракте для совершения сделки (приобретения или отчуждения чего-либо) необходимо выполнить определённые условия и произвести определённые действия.
Предположим, стороне 1 (первый контрагент) необходимо продать криптовалюту и купить рубли, и есть другая сторона (контрагент 2), кто хочет продать рубли и купить криптовалюту.
Чтобы состоялась сделка (контракт был исполнен) необходимо выполнение определённых условий, то есть необходим алгоритм, который проверяет эти условия для того, чтобы прошла транзакция в следствии которой контрагент 1 получит определённую сумму рублей по определённому курсу, а другой контрагент (2) криптовалюту в соответствующем объёме и по соответствующему курсу (установленному курсы, например криптовалютной биржей).
Прежде чем совершить сделку одного лица с другим (контрагентов 1 и 2) необходимо проверить есть ли у контрагента 1 необходимое количество криптовалюты для совершения сделки, уплаты комиссии, налогов, и есть ли у контрагента 2 необходимая сумма рублей для совершения сделки, уплаты комиссии, налогов и пр.
Необходимо также проверить, что у контрагента продающего криптовалюту должен быть счёт для зачисления рублей, а у контрагента покупающего криптовалюту должен быть рублёвый счёт.
На счета могут быть наложены ограничения, например по размеру суммы и это нужно тоже проверить.
Если такие условия выполняются (условий может быть больше), то необходимое количество средств у контрагентов должно быть зарезервировано, а после их резервирования должна совершиться транзакция в результате которой продавец криптовалюты получит на свой рублёвый счёт рубли, а продавец рублей получит на свой криптовалютный счёт криптовалюту.
Выполнение условий контролируют по обычному контракту сами стороны (участники сделки) или третьи стороны, например сотрудниками банка, юристами и т.д., что бывает стоит не дёшево и затрачивается на эти процедуры много времени.
В случае со смарт – контрактами выполнение условий контролируется по созданному для этого алгоритму без участия человека в автоматическом режиме (вычислительными машинами) и на это уходит значительно меньше времени, чем при совершении сделки по обычному контракту.
О смарт-контрактах простыми словами
Добрый день! Ранее у нас в блоге были посты на блокчейн темы, в которых нередко возникали дискуссии о распределенных вычислениях в блокчейне. По мотивам этих дискуссий и возник этот пост.
Итак давайте попробуем сегодня разобраться, что такое смарт-контракты (умные контракты). Сначала мы достаточно общо обсудим сам концепт, а потом немного копнем в реализацию смарт-контрактов на примере блокчейна Ethereum.
О концепте смарт-контрактов
Термин «смарт-контракт» уже устоялся и по сути обозначает определенный код, который выполняется на какой-либо блокчейн-платформе таким образом, что его выполнение проверяется независимыми сторонами.
Что это значит? Это распределенные вычисления? В привычном нам понимании все же нет.
Когда мы говорим о распределенных вычислениях, обычно подразумевается распределение нагрузки. Скажем, у нас есть задача посчитать в огромном текстовом файле вхождения определенного слова. Мы режем файл на несколько частей, раздаем эти части на разные ноды (например, используя Hadoop), каждая выполняет подсчет и выдает ответ. Мы суммируем ответы и получаем результат. Таким образом мы значительно ускоряем выполнение задачи.
Если же говорить о смарт-контрактах, то тут совсем другая ситуация. Тут мы не режем файл на отдельные части, мы каждой ноде отдаем весь файл целиком, и каждая нода выдает нам один и тот же результат (в идеале). Вернемся к нашему вопросу: попадает ли такое действие под определение распределенных вычислений? Ну в целом почему нет? Они же распределены и они же вычисления? Только в данном случае мы говорим не о распределении нагрузки, а о распределении доверия.
И да, необходимо отметить, что такой концепт сложно масштабируется, потому что в него изначально не заложены необходимые механизмы. Для чего же может быть нужна такая конструкция? Наиболее очевидный пример — это создание общественного договора (контракта) между двумя и более сторонами. Отсюда и название концепта — «смарт-контракт». Стороны фиксируют договоренности и условия выполнения того или иного сценария развития отношений между собой, при помощи языка программирования, таким образом, что наступление определенных событий будет автоматически вызывать выполнение предопределенного кода.
Классический пример подобного контракта, описанный еще в 1996 году Ником Сабо, — вендинг-машина. Она работает всегда автоматически по строгому набору правил: вы вносите деньги, делаете выбор — машина отдает товар. Внеся деньги, вы не можете передумать и попросить их вернуть. В случае с умным контрактом код становится своего рода законом, его нельзя оспорить, и он всегда будет выполняться при наступлении необходимых условий.
Здесь необходимо сделать уточнение, что текущие реализации смарт-контрактов (далее мы будем говорить о сети Ethereum) все же по сути история, замкнутая в блокчейн-среде. Что это значит? Нельзя написать контракт, который будет получать данные извне (например, от поставщиков данных о погоде) и реализовывать логику на этих данных. Тут есть определенный подвижки, например Microsoft работает над концептом криплетов или существуют, так называемые, ораклы, но пока, думаю, там есть куда расти.
Потому предложу другой пример смарт-контракта, который замкнут полностью в блокчейне. Лотерея, причем абсолютно честная и прозрачная. Вы отправляете транзакцию на адрес смарт-контракта, и он по заранее заложенной в нем логике (пусть в ней будет какой-то рандомизатор) принимает решение, выиграли вы или нет. Если вы выиграли, вы получаете весь накопленный в смарт-контракте куш, а если проиграли, то ваша транзакция идет в общую копилку для будущих игроков.
Все эти примеры относительно просты и несколько оторваны от реальной жизни. Какую же пользу можно извлечь из работы умных контрактов, если подходить к ним серьезно? Сам концепт проверяемого исполнения кода позволяет строить системы, которые ранее были недоступны или же их создание было сильно затруднено.
Положим, у вас есть определенное сообщество, в котором необходимо принять какое-то решение. Допустим, это решение крайне важное, и сообщество не склонно просто так довериться отдельным своим членам. Возьмем как пример консорциум банков. Логично предположить, что ни один член консорциума не захочет делегировать проведение вычислений одному банку, особенно когда на основании этих вычислений будет приниматься наше «самое важное решение». Ведь, отдав и данные, и возможность проводить эти вычисления в одни руки, вы можете поставить свой бизнес в рискованное положение, и даже открытый код вычислений не убедит вас в правильности выполнения этого кода на чужом сервере. Вы захотите это выполнение проверить. И вот тут мы получаем ту самую пользу из концепта проверяемого исполнения: участники способны объединяться для выполнения общей задачи или принятия решения без центрального оператора и таким образом повышать эффективность своих бизнесов.
Да, смарт-контракты не слишком-то масштабируются в текущих реализациях, потому что в них это не заложено. Но даже сейчас можно тяжелые вычисления проводить вне среды смарт-контрактов и фиксировать в них лишь определенные опорные точки, о которых стороны могут договориться на берегу, таким образом достигнув в каких-то сценариях необходимой скорости работы.
Техническая сторона вопроса
Теперь попробуем поговорить о технической стороне реализации смарт-контрактов на примере блокчейн Ethereum. Как выглядит процесс написания, публикации и выполнения смарт-контракта?
В этой сети для написания смарт-контрактов используется язык Solidity, который несколько похож на JS, и он является Тьюринг-полным (то есть на нем можно реализовать любую вычислимую функцию).
Сам код выполняется в так называемом Ethereum Virtual Machine (EVM). Надо обратить внимание, что код выполняется и проверяется всеми участниками системы, потому необходим некий механизм, который как-то ограничит потребление ресурсов каждым смарт-контрактом (иначе можно бесконечный цикл написать). Потому в Ethereum введена сущность gas (топливо). Контракт в Ethereum может выполнять любые инструкции, вызывать другие контракты, писать и читать данные и так далее. Все эти операции потребляют топливо, топливо оплачивается криптовалютой (Ether). Цена на топливо криптовалюты Ethеr формируется динамически рынком. Триггером выполнения контракта является транзакция. Стоимость топлива, которое сжигается в определенной транзакции, снимается с аккаунта, который транзакцию запустил. Кроме того, есть лимит потребления топлива, сделан он для того, чтобы защитить аккаунт от ошибок в написании контракта, которые могут привести к бесконтрольному сгоранию всей криптовалюты на данном аккаунте.
Важно отметить, что среда смарт-контрактов все же сильно отличается от привычной нам среды выполнения кода. Ошибка может стоить очень дорого, сами операции дорогие и медленные. Затруднен механизм обновления смарт-контракта. Вы, по сути, пишете новый и должны убедить стороны использовать этот новый смарт-контракт. Нельзя сказать, что никак не перейти на новую версию своего контракта, но это часто новый общественный договор. Если вдуматься — разительное отличие, когда вы привыкли просто выкатывать апдейты вашей централизованной системы потребителям, не слишком интересуясь их мнением. Строя какую-то систему для работы в реальных жизненных сценариях на смарт-контрактах, стоит понимать эти ограничения.
Блокчейн и смарт-контракты. Доступно на котиках объясняем, в чем прорыв и перспективы
Биткоин — это не только криптовалюта, на которой можно было заработать. Куда важнее то, что в ее основе лежит технология блокчейна — защищенной и прозрачной цепочки, содержащей информацию о транзакциях. Биткоины — лишь частный случай применения технологии, которую можно внедрить во многие сферы человеческой жизни благодаря смарт-контрактам. Вместе с партнером проекта в лице Приорбанка рассказываем про блокчейн, умные контракты и их перспективы.
Что такое блокчейн?
Самое простое и популярное объяснение таково: блокчейн — это цепочка блоков с информацией о транзакциях. Каждый блок неразрывно связан с предыдущим, так как содержит захешированную информацию о нем. Каждый новый блок крепится к предыдущему. Весь блокчейн хранится на компьютере каждого его участника. Например, блокчейн биткоина на февраль 2018 года «весит» более 150 ГБ.
Вся информация по переводу криптовалюты с кошелька на кошелек хранится в блокчейне. Историю всех транзакций можно отследить, поэтому лишние биткоин-монетки попросту не могут появиться из воздуха по чьей-то злой воле.
Чем блокчейн отличается от классической базы данных?
Блокчейн хранится на компьютере каждого участника сети, тогда как база данных находится на специальных серверах, к которым есть доступ только у определенных организаций.
Взлом такой базы может иметь непоправимые последствия: злоумышленники могут перевести себе на счета деньги, уничтожить контракты, внести сумятицу в данные и повредить отдельные участки хранилища. Тогда как блокчейн совсем не просто взломать: если даже на нескольких компьютерах удастся подменить информацию, безопасность не будет нарушена из-за распределенной архитектуры сети. Ломать придется все, однако на практике это нереально и крайне трудозатратно. Чтобы провести такую операцию, потребуются огромные компьютерные мощности. Подробнее об этом мы рассказывали в статье о принципах функционирования биткоина.
И в такой автоматизированной и защищенной системе можно организовать не только обмен криптовалютами, но и кое-что поинтереснее.
Что такое смарт-контракт?
Смарт-контракт — это условие, записанное компьютерным языком, при выполнении которого стороны, подписывающие смарт-контракт, обмениваются какими-либо активами: валютой, недвижимостью, акциями и т. д. Например, валюта покупателя переводится в программу и замораживается там до тех пор, пока продавец не выполнит свою часть контракта. Если условие сорвано, то сумма возвращается на счет клиента, а смарт-контракт аннулируется. Если все условия выполнены, то происходит обмен активами.
Этот обмен фиксируется в смарт-контракте и записывается в блокчейн, после чего аннулировать его, подменить или уничтожить уже не получится. Отслеживанием выполненных условий программа занимается в автоматическом режиме, контроль или участие людей не нужны. Другими словами, смарт-контракты работают напрямую между заинтересованными сторонами, исключая посредников.
Например, вы хотите купить квартиру. Нашелся подходящий продавец, у вас есть деньги. Чтобы заверить сделку, вам придется обращаться к третьей стороне — нотариусу. А это дополнительные расходы на ваши плечи — косметический ремонт в квартире откладывается.
Например, в сентябре прошлого года в Киеве с помощью блокчейн-сети Ethereum была продана квартира. Сделка зафиксирована онлайн-магазином недвижимости Propy в децентрализованном реестре собственности, который базируется на блокчейне Ethereum. Так как криптовалюта в Украине не является платежным средством, сделка прошла по договору обмена.
Правда, без нотариуса не обошлось. Киевский специалист зарегистрировал сделку и внес в госреестр данные нового владельца. Информация из этого госреестра попала в блокчейн, после чего продавец получил свою сумму в криптовалюте.
Откуда взялась идея смарт-контракта?
Еще в 1996 году первую идею об умных контрактах высказал Ник Сабо — ученый с разработками в информатике и криптографии. Но реализовать это на практике, хоть и частично, удалось только в 2008-м, когда принципы смарт-контрактов нашли применение в блокчейне биткоина. Однако принципы эти оказались крайне ограниченными, нацеленными исключительно на функционирование криптовалюты.
Этот недостаток отметил Виталик Бутерин, основатель Ethereum, который и решил реализовать расширенный функционал умных контрактов в своем проекте.
Где можно использовать смарт-контракты?
Умными контрактами можно регулировать самые разные финансовые (и не только) отношения между людьми. Самый очевидный вариант — торговля в интернете. Электронная коммерция охватывает сегодня практически все виды товаров. Мы заказываем не только технику, но и готовую еду, продукты.
Выше мы уже приводили пример с покупкой недвижимости. Давайте разберемся, как можно реализовать вариант с ее арендой. Мы должны внести деньги за первый месяц аренды и залог. Сумма фиксируется в блокчейне, после чего лендлорд передает ключи.
Чтобы полностью автоматизировать смарт-контракт, необходимо добавить немного «интернета вещей»: желательно установить в съемном жилье навороченный замок, который автоматически будет блокироваться при просрочке оплаты либо по окончании оговоренного срока. Когда аренда подойдет к концу, двери заблокируются и арендатору автоматически вернется замороженный в блокчейне залог.
Кроме того, умные контракты можно использовать при распределении наследства. Пожилой миллиардер, который не доверяет душеприказчикам (человеческий фактор, миллиарды наследства — сами понимаете), прописывает в смарт-контракте счета получателей наследства в случае своей смерти. Система периодически отслеживает информацию из государственного реестра умерших. Как только там появляется запись об искомом миллиардере, деньги автоматически рассылаются его довольным наследникам.
Резонный вопрос: а как умный контракт может отслеживать такой реестр или получать информацию от дверного замка? Тут-то и всплывает главная загвоздка в распространении данной технологии — смарт-контрактам нужна прокладка в реальный мир, из которого программа и черпает информацию для проверки условий. Для этого нужны оракулы.
Что такое оракул и зачем он нужен?
Как мы уже поняли, применение смарт-контрактов может быть самым разнообразным. Но пока все упирается в ограниченность платформ при получении данных из внешнего мира. Оракулы должны поставлять эту информацию для проверки условий умных контрактов в понятном для них виде.
Информация может быть самой разной: от данных с датчиков температуры до изменений в базах продавцов, государственных реестрах и на фондовых рынках. Оракулы нужны в самом широком спектре областей человеческой деятельности. И оракулы должны быть доверенными, получать информацию из авторитетных источников, что накладывает некую долю субъективизма на будущую работу смарт-контрактов.
Работа над оракулами ведется не только в специализированных компаниях, но и в крупных корпорациях наподобие IBM и Microsoft. Все они пытаются создать как частные решения, так и универсальные платформы, которые позволят блокчейнам общаться с внешним миром и получать данные, необходимые для полноценного функционирования умных контрактов.
Что же делает смарт-контракты перспективными?
Спектр их применения может быть крайне широким. А потому и преимущества варьируются в зависимости от конкретных типов и шаблонов умных контрактов. Но можно выделить несколько основных преимуществ, которые делают такие системы перспективными.
Смарт-контракты избавляют от посредников между заинтересованными сторонами: расходы на услуги нотариусов заметно сократятся, а время совершения сделок заметно ускорится. Чем меньше прокладок между людьми и компаниями, готовыми обменяться активами, тем быстрее будут выполняться их контракты. Главное, четко перевести все условия контракта в программный вид и предоставить программе доступ ко всем необходимым данным.
К тому же умные контракты в распределенном реестре блокчейна невозможно изменить, подменить или уничтожить. Если вдруг одна из сторон обзаведется злым умыслом, ей не удастся нарушить целостность блокчейна из-за его распределенной структуры.
Какие недостатки есть у смарт-контракта?
Умные контракты используют для своей работы криптовалюты, правовой статус которых в качестве финансового инструмента на сегодня определен далеко не в каждой стране.
Смарт-контракты надо записывать без ошибок и учитывать мельчайшие условия и детали сделки. Если с человеком еще можно договориться, то программа будет беспристрастно выполнять свой алгоритм. Чем сложнее процесс сделки, тем труднее будет создать для нее умный контракт.
Как мы уже говорили в части об оракулах, смарт-контрактам нужен проводник в реальный мир, который сможет доставлять нужные данные для проверки условий. Чем сложнее контракт, тем больше условий и тем больше информации потребуется извлечь из разных платформ. Но не все платформы готовы открывать данные оракулам, не все платформы можно считать доверенными и безусловно авторитетными.
Партнерский спецпроект. ООО «ЭС ЭМ ДЖИ», УНП 190247301
Читайте также:
Наш канал в Telegram. Присоединяйтесь!
Быстрая связь с редакцией: читайте паблик-чат Onliner и пишите нам в Viber!
Что такое смарт-контракты, где можно их применять и при чём тут блокчейн
Авторизуйтесь
Что такое смарт-контракты, где можно их применять и при чём тут блокчейн
Рассказывает Дарья Шишко, комьюнити-менеджер в 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 года, клиринг в торговых операциях и цепочки поставок — первые кандидаты на внедрение смарт-контрактов. Среди других перспективных областей исследователи назвали здравоохранение, страхование, медиаиндустрию, энергетику, ведение архивов и голосование.
Клиринг
Это безналичные расчёты между сторонами за товары, услуги или ценные бумаги с учётом взаимных обязательств. Клиринг подразумевает множество согласований между банками и юридическими или физическими лицами. Клиринговой компании нужно учесть все взаиморасчёты между клиентами, чтобы минимизировать движение денег между счетами и сумму комиссий за переводы.
В реальном мире такая деятельность связана с комплексным документооборотом и ведением учёта множества сущностей и транзакций. Это дорого и долго, а из-за сложности процесса возникают ошибки и дополнительные задержки. Клиринговые компании и их клиенты могут использовать блокчейн-реестр для учёта транзакций и взаимных обязательств, а система смарт-контрактов обеспечит автоматическое проведение платежей и фиксацию данных в распределённом реестре. Согласно исследованиям Santander InnoVentures, к 2022 году внедрение блокчейна и смарт-контрактов может снизить ежегодные инфраструктурные затраты на 15–20 миллиардов долларов США.
Цепочки поставок
Смарт-контракты и блокчейн — актуальное решение для обслуживания цепочки поставок от сырья до готовых продуктов. Чаще всего сопроводительная информация для каждого из этапов хранится в отдельных базах данных, а бумажные документы до сих пор приходится пересылать физически. Чтобы собрать один ноутбук, кому-то нужно добыть нефть и металлы, из которых кто-то сделает пластиковый гранулят и нужные сплавы, которые впоследствии превратятся в детали и попадут в сборочный цех. На каждом из этапов нужно передавать и подписывать документы, высылать счета, переводить деньги и т. д. Всю эту информацию можно объединить в одном реестре, чтобы всем сторонам были доступны документы, история транзакций и поставок. Смарт-контракты позволят автоматически распределять платежи после согласования и получения нужных цифровых подписей. Кроме того, в цепочку поставок на блокчейне значительно проще добавлять новых участников вроде поставщиков и перевозчиков.
Здравоохранение
Блокчейн и смарт-контракты позволят создать единый безопасный реестр медицинских записей. Учитывая деликатность информации, доступ к записям можно ограничить смарт-контрактом с мультиподписью: если пациент и его лечащий врач согласны показать информацию другому специалисту, они поставят цифровые подписи и система откроет доступ указанному человеку. Объединение в один реестр поможет вести научные исследования и анонимные опросы, а если учёные решать наградить тех, кто делится информацией, смарт-контракты — оптимальный способ обеспечить выплату по факту передачи информации.
Интернет вещей
В интернете вещей (Internet of Things, IoT) безопасность и неизменяемость блокчейн-реестра вместе с возможностями смарт-контрактов позволят наладить прозрачные механизмы взаимодействия и обмена ценностями между гаджетами вроде умных холодильников, смартфонов, термостатов и автомобилей. Умный электромобиль может одной транзакцией инициировать оплату за электричество и смарт-контракт активирует зарядное устройство. Права владения этими гаджетами тоже можно фиксировать в блокчейне, а значит, пользователь сможет продать или подарить устройство не покидая блокчейн-сети и без привлечения третьих лиц.
Медиаиндустрия
Для правообладателей и создателей контента актуальна проблема роялти — платы за использование интеллектуальной собственности. Здесь смарт-контракты можно использовать для прозрачного распределения средств.
То же самое относится и к другим областям, где нужно обеспечить учёт и прозрачное проведение платежей без доверия между сторонами: страхованию, энергетике и так далее. Для голосования и ведения государственных архивов блокчейн и смарт-контракты — возможность оптимизировать доступ к данным и авторизацию участников, будь то архив земельного кадастра или избирательный процесс.
Проблемы смарт-контрактов
Оракулы
Одна из основных технических преград полномасштабному внедрению блокчейн-реестра и смарт-контрактов — необходимость создать эффективные и надёжные оракулы. Оракулы — это внешние агенты, которые отвечают за достоверность предоставленной информации извне.
Блокчейн-реестр — изолированная среда, внутри которой с помощью криптографических доказательств и протоколов консенсуса все участники могут проверить истинность тех или иных данных. Но для широкого применения этим системам нужно получать информацию из внешнего мира: подтверждать факт получения товара, идентифицировать участников, получать биржевые сводки и так далее. Такая информация поступает в систему через оракулы.
Оракулами могут быть:
В некоторых случаях, как в блокчейне Aeternity, оракулы интегрированы с основным блокчейном и работают в рамках одного механизма консенсуса с остальной сетью. Пользователи сети посылают оракулам запросы посредством транзакций на блокчейне, а оракулы отвечают им соответствующей он-чейн транзакцией. Вопрос и ответ остаются в реестре, а остальные пользователи могут сверяться с этими данными.
Юридическая сила
Другая проблема — необходимость в новой регуляторной среде, которая учитывала бы возможности блокчейна и определила юридическую силу смарт-контрактов и внесенных в реестр данных, таких как права владения недвижимостью или предметами.
Недоверие к блокчейну
Блокчейн-технологии развиваются уже около десяти лет, если считать точкой отсчёта whitepaper Bitcoin, но в сравнении с другими технологиями и методиками, задействованными в современной финансовой системе, блокчейн остается молодой и не до конца зарекомендовавшей себя технологией. Из-за этого консервативные участники рынка относятся к нему скептически.
Выводы
Уже сейчас многие традиционные банки и ведомства экспериментируют с блокчейн-технологиями и смарт-контрактами и инвестируют в проекты в этой отрасли. По мере того, как проекты вроде Augur, Aeternity и Oraclize решают проблему оракулов и совершенствуют технологию, всё больше государственных структур и бизнесов будут внедрять распределённый реестр и смарт-контракты для оптимизации своей работы и прозрачного учёта.
Смарт-контракты уже сейчас могут заменить значительную часть существующего документооборота. Любые типовые соглашения о страховании или передаче имущества можно реализовать как смарт-контракты. Однако для нестандартных случаев традиционные контракты останутся основным элементом соглашения. В роли базиса для распределённых приложений и аналога обычной компьютерной программы для распределённой среды смарт-контракты скорее всего будут использоваться практически повсеместно.