Пишем виртуальную машину Ethereum’а на языке Elixir. Часть 0

в 10:44, , рубрики: Elixir/Phoenix, криптография, метки: , , ,

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

Я планирую реализовывать виртуальную машину Ethereum’а на языке программирования Elixir. Почему Elixir? Потому что Elixir классный, масштабируемый, устойчивый к ошибкам, функциональный, и, вообще, Elixir является лекарством от всех болезней… Если серьезно, то, по существу, неважно на каком языке будет реализована виртуальная машина, потому что основная задача проекта — понять, как работает Ethereum, и производительность и скорость вычислений отходят на второй план. К тому же, на высокопроизводительных языках программирования уже есть свои реализации — parity на Rust’е и go-ethereum на Go, на Elixir’е же пока нет своей реализации.

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

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

Мысли о распределенных цифровых валютах начали появляться с 80-х годов XX века, но переворотный момент в их истории наступил в 2009, когда Сатоши Накамото впервые на практике реализовал распределенную валюту Bitcoin, объединив инструменты на основе криптосистемы с открытым ключом для определения собственности и алгоритм для отслеживания того, кому принадлежат монеты (этот алгоритм известен, как “доказательство работы” [анг. proof of work]).

Доказательство работы решило 2 проблемы:

  1. Доказательство работы предоставило сравнительно эффективный алгоритм для прихода к консенсусу, предоставляя возможность узлам сети коллективно соглашаться на обновлениях состояния учетного журнала Bitcoin’а.

  2. Доказательство работы предоставило механизм для свободного входа в процесс прихода к консенсусу, решая политическую проблему того, кто влияет на процесс консенсуса.

Основное преимущество Ethereum’а над другими криптовалютами — это наличие своего полного по Тьюрингу языка программирования, который позволяет писать смарт контракты и распределенные приложения для платформы.

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

Для данного проекта была создана организация на github’е, в которой и будут храниться все связанные репозитории.

До встречи в следующей статье!

Автор: new player

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js