Основатель Signal: «Первые впечатления от web3»

0
169
Автор оригинала: Мокси «moxie» Марлинспайк

Несмотря на то, что я считаю себя криптографом, меня не особенно привлекает слово “крипто”. Не думаю, что я уже староват, но я гораздо чаще кликаю на мемы в духе “интернет всё помнит” о том, как “крипто” раньше означало “криптография”, чем на последние новости об NFT.

Говоря начистоту, я не разделяю восторгов поколения по поводу перехода всех аспектов жизни к экономике инструментов.

Хотя даже строго на технологическом уровне мне пока не удалось поверить в эти идеи. Поэтому, учитывая всё то внимание, которое в последнее время уделяется тому, что сейчас называют web3, я решил более тщательно изучить то, что происходит в этом пространстве, чтобы точно ничего не упустить.

Что я думаю о web1 и web2

Web3 — это несколько двусмысленный термин, что затрудняет проведение точной оценки того, каковы должны быть амбиции web3, но общий тезис, похоже, таков: web1 был децентрализован, web2 централизовал всё в платформы, а web3 снова всё децентрализует. Web3 должен дать нам все блага web2, но децентрализованно.

Наверное, неплохо было бы прояснить, почему централизованные платформы вообще возникли. На мой взгляд, объяснение довольно простое:

  1. Люди не хотят управлять своими собственными серверами и никогда не захотят.

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

    У каждого из нас был бы собственный веб-сервер с собственным сайтом, собственный почтовый сервер для собственной электронной почты, собственный сервер finger для собственных сообщений о статусе, собственный сервер chargen для генерации символов…

    Однако —, и не думаю, что это можно выразить ещё чётче, — это не то, чего хотят люди. Люди не хотят управлять собственными серверами.

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

  2. Протокол развивается гораздо медленнее, чем платформа.

    Спустя 30 с лишним лет электронная почта всё ещё остаётся незашифрованной; в то же время WhatsApp за год перешёл от отсутствия шифрования к полноценному e2ee. Люди всё ещё пытаются стандартизировать надёжную передачу видео через IRC; тем временем Slack позволяет вам создавать пользовательские эмодзи на основе вашего лица.

    Это не проблема финансирования. Что-то действительно децентрализованное тяжело модифицировать, и часто оно остаётся застывшим во времени. Это проблема для технологии — остальная часть экосистемы движется очень быстро, и если вы не поспеваете за ней, то потерпите неудачу. Существуют целые параллельные отрасли, сосредоточенные на определении и совершенствовании таких методологий, как Agile, чтобы попытаться понять, как организовать огромные группы людей так, чтобы они могли двигаться как можно быстрее. Потому что это критично.

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

Но web3 намерен быть другим, так что давайте поглядим. Для того чтобы быстро сориентироваться и понять, что может ждать нас в будущем, я решил создать несколько децентрализованных приложений (dApps), а также свой NFT.

Создавая распределённые приложения

Чтобы прочувствовать мир web3, я создал dApp под названием Autonomous Art, который позволяет любому человеку выпустить токен для NFT, добавляя свой рисунок к общему, делая тем самым некий “визуальный вклад” в него. Стоимость такого “визуального вклада” увеличивается со временем, а средства, которые платит вкладчик за минтинг (не путать с майнингом, прим. перевод.), распределяются между всеми предыдущими художниками. Визуально эта финансовая структура выглядит, как пирамида, а на момент написания этой статьи (7 января 2022) на создание этого коллективного произведения искусства было потрачено более 38 тысяч долларов США.

Я также создал dApp под названием First Derivative, который позволяет создавать, находить и обменивать производные NFT (деривативы), отслеживающие базовый NFT, подобно финансовым деривативам, отслеживающим базовый актив 😉.

И то, и другое дало мне представление о том, как тут всё работает. В самих приложениях нет ничего особенно “распределённого”: это обычные веб-сайты на React.js. “Распределённость” в них заключается в том, где хранятся состояние и логика/разрешения для изменения состояния: на блокчейне, а не в “централизованной” базе данных.

Одна вещь из мира криптовалют, которая всегда казалась мне странной, — это недостаток внимания к интерфейсу клиент/сервер. Когда люди говорят о блокчейне, они рассказывают о распределённом доверии, консенсусе без лидера и обо всей механике того, как это работает, но часто упускают из виду, что клиентские части в конечном счёте не могут участвовать в этой механике. Все сетевые схемы — это серверы. Модель доверия — между серверами. Всё связано с серверами. Между тем, Ethereum и другие блокчейны разрабатываются, как пиринговые сети, но они не предназначаются для того, чтобы ваше мобильное устройство или ваш веб-браузер действительно могли быть одним из пиров.

