- PVSM.RU - https://www.pvsm.ru -
Не так давно хайп вокруг блокчейна и криптовалют коснулся и меня, и я решил разобраться, что же это такое и почему эта тема сейчас так популярна. По-моему мнению, самый лучший способ разобраться в какой-либо технологии — это попытаться самому реализовать эту технологию, поэтому в качестве подопытного кролика я взял Ethereum [1] — децентрализованную платформу на основе блокчейна.
Я планирую реализовывать виртуальную машину Ethereum’а на языке программирования Elixir. Почему Elixir? Потому что Elixir классный, масштабируемый, устойчивый к ошибкам, функциональный, и, вообще, Elixir является лекарством от всех болезней… Если серьезно, то, по существу, неважно на каком языке будет реализована виртуальная машина, потому что основная задача проекта — понять, как работает Ethereum, и производительность и скорость вычислений отходят на второй план. К тому же, на высокопроизводительных языках программирования уже есть свои реализации — parity [2] на Rust’е и go-ethereum [3] на Go, на Elixir’е же пока нет своей реализации.
Документировать свои изыскания я буду в виде серии коротких статей, в которых буду пытаться описывать сложности, с которыми столкнулся. Также, я надеюсь, эти статьи помогут мне самому лучше понять исследуемую область, уложить все мысли в голове.
Приведу для затравки пару идей, которые должны убедить вас в крутости данной технологии.
Мысли о распределенных цифровых валютах начали появляться с 80-х годов XX века, но переворотный момент в их истории наступил в 2009, когда Сатоши Накамото впервые на практике реализовал распределенную валюту Bitcoin, объединив инструменты на основе криптосистемы с открытым ключом для определения собственности и алгоритм для отслеживания того, кому принадлежат монеты (этот алгоритм известен, как “доказательство работы” [анг. proof of work]).
Доказательство работы решило 2 проблемы:
Доказательство работы предоставило сравнительно эффективный алгоритм для прихода к консенсусу, предоставляя возможность узлам сети коллективно соглашаться на обновлениях состояния учетного журнала Bitcoin’а.
Основное преимущество 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/
Нажмите здесь для печати.