Читаем 1c2b9509b53cb0837976a7dc6c8bcd37 полностью

же касается «полноты по Тьюрингу», то одним из ее критериев является

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

алгоритмические циклы. Скрипт-язык сети Биткоин не предоставляет

операторов обработки циклов, а значит, и возможности реализации на нем

сложных вычислительных алгоритмов весьма ограничены. В отличие от

Биткоина, в проекте Ethereum подобная возможность предусмотрена, а

реализована она как раз с использованием функционала смарт-контрактов.

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

Как уже неоднократно упоминалось, автором концепции является Ник Сабо, который еще в 1994 году впервые представил форму исполняемых

электронных контрактов в децентрализованной среде. Сабо определил этот

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

Преимуществами такой формы заключения контрактов автор считал

конфиденциальность, низкие затраты на проведение операций и отсутствие

необходимости привлечения посредников для обеспечения доверия для

сторон по сделкам. Если сравнивать электронные контракты с обычными, то

очевидным отличием будет возможность смарт-контракта контролировать

лишь математически доказуемые условия сделки, в то время как в обычном

контракте изложенные в нем условия могут носить и нечеткий, то есть

описательный характер. В конечном итоге Ник Сабо ограничился лишь

теоретическим представлением своей модели, а непосредственная

реализация данного концепта увидела свет только спустя два десятка лет в

проекте Ethereum.

В целом процесс формирования смарт-контракта похож на обычную

транзакцию, которая содержит ряд дополнительных элементов, придающих ей

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

называемой виртуальной машины Ethereum (EVM) непосредственно на узлах

сети, создающих блоки. В коде смарт-контракта описана алгоритмическая

логика обработки сделок между пользователями сети и владельцем смарт-

контракта, поместившим его в блокчейн, введя его, таким образом, в действие.

С этого момента смарт-контракт присутствует в одном из блоков цепочки, и

любой желающий участник сети может активировать его работу путем отправки

транзакции на адрес контракта в системе. То есть смарт-контракт является

полноправным субъектом сети, который может принимать и формировать

транзакции. Но делает он это не самостоятельно, а только когда код контракта

запускается на исполнение виртуальной машиной Ethereum на узле майнера

при создании нового блока. Как происходит этот процесс?

Для простоты смарт-контракт можно сравнить с торговым автоматом, который

продает, например, напитки. Покупатель помещает в автомат определенную

денежную сумму наличными или при помощи банковской карты, а аппарат

выдает выбранный товар сообразно внесенным средствам. Если данную

ситуацию спроецировать на блокчейн-сеть, то активация смарт-контракта

происходит в момент, когда в блок помещается транзакция, отправляющая в

адрес контракта какие-то криптовалютные активы. Обрабатывая подобную

транзакцию, майнер находит блок, где содержится смарт-контракт, и при

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

вход» данные транзакции. Результат действия смарт-контракта может быть

разным, что обусловлено логикой алгоритма, заложенной в сам код контракта.

Это может быть просто внесение изменений в состояние системы либо

формирование контрактом ответных транзакций — одной или даже нескольких.

Не следует также забывать, что смарт-контракты запускаются не только

майнерами, но и обычными узлами. Это происходит в моменты, когда они

обрабатывают транзакции, связанные со смарт-контрактами, в том числе и при

проверке получаемых от майнеров блоков на валидность. Подобный протокол

предполагает, с одной стороны, некоторую вычислительную избыточность, а с

другой — обеспечивает дополнительную гарантию стабильности работы

системы в целом.

В отличие от скрипт-языка Биткоин, код смарт-контрактов пишется на языках

программирования, удовлетворяющих критериям полноты по Тьюрингу.

Наиболее распространенным языком смарт-контрактов Ethereum является

объектно-ориентированный язык Solidity, семантически схожий с популярным

языком программирования JavaScript. Однако непосредственно в тело смарт-

контракта помещают не исходный текст, написанный, например, на том же

Solidity, а прошедший через процедуру компиляции — так называемый «байт-

код». Данный код представляет собой компактный набор команд низкого

уровня, предназначенный для исполнения виртуальной машиной Ethereum.

В силу того, что любая блокчейн-система является децентрализованной

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

участником сети, то и смарт-контракты Ethereum не являются исключением. Но

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

