Тимур Машнин
Разработка смарт-контрактов в Ethereum
Ethereum. Причины возникновения Ethereum
Когда в 2008 году появился Биткойн, он был полностью революционным.
Количество концепций, которые собрались при этом вместе, информатика, криптография и экономические стимулы, было удивительным.
Когда в 2009 году была запущена реальная сеть Bitcoin, многие думали, что этот проект потерпит неудачу.
Чтобы гарантировать работу сети, язык скриптов биткойна был преднамеренно предельно ограничительным.
На самом деле у Биткойна не совсем язык скриптов, он использует стек с операторами скриптов.
Язык скриптов в биткойне важен, потому что это то, что делает биткойн «программируемыми деньгами».
В рамках каждой транзакции биткойн есть возможность написать небольшую программу.
В результате вы можете автоматически переводить деньги с помощью компьютерного кода, и каждый может видеть правила, по которым эти деньги перемещаются, и знать, что эти правила будут соблюдаться.
До сих пор сеть Биткойна успешно развивается, и ее капитализация растет.
Однако все приложения, которые создаются в Биткойне – это инфраструктурные приложения, такие как кошельки и биржи.
Причина этого в ограниченности языка скриптов Биткойна.
Проект Ethereum взял этот ограниченный набор операторов и развил его в полноценный язык программирования.
Эфириум никогда бы не существовал без Биткойна в качестве предтечи.
При этом Ethereum во многом опережает Биткойн.
Язык программирования Ethereum позволяет делать гораздо больше, чем биткойн.
Язык скриптов Bitcoin намеренно ограничивает. В результате, в биткойн вы можете делать только основные вещи.
Этот язык также трудно понять и использовать.
Вместо большинства современных языков программирования, где код легко читается, скрипты биткойна выглядят как непонятный машинный код.
Напротив, языки программирования Ethereum (Solidity для тех, кто любит Javascript, и Serpent для тех, кто любит Python), позволяют делать практически все, что позволяет вам продвинутый язык программирования.
При этом, эти языки простые в использовании.
Эта комбинация полной функциональности программирования и простоты использования очень важна.
Люди делают вещи в Эфириуме, которые сейчас невозможны в Биткойне.
Эфириум создал новое поколение разработчиков, которые никогда не работали с Bitcoin, но заинтересованы в Ethereum.
Биткойн мог бы иметь эту расширенную функциональность, но через создание многочисленных надстроек, которые бы работали с протоколом биткойнов, в то время как Ethereum предоставляет эту функциональность из коробки.
Помимо радикального различия в языках скриптов, в Ethereum намного лучше инструменты разработчика.
У Биткойна никогда не было полноценного набора инструментов для разработчиков, хотя он очень нужен, потому что работать с Bitcoin намного сложнее.
Эфиреум сделал жизнь разработчика намного проще.
Он имеет домашнюю страницу для разработчиков и собственную среду разработки (Mix IDE) среди прочих других.
Есть и другие преимущества Эфиреума, о которых достаточно написано.
Являются ли Bitcoin и Ethereum конкурентами или дополняют друг друга?
Это еще предстоит выяснить.
Возможно, биткойн останется протоколом, с помощью которого люди будут хранить свои деньги, потому что он более стабилен и надежен.
Это позволило бы Ethereum продолжать рисковать, позволяя разворачивать приложения в своей сети.
В этом случае Bitcoin будет являться скорее сетью денежных расчетов, в то время как Ethereum будет использоваться для запуска децентрализованных приложений.
Так что Bitcoin и Ethereum могут дополнять друг друга.
Что такое Эфириум?
Согласно веб-сайту Ethereum, «Ethereum – это децентрализованная платформа, на которой работают умные контракты».
Биткойн же можно охарактеризовать как цифровые деньги.
Биткойн используется для перевода денег от одного человека другому.
И он обычно используется в качестве хранилища денег и является основой для понимания обществом концепции децентрализованной цифровой валюты.
Ethereum отличается от Bitcoin тем, что он позволяет использовать смарт-контракты, которые можно охарактеризовать как высоко программируемые цифровые деньги.
Представьте, что вы автоматически отправляете деньги от одного человека другому, но только тогда, когда выполняется определенный набор условий.
Например, человек хочет купить дом у другого человека.
Традиционно в обмене участвуют несколько третьих сторон, в том числе юристы и агенты условного депонирования, что делает процесс излишне медленным и дорогостоящим.
С помощью Ethereum код может автоматически передать покупателю собственность и средства продавцу после того, как сделка будет одобрена без необходимости участия третьей стороны.
Потенциал для этого невероятный.
Подумайте о многочисленных приложениях, которые выступают в качестве третьей стороны, чтобы связать вас с другими на основе определенной логики (например, Uber и eBay).
Многие из централизованных систем, которые мы используем сегодня, можно было бы децентрализовать на Эфириуме.
Децентрализация важна, так как устраняет точки отказа или контроля.
Децентрализованные платформы удаляют посредников, что в конечном итоге приводит к снижению затрат для пользователя.
Bitcoin vs Ethereum
Давайте еще раз обсудим, чем отличается Эфериум от Биткойна.
Если кратко, Биткойн – это первый известный блокчейн.
А Ethereum – это блокчейн следующего поколения.
Биткойн был первоначально создан как одноранговая электронная платежная система, где валюта торгуется между адресами.
Ethereum был создан с идеей быть не только одноранговой денежной системой, а представлять одноранговую базу данных и распределенный виртуальный компьютер, компьютер, который манипулирует тем, что называется состоянием.
Вы можете думать о состоянии как о текущих значениях всех переменных в системе, согласованных всеми узлами посредством консенсуса.
Состояние в Ethereum изменяется в результате транзакций и работы виртуальной машины Ethereum.
В то время как у Биткойна есть упрощенный язык скриптов, одной из наиболее примечательных особенностей Ethereum является виртуальная машина, которая способна выполнять полноценный код.
Весь код, который запускается виртуальной машиной, может быть сохранен как часть цепочки блоков.
И вы можете программировать довольно сложные приложения, чья логика будет работать на цепочке блоков.
Из-за этого существует огромное сообщество разработчиков, растущее вокруг Ethereum, которые создают множество приложений и развивают экосистему Ethereum.
У системы Ethereum, как и у Биткойна, есть проблемы с масштабированием.
Например, вся система в настоящее время может обрабатывать только 17 транзакций в секунду.
Потому что вся сеть должна запускать каждое вычисление на каждом компьютере, а это значит, что вся система может работать настолько быстро, насколько быстро в ней работают самые медленные компьютеры.
Доказательство работы неэффективно, и сам блокчейн продолжает расти.
Сообщество пытается решить эти проблемы масштабирования с помощью нескольких подходов: доказательстве ставки, каналов состояний, Sharding и Plasma.
Переход на доказательство ставки вместо доказательства работы уменьшит значительную вычислительную нагрузку на сеть.