Введение в Ethereum
Последнее редактирование: , Invalid DateTime
Что такое блокчейн?
Блокчейн — это общедоступная база данных, которая обновляется и используется на многих компьютерах в сети.
«Блок» означает данные и состояние, хранящиеся в последовательных группах, известных как «блоки». Если вы отправляете ETH кому-либо, данные транзакции должны быть добавлены в блок, чтобы она была успешной.
«Цепочка» («чейн») означает тот факт, что каждый блок криптографически ссылается на свой родительский объект. Другими словами, блоки соединяются друг с другом. Данные в блоке не могут быть изменены без изменения всех последующих блоков, что потребует согласия всей с ети.
Каждый компьютер в сети должен согласовать каждый новый блок и цепочку в целом. Такие компьютеры называют «узлами». Узлы гарантируют, что все, кто взаимодействует с блокчейном, имеют одни и те же данные. Чтобы достигнуть этого распределенного соглашения, блокчейну требуется механизм консенсуса.
Сейчас Ethereum использует консенсус-механизм доказательства работы. Это означает, что любой, кто хочет добавить новые блоки данных в цепочку, должен решить сложную головоломку, для чего требуется много вычислительной мощности. Решение головоломки подтверждает, что вы потратили вычислительные ресурсы. Этот процесс называется майнингом. Майнинг обычно осуществляется методом перебора и ошибок, но успешное добавление блока вознаграждается в ETH.
Новые блоки транслируются на ноды, проверяются и подтверждаются, таким образом обновляя состояние блокчейн сети для всех.
В итоге, когда вы отправляете кому-либо ETH, транзакция должна быть произведена и включена в новый блок. Затем обновленное состояние передается всей сети.
Посмотрите, как Остин рассказывает о блокчейнах:
Если вы хотите увидеть, как блокчейн хэширует данные, а затем предыдущий блок ссылается на остальные предыдущие блоки, обязательно ознакомьтесь с этой демонстрацией(opens in a new tab) Андерса Браунворта и посмотрите сопроводительное видео ниже.
Посмотрите, как Андерс объясняет хэши в блокчейнах:
Что такое Ethereum?
Во вселенной Ethereum есть единственный каноничный компьютер (называемый виртуальной машиной Ethereum или EVM), с состоянием которого согласуется вся в сеть Ethereum. Каждый участник сети Ethereum (каждый узел Ethereum), хранит копию состояния этого компьютера. Кроме того, любой участник может транслировать запрос этому компьютеру на выполнение произвольных вычислений. Каждый раз, когда такой запро с транслируется, другие участники сети проверяют, подтверждают и производят («выполняют») вычисление. Это «выполнение» вызывает изменение состояния в EVM, которое фиксируется и распространяется по всей сети.
Запросы на вычисление называются запросами транзакций; запись всех транзакций и текущего состояния EVM сохраняется в блокчейне, который, в свою очередь, сохраняется и согласовывается всеми узлами.
Криптографические механизмы гарантируют, что после того, как транзакции будут подтверждены как действительные и добавлены в блокчейн, их нельзя будет изменить. Также эти механизмы гарантируют, что все транзакции подписываются и выполняются с соответствующими «разрешениями» (никто не должен иметь возможность отправлять цифровые активы из аккаунта Алисы, кроме самой Алисы).
Что такое эфир?
Эфир (ETH) — это собственная криптовалюта Ethereum. Цель эфира — создать рынок для вычислений. Такой рынок обеспечивает участникам экономический стимул для проверки и выполнения транзакционных запросов и предоставления вычислительных ресурсов сети.
Любой участник, транслирующий запрос транзакции, также должен предложить сети некоторое количество эфира в качестве вознаграждения. Эта награда будет присуждена тем, кто в конечном итоге выполнит работу по проверке транзакции, ее выполнению, фиксации в блокчейне и трансляции в сеть.
Сумма уплаченного эфира соответствует времени, необходимому для выполнения вычислений. Такие награды также не позволяют злоумышленникам намеренно засорять сеть, запрашивая выполнение бесконечных вычислений или других ресурсоемких сценариев, поскольку все участники должны платить за вычислительное время.
Что такое умные контракты?
На практике участники не пишут новый код каждый раз, когда хотят запросить вычисление в EVM. Вместо этого, разработчики приложений загружают программы (многократно используемые фрагменты кода) в структуру EVM, а пользователи делают запросы на выполнение этих фрагментов кода с различными параметрами. Мы называем такие программы, загруженные и выполняемые сетью, умными контрактами.
На самом простом уровне вы можете представить умный контракт как своего рода торговый автомат: скрипт, который при вызове определенных параметров, а также если определенные условия удовлетворены, выполняет некоторые действия или вычисления. Например, простой умный контракт поставщика может создать и передать право собственности на цифровой актив, если запрашивающий транзакцию отправляет эфир определенному получателю.
Любой разработчик может создать умный контракт и опубликовать его в сети, используя блокчейн в качестве уровня данных, за комиссию, выплаченную сети. Затем любой пользователь может вызвать умный контракт для выполнения его кода, опять же за комиссию, выплаченную сети.
Таким образом, с помощью умных контрактов разработчики могут произвольно создавать и развертывать сложные пользовательские приложения и сервисы, такие как: торговые площадки, финансовые инструменты, игры и т. д.
Терминология
Блокчейн
Последовательность всех блоков, зафиксированных в сети Ethereum на протяжении всей ее истории. Назван так, потому что каждый блок содержит ссылку на предыдущий блок, что помогает нам сохранять и упорядочивать все блоки (и, следовательно, всю детальную историю).
ETH
Собственная криптовалюта сети Ethereum. Пользователи платят эфир другим пользователям за выполнение их запросов на выполнение кода.
EVM
Ethereum Virtual Machine — это глобальный виртуальный компьютер, состояние которого хранит (и с которым согласовывается) каждый участник сети Ethereum. Любой участник может запросить выполнение произвольного кода в EVM; выполнение кода изменяет состояние EVM.
Узлы
Реальные машины, хранящие состояние EVM. Узлы взаимодействуют друг с другом для распространения информации о состоянии EVM и новых изменениях состояния. Любой пользователь также может запросить выполнение кода, передав запрос на его выполнение от узла. Сама сеть Ethereum представляет собой совокупность всех узлов Ethereum и их коммуникаций.
Аккаунты
Место хранения эфира. Пользователи могут инициализировать аккаунты, вносить эфир на аккаунты и передавать эфир со своих аккаунтов другим пользователям. Аккаунты и балансы аккаунтов хранятся в большой таблице в EVM; они являются частью общего состояния EVM.
Транзакции
«Запрос транзакции» — это формальный термин для запроса выполнения кода в EVM, а «транзакция» — это выполненный запрос транзакции и соответствующее изменение в состоянии EVM. Любой пользователь может транслировать запрос транзакции в сеть от узла. Чтобы запрос транзакции повлиял на согласованное состояние EVM, он должен быть проверен, выполнен и «передан в сеть» другим узлом. Выполнение любого кода вызывает изменение состояния в EVM; после фиксации это изменение состояния транслируется на все узлы в сети. Некоторые примеры транзакций:
- Отправка X эфира из моего аккаунта в аккаунт Алисы.
- Публикация кода умного контракта в состоянии EVM.
- Выполнение кода умного контракта по адресу X в EVM с аргументами Y.
Блоки
Объем транзакций очень велик, поэтому транзакции «фиксируются» пакетами или блоками. Блоки обычно содержат от десятков до сотен транзакций.
Умные контракты
Многократно используемый фрагмент кода (программа), который разработчик публикует в структуре EVM. Кто угодно может запросить выполнение кода умного контракта, сделав запрос транзакции. Поскольку разработчики могут создавать произвольные исполняемые приложения в EVM (игры, торговые площадки, финансовые инструменты и т. д.) путем публикации умных контрактов, их часто также называют децентрализованными приложениями (или dapp).
Дополнительные ресурсы
- Техническая документация об Ethereum
- Так как работает Ethereum?(opens in a new tab) — Прити Кэсиредди
Знаете ресурс сообщества, который вам пригодился? Измените эту страницу и добавьте его!
Связанные руководства
- Руководство разработчика по Ethereum, часть 1 — знакомство с Ethereum для начинающих с использованием Python и web3.py