декомпиляторы. Это программы, приводящие код в относительно «читаемый»

Перейти на страницу:

Похожие книги

Linux
Linux

Книга посвящена операционной системе Linux. Приводятся подробные сведения о ее особенностях и возможностях, идеологии файловой системы, инсталляции и основных командах, вопросах компиляции ядра, настройках и сервисах. Большое внимание уделяется организации на базе Linux различных серверов и служб: электронной почты, WWW, FTP, INN, Proxy, NTP, а также проблемам администрирования сети, обеспечения безопасной работы и другим вопросам. Описаны способы настройки под Linux рабочих станций, в т. ч. и бездисковых, установки и эксплуатации на них графических сред типа X Window, а также конфигурирование модемных соединений, принтеров и сканеров, отладка взаимодействия с Linux-машинами такой «экзотической» периферии, как карманные компьютеры, мобильные телефоны, TV-тюнеры и т. п. Рассматриваемые в книге конфигурационные файлы и структура каталогов соответствуют дистрибутиву Red Hat Linux 7.x, тем не менее, при минимальной адаптации все упоминаемые в книге пакеты устанавливаются в любом дистрибутиве Linux.Для начинающих администраторов или пользователей Linux.

Алексей Александрович Стахнов

ОС и Сети, интернет
Атака на Internet
Атака на Internet

Эта книга является одним из первых специализированных изданий, написанных отечественными авторами, которое посвящено обстоятельному анализу безопасности сети Internet. В книге предлагаются и подробно описываются механизмы реализации основных видов удаленных атак как на протоколы TCP/IP и инфраструктуру Сети, так и на многие популярные сетевые операционные системы и приложения.Особое внимание авторы уделили причинам возникновения и успеха удаленных атак, а также их классификации. Были также рассмотрены основные способы и методы защиты от удаленных атак.Издание предназначено для сетевых администраторов и пользователей Internet, администраторов безопасности, разработчиков систем защит, системных сетевых программистов, студентов и аспирантов вузов, а также для всех интересующихся вопросами нарушения и обеспечения информационной безопасности компьютерных сетей.

Дмитрий Геннадьевич Леонов , Илья Давыдович Медведовский , Павел Валентинович Семьянов

ОС и Сети, интернет / Интернет / Книги по IT
Как раскрутить и разрекламировать Web-сайт в сети Интернет
Как раскрутить и разрекламировать Web-сайт в сети Интернет

Настоящая книга заинтересует всех, кто столкнулся с вопросами подготовки, размещения в Сети и популяризации Internet ресурсов различного уровня: от домашней странички до корпоративного сайта. В ней вы найдете все, что необходимо для оптимизации Web сайтов под поисковые системы: приемы написания Web-страниц, описание множества самых популярных специализированных программ, предназначенных для подготовки сайта и его раскрутки, создания удачного HTML-кода страниц с правильными метаданными.Книга является практическим руководством для разработчиков Web сайтов и всех, занимающихся их продвижением. Автор приводит множество советов, касающихся создания и анонсирования Web страниц. Рассмотрены средства автоматизации для повышения эффективности разработки и маркетинга при создании и обслуживании сайта. Описание программных и сетевых средств, автоматизирующих процессы тестирования и отладки сайта, обеспечивающих проверку работоспособности и корректности гиперссылок, синтаксиса HTML кода и грамматики размещенного на странице текста, занимает центральное место в книге. Подробно излагаются возможности таких программ, как Linkbot Developer Edition, Domain NameChecker, Retrieve, CyberSpyder Link Test, HTML Link Validator, CSE HTML Validator, A Real Validator, MetaTag ToolKit, MetaMan, WebQA.Отдельная глава посвящена регистрации Web ресурсов в поисковых системах и каталогах. Описываются программы автоматической регистрации (WebPosition, Page Promoter, Web Регистратор), способы взаимодействия с индексирующими роботами поисковых машин, правила применения метаданных. Рассматриваются приемы и методы рекламы сайтов в Internet, указаны критерии ее эффективности.Издание рассчитано на широкий круг читателей и будет полезно как начинающим создателям Web сайтов, так и профессионалам, которые хотят научиться более качественно продвигать в Сети свой Web продукт.

Александр Петрович Загуменнов

ОС и Сети, интернет