Блокчейн. Принципы и основы - [47]

Шрифт
Интервал

Для простоты смарт-контракт можно сравнить с торговым автоматом, который продает, например, напитки. Покупатель помещает в автомат определенную денежную сумму наличными или при помощи банковской карты, а аппарат выдает выбранный товар сообразно внесенным средствам. Если данную ситуацию спроецировать на блокчейн-сеть, то активация смарт-контракта происходит в момент, когда в блок помещается транзакция, отправляющая в адрес контракта какие-то криптовалютные активы. Обрабатывая подобную транзакцию, майнер находит блок, где содержится смарт-контракт, и при помощи виртуальной машины запускает его код на обработку, подавая ему «на вход» данные транзакции. Результат действия смарт-контракта может быть разным, что обусловлено логикой алгоритма, заложенной в сам код контракта. Это может быть просто внесение изменений в состояние системы либо формирование контрактом ответных транзакций – одной или даже нескольких. Не следует также забывать, что смарт-контракты запускаются не только майнерами, но и обычными узлами. Это происходит в моменты, когда они обрабатывают транзакции, связанные со смарт-контрактами, в том числе и при проверке получаемых от майнеров блоков на валидность. Подобный протокол предполагает, с одной стороны, некоторую вычислительную избыточность, а с другой – обеспечивает дополнительную гарантию стабильности работы системы в целом.

В отличие от скрипт-языка Биткоин, код смарт-контрактов пишется на языках программирования, удовлетворяющих критериям полноты по Тьюрингу. Наиболее распространенным языком смарт-контрактов Ethereum является объектно-ориентированный язык Solidity, семантически схожий с популярным языком программирования JavaScript. Однако непосредственно в тело смарт-контракта помещают не исходный текст, написанный, например, на том же Solidity, а прошедший через процедуру компиляции – так называемый «байт-код». Данный код представляет собой компактный набор команд низкого уровня, предназначенный для исполнения виртуальной машиной Ethereum.

В силу того, что любая блокчейн-система является децентрализованной средой, где каждый блок и каждая транзакция доступны для изучения любым участником сети, то и смарт-контракты Ethereum не являются исключением. Но поскольку контракт хранится в блокчейн-базе в формате байт-кода, для того, чтобы разобраться с принципом его действия, используются специальные декомпиляторы. Это программы, приводящие код в относительно «читаемый» вид, хотя и далекий от исходного – того, в котором он был изначально создан программистом смарт-контракта. Декомпилятор не может восстановить исходные названия переменных, а также все комментарии, сделанные программистом к своему коду. Таким образом, воспроизведение изначальной логики алгоритма после процесса декомпиляции кода смарт-контракта становится непростым делом. Бывают, правда, и обратные ситуации, когда создатели смарт-контрактов публикуют исходный текст своего кода для обеспечения большей прозрачности и доверия к своим алгоритмам. Для публикации используются внешние интернет-ресурсы, где можно ознакомиться с текстами кодов в легко читаемой форме, содержащей необходимые комментарии.

Как и любая обычная компьютерная программа, смарт-контракт обладает различными функциональными возможностями. То есть для одних смарт-контрактов достаточно нескольких строк кода, а другие могут представлять собой сложные алгоритмы, состоящие из сотен и даже тысяч строк. Это говорит в первую очередь о том, что с точки зрения приложения вычислительных усилий смарт-контракты отнюдь не равноправны – для обработки каждого из них требуется различное процессорное время. Из этого обстоятельства вытекает логичный вопрос: каким же образом формировать мотивацию майнера при обработке подобных контрактов? А что, если код смарт-контракта будет содержать, например, бесконечный цикл, который введет компьютер обработчика в состояние «зависания», когда он будет бесконечно пытаться выполнять один и тот же набор операций по кругу? Чтобы защитить систему от подобных ситуаций, в Ethereum предусмотрена модель оплаты вычислительной мощности при помощи специального «топлива» для обработки смарт-контрактов. Такой вид «топлива» в Ethereum обычно называют «газ», поскольку этот термин созвучен его английскому написанию (gas), хотя есть и другие варианты перевода этого слова.

Как ни странно, главная расчетная криптовалюта сети Ethereum – эфир – была создана в первую очередь для важнейшей утилитарной цели – оплачивать газ для обработки смарт-контрактов. Сам газ является счетной, но немонетарной величиной и напрямую отражает объем затрачиваемого вычислительного ресурса на запуск кода смарт-контракта майнером. Для каждого оператора байт-кода сети Ethereum существует его фиксированная «стоимость», номинированная в единицах газа. Простые операторы вроде арифметических действий «стоят» дешевле. Тогда как сложные, например, процедуры хеширования – дороже. То есть в систему изначально было заложено подобие «прайс-листа», на основе которого всегда можно рассчитать, сколько газа уйдет на обработку конкретного смарт-контракта. Поскольку обычные транзакции на перевод криптовалюты от одного адресата к другому тоже требуют вычислительной обработки, то и у них имеется свой эквивалент «газовой стоимости». Обычно стандартная транзакция обходится в 21 000 газа, вопрос только в том, сколько стоит сам газ.


Рекомендуем почитать
Кибербезопасность в условиях электронного банкинга. Практическое пособие

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


Доходное инвестирование

Что я могу ответить? Я такой же как вы, только начал инвестировать на несколько лет раньше (с 2002 года). Я начинал с "маленьких денег", но уже живу вместе со своей семьей на доходы со своего инвестиционного капитала. Я люблю докапываться до сути вещей и эта моя страсть может быть кому-нибудь полезна кроме меня. А я люблю быть полезным, потому что люблю людей и люблю пользу. Я люблю писать – поэтому я все это и пишу. Если быть кратким: я не собираюсь ни в этой рубрике, ни в целом на вокруг да около, ни в своих консультациях кого-то чему-то учить.


Инвестор за выходные. Руководство по созданию пассивного дохода

Вокруг инвестиций много мифов. Одни говорят, что это слишком сложно и 90 % инвесторов теряют деньги. Другие убеждают в обратном: инвестировать можно безопасно, никакие знания не нужны, а начать стоило еще вчера. Правда, как всегда, посередине: чтобы не прогореть в самом начале, стоит познакомиться с основными правилами в мире инвестиций. Но это действительно несложно – вы справитесь за несколько дней. Автор книги «Инвестор за выходные» Семён Кибало к 30 годам добился полной финансовой независимости благодаря пассивному инвестированию.


Фондовый рынок. Курс для начинающих

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


Государственные и муниципальные финансы: конспект лекций

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


Менеджмент в российском банке. Опыт системного анализа и управления

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