Криптовалюта Ethereum (ETH). Описание, обзор, отзывы.
Просмотров: 18
История создания Ethereum
Все началось в 2011 году, когда молодой канадский разработчик и программист с российскими корнями Виталик Бутерин заинтересовался технологией блокчейн и криптовалютой Биткоин. Спустя пару лет, полностью убедившись в практической пользе блокчейна, Виталий создает техническую документацию для продукта Ethereum.
Когда Ethereum только появился, на дворе был 2013 год, а Бутерину исполнилось всего восемнадцать лет. Тем не менее его идея нашла живейший отклик в сообществе. Тогда же вышла статья в журнале Bitcoin Magazine Создателем Эфира вместе с Виталиком Бутерином считается Гэвин Вуд. В так называемой «желтой книге» он более подробно описал, что собой представляет криптовалюта Ethereum. Вместе с первыми участниками системы был запущен сбор средств с помощью краудфандинга. Разработчикам удалось собрать 18 миллионов долларов в Биткоинах, однако взамен они должны предоставить 60 миллионов эфиров.
После того, как стартап смог привлечь столь большие инвестиции, им заинтересовались крупные компании. Среди них можно выделить:
- Microsoft;
- IBM;
- Acronis;
- Сбербанк и другие.
Что такое Ethereum
Ethereum — представляет собой платформу, с помощью которой можно создавать децентрализованные онлайн-сервисы на базе блокчейна и умных контрактов. В итоге у нас получается виртуальная машина, а все участники могут пользоваться ей на равных правах.
Чем же уникален Ethereum?
Каждая транзакция (сделка) в нем сопровождается так называемым умным контрактом — компьютерной программой, которая автоматически проверяет условия договора и выполняет прописанные в нем обязательства. Поскольку умный контракт, в отличие от обычного, исполняют не люди, а машины, его невозможно нарушить, обойти или отменить. В блокчейне «Этереума» хранятся не только состояния счетов, но и состояния программ после их выполнения в распределенной сети.
В рудиментарной форме умные контракты присутствуют и в Bitcoin, но создатель криптовалюты Сатоси Накамото намеренно ограничил их возможности. Для описания условий сделок в Bitcoin встроен язык программирования под названием Script. Он напоминает Forth, но не позволяет устраивать циклы, не сохраняет состояние между вызовами и лишен доступа к данным транзакции или блокчейна. Этого хватает только на самые простые задачи.
В Ethereum контракты чаще всего описывают на полноценном объектно ориентированном языке, который напоминает JavaScript. Код контракта исполняется при получении сообщений от пользователя или другого контракта. Он может принимать и отправлять деньги и работать с данными в постоянном хранилище, которое прилагается к каждой транзакции. В финале скрипт сохраняет вычисленный результат в блокчейне. Отправитель увидит его, если наблюдает за контрактом.
Чтобы избежать злоупотребления ресурсами — проблемы, которая вынудила Сатоси лишить Script полноты по Тьюрингу, — в Ethereum предусмотрено «горючее» (gas). Его количество у создателя транзакции ограничивает максимальное число исполняемых команд. Это не дает создавать вредоносные контракты, которые погружают машины майнеров в бесконечный цикл.
Основные понятия Ethereum
С первого раза понять, как устроен Ethereum, непросто, особенно если с криптовалютами ты знаком только понаслышке. Поэтому разберем подробнее каждое из понятий, и будем надеяться, что у тебя в голове вырисуется более четкая картина.
Блокчейн — распределенная база данных, которая содержит информацию обо всех транзакциях, проведенных участниками системы. Информация хранится в виде «цепочки блоков» (отсюда название), в каждом из которых записано определенное число транзакций. Блоки связаны друг с другом, потому их и называют «цепочкой». В случае с криптовалютами транзакциями выступают денежные переводы между кошельками пользователей.
В зависимости от контекста «блокчейном» могут называть разные вещи:
- принцип построения системы (технологию);
- распределенный децентрализованный доверенный реестр;
- протокол;
- базу данных, копии которой хранятся на компьютерах, участвующих в работе системы;
- одноранговую сеть, в которой все участники равноправны и осуществляют взаимодействия в заданном порядке, в том числе за счет экономических стимулов.
Нода — компьютер, на котором установлен клиент сети. Проверяет транзакции и записывает их в блокчейн. Полная нода хранит в себе заголовки всех блоков с самого первого блока. Сейчас ведутся работы над легким клиентом, который бы позволил клиентской программе работать без полной копии блокчейна.
Майнер — нода, которая не только записывает блоки в блокчейн, но и обрабатывает транзакции и участвует в майнинге следующего блока. Майнеры работают над решением математической задачи, а именно над поиском хеша, который удовлетворяет определенным условиям. Большая вычислительная мощность означает большую вероятность за определенное время найти удовлетворяющий условиям хеш и намайнить новый блок. За нахождение блока майнер получает награду в виде токенов системы («эфира»). Это стимулирует участников сети поддерживать работу системы. После того как сформировался блок и у всех участников обновилась информация, изменить запись уже невозможно. Защиту от мошенничества обеспечивают математический алгоритм и наличие других пользователей. Статистику добычи «эфира» можно посмотреть на ethernodes.
Газ, эфир, ETH — валюта Ethereum. В отличие от многих криптовалют, эфир позиционируется разработчиками не как альтернатива обычным валютам, а как некое виртуальное топливо для учета использования ресурсов децентрализованной сети. Чтобы недобросовестные пользователи не парализовали работу майнеров и полных нод (к примеру, введя их в бесконечный цикл), автор транзакции должен сразу задать максимально допустимое число шагов в вычислении. К контрактам прикрепляется некоторое количество ETH, и, если этот лимит превышен (кончился газ), вычисление прерывается, произведенные изменения откатываются, но комиссии остаются уплаченными. Эфир продается на биржах криптовалют, а капитализация всех токенов ETH достигла одного миллиарда долларов. Курс «эфира» с конца прошлого года вырос более чем в десять раз, но из-за истории с The DAO опустился вниз. На момент написания статьи он составляет около 13 долларов.
Ethereum Virtual Machine, EVM — часть протокола Ethereum, которая управляет состояниями и осуществляет обработку транзакций. С практической точки зрения EVM представляет собой гигантский распределенный автономный компьютер, который содержит миллионы объектов, называемые аккаунтами. Аккаунты могут управлять внутренней базой данных, выполнять код и взаимодействовать друг с другом. Для более детального описания рекомендуем изучить Ethereum White Paper и документацию к последнему релизу Ethereum Homestead Release.
Умные контракты — компьютерные протоколы, которые облегчают, проверяют или обеспечивают соблюдение контрактов. Они обычно имеют пользовательский интерфейс и часто эмулируют логику договорных положений. Умные контракты призваны обеспечивать лучшую безопасность, чем традиционные контракты, основанные на праве, и снижать издержки, связанные с заключением договоров. Определяющее свойство умного контракта — это самоисполняемость. Если договоры, которые заключают между собой люди, предполагают, что при несоблюдении условий нужно идти в суд (и составляются они с учетом этого), то программные контракты исполняются автоматически. Сторонники умных контрактов утверждают, что многие виды договорных положений могут быть сделаны частично или полностью самовыполняемыми, самодостаточными или и то и другое сразу.
Децентрализованные приложения, dapps — приложения, которые реализованы с помощью смарт-контрактов. Приложение не выполняется в каком-то конкретном месте, но тем не менее можно быть уверенным, что оно исполнится (если, конечно, его выполнение не прервется из-за недостатка газа). С точки зрения традиционной разработки они могут выглядеть непривычно. Бэкенд здесь — это задеплоенный смарт-контракт. Если ты хочешь к нему обратиться, то нужно установить соединение с локальной или удаленной нодой с помощью библиотеки web3.js, которая предоставляет API для запросов к блокчейну. После этого можно делать фронтенд приложения, если, конечно, он необходим.
Клиенты Ethereum
У Ethereum есть множество реализаций, они написаны на C++, Go, Python, Rust, Java, Haskell. Самый популярный клиент на сегодняшний день — это Geth, он написан на языке Go. Активно идет разработка и клиента на Rust — Parity. Первый релиз Parity уже вышел и показал отличную производительность. Существует также проект EthereumJS — клиент, написанный на JavaScript. Он разработан специально для тестирования и разработки контрактов.
После установки клиента ты можешь синхронизировать блокчейн и взаимодействовать с сетью из консоли. Но гораздо удобнее начинать с графического клиента Mist browser. После первого запуска ты создаешь аккаунт и синхронизируешь блокчейн. По умолчанию будет использоваться Mainnet, основная сеть. Помимо нее, существует тестовая сеть — Testnet. Она во многом аналогична Mainnet, но служит «песочницей».
На чем пишут Смарт-контракты
Существует много языков для написания смарт-контрактов. Наиболее популярный (и с большим отрывом!) — это Solidity. По синтаксису он близок к JavaScript. Есть и альтернативный вариант — Serpent, он по духу ближе к Python.
Контракты можно скомпилировать в байт-код EVM с помощью компилятора solc или воспользоваться онлайновым компилятором. Mist browser позволяет деплоить контракты в сеть в виде исходного кода на Solidity или байт-кода EVM. Далее ты можешь использовать web3.js для создания веб-приложений, которые будут взаимодействовать с контрактом.
Существует несколько фреймворков для разработки — они предоставляют некоторые полезные функции. Если собираешься программировать смарт-контракты, рекомендуем изучить Truffle, Embark и dapple, а затем выбрать тот, что покажется наиболее удобным и соответствующим задаче.
Для разработки веб-приложений, которые взаимодействуют с умными контрактами, сформировался определенный стек. В него входят web3.js и Meteor. Ну и конечно, существует множество модулей, которые позволяют со старта получить доступ к самым разным функциям.
Достоинства Ethereum
Если рассматривать Ethereum как платформу для гарантированных вычислений, то по сравнению с традиционными системами у него есть следующие плюсы:
- авторизация пользователя через криптографические подписи;
- полностью настраиваемая логика транзакции и изменения состояний;
- устойчив к DDoS-атакам;
- нет единой точки отказа сети;
- история всех действия сети хранится в открытом доступе в децентрализованной распределенной базе данных (блокчейне).
Актуальный курс Ethereum.