нее. И каждая перекрывающаяся логическая взаимозависимость повышает вероятность ошибок. Больше кодов – больше недочетов.
Эффективный способ решения этой проблемы – в использовании механизма программирования под названием «инкапсуляция». Она снижает сложность за счет ограничения единиц кода в рамках четко определенных интерфейсов, что позволяет существенно упростить использование кода. Если это звучит очень уж непривычно, вспомните пример из физического мира – электрическую розетку, устройство настолько простое, что люди пользуются им практически не задумываясь.
Любой может воткнуть штепсель в розетку и, получив доступ к электричеству, включить сколько угодно единиц бытовой техники: лампы и ноутбуки, сигнализацию и кондиционеры, кофеварки и камеры, блендеры и фены, игровые приставки разных моделей и т. д. и т. п. Розетки открывают доступ к огромному потенциалу электросети и снабжают людей супермощностью. Для этого никому не нужно особо разбираться в том, что происходит по обе стороны пластмассового квадратика с дырочками посередине. Это устройство абстрагировано от деталей. Значение имеет только интерфейс – инкапсуляция.
Поскольку ПО отличается невероятной гибкостью, инкапсулированный код обеспечивает еще одно важное преимущество: его легко использовать заново. Инкапсулированные коды похожи на «кирпичики» в Lego. Их можно объединять в блоки и строить из них гораздо более крупные и впечатляющие конструкции. Инкапсуляция особенно полезна, если софт разрабатывается большими группами программистов, что, собственно, относится к большинству современных программ. Скажем, один разработчик создает несколько таких «кирпичиков» Lego: базовые части программ, которые могут, например, хранить данные, извлекать их или манипулировать ими, получать доступ к различным сервисам, например электронной почте или электронным платежам. Другие программисты потом берут эти компоненты и тоже используют их, при этом ни одной из сторон не нужно в деталях понимать, что делает другая. «Кирпичики» и без того отлично встают на нужные места.
В случае с блокчейнами ключевая упрощающая концепция – единицы учета (собственности), называемые токенами. Люди часто воспринимают их как цифровые активы или валюты, но более точное определение описывает их как структуры данных, которые могут отслеживать количества, разрешения и другие метаданные для пользователей в блокчейне. Если это звучит слишком абстрактно, то все потому, что токены и есть абстракция. Именно это делает их простыми в использовании и для программирования. Токены инкапсулируют сложный код в несложную оболочку, так же как электрическая розетка.
Фактически то, что такое токены, куда менее важно, чем то, что они делают.
Токены могут символизировать право собственности на все цифровое: деньги, произведения искусства, фотографии, музыку, текст, коды, игровые элементы, право голоса, доступ и все, что мы еще придумаем в будущем. А при использовании дополнительных «строительных блоков» они могут представлять еще и вещи из реального мира, такие как физические товары, недвижимость или деньги на банковском счете. Все, что программисту удастся отобразить в коде, можно «завернуть» в токен, который потом легко купить, продать, использовать, сохранить, передать… словом, сделать с ним что угодно. Если это звучит слишком просто, даже тривиально, то все потому, что так оно и задумывалось. Простота – величайшее благо.
Токены позволяют людям чем-то владеть, а это означает контроль. Токены на традиционных компьютерах, например гипотетические монеты GoogleCoin из обсужденного выше примера, можно при желании забрать или каким-то образом изменить, что подрывает контроль пользователя. Только токены, работающие на компьютерах, способных взять на себя твердые обязательства относительно своего будущего поведения, – речь, конечно же, о блокчейнах, – раскрывают истинный потенциал этой замечательной технологии.
Возьмем, например, видеоигры. Цифровые объекты и виртуальные товары существуют в компьютерных мирах уже много лет. Популярные игры, такие как Fortnite и League of Legends, приносят миллиарды долларов в год на продаже виртуальных товаров, в том числе разных украшений для аватаров игроков[138]. Такие цифровые товары не покупают, их заимствуют. Пользователи в этой сделке становятся арендаторами. Компания, создавшая игру, может в любой момент удалить любой элемент или изменить условия заимствования. А вот пользователи не могут ни передать их вне игры, ни перепродавать. Они неспособны сделать с ними ничего, что в человеческом понимании ассоциируется с собственностью. Всем заправляет истинный собственник – платформа. Если ценность предмета повышается, пользователь не получает вознаграждения. И игры почти всегда со временем сходят на нет или закрываются, а вместе с ними уходят в небытие и виртуальные товары.
То же относится и к большинству популярных соцсетей. Как мы уже говорили, пользователи – не собственники своих имен и подписчиков. Ими владеют платформы. Приведу пару примеров решительных и безапелляционных действий крупных технологических компаний из недавнего прошлого. Когда Facebook♦ в октябре 2021 года ребрендировалась в Meta♦, она через несколько дней отозвала аккаунт @metaverse у художника в Instagram♦[139]. (После массовых возмущений и статьи в New York Times Meta♦ восстановила учетную запись.) А когда Twitter в 2023 году сменила название на X, она попросту реквизировала дескриптор @x у участника сети, который пользовался им до этого не один год[140]. И подобные бесчинства творятся постоянно. За другими примерами далеко ходить не надо. Достаточно вспомнить о политиках, активистах, ученых, исследователях, знаменитостях, общественных деятелях и прочих пользователях, которых отлучили от корпоративных сетей[141]. Компании, контролирующие их, имеют полный контроль над учетными записями, рейтингами, социальными отношениями и многим другим. Право собственности пользователя в корпоративных сетях – чистая иллюзия.
Блокчейны же передают контроль ПО, управляемому неизменным кодом, а не людьми, и тем самым делают собственность реальностью. Благодаря токенам, своего рода «строительным блокам», они вооружают концепцию собственности когтями и зубами.
Аналогичную роль на этапе зарождения Веба сыграла концепция сайта. Основополагающая идея Веба заключалась в создании моря информации, объединяемой ссылками и контролируемой множеством разных людей. Это было мощное и амбициозное видение с немалой вероятностью безнадежно увязнуть в сложности. Но сайты были разработаны как простые единицы, способные стать основой более сложных конструкций; это «строительные блоки», из которых при желании можно построить цифровой эквивалент большого города.
Эпоха интернета «Читай» определялась сайтом, который инкапсулирует информацию. Эпоха «Читай. Пиши» – постом, который позволяет инкапсулировать публикацию контента, упрощая задачу охвата широкой аудитории для всех, а не только веб-разработчиков. Текущая фаза развития интернета – эпоха «Читай. Пиши. Владей» – определяется новой упрощающей концепцией: токенами, которые инкапсулируют право собственности.
Токены, хотя они и кажутся несложными, не стоит считать чем-то упрощенным. Это всеобъемлющая технология бывает двух основных типов: взаимозаменяемые, такие как биткойн и эфир, и невзаимозаменяемые, известные как NFT.
Взаимозаменяемые токены – ну… взаимозаменяемы. Один токен в наборе взаимозаменяемых можно обменять на любой другой в том же наборе, как яблоки – на яблоки. Деньги, например, тоже взаимозаменяемы. Если у вас есть сотня, вам все равно, какая у вас купюра, – это же все равно определенная сумма[142].
В случае с NFT каждый токен уникален, так же как уникальны многие объекты в физическом мире. На моей полке стоят разные книги – разные названия, разные авторы, – и, хотя все это книги, одна не заменит другую.
Взаимозаменяемые токены применяются по-разному. Наиболее известный вариант – как способ для ПО хранить деньги и контролировать их. В традиционном финансовом компьютерном приложении деньги не хранятся. В нем есть ссылки на деньги, а сами купюры находятся где-то в другом месте, скажем, в банке. Деньги, которые хранятся и контролируются софтом, – принципиально новая концепция, которой до появления блокчейнов просто не существовало.
Самый известный пример взаимозаменяемого токена – криптовалюта, например биткойн. Во многих публичных дискуссиях на эту тему ошибочно предполагается, будто криптовалюты – основное применение блокчейнов. Путаницу еще больше усугубляют знаменитые голоса, которые сегодня упорно пропагандируют биткойн как альтернативу деньгам, контролируемым государством. В результате многие ошибочно ассоциируют блокчейны и токены с либертарианством, хотя эти технологии, по сути, политически нейтральны.
На самом деле криптовалюта представляет собой лишь один из множества способов применения блокчейнов и токенов. Например, взаимозаменяемые токены могут также использоваться для репрезентации национальных валют. Люди называют такие привязанные к валюте токены стейблкоинами (стабильными монетами), поскольку они, как правило, менее волатильны, чем другие токены[143]. Кстати, еще одно весьма распространенное ныне заблуждение заключается в том, что стейблкоины несут угрозу статусу доллара США как мировой резервной валюты. На самом деле, похоже, все как раз наоборот. Спрос на интернет-доллары настолько велик, что большинство эмитентов стейблкоинов сделали выбор в пользу привязки своих токенов к доллару США. Конгрессмен США Ричи Торрес (Демократическая партия, штат Нью-Йорк), член Комитета Палаты представителей США по финансовым услугам, утверждает, что эта технология «укрепляет доллар США, а не бросает вызов его превосходству» и что она «позволила США опередить такие страны, как Китай, в сфере цифровых валют даже без CBDC» (это аббревиатура от central bank digital currency, «цифровая валюта центрального банка»)