Как проверить транзакцию в сети Ethereum

Почему Эфириум не просто еще одна криптовалюта? Попробуем на пальцах объяснить его преимущества и принцип действия.

Хотя Биткоин и Эфириум часто упоминаются вместе, на самом деле они очень разные. Их общая черта — то, что оба могут выступать как платежные средства и построены на технологии blockchain. Однако помимо роли криптовалюты (как биткоин), Ethereum имеет свойства, превращающие его в огромный децентрализованный компьютер.

Для того, чтобы понять принцип работы Эфириума, нужно понять принцип работы блокчейна.

Что такое блокчейн?

В двух словах, это распределенный реестр. Это вечно растущая база данных, заполненная определенной информацией и имеющая следующие свойства:

— Если данные заносятся в блокчейн, они не могут быть изменены или удалены. Каждая запись остается в базе навсегда.

— Нет единой организации, поддерживающей и администрирующей блокчейн. Этим занимаются тысячи пользователей, у каждого из которых хранится своя копия реестра.

Чтобы понять механизм синхронизации тысяч версий блокчейна, прибегнем к упрощенной аналогии. Представьте коллектив из 10 человек. Все они сидят за одним столом, и у каждого перед собой файловая папка и чистый лист. Каждый раз, когда кто-то совершает любую важную операцию (например, переводит деньги другому человеку), он говорит об этом всем остальным.


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

После того как страница занесена в папку, участники достают новые листы, и процесс продолжается.


С течением времени листы (блоки), содержащие важную информацию (транзакции), добавляются в папку (цепочку), формируя базу данных (блокчейн).

Что хранится в блокчейне?

Блокчейн может использоваться для хранения любого типа данных.

В блокчейне биткоина хранятся данные о финансовых транзакциях, позволяя биткоину выполнять роль обычных валют, таких как доллары и рубли. Биткойн по замыслу ничем не отличается от доллара, чего нельзя сказать об эфире.

Эфир – это не просто валюта наподобие долларов, рублей или биткоинов.

Фактически это огромный компьютер, хотя и очень медленный – где-то в 100 раз медленнее нынешних ПК. К тому же, очень дорогой. “Компьютер Ethereum” по параметрам сравним с мобильником из девяностых; он способен лишь на очень тривиальные и нетребовательные операции.

Многим такое описание не покажется захватывающим, так почему же так много шумихи вокруг Эфириума? Именно потому что это первый децентрализованный компьютер, распределенный по всему земному шару. Разберемся в принципах работы блокчейна Ethereum.

Как же работает Эфириум?

Как и любому другому блокчейн-продукту, Эфириуму необходимо, чтобы его ПО непрерывно работало на тысячах компьютеров. На каждом компьютере (узле) сети запущена Ethereum Virtual Machine (EVM – виртуальная машина Эфириума). Фактически EVM – это операционная система, использующая специальный язык программирования и исполняющая специфические программы. Эти программы носят названия «смарт контрактов». Чтобы этот огромный компьютер выполнил какую-либо операцию, нужно заплатить, но не долларами, а криптовалютой данной системы, то есть эфиром.

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


Смарт-контракты ведут себя точно так же, как живые пользователи: они могут посылать и получать эфир.


Однако в отличие от людей, смарт-контракты могут при необходимости еще и исполнять определенные программы. Рассмотрим пример, чтобы понять, в чем заключается сила смарт-контрактов.

Что такое Gas и как он рассчитывается

Gas — определенная денежная единица, обозначающая цену комиссии в ETH-транзакции. Стоимость Газа тесно коррелирована с количеством Эфириума, которое за него готовы отдать. Инициатор сделки сам фиксирует ограничение на использование Газа и его цену. На балансе отправителя обязательно должно быть нужное число Gas. Когда сделка завершена, неиспользуемый газ возвращается обратно на счет.

Все уплаченные за Gas средства обычно уходит на счета майнеров в роли награды за поддержку сети при помощи оборудования. Здесь есть тесная взаимосвязь: чем выше стоимость Газа, указанная отправителем, тем вероятнее майнер изберет эту сделку первой, поскольку процедура даст наибольшее вознаграждение.

Оплата за хранение данных

Гас используется в хранении информации. Суммарная стоимость хранения всегда прямо пропорциональна самому малому из используемых чисел, кратных 32 байтам.

Увеличение объема хранилища соответственно увеличивает и объемы базы данных о состояниях для всех узлов сети. Это стимулирует пользователей по возможности сокращать до минимума занимаемое место.

В чем заключается цель сбора комиссий

Ключевые операции в системе Эфира выполняются одновременно всеми узлами. Исполнение вычислений в EVM (virtual machine) — недешевое удовольствие. Смарт-контракты чаще применяются для повседневных задач, чем для выполнения сценариев высокой сложности. Комиссия способствует снижению нагрузки на систему.

Если бы в системе не было комиссий, хакерам было бы легко взломать сеть: достаточно запустить транзакцию, инициирующую зацикленные вычисления. В Ethereum такое возможно, потому что его язык программирования относится к категории Тьюринг-полных.

Сила смарт-контрактов

Представьте, что вы заключаете спор на $100 о завтрашней погоде с другом по переписке: он считает, что завтра будет солнце, а вы – что будет дождь. Проигравший должен отдать победившему $100. Как гарантировать, что проигравший сдержит слово? На ум приходят 3 способа:

Взаимное доверие

Проще всего было бы положиться на честность друг друга. Однако, так как вы не знаете друг друга и никогда не встречались лично, а сумма немаленькая, лучше прибегнуть к более надежному методу.

Подписание формального договора

Казалось бы, решение найдено: вы подписываете официальное соглашение, обязывающее проигравшего выплатить заявленную сумму победившему. Мы заверяем его и спокойно делаем свои ставки. На практике же в случае конфликта сторон вы потратите немало времени на суд и кучу денег на юристов, что сделает весь процесс слишком затянутым и дорогостоящим.

Помощь доверенного лица

Ну и третий вариант — мы могли бы найти «общего друга», надежного гаранта, которому вы оба доверяете. На следующий день он посмотрел бы в окно и отдал бы $200 выигравшему спор. Все легко и просто. Но только что, если гарант все-таки украдет деньги?

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

Именно здесь вам на помощь придет смарт-контракт Ethereum. Смарт-контракт — это «общий друг», гарант сделки в лице исполняемого кода. Эфириум позволяет воспользоваться программой, которая возьмет с вас обоих по 100 долларов, а на следующий день проверит погоду и переведет 200 долларов победителю спора.

Смарт-контракт не может быть изменен или дополнен после того, как он был запрограммирован. Следовательно, можно быть уверенным в том, что он в любом сработает по заранее установленным правилам.

Однако, возникает еще один вопрос: как выполняется смарт-контракт и как он интегрирован в блокчейн?

Ethereum 2.0 для решения проблемы масштабирования

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

Проблема с Sharding и масштабированием в блокчейне в целом заключается в том, что изменение основного протокола (с Proof-of-Work на Proof-of-Stake) технически сложно.

Таким образом, сообщество не желает полагаться исключительно на масштабирование в базовом блокчейне Ethereum.

Перемещение активности на слои, расположенные над основной цепью, обеспечивает быстрый путь к масштабируемым приложениям.

Ethereum более или менее определился с дальнейшими действиями. Ethereum 2.0 оказывается одним из самых амбициозных начинаний в блокчейн-пространстве, но если он будет работать как задумано, он станет одним из самых значительных достижений в децентрализации.

В основе Ethereum 2.0 лежат три решения по масштабируемости, призванные сделать Ethereum более широко используемым.

Каким образом смарт-контракт интегрирован в блокчейн?

Каждый раз когда смарт-контракт исполнен, информация об этом записывается на лист (блок) как транзакция. На высоком уровне процесс выглядит так:


Процесс записи информации о смарт-контракте как транзакции является уникальным, и именно эта функция отличает Эфириум от других платформ.

В Эфириуме встречаются три типа транзакций:

Перевод от человека человеку

Перевод эфира по типу «human sender — human recipient» ничем не отличается от перевода Bitcoin. В этом случае поле данных остается пустым.

Перевод эфира без получателя

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

Перевод эфира смарт-контракту от пользователя сети

