Оригинальный анализ исследования Web3.com Ventures
0xрышилософер

Введение
Учитывая недавний запуск основной сети Aptos и запуск токенов на Binance и других крупных централизованных биржах, сейчас самое время написать предварительный анализ этого долгожданного проекта. Осиротевший в результате попыток Meta создать криптовалюту Libra, Aptos продолжает идеал Libra — быть блокчейном, который привлечет следующий миллион пользователей криптовалюты.
Основной задачей Aptos является создание масштабируемого, безопасного и надежного блокчейна [1]. Для этого Aptos использует новый язык смарт-контрактов Move, который якобы является более «безопасным», чем нынешний «золотой стандарт» Solidity Ethereum. Конечно, Aptos — не первый блокчейн L1, который позиционирует себя как «масштабируемый, безопасный и надежный». Другие сети, в первую очередь Solana, в прошлом также пытались использовать этот лозунг в качестве своего лозунга, но с переменным успехом [2]. В этом эссе я попытаюсь начать с основных атрибутов языка Move, проанализировать технические основы Aptos в контексте других подобных проектов и дать критическую оценку потенциала и ограничений этой горячей новой цепочки.
Переместить язык
Вы не можете провести анализ Aptos без анализа Move Language. Действительно, возможно, именно здесь кроется большая часть потенциала Aptos. Первоначально Move был разработан командой Libra из Meta (теперь Diem) для предоставления парадигмально другой модели программирования смарт-контрактов по сравнению с другими языками смарт-контрактов; вместо использования подхода, основанного на транзакциях, Move использует подход, основанный на ресурсах, для определения моделей смарт-контрактов [3].
Так что же все это значит? Начиная с Биткойна, подавляющее большинство известных блокчейнов приняли подход «сначала транзакции», при котором каждая запись в блоке блокчейна является транзакцией (скажем, между Алисой и Бобом). Транзакция является относительным объектом; для того, чтобы произошла транзакция, должны существовать адреса Алисы и Боба. Чтобы гарантировать, что Алиса не «двойно тратит» монету при подходе, ориентированном на транзакцию, нам необходимо убедиться в отсутствии конфликта со всеми другими транзакциями, а это проблема, которая неизбежно замедляет транзакции.
С другой стороны, «ресурсный» подход Move кардинально отличается. Вместо записи строк транзакций A и B, Move записывает переход объекта (или ресурса) из рук в руки и просто обновляет атрибуты соответствующим образом. Важно отметить, что ресурсы являются атомарными сущностями — существование ресурса X не зависит от какого-либо другого существующего ресурса, в отличие от случая транзакций, где транзакция T зависит от существования двух предшествующих агентов, A и B. Таким образом, подход, основанный на ресурсах, позволяет создать гораздо более атомарную, независимую структуру, оптимизированную для параллельного выполнения.

«Ресурсы» в Move — это, по сути, объекты, имеющие определенные атрибуты. На техническом жаргоне это реализованные структуры (т. е. структура данных контейнера) [4]. На этом этапе у людей с опытом программирования на Ethereum может возникнуть вопрос: в Solidity также есть структуры, а также другие структуры данных. Что делает структуры в Move особенными? Я считаю, что самое важное отличие состоит в том, что, хотя структуры в Solidity занимают относительно второстепенную часть языка (в основном используются для ясности), структуры являются основой всего в Move. Более того, структуры Move имеют различные «способности», включая «копирование», «удаление», «сохранение» и «ключ», которые определяют, является ли объект дублируемым, сохраняемым, удаляемым и т. д. [5]. Этот вид обозначения структур полностью отличается от Solidity и большинства распространенных языков программирования (например, C/C++). Однако эти различные «способности» глубоко интуитивны. Некоторые вещи вы можете «скопировать», например монету или жетон. Некоторые вещи можно «бросить» или выбросить. Другие вещи, например уникальный цифровой актив, возможно, не удастся скопировать. Теперь рассмотрим следующее официальное определение «ресурса» в Move:
«Мы часто называем значения структуры ресурсами, если их нельзя скопировать или удалить». — Структуры и ресурсы, документация по перемещению языка [4]
Таким образом, «ресурсы» — это, по сути, уникальные «структуры», которые всегда будут рядом с вами. Как романтично.
Полное переопределение «структуры» в Move позволяет использовать одну структуру данных для краткого определения токенов, NFT, смарт-контрактов и других цифровых активов с помощью чистого модульного подхода [6]. Это то, с чем EVM Ethereum просто не может сравниться; Любой, у кого есть некоторый опыт разработки с использованием EVM, знает, как неприятно иметь дело со структурами (и вложенными структурами) в Solidity.
Важно отметить, что подход Move, основанный на ресурсах, обеспечивает гарантии безопасности. Как упоминается в официальном документе Move, во многих программах существует косвенное представление активов, а это означает, что их дефицит и контроль доступа не масштабируются. Например, хотя дефицит Эфира жестко запрограммирован и защищен EVM, другие токены ERC-20 «не наследуют эту защиту, они должны быть осторожны, чтобы не вводить ошибки, которые допускают дублирование, повторное использование или потерю активов» [4]. Рассмотрим классическую атаку повторного входа. Это то, что уже давно преследует проекты EVM, часто приводя к потерям миллионов и миллионов долларов [7]. Из-за ресурсного подхода Move повторная атака на Move невозможна. Таким образом, барьер для входа в кодирование Move, возможно, намного более доступен, чем EVM — решающий фактор для массового внедрения.
Аптос — Технические принципы
Пожалуй, самое большое достижение Aptos — это просто вывод Move как языка на рынок. ****Действительно, большая часть дизайна Aptos взята непосредственно из блокчейна Diem (Libra), разработанного Meta. Напомним, что Aptos — это сеть, в которой упор делается на масштабируемость и безопасность. Для достижения этой цели используются две основные технические реализации. Первый находится на уровне консенсуса, а именно в механизме консенсуса AptosBFT. Второй — уровень исполнения, или механизм исполнения Block-STM. Давайте рассмотрим их по порядку.
Во-первых, AptosBFT — это византийский отказоустойчивый механизм консенсуса, что по сути означает, что он может продолжать гарантировать безопасность до тех пор, пока не более 1/3 узлов в сети являются злоумышленниками [8]. Это стандартная практика: «Доказательство работы» Биткойна, «Доказательство доли» в Эфириуме и т. д. — все они являются византийскими отказоустойчивыми. Так как же AptosBFT на самом деле реализует свой механизм консенсуса? Как и все другие цепочки Proof-of-Stake, Aptos опирается на «заставленные» узлы-валидаторы. Он реализует вариант алгоритма консенсуса HotStuff, современного алгоритма PoS, который предлагает гораздо более чистый протокол связи между узлами по сравнению с более ранними моделями (например, pBFT), заставляя узлы общаться с «сменяющимся лидером», а не с каждым другим узлом [9]. ]. Хотя AptosBFT вводит несколько оптимизаций поверх HotStuff, в первую очередь «механизм ротации ключей» (для повышения безопасности) и сокращение накладных расходов (для повышения масштабируемости), в конструкции PoS HotStuff нет серьезных структурных изменений [10].