С повсеместным переходом на мобильные устройства мы теперь живём в мире клиентов и серверов, причём первые совершенно не могут действовать как вторые — и это в блокчейнах меня беспокоит сильнее, чем что-либо другое. Между тем, Ethereum фактически называет серверы “клиентами”, тем самым замалчивая вопрос о ненадёжном реальном интерфейсе клиент/сервер, который должен где-то существовать. Также нет признания факта того, что при успехе блокчейна, его клиентов будет на миллиарды (!) больше, чем серверов.

Например, независимо от того, работает ли приложение на мобильных устройствах или в Интернете, dApp вроде Autonomous Art или First Derivative должно как-то взаимодействовать с блокчейном, чтобы изменять или отображать текущее положение вещей (коллективно созданное произведение искусства, историю его редактирования, деривативы NFT и т.д.). Однако это невозможно сделать с клиента, поскольку блокчейн не может жить на вашем мобильном устройстве или в веб-браузере вашего компьютера. Поэтому единственная альтернатива — взаимодействовать с блокчейном через узел, который работает удалённо на каком-то сервере.

Сервер! Но, как мы знаем, люди не хотят запускать свои собственные серверы. Так получилось, что появились компании, которые продают API-доступ к узлам Ethereum в качестве сервиса, наряду с предоставлением аналитики, расширенного API (построенного поверх стандартного API Ethereum), а также доступа к истории транзакций. Звучит… знакомо. На данный момент существует, по сути, две компании. Почти все dApp’ы используют Infura или Alchemy для взаимодействия с блокчейном. На самом деле, даже когда вы подключаете к dApp кошелёк, например MetaMask, и dApp взаимодействует с блокчейном через ваш кошелёк, MetaMask под капотом просто выполняет запросы к Infura!

Эти клиентские API не используют ничего для проверки состояния блокчейна или подлинности ответов. Результаты даже не имеют подписи. Такое приложение, как Autonomous Art, говорит: “Эй, что выдаёт эта функция представления на этом смарт-контракте?”, а Alchemy или Infura отвечает JSON’ом, в котором говорится: “Вот результат запроса:…” и приложение отображает его.

Для меня это стало неожиданностью. Столько труда, энергии и времени было потрачено на создание механизма распределённого консенсуса без упования на доверие, но практически все клиенты, которые хотят получить к нему доступ, делают это, просто доверяя выходным данным этих двух компаний без какой-либо дополнительной проверки.

И с конфиденциальностью тоже не всё радужно. Представьте себе, что каждый раз, когда вы бы взаимодействовали с веб-сайтом в Chrome, ваш запрос сначала бы отправлялся в Google, а только затем к месту назначения и обратно. Такова ситуация с Ethereum сегодня. Очевидно, что все запросы на запись уже обнародованы на блокчейне, но эти компании также имеют возможность видеть почти все запросы на чтение от почти всех пользователей почти всех “децентрализованных” приложений (dApp).

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

Позвольте привести пример.

Создавая NFT

Я также хотел создать более традиционный NFT. Большинство людей при мысли о NFT думают о изображениях и цифровом искусстве, но NFT обычно не хранят эти данные в цепи (on-chain). Для большинства NFT представляющих изображения это было бы слишком дорого.

Вместо того, чтобы хранить данные в цепи, NFT содержат URL-адрес, указывающий на данные. Что меня удивило в таких стандартах, так это отсутствие проверки хэша для данных, расположенных по URL. Если посмотреть на многие NFT, которые продаются за десятки, сотни и миллионы долларов на популярных торговых площадках, этот URL часто просто указывает на какой-то VPS, на котором работает веб-сервер Apache. Любой человек, имеющий доступ к этой машине, любой, кто купит этот адрес в будущем, а также любой, кто скомпрометирует эту машину, может в любой момент изменить изображение, заголовок, описание и т.д. для NFT на то, что он захочет, независимо от того, “владеет” ли он этим токеном или нет. В спецификации NFT нет ничего, что говорило бы вам, каким “должно быть” изображение, или даже позволяло бы вам подтвердить, является ли изображение “корректным”.

Поэтому в качестве эксперимента я сделал NFT, который меняется в зависимости от того, кто на него смотрит, так как веб-сервер, который отдаёт изображение по URL может выбирать из разных вариантов в зависимости от IP или User-Agent запрашивающего. Например, изображение выглядело вот так для OpenSea (NFT маркетплейс) и вот так для Rarible (Другой NFT маркетплейс), но после его покупки и последующего просмотра из вашего криптокошелька, оно всегда отображалось как гигантское эмодзи 💩. Т.е. то, на что вы делаете ставку, не является тем, что вы получаете. В этом NFT нет ничего необычного, оно построено по спецификации. Многие из самых дорогих NFT могут превратиться в 💩 в любое время; я просто сделал процесс нагляднее.

Вид NFT на OpenSea
Вид NFT на OpenSea
Тот же NFT на Rarible
Тот же NFT на Rarible
Тот же NFT в кошельке MetaMask
Тот же NFT в кошельке MetaMask

Через несколько дней NFT, который я сделал, был удален из OpenSea без предупреждения или пояснения:

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

В заявлении говорится, что я нарушил условия предоставления услуг, но, прочитав их, я не вижу ничего, что запрещало бы такой NFT, который меняется в зависимости от того, откуда на него смотрят, и я открыто указывал об этом свойстве своего NFT в его описании.

Но что я нашёл наиболее интересным, так это то, что после того, как OpenSea удалил мой NFT, он также более не появлялся ни в одном криптокошельке на моём устройстве. Это же web3, как такое возможно?

Криптокошелёк, такой как MetaMask, Rainbow и т.д., является “некастодиальным” или “не хранимым” (ключи хранятся на стороне клиента), но у него та же проблема, что и у моих dApps выше: кошелёк должен работать на мобильном устройстве или в браузере.

Такой кошелёк, как MetaMask, должен делать базовые вещи: отображение баланса, недавних транзакций и приобретённых NFT; а также обладать и более сложным функционалом: создавать транзакции, взаимодействовать со смарт-контрактами и т.д.. Короче говоря, MetaMask должен взаимодействовать с блокчейном, но сам блокчейн построен так, что такие клиенты, как MetaMask, с ним взаимодействовать напрямую не могут. Поэтому, как и мой dApp, MetaMask достигает этой цели, делая вызовы к API пары-тройки компаний, укрепившихся в этой сфере.

Например, вот так MetaMask отображает ваши последние транзакции, совершая API вызов к Etherscan:

GET https://api.etherscan.io/api?module=account&address=0x0208376c899fdaEbA530570c008C4323803AA9E8&offset=40&order=desc&action=txlist&tag=latest&page=1 HTTP/2.0ы2.0

…так выводит баланс вашего аккаунта, делая запрос к API Infura:

POST https://mainnet.infura.io/v3/d039103314584a379e33c21fbe89b6cb HTTP/2.0

{
    "id": 2628746552039525,
    "jsonrpc": "2.0",
    "method": "eth_getBalance",
    "params": [
        "0x0208376c899fdaEbA530570c008C4323803AA9E8",
        "latest"
    ]
}

…а так выводит список ваших NFT, делая запрос к API OpenSea:

GET https://api.opensea.io/api/v1/assets?owner=0x0208376c899fdaEbA530570c008C4323803AA9E8&offset=0&limit=50 HTTP/2.0

Опять же, как и в моём dApp, эти ответы не проверяются каким-либо образом. Они даже не подписаны для того, чтобы вы могли позже доказать или опровергнуть их подлинность. Приложение повторно использует одни и те же соединения, тикеты TLS-сессии и т.д. для всех аккаунтов в вашем кошельке, поэтому если вы управляете несколькими аккаунтами в своём кошельке для поддержания некоторого обособления данных, то знайте, что компании, предоставляющие API кошельку, всё равно знают, что эти аккаунты связаны.

MetaMask на самом деле не делает ничего особенного, это просто просмотр данных, предоставляемых этими централизованными API. Это не проблема конкретно MetaMask — какие опции у них ещё остаются? Rainbow и прочие криптокошельки устроены точно также. Любопытно, но Rainbow также использует и хранит собственные данные для некоторых социальных функций, которые они встраивают в свой кошелёк — социальный граф, витрины и т.д., причём построено это всё на Firebase от Google, а не на блокчейне.

В общем, всё это означает, что если ваш NFT будет удалён из OpenSea, он также исчезнет из вашего кошелька. Функционально не имеет значения, что мой NFT находится где-то на блокчейне, потому что кошелёк (и всё больше и больше всего в экосистеме) просто использует API OpenSea для отображения NFT, который начал возвращать 304 No Content для запроса NFT, принадлежащих моему адресу!

Воссоздавая этот мир

Учитывая историю того, почему web1 стал web2, мне кажется странным то, что в web3 такие технологии, как Ethereum, были созданы с многими похожими недостатками, что были и у web1. Чтобы сделать технологии web3 пригодными к применению, их консолидируют вокруг… платформ. Снова за старое. Снова люди, которые будут запускать для вас серверы и итеративно разрабатывать новый функционал. Infura, OpenSea, Coinbase, Etherscan и т.п. в придачу.

Схожим с web1 образом, протоколы web3 развиваются медленно. При создании First Derivative было бы здорово установить цену минтинга деривативов, как процент от стоимости базового актива. Этих данных нет в блокчейне, но они есть в API, который OpenSea предоставит вам. Люди в восторге от отчислений (роялти) NFT, поскольку это может принести пользу авторам, но роялти не предусмотрены в ERC-721 и менять это уже поздно, поэтому у OpenSea есть свой способ задания роялти, который существует в пространстве web2. Быстрая разработка на централизованных платформах уже опережает распределённые протоколы и сосредотачивает управление в рамках платформ.

Учитывая эту динамику, я не думаю, что стоит удивляться тому, что мы уже находимся в том месте, где представление вашего криптокошелька о ваших NFT — это представление OpenSea о ваших NFT. И не думаю, что мы должны удивляться тому, что OpenSea не является чистым отображением данных, которое можно было бы легко заменить, поскольку они были заняты развитием платформы за пределы того, что было допустимо сделать с невозможными/трудноизменяемыми стандартами.

Я думаю, что это очень похоже на ситуацию с электронной почтой. Я могу запустить свой собственный почтовый сервер, но функционально это не имеет значения для конфиденциальности, цензуры или контроля — потому что GMail всё равно будет на другом конце каждого письма, которое я отправляю или получаю. Я могу создать свой собственный рынок NFT, но это не даст никакого дополнительного контроля, если OpenSea будет являться посредником при просмотре всех NFT в кошельках людей (и всех других приложениях в такой экосистеме). Как только распределённая экосистема централизуется вокруг платформы для удобства, она впитывает в себя худшее из двух миров — приобретая централизованный доступ, но сохраняя всё еще достаточно распределённую структуру, препятствующую быстрой итеративной разработке.

Это не жалоба на OpenSea и не осуждение того, что они создали. Как раз наоборот, они пытаются создать что-то работающее. Я думаю мы должны ожидать, что подобная консолидация платформ произойдёт, и, учитывая её неизбежность, мы должны создавать системы, которые дают нам то, что мы хотим при таком положении вещей. Однако я чувствую и беспокоюсь, что сообщество web3 ожидает какого-то другого результата, чем тот, что мы видим уже сейчас.

Всё только начинается

“Пока ещё рано о чём-то рассуждать” — это наиболее распространённый тезис, который я слышу от людей в сфере web3 при обсуждении подобных вопросов. В некотором смысле, неспособность криптовалюты выйти за рамки относительно молодой технологии позволяет считать эти дни “ранними”, хотя объективно говоря, прошёл уже десяток лет с лишним.

Однако, даже если это только начало (а это вполне может быть так!), я не уверен, что мы должны себя этим утешать. Я думаю, что всё может быть как раз наоборот; похоже, нам следует обратить внимание на то, что с самого начала эти технологии тяготели к централизации через платформы в рамках собственной реализации, что это имеет примерно нулевой негативный эффект на темпы развития экосистемы, и что большинство её участников даже не знают или не обращают внимания на то, что происходит. Это может навести на мысль, что сама децентрализация не имеет непосредственной практической или насущной значимости для большинства людей, что децентрализация нужна людям лишь в минимально достаточном объёме для существования чего-либо, и что если сознательно не учитывать эти наши стремления, то они будут толкать нас всё дальше от идеалов web3, а не приближать к ним по мере того, как дни будут становиться всё менее “ранними”.

Вы не остановите золотую лихорадку

Если задуматься, OpenSea действительно был бы намного “лучше” в прямом смысле слова, если бы из него убрали всё связанное с web3. Он был бы быстрее, дешевле для всех и проще в использовании. Например сейчас, чтобы принять ставку на мой NFT, мне пришлось бы заплатить более $80-150+ только за транзакционные сборы Ethereum. Это устанавливает искусственный порог для всех предложений, поскольку в противном случае вы потеряете деньги, приняв предложение за меньшую сумму, чем плата за транзакцию. Плата за оплату кредитной картой, которая обычно кажется вымогательством, выглядит дешёвкой по сравнению с этим. OpenSea могла бы даже публиковать простой журнал учёта, если бы люди хотели видеть публичную отчётность о транзакциях, предложениях, ставках и т.д. для верификации своей отчётности.

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