Если человеку (или смарт-контракту) нужно запустить исполнение смарт-контракта, по адресу последнего нужно направить транзакцию и прописать условия его исполнения в поле данных.

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

Каждый узел исполняет код смарт-контракта, что и делает Ethereum гигантской распределенной вычислительной машиной. Впоследствии запись о каждом действии навсегда остается в блокчейне.

Как проходят транзакции в сети

Транзакция (операция, перевод) — процесс отправки подписанного пакета с информацией от одного участника сети (отправителя) другому (получателю). В ситуации с Эфиром роль пакета данных играет сложный код, представляющий собой цифровую монету.

В состав входят такие элементы:

  1. Уникальный адрес (присваивается для Ethereum).
  2. Электронная подпись. Наличие элемента свидетельствует о готовности проведения транзакции в отношении другого лица.
  3. Valua — показатель, свидетельствующий о количестве отправляемых Gwei. Многие площадки, работающие с Эфиром, автоматически конвертируют этот параметр в ETH.
  4. Лимит Газа (Gas Limit) — ограничение вычислений по определенной операции с ETH.
  5. Цена Газа (Gas Price) — комиссионный платеж пользователя за пересылку Эфира. В упрощенной форме одна единица Газа позволяет провести одну вычислительную операцию.

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

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

Любые сделки в сети Эфира запускаются наружными аккаунтами. После поступления операции в смарт-контракт происходит запуск заложенного алгоритма и передача данных. Работа выполняется с помощью виртуальной машины (EVM). Такое построение позволяет легко проверить судьбу перечисляемых монет.

А что такое «газ»? О нём я что-то слышал

Как было сказано ранее, человек, использующий смарт-контракт, должен заплатить системе за операцию. Получатель этого платежа – узел, использующий свою память и электричество для выполнения смарт-контракта.

Каждое действие внутри смарт-контракта имеет свою цену. Например, определенную цену придется заплатить, если вы хотите занять какой-то объем памяти узла.

Средство оплаты всех подобных операций и есть так называемый gas, переведенный русскоязычным сообществом как «газ» (хотя оригинальное название – явная отсылка к автомобильному топливу, что станет понятно ниже).

Впоследствии газ конвертируется в эфир по определенному курсу.

Для исполнения смарт-контракта, необходимо заранее определить максимально возможное количество уплачиваемого газа. Есть два условия остановки исполнения контракта:

— Доведение его до конца и завершение алгоритма;

— Нехватка газа.

Газ

Полные ноды тратят на подтверждение транзакций, вычисления и выполнение смарт контрактов свои мощности. Эфириум изначально задумывался как платформа для смарт контрактов. Чтобы обеспечить среду выполнения для них, эфириум использует EVM (децентрализованную виртуальную машину). Контракты запускаются в EVM на каждой ноде, и все вычисления по ним дублируются. Это делает их выполнение очень ресурсоемким.

Поэтому транзакции ethereum не бесплатны. За их выполнение с аккаунта, инициировавшего сделку, взимается комиссия в пользу майнеров. Плата была введена для предотвращения нагрузки на сеть и преднамеренных атак. Программируемые смарт контракты могут создавать бесконечные циклы. Ввод оплаты ограничивает количество выполняемых действий и предотвращает такую угрозу.

Комиссия имеет собственную единицу измерения, называемую «газ» (от англ. gas — топливо, горючее). Отправитель сам назначает цену газа в эфириумах для каждой транзакции и указывает ее при отправке. Транзакции состоят из операций, каждая из которых подлежит отдельной оплате. Также указывает лимит газа, т.е. его максимальное количество, которое отправитель готов потратить.

Лимит призван защитить пользователя от программных ошибок и ситуаций, когда количество операций предсказать сложно, чтобы комиссия не «съела» весь баланс. Можно смело указывать количество газа с запасом, весь неиспользованное топливо вернется на счет отправителя. Однако, может случиться, что выделенное топливо закончится на какой-то из операций. Тогда транзакция полностью откатывается, и уже потраченный на ее выполнение газ никто не вернет. Поэтому необходимо тщательно рассчитывать лимит горючего.

Рейтинг
( 2 оценки, среднее 4 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]