- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

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

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

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

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

Автор: new player

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/kriptografiya/260986

Ссылки в тексте:

[1] Ethereum: https://www.ethereum.org/

[2] parity: https://github.com/paritytech/parity

[3] go-ethereum: https://github.com/ethereum/go-ethereum

[4] белую книгу Ethereum’а: https://github.com/ethereum/wiki/wiki/White-Paper

[5] предлагаю желтую книгу Ethereum'a: http://yellowpaper.io/

[6] организация на github’е: https://github.com/exthereum

[7] Источник: http://habrahabr.ru/sandbox/110194/