Людей в конце очереди, которые перепродают NFT, в принципе не волнуют модели распределённого доверия или механика платежей, но их волнует, где находятся деньги. Поэтому деньги притягивают людей к OpenSea, которая итеративно развивает базовые протоколы web3 в среде web2 и создаёт платформу, в конечном счёте предоставляющую возможность “минтить” NFT через сам OpenSea, а не через ваш собственный смарт-контракт, и как итог, всё это даёт возможность Coinbase предлагать доступ к проверенному рынку NFT с помощью своей собственной платформы через вашу дебетовую карту. Тем самым, для Coinbase открываются возможности по самостоятельному управлению токенами через специальные пулы, которыми владеет Coinbase, что избавляет от комиссий за транзакции и позволяет вообще не взаимодействовать со смарт-контрактами. В конце концов, всё связанное с web3 отпадает, и вы остаётесь с простым веб-сайтом для покупки и продажи JPG’шек с помощью вашей дебетовой карты.

Проект не может начаться как платформа web2 из-за текущей динамики крипторынка, но та же самая динамика рынка и глубинные тенденции к централизации, вероятно, приведут его к этому.

В конце концов, авторы NFT рады такому развитию событий, потому что это означает больше спекуляций/инвестиций в их искусство. Но мне также кажется, что если изначальный смысл web3 был в том, чтобы избегать недостатков web2, мы должны быть обеспокоены тем, что обратное стало естественной тенденцией для этих новых протоколов, которые должны были предложить другое будущее.

Я думаю, что эти рыночные механизмы, скорее всего, сохранятся, и, на мой взгляд, вопрос о том, как долго это будет продолжаться, — это вопрос о том, является ли огромное количество накопленной криптовалюты в конечном итоге двигателем или дуршлагом. Если деньги, проходящие через NFT, в конечном итоге возвращаются обратно в криптовалютное пространство, оно может продолжать разгоняться вечно (независимо от того, будет ли это просто web2x2 или нет). Если же движение иссякнет, то будет всплеск. Лично я думаю, что на данный момент было добыто достаточно денег и есть достаточное количество кранов, чтобы всё продолжалось, и простым всплеском тут не обойдётся. Если это так, то, похоже, стоит срочно подумать о том, как избежать превращения web3 в web2x2 (web2, но с ещё меньшей приватностью и конфиденциальностью)

Одной креативности может быть не достаточно

Я едва коснулся поверхности вод web3, но, глядя на него через призму моих небольших проектов, я могу легко понять, почему так много людей находят экосистему web3 такой привлекательной. Я не думаю, что это она избавит нас от централизованных платформ, я не думаю, что это фундаментально изменит наше отношение к самой технологии, но я также думаю, что текущий уровень приватности и безопасности уже ниже нормы для Интернета (а это довольно низкая планка!). Кроме того, я понимаю, почему ботаники вроде меня рады развивать всё это. Это, по крайней мере, что-то новое на уровне ботаников — и это создаёт пространство для творчества/исследований, которое в некоторой степени напоминает ранние дни Интернета.

По иронии судьбы, часть этого творчества вероятно проистекает из ограничений, делающих web3 таким неуклюжим. Я надеюсь, что творчество и исследования, которые мы наблюдаем, приведут к положительным результатам, но я не уверен, что этого будет достаточно, чтобы предотвратить повторение динамики развития Интернета на его заре.

Если мы действительно хотим изменить наше отношение к технологиям web3 и в целом, я думаю, мы должны делать это сознательно. Вот мои общие соображения на этот счёт:

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

    Это означает создание архитектуры, которая предвидит и принимает неизбежность относительно централизованных отношений клиент/сервер, но использует криптографию, а не инфраструктуру, для распределения доверия. Меня поражает то, что хотя web3 построен на “крипто”, криптография там практически не задействована!

  2. Мы должны уменьшать сложность создания программного обеспечения.

    На данный момент программные проекты требуют огромного количества человеческих усилий. Даже относительно простые приложения требуют, чтобы группа людей сидела перед компьютером по восемь часов в день, каждый день, вечно. Но было время, когда 50 человек, работающих над программой, не считались “маленькой командой”. Пока ПО требует такой согласованной энергии и такого большого количества узкоспециализированных человеческих усилий, я думаю, что оно будет иметь тенденцию служить интересам людей, сидящих в этой комнате каждый день, а не нашим более значимым целям. Я думаю, что изменение нашего отношения к технологиям, вероятно, потребует упрощения создания ПО, но всю свою жизнь я видел, как происходит обратное. К сожалению, я думаю, что распределённые системы склонны усиливать этот тренд, делая вещи более сложными и более трудными, а не наоборот.

gm!

Добавить комментарий