Книги

Больше денег: что такое Ethereum и как блокчейн меняет мир

22
18
20
22
24
26
28
30

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

Приложение

Вайтпейпер Ethereum: платформа следующего поколения для смарт-контрактов и децентрализованных приложений

Создание биткойна Сатоши Накамото в 2009 году часто воспринимают как радикальный поворот в развитии денег и валют, поскольку это первый пример цифрового актива, одновременно ничем не подкрепленного, то есть не имеющего «внутренней стоимости», и не подразумевающего центрального эмитента или контролирующего органа. Однако существует и другая, возможно, более важная часть эксперимента Сатоши: сама технология блокчейна как инструмент распределенного консенсуса. И все чаще именно этот аспект биткойна попадает в центр внимания. Среди альтернативных применений этой технологии обычно выделяют использование цифровых активов внутри блокчейна для кастомных валют и финансовых инструментов («цветные монеты»); подтверждения владения каким-либо устройством («умная собственность»); невзаимозаменяемых активов вроде доменных имен («Namecoin»); а также более продвинутых приложений – «смарт-контрактов», где цифровые активы контролируются кодом, работающим по произвольным правилам, и даже основанных на блокчейне «децентрализованных автономных организаций» (ДАО).

ВВЕДЕНИЕ В БИТКОЙН И СУЩЕСТВУЮЩИЕ КОНЦЕПЦИИ

История

Концепция децентрализованной цифровой валюты, а также альтернативных приложений вроде реестров собственности витала в воздухе десятилетиями. Анонимные протоколы «электронного кэша» 1980‐х и 1990‐х, которые опирались в основном на широко известное в криптографии понятие «слепой подписи», могли обеспечить валюту высокой степени анонимности, но принципиально зависели от централизованного посредника, из-за чего идея так и не получила развития. Представленная в 1998 году Вэй Даем концепция b-money впервые заявила идею децентрализованного соглашения между участниками, а также идею создания денег посредством решения вычислительных задач. Однако он не углублялся в детали того, как конкретно можно было бы реализовать это децентрализованное соглашение. В 2005 году Хэл Финни предложил криптовалюту с алгоритмом reusable proofs of work, которая использует идеи b-money вместе с алгоритмом Hashcash Адама Бэка, требующим сложных вычислений. Но и она была далека от идеала из-за необходимости в посреднике, которому пользователи должны были доверять. В 2009 году Сатоши Накамото выпустил первую децентрализованную валюту: он объединил уже существующие методы управления собственностью, использующие криптографию с публичным ключом, и алгоритм консенсуса для отслеживания того, кому принадлежат монеты, известный как proof-of-work («доказательство выполненной работы»).

Механизм, лежащий в основе proof-of-work, стал прорывом в этой области, поскольку одновременно решал две проблемы. Во-первых, он предоставил простой и в меру эффективный алгоритм консенсуса, позволяющий нодам сети коллективно согласовывать набор канонических обновлений состояния реестра Bitcoin. Во-вторых, он обеспечил механизм, позволяющий свободно участвовать в процессе достижения консенсуса, решая политическую проблему определения того, кто будет влиять на консенсус, и одновременно предотвращая атаки Сивиллы. Это достигается путем замены формального барьера для участия, например требования быть зарегистрированным в качестве уникального объекта в определенном списке, на экономический барьер – вес одной ноды в процессе консенсусного голосования прямо пропорционален вычислительной мощности, которую она предоставляет. После этого появилась идея альтернативного подхода под названием proof-of-stake, где вес ноды рассчитывается пропорционально ее валютным запасам, а не вычислительным мощностям. Выявление относительных достоинств каждого из этих подходов выходит за рамки этой статьи, но следует отметить, что оба можно использовать в качестве основы криптовалюты.

Биткойн как система изменения состояний

С технической точки зрения реестр криптовалюты вроде биткойна можно воспринимать как систему изменения состояний. «Состояние» описывает, как распределены все существующие биткойны между различными адресами, а «функция изменения состояния» анализирует состояние и транзакцию, чтобы выдать новое состояние. Например, в стандартной банковской системе состояние – список балансов каждого из клиентов, транзакция – запрос о переводе $х от A к B, и функция изменения состояния уменьшает значение на счете A на $х и увеличивает значение на счете B на $х. Если на счете A меньшая сумма, чем $х, функция изменения состояния возвращает ошибку. Формально это выглядит так:

APPLY(S,TX) – > S’ or ERROR

В банковской системе, описанной выше:

APPLY([ Alice: $50, Bob: $50 ],”send $20

from Alice to Bob”) = [ Alice: $30, Bob: $70 ]

Но:

APPLY([ Alice: $50, Bob: $50 ],”send $70

from Alice to Bob”) = ERROR

«Состояние» системы Bitcoin – множество всех добытых и пока не потраченных монет (технически – «выход неизрасходованных транзакций» или UTXO (unspent transaction output), где у каждого UTXO указаны достоинство и владелец (последний обозначен 20-байтовым адресом, который по сути является криптографическим публичным ключом[112]). У каждой транзакции есть один или больше «входов», и каждый из входов содержит указание на имеющиеся UTXO и криптографическую подпись, созданную приватным ключом, связанным с адресом владельца. Выходов тоже может быть один или несколько, и каждый выход содержит новые UTXO, которые нужно добавить к состоянию.

Принцип работы функции изменения состояния APPLY(S,TX) – > S’ выглядит так.

1. Для каждого входа в TX: