Меню

Что такое смарт-контракты Ethereum для чайников?

Биржа Комиссия Открыть счет
0.1-0.2%Открыть счет!
0.1-0.2%Открыть счет!
0,08%Открыть счет!

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

Вам будет интересно: Blockchain для чайников. Что это такое простыми словами?

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

Для чего нужны умные контракты

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

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

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

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

Что собой представляет смарт-контракт?

Внутри каждой транзакции блокчейна Ethereum есть выделенное место под программный код, а каждый узел сети содержит виртуальную машину, предназначенную для выполнения этого кода. Любое сообщение, отправленное внутри сети, может содержать как переводы между участниками валюты Ether (эфир) так и более сложные конструкции. Круг решаемых задач достаточно широк:  можно требовать подписания транзакции несколькими пользователями или выполнения последовательности программных инструкций, включая сложные вычисления на виртуальных машинах узлов сети. Среда выполнения кода (виртуальная машина) позволяет выполнять проверку полученных данных, хранение самого кода и результатов его работы, а также взаимодействие с другими контрактами. Для того чтобы все эти функции могли быть реализованы на практике, пришлось использовать собственный язык программирования, который в отличие от незамысловатого Scrypt, использующегося внутри сети Биткойн, поддерживает операции цикла и перехода, являясь полным по Тьюрингу.

Но самое главное достижение разработчиков – возможность создания собственных криптовалют, работающих на базе сети Ethereum (их называют «токены»). Предоставление сетью этого функционала вытекает из самой идеи смарт-контракта: если можно выполнять свой код и создавать внутри сети постоянно существующий контракт задающий правила взаимодействия с пользователем, значит ничего не мешает предусмотреть возможность продажи за эфиры своих денежных знаков и регулировать их обращение другим контрактом, находящимся в взаимодействии с первым. Процедура выпуска в обращение новых токенов называется ICO.

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

Применение в реальности

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

Для начала, нужно определить, что же хотят участники сделки?

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

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

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

Как видите, исполнение предполагаемой сделки требует от каждого из участников честности и ответственного подхода к своим обязанностям по договору. Между тем, ни у одного из участников нет повода полностью доверять другому. Если бы выполнение условий договора не зависело от воли или злого умысла сторон, а сам контракт содержал в себе описание всех возможных вариантов развития событий и формировал справедливые для всех условия, то риск обмана был бы сведён к минимуму. Участникам не за что было бы переживать, а все понесённые издержки подлежали бы компенсации «провинившейся» стороной.

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

  1. Покупатель получит назад всю внесённую сумму плюс страховое возмещение от Продавца, если в течение 1 часа после заказа он не получит пиццу. При условии, что доставка будет осуществлена менее чем за 40 минут – чаевые будут переданы на счет Курьера, но если пройдёт более 40 минут и менее 1 часа – размер чаевых вернётся на счет Покупателя. Если вдруг покупатель отказывается от заказа или называет неверный адрес (можно контролировать время прибытия и фактическое местоположение курьера по GPS, например) часть предоплаты, включающая затраты на ингредиенты и стоимость доставки передаётся Продавцу, а остаток возвращается Покупателю;
  2. Продавец получит полную сумму, включая стоимость заказа, если курьер успеет приехать менее чем за 40 минут и только стоимость пиццы – если это произойдет в течение часа. Продавец будет вынужден передать часть страховки Покупателю, если курьер опоздает. При условии, что курьер прибыл вовремя, но клиент назвал неверный адрес или отказывается от получения заказа, из сформированного фонда он получит назад свой страховой сбор, а также часть стоимости пиццы, которая покрывает его расходы на ингредиенты и доставку.
Читать также:  Криптовалюта Dash: обзор основных особенностей

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

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

Задача может быть масштабирована и унифицирована в любой момент, если Продавец однажды решит выпустить собственный токен, гарантировав обмен определённого количества внутренней валюты на пиццу. Теперь покупатель сможет рассчитаться по «фиксированному» курсу, а Продавец – собрать инвестиции с заинтересованных лиц через процедуру ICO. Кстати, такой токен существует, он номинирован в пиццах и даже торгуется на бирже C-CEX.

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

Смарт-контракты изнутри

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

  1. Инициирование передачи – составление и подписание тела транзакции, включая информацию о количестве передаваемых средств, адресе отправителя и адресе получателя.
  2. Передача транзакции в специальный стек данных внутри сети Ethtreum, своеобразный «зал ожидания». Там транзакция находится до того момента, пока один или несколько майнеров не сформируют блок с её участием.
  3. Майнинг – поиск определённого числа, которое будет соответствовать текущему значению сложности вычислений. В Эфириум сложность расчетов плавающая, и определяется для каждого блока индивидуально.
  4. Формирование очередного блока и нового состояния сети. Получатель узнает о платеже в свой адрес прочитав содержимое очередного блока.

Вам будет полезно почитать: Как создать Биткоин и Эфириум кошелек на официальном сайте

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

Основные особенности умных контрактов в Ethereum

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

Вам будет интересно: Видеокарты для майнинга Ethereum 2018: сравнение и рейтинг

Прежде всего, для выполнения каждой транзакции требуется заплатить определённую небольшую комиссию. Она рассчитывается исходя из длины отправляемого сообщения, измеренной в байтах (есть некоторые особенности и уточнения, но о них ниже). При этом размер комиссии назначается в условных единицах – gas (газ, топливо), но цену на единицу топлива можно варьировать в различных пределах: чем больше цена – тем больше шансов попадания транзакции в блок максимально быстро. Требование об обязательном наличии топлива перед отправкой транзакции позволяет избежать постановки заведомо нерешаемых задач – бесконечных циклов или любых периодических выборок внутри сети. Выполнение каждой итерации цикла будет «стоить» некоторого количества топлива, которое спишется с баланса отправителя вне зависимости от достижения конечной точки расчета. Поэтому никто не сможет «подвесить» всю сеть, используя заведомо бесконечные вычисления. Кроме того, стоимость газа автоматически передаётся майнеру, который первый сформирует новый блок, увеличивая его вознаграждение.

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

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

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

Особенности блокчейн

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

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

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

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

Еще одним важным отличием блокчейна Ethereum от Bitcoin является наличие хранилища (storage) – специального раздела виртуальной машины, в котором сохраняются результаты операций, выполненных внутри контрактов. Наличие хранилища – вынужденная мера, направленная на снижение физического объёма, который занимает блокчейн. Если бы все существующие контракты записывали все свои данные в цепочку блоков, сам блокчейн занимал сотни и даже тысячи террабайт (вместо сотни гигабайт).

На самом деле, нет никакой необходимости хранить промежуточные данные в блокчейн – достаточно сохранять только обращения на адреса контрактов. Если снова отталкиваться от примера с доставкой пиццы, то при оформлении заказа в блокчейн попадёт только транзакция «Покупатель отправил 2 ETH на адрес контракта», а в storage сохранится информация о том, что на балансе контракта стало на 2 ETH больше, и баланс кошелька Покупателя уменьшился на 2 ETH. Эти данные изменят состояние сети Ethereum, но когда контракт завершит работу их можно безболезненно удалить.

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

Читать также:  Обзор криптовалюты Ethereum. Что из себя представляет Эфириум сейчас

Эфириум – это машина состояний, что накладывает на неё обязанность хранить в каждом новом блоке состояние (баланс) всех контрактов и адресов. Для уменьшения фактического объёма, который будет занимать блокчейн на дисках компьютеров-узлов сети, разработчикам понадобилась еще одна важная доработка протокола. Речь идёт о том, что крайне расточительно вставлять в каждый блок информацию о состоянии всех адресов – вполне достаточно записать только произошедшие изменения. Однако для сохранения общей единой структуры все равно требуется функционал, который позволит восстановить состояние всей сети, имея всего один блок. Чтобы такая схема заработала, нужно в каждый новый элемент блокчейна вставлять ссылки на изменения, произошедшие в предыдущем блоке. Теперь можно отыскать последнее состояние конкретного адреса кошелька или контракта, просто переходя к более старому блоку, если в том, что актуален на данный момент, отсутствуют ссылки с упоминанием обрабатываемого адреса.

Особенности адресов

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

  • Externally owned account, или кошелёк пользователя – во многом аналог стандартного адреса, знакомого всем владельцам Биткойн-кошельков. Он управляется с помощью приватного ключа, может создавать транзакции и хранить на балансе определённую сумму;
  • Contract account – собственно, смарт-контракт. Он так же может хранить баланс, но создавать транзакции (руководствуясь кодом контракта) может только в ответ на входящие транзакции. Для управления смарт-контрактом не нужен ключ – он публичен и управляется только алгоритмом, заложенным в программные инструкции. В зависимости от содержания этих инструкций, смарт-контракт может выполнять транзакции от своего имени на адрес другого контракта или осуществлять переводы на кошельки пользователей.

Особенности транзакций

Если рассматривать только перевод эфира от одного пользователя другому – аналог с сетью Биткойн почти полный и транзакция выглядит также: то есть, должна обязательно включать информацию о количестве отправляемых средств, адрес отправителя и адрес получателя. Транзакция, отправленная на адрес контракта, дополнительно включает в себя ещё и gas за выполнение кода контракта и параметры вызовов его методов. Взаимодействие между пользователем и контрактом посредством транзакций называется сообщением.

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

