Умный контракт – это информация, прошедшая криптографию или попросту зашифрованная, которая может передаваться в сети блокчейна. Из чего состоит умный контракт, поговорим несколько позже, а сейчас сосредоточим наше внимание на технологии блокчейна Ethereum. Это основа Ethereum. Как только вы поймёте сам механизм его работы, то вы начнёте разбираться и в его приложениях. Первым приложением, разработанным на основе блокчейна, был Биткоин, и именно это событие, на мой взгляд, многих людей до сих пор сковывает в осознании масштабности этого изобретения. Книга написана не для разработчиков, а для простых людей, поэтому повторение и закрепление знаний будет для нас нелишним.
Итак, блокчейн. Рассмотрим на примерах из жизни. Бывало ли у вас такое, что, ведя пару дней в интернете переписку с кем-то, вы вдруг замечаете, что на другом конце линии совершенно не тот человек, за которого он себя выдаёт? А может, вы когда-то сомневались, что товар из Германии, например, оказывался товаром из Китая, хотя по документам он только из Берлина прибыл? Таких примеров привести можно много, а общее у этих примеров одно – фальсификация, подделка. И неважно, подделка чего, главное – это подделка, главное, что возникает неприятное чувство, что вас держат за дурака и кому-то это удаётся делать безнаказанно. Всё это происходит из-за того, что сама система централизованного контроля позволяет кому-то это делать. Чтобы быть уверенным в правдивости событий или действий, была нужна система, которую невозможно обмануть, а если обман всё-таки и произойдёт внутри системы, то сама система должна его быстро выявить и устранить. Обманом я называю здесь двойную информацию, одна из которых в начале является ложной.
Мы все привыкли рассматривать блокчейн и биткоин как что-то подобное, одинаковое по смыслу, а ведь это совершенно не так. Биткоин – это всего лишь первое приложение блокчейна. Биткоин – это цифровые деньги, и как все деньги, существующие сейчас, может быть подвергнут фальсификации. Задача блокчейна биткоина – найти эту двойную монету и уничтожить её. Мы знаем, что фальшивомонетчиков находят и фальшивые купюры уничтожают уже после того, как их создадут. С Биткоином обстоят дела примерно так же: выпустить его могут, а вот пройти верификацию блокчейна фальшивому биткоину шансов нет. Разветвленная сеть майнеров быстро найдёт несовпадение и удалит фальшивку из цепочки блоков. Бутерин, проанализировав работу блокчейна биткоина, предположил, что можно в зашифрованном виде передавать целый алгоритм последовательных действий. Такой алгоритм он назвал смарт-контракт, а задача блокчейн Эфириума – осуществлять контроль за исполнением таких смарт-контрактов, выявление всевозможных фальсификаций в сети и обеспечение оплаты взаиморасчётов при таких сделках путём собственной криптовалюты Эфир.
Первые идеи умных контрактов были вынесены на обсуждение Ником Сабо ещё в 1994 году. Особо широкого применения они не нашли в основном из-за централизованности, так как в то время их реализация была возможно только таким образом – только путём централизованного контроля. Чтобы глубже разобраться в теме, предлагаю сделать анализ, зачем люди вообще составляют контракты. Основная проблема здесь кроется в недоверии к выполнению партнёром взятых на себя обязательств и способах разрешить выполнение этих обязательств. В случаях заключения простых контрактов обязательное условие – это присутствие гаранта сделки или исполнения контракта. Проанализировав это, Бутерин предложил решить вопрос путём создания такого умного контракта на базе платформы Эфериум. Предложил создать протокол для транзакций с нуля либо использовать уже существующий протокол Биткоина в качестве транспорта для смарт-контрактов. Это всё должно привести к исключению недоверия между участниками смарт-контракта и убрать гаранта функционирования контракта как ненужное звено в этой цепочке. С этими функциями легко справится технология блокчейна Эфириума, основанная на математике и криптографии.
Это должно было стать самым безопасным методом для управления базами данных. Давайте сформулируем ещё раз определение для умного контракта. Во-первых, это электронный алгоритм. Этот алгоритм призван описать набор определённых условий. В момент выполнения или невыполнения этих условий запускаются или не запускаются некоторые события в реальном либо в цифровом мире. Мы с вами разбирали уже понятие документа и документооборота. Так вот, в умных контрактах документооборот выполняется полностью или частично самостоятельно, то есть автоматически. Ему не нужны контролёры или посредники, всё прозрачно и децентрализовано системой Ethereum. Если для выполнения условий умного контракта будут необходимы финансовые расчёты, то с этой функцией справиться внутренняя криптовалюта Эфир. Умные контракты – конечно же, совершенно новые разработки и всё ещё являются экспериментальной технологией. У них не всё так гладко, как и у любой компьютерной программы, которая только находит своего пользователя. Тут возможны как всякие баги, так и недочёты самих программистов. Не до конца исключён человеческий фактор. Ведь информацию о смарт-контрактах люди в основном хранят на устройствах, который подключены к интернету. И именно защита устройства пользователя и есть слабое звено в информационной безопасности смарт-контрактов. Не стоит забывать, что смарт-контракты – это программы, и взаимодействуют они между собой по строго заданному алгоритму, тогда как в бизнесе при заключении сделки иногда приходится идти на всевозможные компромиссы и уступки. Возможно, когда-то при помощи исскуственного интеллекта удастся обойти эту проблему. Но сейчас это вопрос, который требует решения и остаётся всё ещё в стадии решения. Проанализировав все события из нашей жизни, вы наверняка заметите, что эра цифрового государства совершенно не за горами. Так насколько же эти контракты новы как идея, и существовали ли прототипы умных контрактов раньше? Безусловно, да. Представлю вашему вниманию один из них, самый простой смарт-контракт, который работает на деньгах и физических механизмах. Это аппараты по продаже напитков на улицах. В них есть приёмник, и попадающая в него монета является сигналом для выдачи определённого вида напитка. Чтобы выбрать нужный напиток, существует ещё один физический механизм – кнопка выбора напитка. Нажав на неё, вы даёте аппарату подтверждение с двух физических механизмов, и аппарат выполняет определённое действие. Вам не нужен для совершения этой сделки никакой посредник, всё работает автоматически. Аппарат готовит напиток в случае попадения в приёмник нужной монеты, либо в случае попадания монеты не такого размера он возращает её владельцу. Вот и всё. Контракт завершён. Все прописанные условия выполнены. Вы это проделывали не один раз в своей жизни. А теперь попробуйте себе представить то же самое, только в цифровом виде. Это и есть такое нашумевшее название, как смарт-контракт. То есть идея умного контракта – это разработка механизма, который функционирует не в реальном мире, а в цифровом. В умном контракте написана программа, которая выполняет определённые условия и совершает автоматически определённые действия. Платформа Ethereum позволяет создать и транспортировать такие контракты в зашифрованном виде, сохраняя правдивость информации и исключая её подделку. Она не требует посредника как контролирующего органа и при необходимости финансовых расчётов осуществит их без привлечения третьей стороны, напрямую участникам контракта.
На бумаге, конечно, это всё звучит хорошо, а на практике применения у смарт-контрактов тоже существуют свои проблемы. Конечно, они будут решены со временем, ведь платформа Эфириум ещё совсем молодая и в команде разработчиков очень много талантливых программистов…
Кроме физического фактора, который уже рассмотрен нами, можно назвать и проблемы масштабирования. Ведь по условиям блокчейна каждый компьютер должен хранить часть базы и проверять подлинность. С возрастанием базы это может стать проблемой, хотя, как уверяют разработчики блокчейна, Ethereum не сталкнётся с такой проблемой и останется самым быстрым блокчейном среди блокчейнов других криптосистем. Подтверждение транзакций блокчейн Ethereum делает за считанные секунды.
Существует также и проблема защиты, а особенно восстановления доступа к аккаунту простого потребителя. Ведь если он потеряет доступ к аккаунту по каким-то причинам, то сразу теряет всё.
Следующей задачей для разработчиков остаётся и то, что умные контракты самостоятельно не способны пока брать данные для своего изменения извне, им нужны постоянные исходные данные для осуществления своей деятельности. Это всё подразумевает присутствие определённого человека, который должен задавать внешние данные. Эти данные могут быть отправлены в виде транзакции или сообщения, и без присутствия человека пока обойтись не удаётся. А человека всегда необходимо контролировать. Если учесть, какими темпами развивается сегодня наша планета, то, как мы уже упоминали, искусственный интеллект вполне сможет справиться с этой задачей через определённое время, но сегодня дела в умных контрактах обстоят именно так.
Теперь вы уже разбираетесь в самом механизме, и пора рассмотреть пару примеров.
Примеры эти придуманы мною и являются лишь цепочкой логичных последовательных действий. Служат они для того, чтобы вы, дорогой читатель, смогли уловить сам смысл, хотя уверен, что эти примеры легко можно реализовать смарт-контрактом на основе блокчейна Ethereum.
Итак мы с вами появляемся на свет. Это такое торжественное и важное событие в жизни всех наших родных и близких людей. Это событие мы с вами будем отмечать на протяжении всей своей жизни. Мы радуемся этому событию; и даже в случае, если случайно забудем, что именно сегодня наш день рождения, то непременно кто-то из знакомых или родственников об этом напомнит нам. Это и есть народный блокчейн, в памяти которого зафиксирован сам факт вашего рождения. К примеру, отец моей жены родился в далёком 1949 году, и в книге записи о рождении по каким-то причинам была допущена ошибка в дате рождения. Документы не стали исправлять, а вот народный блокчейн эту дату не забыл. Подтвердить это событие могут его мама, папа и другие родственики. Документами в этом случае служат фото и выписки из больницы. Народный блокчейн эту фальсификацию исправил, и по документам одна дата рождения, а вся семья и родственики празднуют совершенно другую, правильную дату. Это всё лирика, примеры из жизни, но, поняв основы, вы сможете в дальнейшем понять сам механизм функционирования, так что считаю, что этот пример имеет право быть прописанным в этой книге. Давайте вернёмся к нашему первому документу.
Самый первый документ, который мы получаем от государства, в котором мы появились на свет, – это наше свидетельство о рождении. Конечно, получаем этот наш первый в жизни документ не совсем мы, получают его за нас наши родители. Этот документ сразу попадает в ряд различных баз и впоследствии будет там храниться в архиве, как отчётный документ. Уже на этом этапе для того, чтобы этот документ появился на свет, необходима масса различных документов или доказательств факта вашего появления на свет.
Если вы уже родители, то наверняка не раз говорили себе, что родить ребёнка гораздо легче, чем его оформить? И всё это происходит из-за бюрократических процедур, меняющих одна другую. Конечно, во всех странах по-разному, но определённый набор действий для получения зафиксированного факта вашего рождения всё же нужно проделать.
И вот в каждой последующей процедуре получения нового документа в вашей жизни, к примеру, для заключения брака, Вам будет необходимо предоставлять снова и снова этот исходный документ, который и есть доказательство вашего рождения.
Что предлагает технология блокчейна по этому поводу? Зафиксировать один раз в блокчейне или в распределённой книге учёта сам факт появления ребёнка на свет. Это событие подтвердить подписями или ключами людей, которые принимали роды. То, что именно они принимали роды, также подкрепить документом (ключом) о том, что именно они в этот конкретный день принимали роды – и этот факт закрепить подписью или ключом главврача роддома. Сам факт того, что именно этот врач в то время исполнял обязанности главврача и имел право подтверждения врачей-акушеров, подтверждается ключом приказа о назначении этого врача главврачом. Эта на первый взгляд длинная последовательность действий прописывается в смарт-контракте один раз. В блокчейне Ethereum подделать такую запись невозможно, так как следующий блок в цепочке содержит кусочек кода о следующем действии. Так как я решил в книгу не включать никаких таблиц, а постараться максимально просто описывать все алгоритмы, то здесь попрошу вас нарисовать себе картинку последовательных действий, в итоге которых и появляется на свет документ свидетельство о рождении человека. Этот документ создаётся один раз и доказывает сам факт свершившегося действия – рождения. Бутерин один из первых понял, что если технология блокчейна Биткоина может передавать только зашифрованую информацию, которую мы называем монетами, то так же просто можно и передавать и подтверждать готовые прописанные алгоритмы, которые исключат подделку внутри системы. Исключение фальсификации и недоверия участников – это, на мой взгляд, самая сильная сторона платформы Ethereum.
Все расчёты между участниками этого смарт-контракта можно проводить децентрализованно без участия банка-посредника криптовалютой Эфир. Такой смарт-контракт сегодня легко можно реализовать на технологии блокчейн Ethereum. Такое событие упаковывается в блок и фиксируется в системе. Изменить эту запись уже невозможно, так как кусочек информации из этого блока транзакций будет существовать, как информация, и в следующих блоках. Очень важно понять, что смарт-контракт является программой и создаётся на основе компьютерной логики. Все участники смарт-контракта могут быть уверены, что один раз прописанные условия в коде контракта будут выдержаны и фальсификация будет исключена. Для того чтобы изменить информацию о данной записи, придётся изменить информацию и в последующих блоках, а этого технология блокчейна не позволяет делать. Двойная такая запись просто исключится из цепочки блоков. В итоге мы получим созданную учётную запись о нашем рождении один раз в базе данных, которой могут пользоваться все, она не требует проверки и не требует дополнительного контроля. Весь контроль уже предусмотрен в системе блокчейна. Когда будет создаваться смарт-контракт, в котором потребуется доказательство факта вашего рождения, то будет обращение к этой базе данных и извлечение нужной записи. А если будет необходимость заплатить за услуги, то использоваться будет единая криптовалюта Эфир. Сказать, что это высвободит временной и человеческий ресурс, – это не сказать ничего. Это просто и удобно, и это самое главное – что на 100 процентов сегодня реалистично. Просто представьте себе, что даже те люди, которые не доверяют друг другу в жизни, смогут довериться смарт-контракту и произвести сделку.
Эфириум – это в первую очередь платформа для создания именно децентрализованных смарт-контрактов. Эта платформа предлагает разработчикам разработать свой смарт-контракт на базе блокчейна Эфириума. Это очередной секрет, почему всё больше и больше разработчиков пользуются этой платформой. Им нет необходимости тратить деньги на создание своего блокчейна. Всё, что им нужно, – это создать смарт-контракт и работать с ним. То есть осуществлять все транзакции в блокчейне Эфириума. Все смарт-контракты платформы являются автономными, могут хранить или передовать средства другим пользователям или другим смарт-контрактам. Внутренними деньгами и является криптовалюта Эфир. Эфириум как платформа для своей работы использует тюринг-полный язык для создания смарт-контрактов. Более детально это будет интересно малому кругу людей, имеющих специальное образование, поэтому оставляю ссылку на самостоятельное ознакомление и углубление в тему: https://goo.gl/7ruOtq.
Мы же ограничимся знаниями, что полнота по Тюрингу на языке программистов обозначает, что данный язык программирования обладает инструментами для решения любой вычислительной задачи. И весь этот набор инструментов даёт системе определённую автономность. Изобретение технологии блокчейна сразу назвали изобретением, равным по значимости изобретению всемирной паутины Интернета. Эту технологию сегодня изучают на всевозможных блокчейн-конференциях по всему миру. Вот несколько примеров. Перейдя по этим ссылкам, вы сможете углубиться в вопрос:
Москва: https://moscow.blockchainconf.world/en;
Киев: https://kiev.blockchainconf.world/ru;
Астана: http://forklog.com/v-kazahstane-projdet-blockchain-conference-astana/.
Очень интересные блокчейн-конференции происходят в Индии, Китае, Лондоне. Это в очередной раз показывает актуальность и нужность технологии блокчейна в нашей жизни.
Если у вас нет особого желания разбираться в том, о чём говорят на таких блокчейн-конференциях, то, простыми словами, там рассматриваются новейшие разработки различных блокчейнов, а также возможности их применения в повседневной жизни в различных сферах деятельности. Иногда споры очень горячие. На Земле очень много интересных и умных людей, и им всегда есть что обсудить. Да и в технологии блокчейна тоже не всё так просто и гладко. Как и любое новое изобретение, блокчейны подвергаются критике. Одни считают, что для системы важна лишь верификация подлинности входящей информации, а не сами вычисления, другие предлагают рассматривать именно сами вычисления как главный элемент. Так как мы говорим про Бутерина, то его точка зрения – разделять простые и сложные вычисления, аргументирует он это тем, что сами смарт-контракты тоже можно разделить по сложности, и игнорировать нельзя ни элементарные смарт-контракты, ни сложные.
Давайте в качестве примера простого смарт-контракта рассмотрим модель, где будут задействованы взаиморасчеты в денежном эквиваленте между участниками смарт-контракта. Рассматривать будем на примере логистики: доставки груза от производителя к потребителю. Эфириум предлагает для конкретного случая на своей базе, а проще говоря, на своём блокчейне разработать приложение и все взаиморасчёты производить в криптовалюте Эфир. Рассмотрим основных игроков в этом смарт-контракте:
производитель товара;
биржа перевозок грузов;
логистическая компания по доставке грузов;
перевозчик грузов;
потребитель, склад или магазин;
банк, посредством которого происходят взаиморасчёты.
Алгоритм будет такой. Производитель выставляет свой товар на биржу. Покупатель приобретает товар, обращается на биржу перевозок с целью найти логистическую компанию для перевозки своего груза. Выбирает себе подходящую компанию, которая и займётся дальнейшими операциями с грузом для того, чтобы доставить его по адресу. Эта компания находит перевозчика, который и исполняет работу. Так как всё связано с взаиморасчётами, то эту функцию берёт на себя банк. Так происходит это сейчас без технологии блокчейна.
Только представьте себе, сколько различных автономных баз необходимо вести для совершения данной сделки. Сколько контрольных точек должен пройти товар в этой цепочке. А если производитель находится в одной стране, а груз необходимо доставить в другую, и взаиморасчёты необходимо производить в разных валютах? Довольно хлопотное дело. Конечно же, выполнимое, но человек так устроен, что он всегда ищет простые решения. Платформа Эфириум и предназначена для того, чтобы всё это упростить и систематизировать. Я специально так подробно всё расписываю, чтобы вы смогли осознать всю гениальность этой платформы.
Итак, каким образом всё это можно разработать в виде смарт-контракта и выполнить на блокчейне Эфириума?
Каждая транзакция в этой системе не просто фиксирует движение средств, она оснащена кусочком кода, который задаёт условия выполнения данной сделки. Этот фрагмент кода легко изменяется под задачи заказчика смарт-контракта.
То есть Эфириум является универсальной платформой для построения любых бизнес-схем с верификацией на блокчейнах.
Код Эфириума привязывается с одной стороны к производителю, а с другой стороны к конечному потребителю. Фальсификация сделки исключается как таковая. Все взаиморасчёты будут происходить автоматически при осуществлении прописанных в блокчейне условий закрытия события. Деньги в криптовалюте Эфир моментально попадут на счета всех участников смарт-контракта. Те, кто пользуются уже смарт-контрактами на Эфириуме, отмечают удобство именно в быстроте получении денег на свои счета, которые сразу же готовы к последующей работе. А если учесть, что разработчики Эфириума предлагают взаимодействие самих смарт-контрактов между собой, то это поистине выводит бизнес процессы на новые вершины. Бизнесмены знают, что такое задержка платежей из-за бюрократических проволочек. Попробуйте перевести крупную сумму, и вы увидите, что не всё так просто. Деньги совсем не ваши, оказывается, всех интересует источник их происхождения. Точнее, всех интересует, уплатили ли вы налоги вовремя. Во многих странах мира финансовые органы могут мониторить сами их движение. Также ваш счёт могут заблокировать по решению суда на всякий случай и т. д. Эфириум как криптовалюта решает один из самых ключевых моментов в движении денег:
Деньги при передаче не должны иметь посредника в виде банка.
Попадание денег непосредственно в руки получателя можно довольно просто решить в системе Эфириум.
Конечно же, у вас возникает закономерный вопрос: почему люди должны вообще доверять Эфиру как средству платежа? Давайте рассмотрим, чему вообще доверяют люди. Что такое бумажные деньги?
Бумажные деньги имеют ещё одно распространённое название – фиатные. Давайте обратимся к Википедии и посмотрим, что обозначает этот термин. Это деньги, номинальная стоимость которых устанавливается и гарантируется государством вне зависимости от стоимости материала, из которого они изготовленны. Такое название пошло от латинского слова fiducia – доверие. Зачастую такие фидуциарные деньги функционируют как платёжное средство на основе государственных законов, обязывающих принимать их по номиналу. А самое главное – это то, что стоимость этих денег поддерживается за счёт доверия и веры людей, что они смогут обменять их на что-нибудь ценное. Падение авторитета государственной власти приводит к снижению покупательской способности фидуциарных денег. Может быть и наоборот. Примером может быть укрепление позиции доллара при выборе Трампа в Америке. Самое главное, что нам нужно вынести отсюда, – это то, что наше с вами доверие к деньгам и позволяет бумажным деньгам называться деньгами.
Криптовалюту запретить невозможно, как невозможно запретить интернет. Вопрос только, доверяют ли люди криптовалюте Эфир. То, что Эфир на конец мая стоит 200 долларов за монету, говорит о уверенном успехе платформы Эфириум и колоссальному доверию к этой новой криптовалюте. Также вы можете посмотреть популярность этой валюты на различных биржах. Каждый день открывается всё больше обменников, которые свободно конвертируют Эфир не только в другие криптовалюты, но и в обыкновенные фиатные деньги, причём в валюте той страны, где вы живёте. Один из распространённых обменников вы найдёте здесь: https://www.bestchange.ru/ethereum-to-bitcoin.html.
Разбирая понятие смарт-контрактов Эфириума, мы должны принять во внимание, что в мире разрабатываются и другие платформы для децентрализованных смарт-контрактов. Связано это с тем, что направления, в которых применяют смарт-контракты, становятся всё более и более разнообразными. Каждая из таких платформ пытается найти своё место в огромной нише.
К примеру, Lisk поддерживает написание смарт-контрактов на JavaScript: https://lisk.io/.
Платформа Monax, являясь форком от Эфириума, даёт возможность своим пользователям создавать приватные блокчейны с ограниченным доступом. Более подробно можно ознакомиться по ссылке: https://monax.io/platform/. В отличие от Эфириума, на мой взгляд, эта платформа предлагает больше технических решений для частных компаний под конкретные задачи. Разработчики уделяют огромное внимание реализации юридического контракта в цифровой. При таком подходе, скорее всего, такие смарт-контракты будут ещё и обладать юридическими правами в плане их исполнения. А вот одним из самых сильных, на мой взгляд, конкурентов в нише разработок смарт-контрактов является децентрализованная платформа NXT. Вот что про неё знает Википедия: https://ru.wikipedia.org/wiki/Nxt. Разработчики предлагают пользователю готовые шаблоны смарт-контрактов и утверждают, что именно их смарт-контракты являются самыми безопасными. Заслуживает внимания проект, разработанный специалистами NXT Ardor: https://www.ardorplatform.org/.
Конечно же, сразу появились на рынке и последователи, вот один из таких проектов: https://wavesplatform.com/. Примеры, приведённые в книге, показывают нам, что Ethereum – это далеко не единственная платформа, на которой можно реализовать смарт-контракты, и постоянные споры разработчиков о улучшении функционирования смарт-контрактов на той или иной платформе – это нормальная конкуренция на рынке децентрализованных приложений, от которой выиграют в первую очередь простые пользователи смарт-контрактов. Эфириум все эти платформы не игнорируют и пытаются взаимодействовать с ним, что также способствует популярности криптовалюты Эфир. У Эфириума тоже не всё и всегда проходило гладко. Возьмём хотя бы нашумевший проект The DAO. Причины, по которым он потерпел фиаско, в этой книге мы рассматривать не будем, просто констатируем тот факт, что недоработанный сырой код программистов The Dao был атакован, часть средств была украдена, курс Эфира упал почти в два раза в течение дня. Всё это привело к расколу сообщества Эфириум на два независимых, таких как Ethereum Classic (https://ethereumclassic.github.io/) и собственно Ethereum (https://www.ethereum.org/), который мы и разбираем в данной книге. Руководить проектом остался Виталий Бутерин, а Ethereum Classic – это уже совершенно другая история со своей криптовалютой (ETC). Вот ссылка на неё в списке криптовалют: https://bitmakler.com/EthereumClassic___kriptovaluta, которая заслуживает отдельного разговора. Для того чтобы вы, читатель, не запутались, мы и дальше будем рассматривать только платформу Ethereum и её криптовалюту Эфир (ETH).