С другой стороны, механизм параллельного выполнения Block-STM представляет собой гораздо более оригинальную конструкцию и, возможно, является основным техническим прорывом проекта [11]. Напомним, что ресурсы атомарны — переход определенного ресурса X не зависит ни от какого другого ресурса. Группируя транзакции в блоки (например, детали LEGO), мы можем использовать мощный параллелизм при выполнении транзакций с ресурсами, получая 20-кратное увеличение скорости вычислений по сравнению с Ethereum [11].
Но как это соотносится с Solana и другими механизмами параллельного выполнения? Основное нововведение Solana заключалось в жестком кодировании всех зависимостей смарт-контрактов, чтобы обеспечить возможность параллельного выполнения. Зная заранее все зависимости, механизм выполнения Solana может затем заблокировать необходимые зависимости перед выполнением. С другой стороны, Aptos управляет зависимостями «на лету», сначала выполняя все транзакции «оптимистично», а в случае сбоя повторно выполняя те конкретные транзакции, которые потерпели неудачу [12].

Давайте воспользуемся простой аналогией, чтобы объяснить вышесказанное. Эфириум — это однополосная дорога, по которой все автомобили должны двигаться в одну линию друг за другом, тогда как Солана и Аптос — это четырехполосные скоростные дороги. Это явно ускоряет процесс. Но вопрос в том, как автомобили едут по скоростной автомагистрали? В случае с Соланой каждой машине по сути назначена определенная полоса, и она всегда будет двигаться по ней. В лучшем случае это очень быстро и эффективно, но если процесс назначения пойдет не так, как надо, худший сценарий будет очень плохим. С другой стороны, в случае с Aptos машинам сначала выделяются некоторые полосы, но если это не помогает, то машинам разрешается свернуть на другие полосы, чтобы предотвратить аварии. Таким образом, хотя в лучшем случае Aptos может работать не так быстро, как Solana, он более надежен, чем Solana, и имеет лучший сценарий в худшем случае [13].
Оценка — потенциал и ограничения
Aptos в настоящее время является первой и единственной крупной сетью L1 на основе Move, которая запустила основную сеть. Таким образом, выпуск основной сети Aptos является невероятно символичным событием; деньги и внимание средств массовой информации, которые привлекла Aptos, не обязательно соизмеримы с присущими ей техническими инновациями.
Как упоминалось выше, основная техническая инновация, которую внесла сама Aptos, заключается в механизме параллельного выполнения Block-STM. Большинство других технических аспектов, включая механизм консенсуса и использование языка Move, представляют собой незначительно улучшенные устаревшие продукты, унаследованные от Meta [14]. Что касается механизма параллельного выполнения Block-STM, неясно, приведет ли это к качественной разнице между пользовательским опытом Aptos и пользовательским опытом Solana; если пользовательский опыт одинаков, пользователю будет все равно, как это реализовано на техническом уровне.
Как и в случае с любым инфраструктурным проектом, долгосрочный успех Aptos зависит от того, какие проекты решат на его основе построить. В настоящее время проекты в его экосистеме, такие как Liquidswap DEX, торговая площадка Topaz NFT и доменная служба Aptos Names, хотя и являются необходимыми продуктами в любой блокчейн-экосистеме, не являются достаточно уникальными для дизайна Aptos [15]. Эти проекты подобны продуктовому магазину, школе и больнице в маленькой деревне. Хотя они необходимы для функционирования деревни, они не придают деревне какого-либо уникального характера, которого нет ни в одной другой деревне.
Оглядываясь назад, можно сказать, что часть успеха Соланы можно отнести на счет таких проектов, как StepN, которые действительно смогли использовать преимущество Соланы в виде параллелизма. Эти проекты GameFi и SocialFi часто включают в себя большие объемы параллельных данных, которые относительно изолированы. Таким образом, эти приложения уникально подходят для механизмов параллельного выполнения, таких как Aptos и Solana, а также способны обеспечить большую потребительскую базу и большой объем транзакций. Действительно, в какой-то момент только на StepN приходилось около 20% платных пользователей Solana [16].
Таким образом, чтобы Aptos преуспел в качестве инфраструктурного проекта, необходим уникальный набор проектов, которые в значительной степени используют преимущества механизма параллельного выполнения Aptos, проектов, которые невозможно реализовать на Ethereum или даже Solana. Благодаря новому дизайну Aptos Block-STM они потенциально могут принять форму нового класса проектов SocialFi, в которых пользователи взаимодействуют в небольших группах (например, в групповых чатах). Поскольку эти группы могут быть гибкими и динамичными, а также в некоторой степени независимыми друг от друга, они гораздо больше подходят для механизма параллельного выполнения Aptos, чем для Solana или Ethereum. Но, конечно, это всего лишь абстрактное предположение.
Тем не менее, запуск основной сети Aptos по-прежнему остается невероятно важным и символическим событием в мире криптовалют. Он представляет собой кульминацию многолетних усилий инженеров Meta по воплощению в жизнь качественно иной парадигмы решения узкого места масштабируемости Ethereum. Уникальные особенности языка Move означают, что неизбежно появятся DApps, которые гораздо лучше реализовать на Move, чем на Solidity или других языках смарт-контрактов. Но будут ли эти проекты обязательно реализованы в экосистеме Aptos? Никто не знает. Aptos может воспользоваться некоторыми преимуществами первопроходца, поскольку сможет запустить Move в производство и связать свое название с языком Move. Но в то же время он вполне может пострадать от судьбы первопроходца, подобной MySpace.
По крайней мере одно можно сказать наверняка: Aptos, возможно, станет первым экспериментом рынка с Move, но уж точно не последним [17].
🐦 @0xfishylosopher
📅 22 октября 2022 г.
Отказ от ответственности: Это исследование предназначено только для информационных целей. Он не является инвестиционным советом или рекомендацией покупать или продавать какие-либо инвестиции и не должен использоваться при оценке целесообразности принятия какого-либо инвестиционного решения.
Рекомендации
[1] См. главную страницу Aptos Labs: https://aptoslabs.com/.
[2] Знакомство с Solana: https://www.forbes.com/advisor/investing/cryptocurrency/what-is-solana/
[3] Технический документ по перемещению языка: https://diem-developers-comComponents.netlify.app/papers/diem-move-a-language-with-programmable-resources/2020-05-26.pdf.
[4] Переместить документацию разработчика для структур и ресурсов: https://github.com/move-language/move/blob/main/language/documentation/book/src/structs-and-resources.md.
[5] Подробная информация о возможностях структур: https://move-language.github.io/move/abilities.html.
[6] См. руководство по перемещению языка: https://101blockchains.com/move-programming-language-tutorial/.
[7] https://blog.chain.link/reentrancy-attacks-and-the-dao-hack/
[8] Подробности о византийской отказоустойчивости: https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained.
[9] Консенсусная модель HotStuff: https://hackernoon.com/hotstuff-the-consensus-protocol-behind-safestake-and-facebooks-librabft.
[10] Консенсус AptosBFT: https://blog.pontem.network/aptosbft-all-you-need-to-know-about-the-bft-consensus-in-aptos-ff4cf22c7a80
[11] См. технический документ Block-STM: https://arxiv.org/abs/2203.06871.
[12] Сравнение механизмов выполнения Aptos и Solana: https://www.gofyeo.com/post/aptos-vs-solana-a-technical-comparison-part-1.
[13] Анализ наихудшего случая Aptos как O(n²), Solana как O(n⁴). Подробности: https://antiape.substack.com/p/cf40447d-d674-4454-9e09-f003517de6de?s=r
[14] См. технический документ Aptos: https://aptos.dev/assets/files/Aptos-Whitepaper-47099b4b907b432f81fc0effd34f3b6a.pdf.
[15] Экосистема Aptos: https://coinmarketcap.com/alexandria/article/what-is-aptos-the-ultimate-guide-to-the-aptos-ecosystem.
[16] Из Твиттера Messari Crypto: https://twitter.com/MessariCrypto/status/1567880625218019333
[17] См. Sui, еще один язык, основанный на Move: https://sui.io/