В последнее время все чаще в новостях можно услышать слова "криптовалюта" и "блокчейн" и, как следствие, наблюдается приток большого количества заинтересованных этими технологиями людей, а вместе с этим и огромное количество новых продуктов. Зачастую, для реализации какой-то внутренней логики проекта или же для сбора средств используются "умные контракты" — особые программы, созданные на платформе Ethereum и живущие внутри его блокчейна. В сети уже существует достаточно материала, посвященного созданию простых смарт-контрактов и базовым принципам, однако практически нету описания работы виртуальной машины Ethereum (далее EVM) на более низком уровне, поэтому в этой серии статей я бы хотел разобрать работу EVM более детально.
Solidity — язык, созданный для разработки умных контрактов, существует относительно недавно — его разработка началась только в 2014 году и, как следствие, местами он ''сыроват''. В этой статье я начну с более общего описания работы EVM и некоторых отличительных особенностей solidity, которые нужны для понимая более низко-уровневой работы.
P.s Статья предпологает наличие некоторых базовых знаний о написании смарт-контрактов, а также о блокчейне Ethereum'a в целом, так что если вы слышите об этом в первый раз, то рекомендую сначала ознакомиться с основами, например, здесь:
* [Hello world на solidity и деплой контракта в сеть][1]
* [Подборка инструментов для разработки][2]
* [Описание работы Ethereum и его блокчейна][3][Читать дальше →][4]
[1]:
https://habrahabr.ru/post/312008/
[2]:
https://habrahabr.ru/post/327236/
[3]:
https://geektimes.ru/post/294611/.com%5Biz-pesochnitsy%5D-kak-rabotaet-efirium-v
[4]:
https://habrahabr.ru/post/340928/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut