По мере того, как платформа Ethereum с ее «умными контрактами» привлекает к себе все больше внимания, многие начинают задаваться вопросом: «А как это все устроено?». CoinFox приглашает своих читателей разобраться с технической стороной вопроса.

«Криптотоплево» для сети

Работа блоковой цепи Ethereum осуществляется при помощи цифровой валюты Ether («эфир»). Разработчики называют ее своеобразным «топливом» системы, так как она позволяет разработчикам расплачиваться за использование компьютерных мощностей.

Реальная стоимость соответствующих мощностей выражается в единице измерения Gas. К ней в системе Ethereum привязан ряд величин: постоянная Gas Cost, выражающая консенсусную стоимость единицы использованной мощности, и ее рыночная цена Gas Price, меняющаяся в соответствии с колебаниями Ether'а. Как только Ether дорожает, Gas Price опускается, сохраняя тем самым стабильную стоимость единицы компьютерной мощности вне зависимости от колебаний валюты.

Общая сумма, выплачиваемая разработчиками за пользование системой, составляет произведение вычисленной в в соответствии с объемом использованной мощности Gas Cost на текущую рыночную Gas Price и выражается в валюте Ether.

Максимальный допустимый объем использования мощностей обозначается единицей под названием Gas Limit, которая налагает ограничение на максимальную сложность вычисления, объем транзакции или размер блока. Со временем эта величина может быть изменена.

Чтобы осуществить транзакцию или запустить работу программы («контракта»), необходимо направить майнерам отчисление (Gas Fee). Объем отчислений за конкретные операции установлен заранее (см. таблицу). 

На сегодняшний день консенсусная стоимость единицы Gas равняется 10 микроэфирам (называемым также Szabo в честь одного из известных компьютерных разработчиков Ника Сзабо). 

Как можно увидеть в таблице, некоторые другие доли Ether'а также носят имена выдающихся разработчиков, а малейшая доля криптовалюты, Wei, используется для соотнесения друг с другом всех остальных долей:

 

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

Внешний аккаунт  vs контракт, транзакция vs сообщение

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

Работа с платформой начинается с создания так называемого «внешнего аккаунта» (externally owned account), который контролируется секретными ключами и не имеет собственного кода, но располагает балансом в криптовалюте Ether и может осуществлять транзакции.

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

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

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

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

«Умные контракты»

Контракты могут применяться в четырех основных целях:

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

  • хранение «библиотеки» программного обеспечения;

  • создание политики доступа высокого уровня (так называемые «перенаправляющие контракты», используемые для электронных кошельков с мультиподписью);

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

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


Мария Рудина