Чеки на проведение транзакций

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

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

Майнинг Ethereum

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

В настоящее время Ethereum использует схожую с биткойном процедуру майнинга PoW – Proof of Work – доказательство работы, что так же, как и в случае со старейшей криптовалютой требует поиска определённого числа (nonce), после добавления которого к блоку получается хэш, удовлетворяющий определённым условиям.  Уже несколько лет ведутся разговоры о скором переносе технологии майнинга с PoW на PoS – Proof of Stake – доказательство владения или доказательство доли. Суть нового алгоритма будет сводиться к тому, что вероятность получения вознаграждения майнером будет повышаться при увеличении количества эфира на балансе, а вычислительная мощь не будет играть решающей роли. Однако пока разговоры остаются только разговорами, и майнинг Ethereum всё так же требует значительного количества свободных вычислительных ресурсов и затрат электроэнергии.

Вам пригодится почитать: Как собрать и запустить ферму для майнинга

Ключевой особенностью майнинга Ethereum является необходимость задействовать ресурсы видеопамяти и оперативной памяти компьютера (используются для работы виртуальной машины выполнения кода смарт-контрактов), а значит исключается использование специализированных устройств ASIC, которые умеют крайне быстро осуществлять перебор значений nonce. Такой подход делает майнинг более честным, и единственное, что могут предложить производители ASIC-устройств это несколько стандартных видеокарт, объединённых на одной шине, но устройство все равно останется персональным компьютером: у него будет оперативная память и процессор для выполнения кода смарт-контрактов.

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

Проблемы скоростной обработки транзакций

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

В алгоритме биткойна допускается формирование параллельных цепочек: при одновременном появлении двух новых элементов блокчейн, какое-то время они существуют и развиваются параллельно, до той поры, пока одна из цепочек не станет длиннее другой. При наступлении этого события все транзакции из конкурирующей ветки возвращаются в пул. Это возможно и является приемлемым решением, благодаря большому временному промежутку между блоками – при 10-минутном периоде значительно выше вероятность отследить, какой из последующих элементов будет сгенерирован первым. При цикле формирования в 15 секунд выявить самую длинную цепочку можно только спустя минимум 10-12 блоков (когда отклонение между цепочками станет значительным), что не позволяет быстро и однозначно определить цепочку, которая будет валидной с точки зрения правил блокчейн, то есть самой длинной. Надо ли говорить о том, что до того момента, как определится самая длинная цепочка, каждая из них может снова раздвоиться?

Майнеры продолжают собирать новые блоки сразу после получения валидного nonce, но не знают заранее, майнят ли они валидную цепочку, и тем самым рискуют потратить очень большое количество ресурсов впустую. Самое простое решение для них – объединиться в пул и тогда шансы того, что их вариант блокчейна быстрее других станет самым длинным, значительно возрастут. Но в таком решении кроется угроза безопасности всей сети – если один из пулов получит преимущество над всеми другими (так называемая проблема 51%) то с помощью его мощностей можно будет не только майнить большую часть блоков и получить перевес относительно других в вознаграждении, но и формировать собственный блокчейн, содержащий мошеннические транзакции. Иными словами – включить в цепочку блоков операции, которые не совершались реальными владельцами кошельков и контрактов.

Решение этой проблемы возложено на алгоритм GHOST — Greedy Heaviest Observed Subtree  — Жадный поиск самой длинной цепочки. Он даёт возможность майнерам получить вознаграждение за добычу блоков в параллельной линии элементов блокчейн, даже если она в результате окажется короче основной. Таким образом, удалось предотвратить создание слишком крупных пулов, ведь майнить соседние блоки тоже выгодно, пусть вознаграждение и составляет всего 12,5% от платы за блок в валидной цепи.

Читать также:  Как зарабатывать деньги на биткоинах?

Такие блоки получили название «дяди» (uncle или ommer). Элемент считается дядей, если имеет общего родителя с текущим блоком, но представляет собой потенциальное начало параллельной ветки блокчейн. Иными словами, вознаграждение за нахождение дяди можно получить если:

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

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

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

ICO — запуск собственных токенов внутри Ethereum

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

