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

эфира получила название Finney в честь Хэла Финни, одного из разработчиков

криптографического PGP-протокола и контрагента Сатоши Накамото по самой

первой сделке в сети Биткоин в январе 2009 года.

Еще одним важным отличием от биткоинов является то, что эмиссия эфиров

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

быть подвержена инфляции в будущем. Когда Виталик Бутерин представлял

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

монет эфира, выручив за них биткоины на сумму примерно $18,5 млн. Еще

около 12 млн монет эфира Бутерин поместил в резервы для будущего

финансирования развития проекта. Подобный единовременный выпуск монет

обычно называют премайнингом.

Сама платформа была запущена 30 июля 2015 года. С тех пор за прошедшие

без малого четыре года при помощи уже обычных процедур майнинга было

проведено эмиссий на чуть более чем 30 млн монет. Таким образом, их общее

количество превысило 100 млн с совокупной текущей капитализацией чуть

менее $20 млрд. По своей популярности эфиры прочно удерживают второе

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

всех биржах, предлагающих услуги по торговле криптовалютами. Если биткоин

обычно называют «криптовалютным золотом», то эфиру достался титул

«серебро».

Каждый день в мире совершается свыше полумиллиона транзакций в сети

Ethereum. Если обратиться к принципу учета балансов монет на адресах

системы, то здесь возникает еще одно важное отличие от сети Биткоин. Как

известно, транзакции в блокчейн представляют собой цепочки электронных

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

будут являться актуальным балансом адреса. Этот принцип называется UTXO, или «учет непотраченных транзакционных выходов», и мы уже уделяли

некоторое время его рассмотрению. В сети Ethereum решили, что будет

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

Этот способ учета хотя и требует дополнительного хранения определенного

объема данных, но все же несравнимо удобнее принципа UTXO, при котором

нужно постоянно получать актуальные состояния адресов через расчеты.

Одновременно с этим принцип хранения актуальных состояний позволил

разработчикам ввести в платформу Ethereum уникальный на момент ее

появления функционал смарт-контрактов, который, собственно, и стал главным

ценностным предложением проекта. Что же такое смарт-контракты и каким

образом их реализация в сети Ethereum повлияла на развитие технологии

блокчейн в целом?

Смарт-контракты

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

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

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

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

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

Фактически это была упрощенная форма языка программирования стекового

типа, когда все его команды обрабатываются в порядке очереди «слева

направо от того, как они были указаны в самом скрипте».

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

элементарной, вроде сравнения двух числовых значений, до более сложных —

хеширования данных или алгоритма проверки цифровой электронной подписи.

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

транзакции помещается стандартный скрипт под названием P2PKH, или Pay to Public Key Hash. Этот скрипт реализует процедуру оплаты на хеш публичного

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

Для обработки нестандартных платежных ситуаций отправитель может

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

обработки транзакции. Хотя, надо сказать, выбор у него небогатый. Например, имеется возможность реализовать функционал мультиподписи или сделать

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

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

конструкций для обработки транзакций с дополнительным набором условий

подобными средствами создать практически невозможно. И дело не только в

ограниченном наборе команд биткоин-скрипта, а в первую очередь в том, что

данный язык является «неполным по Тьюрингу». Что это означает?

В 1936 году Алан Тьюринг, будущий герой криптографической войны с

германским шифровальным устройством «Энигма», предложил модель

вычислительной машины в форме математической абстракции. Полученную

модель впоследствии стали называть «Машиной Тьюринга». Эта логическая

вычислительная конструкция послужила инструментом для доказательства

наличия или отсутствия алгоритмического решения для различных задач. Что

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

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