В один из дней, владелец ресторана решил, что пора расширять бизнес, и замахнулся на создание федеральной сети пиццерий, каждая их которых будет работать по честным правилам смарт-контрактов. Для развития бизнеса нужны деньги, однако брать кредит — это значит оставить в залог банку свое дело, что крайне рискованно. В такой ситуации многие компании решаются на процедуру IPO – первичное публичное размещение акций.  Для проведения IPO владельцу будет необходимо провести, как минимум, всестороннюю аудиторскую проверку и оценку бизнеса авторитетными инвестиционными компаниями, а также перевести учёт на международные стандарты. Процедура выпуска и размещения акций в любом случае будет слишком дорога для пиццерии. Кроме того, масштабу регионального бизнеса далеко до грандов – McDonalds и KFC, чьи акции свободно обращаются на бирже, а значит убедить потенциальных инвесторов вложиться в небольшое и никому не известное предприятие будет практически невозможно.

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

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

Все эти возможности описаны в стандарте ERC20: в сети выложено много исходных кодов, отвечающих за создание собственных токенов внутри сети Ethereum, работающих на основании различных исходных данных. Однако для запуска полноценного ICO нужно определить объём размещаемой денежной массы, (количество токенов в размещении по раундам), количество раундов размещения и стоимость токена для конечного покупателя в каждом из раундов. Логично предположить, что при ранней покупке можно предоставить инвесторам максимальную скидку, размер которой будет снижаться по мере роста популярности токена. Все эти условия могут быть реализованы как контракты-дополнения к основному смарт-контракту.

Если не вдаваться в технические детали, то реестр, хранящий записи о владельцах нового токена выглядит как простой список: адрес1 = 100 пиццатокенов; адрес2 = 75 пиццатокенов и т.д. операции смарт-контракта лишь вносят изменения в этот список, который хранится в том самом storage сети Ethereum и запросы, приведшие к изменению состояния списка, попадают в основной блокчейн.

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

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

Конечно, это не показатель, но даже первый в мире бесполезный токен позволил создателю собрать 150 000 долларов, а он всего лишь хотел накопить на телевизор. Теперь этот смарт-контракт, который умеет только передавать деньги во внутренней валюте со счета на счет и конечно продавать токены всем желающим за ETH, торгуется на бирже HitBTC  с ежедневным объемом около 2000 долларов. Общая капитализация превышает 149 000 долларов, но в январе 2018 года она была в три раза выше. Вот пруф.

А ведь разработчик честно предупреждал, что этот токен полностью бесполезен и не стоит его покупать….

Как заработать на криптовалюте

Эфир (ETH) – внутренняя криптовалюта сети Эфириум, по капитализации она занимает второе заслуженное место, сразу после Bitcoin. Объективные причины подталкивают курс Эфириум вверх – спрос на токены формируется благодаря регулярному проведению новых ICO, а значит, потенциальным владельцам новых токенов понадобится валюта ETH для совершения сделки. И хотя график котировок эфира подвержен таким же драматичным изменениям, как и график Bitcoin, когда колоссальный рост сменяется затяжным падением, именно в этой изменчивости и кроется основная возможность для заработка.

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

Binance

Одна из крупнейших площадок по торговле криптовалютой предлагает пользователям сотни различных инвестиционных инструментов, включая Bitcoin, Ethereum, другие популярные валюты и токены. Собственная торговая платформа и мобильные приложения для торговли из любого места в любое удобное время. Более 6 миллионов активных пользователей, отличные показатели ликвидности и ежедневного оборота – всё это Binance.

Bitfinex

Эта биржа обладает самой высокой внутренней капитализацией и ликвидностью. Ежедневно на ней заключаются сделки купли-продажи различных криптовалют и кросс-пар на сумму, эквивалентную 1 миллиарду 200 миллионам долларов США, что превышает аналогичные показатели других торговых систем.

Bitfinex динамично развивается и постоянно добавляет новые перспективные токены. Рабочее пространство интегрировано с сервисами TradingView, что значительно повышает удобство кабинета трейдера и предоставляет возможность использования сотен аналитических инструментов для проведения технического анализа.

Exmo

Exmo cамая популярная и самая крупная криптобиржа, ориентированная на жителей постсоветского пространства. Конечно, ей далеко до лидеров и по количеству участников и по уровню ликвидности, но зато она предлагает пользователям ввод и вывод фиатных денег (рубли, доллары, евро) через традиционные платёжные системы – Visa и Mastercard, поддерживаются также AdvCash и Payer.

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

Что ждёт Ethereum и смарт-контракты

За короткое время Эфириум достиг впечатляющих результатов, лишь незначительно уступая по популярности лидеру  криптовалют– Биткойну. Вместе с тем, у  Эфира есть всё, чтобы попытаться занять место лидера и по капитализации и по уровню популярности среди сообщества.

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

Биржа Комиссия Открыть счет
0.1-0.2%Открыть счет!
0.1-0.2%Открыть счет!
0,08%Открыть счет!