Видение Aptos
Автор: Эйвери Чинг
Как указано в The Genesis of Aptos , наша миссия — обеспечить универсальный и справедливый доступ к децентрализованным активам для миллиардов людей. Стек web3 обширен и богат: от платформ смарт-контрактов до инфраструктуры и инструментов для разработчиков, кошельков и децентрализованных приложений. В ближайшие годы мы рассчитываем построить и сотрудничать с участниками экосистемы, чтобы улучшить все пространство. Путь Aptos начинается с работы с децентрализованным сообществом для развертывания безопасной, масштабируемой и обновляемой платформы смарт-контрактов.
Сегодня в производстве развернуто множество платформ смарт-контрактов, каждая из которых имеет свои уникальные преимущества и недостатки. Мы считаем, что существует потребность в быстро меняющемся и адаптируемом блокчейне, чтобы удовлетворить потребности миллиардов людей сегодня и в будущем.Мы считаем, что пользовательский опыт нуждается в значительном улучшении безопасности и масштабируемости, чтобы охватить массы.(особенно не крипто-аборигены). За последние три года наша команда смогла исследовать и разрабатывать инновационные идеи (см. ссылки ниже с нашими многочисленными публикациями) и безопасно внедрять их в производственные среды. Ниже мы кратко описываем наши планы и то, как мы будем поддерживать частые и быстрые обновления сети. В ближайшие месяцы мы поделимся серией подробных обзоров и сопутствующих технических документов как по текущим, так и по новым инициативам, направленным на достижение наших целей.
Безопасность и охрана
Миллиарды интернет-пользователей уже знакомы с покупкой товаров и услуг и обменом или хранением стоимости. Чтобы ускорить внедрение Web3 для пользователей Интернета, нам нужен ряд достижений на уровне блокчейна, которые могут еще больше улучшить остальную часть стека Web3. Ниже приведены некоторые из текущих направлений деятельности нашей команды, направленные на обеспечение безопасности и надежности.
Язык перемещения: безопасный и гибкий язык блокчейна
Язык Move разработан для безопасного управления ресурсами и проверяемого выполнения в блокчейне. Выполнение транзакций является детерминированным, герметичным и дозированным. Детерминированный и герметичный означает, что результат выполнения транзакции полностью предсказуем и основан только на информации, содержащейся в транзакции, и текущем состоянии реестра. Измерение — важная защита от атак типа «отказ в обслуживании» на уровне выполнения транзакции. Доказательство движенияможет формально проверять свойства модулей Move с помощью выразительного языка спецификаций и достаточно быстр, чтобы выполняться как часть непрерывных интеграционных тестов. Перемещайте ресурсы, вдохновленные линейными типами, статически гарантируйте, что ресурсы сохраняются, а не копируются или случайно уничтожаются, полностью избегая целого класса потенциальных атак. Наш блокчейн и язык Move были разработаны одновременно более трех лет назад. Учетные записи, комиссии за транзакции, стандартная библиотека, управление узлами валидации и конфигурация — все это реализовано с помощью Move. Нам нравится безопасность Move, и мы рады помочь создать обширную экосистему вокруг него.
Консенсусный протокол BFT производственного уровня с высокой степенью надежности
Наша команда разработала механизм Byzantine Fault Tolerant (BFT) промышленного класса с малой задержкой. За последние три года мы внедрили четвертую итерацию протокола (самого передового производного от HotStuff ). За это время мы обновили протокол консенсуса в частной среде основной сети с разнообразным набором операторов и нулевым временем простоя. Наша первая реализация протокола BFT добавила активный кардиостимулятор, который использовал тайм-ауты для синхронизации валидаторов гораздо быстрее, чем ожидание увеличения тайм-аутов. Благодаря нашему последнему усовершенствованию протокола блоки фиксируются всего за два сетевых обхода, что делает завершение менее чем за секунду обычным случаем. Наша новая система репутациианализирует состояние в сети и автоматически обновляет ротацию лидеров, чтобы приспособиться к неотвечающим валидаторам без какого-либо вмешательства человека, что делает его хорошо подходящим для децентрализованных сред. Кроме того, наш протокол четко отделяет живость от безопасности. Независимо от того, является ли сеть недоступной или небезопасное ядро каким-либо образом скомпрометировано, цепочка не будет разветвляться до тех пор, пока соблюдаются гарантии честности BFT. Безопасность нашего консенсусного протокола была проверена и официально подтверждена .
Наше исследование показало, что могут быть простые расширения, которые повышают устойчивость нашего текущего протокола BFT, используя периоды, когда более 2f+1 узлов голосуют за блок. Эти более серьезные обязательства обеспечивают еще большую уверенность в том, что сеть не будет разветвляться в будущем, и еще больше повышают уверенность пользователей в окончательности, выходящей за рамки стандартных свойств BFT.
Внедрение и тестирование Aptos Core
Большое количество валидаторов, работающих в различных средах, важно как для децентрализации, так и для безопасности. Кроме того, программное обеспечение валидатора должно быть защищено от атак — это одна из основных причин, по которой мы выбрали Rust и Move в качестве языков для реализации протокола и логики смарт-контрактов.
Основные свойства безопасности блокчейна Aptos зависят от правильной реализации валидаторов, модулей Move и виртуальной машины Move. Мы разделили код на модули и определили минимальную доверенную вычислительную базу (TCB), которая изолирует критически важные свойства безопасности (например, безопасность протокола консенсуса и правильность выполнения). Модульность и использование TCB позволяют нам использовать высоконадежные методы разработки. Кроме того, для компонентов, критически важных с точки зрения безопасности, мы можем применять более строгие требования к проверке кода, зависимостям, тестированию и безопасности среды выполнения.
Мы объединили десятилетия коллективного опыта разработки, тестирования и развертывания программного обеспечения в масштабах Интернета с новыми идеями для надежной работы в децентрализованной среде. Перед каждой фиксацией кода мы запускаем серию распределенных сетевых тестов, таких как нагрузочное тестирование и византийские атаки, а затем оцениваем правильность и результаты производительности. У нас также есть поэтапное развертывание в нескольких тестовых сетях перед развертыванием основной сети со значительной нагрузкой и тестированием на долговечность на каждом этапе. Наша предстоящая поощрительная тестовая сеть во втором квартале будет в значительной степени сосредоточена на сборе знаний сообщества о работе узла. У нас уже есть значительный опыт работы с ведущими мировыми операторами узлов по подготовке и тестированию различных сценариев аварийного восстановления, и мы с нетерпением ждем возможности построить максимально надежную децентрализованную сеть.
Более безопасные протоколы восстановления и ротации ключа учетной записи
Чтобы предотвратить кражу ключей, Aptos поддерживает возможность ротации закрытого ключа любой учетной записи. Валидаторы также могут периодически менять свой согласованный ключ для повышения безопасности. Чтобы избежать проблем, связанных с блокировкой миллиардов долларов из-за потери ключа, мы также работаем над разработкой новых методов восстановления ключа, которые можно напрямую интегрировать в модель учетной записи блокчейна.
Транзакции с несколькими агентами используют тип подписывающей стороны Move, чтобы разрешить произвольное количество атомарных действий в одной транзакции для нескольких учетных записей в сети. Это может сделать атомарные свопы, одобрения K-of-N и любые произвольные атомарные действия между двумя или более сущностями в цепочке за одну транзакцию. Разделение этих сложных взаимодействий повышает как безопасность, так и производительность. Еще более широкий спектр составных шаблонов и вариантов использования возможен при объединении транзакций с несколькими агентами с поддержкой нескольких подписей в одной учетной записи.
Масштабируемость и производительность
Хорошо известно, что высокие комиссии за транзакции, низкая пропускная способность и высокие показатели окончательности ограничивают варианты использования блокчейна и повышают спрос на блокчейны L1 и L2 с оптимизированной производительностью. Менее популярный аспект масштабируемости заключается в том, что хранилище в цепочке очень дорогое и имеет проблемы с производительностью при масштабировании до миллиардов учетных записей и триллионов активов в цепочке и вне ее. Наша цель — всесторонне сосредоточиться на производительности, исходя из пользовательского опыта. Мы считаем, что блокчейны L1 должны нести большую ответственность за масштабируемость, чтобы упростить и сделать пользовательский опыт более универсальным.
На протяжении многих лет вокруг показателей производительности блокчейна возникала огромная путаница. Начнем с самых простых определений.
- Пропускная способность — количество транзакций, обрабатываемых в секунду (tps).
- Завершенность — время, измеряемое с момента, когда клиент создает и отправляет транзакцию, до подтверждения другой стороной транзакции.
На пропускную способность и завершенность влияет множество факторов. Прежде всего, это сложность сделки. Простая одноранговая транзакция, которая перемещает токены на учетную запись Алисы из учетной записи Боба, намного дешевле, чем транзакция, которая предварительно генерирует 1000 NFT. Размер и распределение юниверса валидатора и учетной записи также будут иметь большое влияние на производительность. Сколько существует валидаторов и каковы их аппаратные характеристики? Сколько существует учетных записей (например, 10 000 против 1 миллиарда учетных записей)? Каково распределение размера учетной записи (например, 1 КБ против 10 МБ)? Каково распределение схемы доступа (например, нулевые конфликты транзакций с полностью последовательными зависимостями)? Каковы гарантии порядка между транзакциями (частичный или полный порядок) и хорошо ли они подходят для смарт-контрактов? Эти факторы затрудняют объективное сравнение производительности различных сетей. Сравнения еще более запутывают, если рассматривать различные методы измерения производительности. Например, наше исследование семейства протоколов консенсуса на основе DAG (т.е.Все, что вам нужно, это DAG , Narwhal и Tusk: мемпул на основе DAG и эффективный консенсус BFT и Bullshark: протоколы DAG BFT на практике ) демонстрируют, что этот класс протоколов может варьироваться от 125 000 до 160 000 транзакций в секунду или даже выше. Однако эти значения пропускной способности не отражают сквозную пропускную способность блокчейна, поскольку они учитывают только консенсус, сеть и частичное хранение. Они не учитывают другие важные факторы, такие как время выполнения транзакций, схемы доступа к учетным записям или аутентифицированные структуры данных (например, деревья Меркла) в рабочей цепочке блоков. Что касается окончательности, время блока часто ошибочно принимается за завершенность, хотя на самом деле время блока является входным фактором для окончательности.
Мы верим в прозрачность и открытость в отношении бенчмаркинга, объясняя различия между методологиями тестирования и четко определяя компоненты по сравнению со сквозными результатами. В ближайшие месяцы мы поделимся подробными выводами о сквозной производительности и методологиями тестирования. Со временем мы намерены поделиться бенчмаркинговыми платформами и сравнить характеристики производительности различных вариантов использования в разных блокчейнах.
Путь к высокой пропускной способности и быстрому завершению
Важным шагом на этом пути стало полное отделение протокола консенсуса от выполнения транзакций. Протокол консенсуса согласовывает предлагаемый порядок транзакций. В отдельном протоколе и вне критического пути валидаторы выполняют транзакции и имеют соглашение об окончательном порядке транзакций и результатах выполнения. Протоколы, которые объединяют консенсус и выполнение, проще, но требуют большей пропускной способности и задержки из-за их взаимной зависимости.
Как упоминалось ранее, у нас есть самый продвинутый вариант HotStuff с наименьшей задержкой, протестированный за многие годы. В наиболее распространенном случае протокол берет на себя обязательство по соглашению в течение двух полных сетевых циклов — легко долей секунды, даже когда круговые пути по всемирной сети занимают до 250 миллисекунд. При атаке или в периоды сбоев сети система репутации в сети автоматически минимизирует негативное влияние отключенных валидаторов. Мы уже начали исследования и разработки для нашей следующей итерации консенсусного протокола, которая продвигает распространение транзакций, и ожидаем обновления тестовой сети с этой технологией в конце этого года.
После отделения протокола консенсуса от конвейера выполнения следующим узким местом является время выполнения транзакции. Используя новые методы, вдохновленные программной транзакционной памятью , мы достигли более 130 тыс. транзакций в секунду, используя всего 32 ядра в нашем тесте только на выполнение. Разработчики получают это преимущество бесплатно, поскольку наша среда выполнения автоматически использует присущий параллелизм в любой рабочей нагрузке. Никакой дополнительной информации от разработчиков предоставлять не нужно. Возможно, самое главное, что высокая пропускная способность блокчейна означает низкую комиссию за транзакции для пользователей.
Последним узким местом для производительности — и наиболее игнорируемым — являются аутентифицированные структуры данных и связанное с ними хранилище состояний. Одна из проблем заключается в том, что при аутентификации состояния реестра (например, остатков на счетах, смарт-контрактов и т. д.) деревья Меркла в памяти эффективны в небольших масштабах, однако запись больших деревьев Меркла в постоянное хранилище является узким местом. Мы разрабатываем наши аутентифицированные структуры данных, чтобы они были удобными для баз данных, изучая более высокие факторы ветвления, кэширование, оптимизированное для шаблонов доступа, и тщательное управление версиями. В настоящее время мы также разрабатываем поддержку больших учетных записей — возможность доступа к отдельным ресурсам Move для каждой учетной записи, а не неэффективно в виде одного большого двоичного объекта, и изучаем будущий путь к более точному доступу к ресурсам Move путем разделения их на фрагменты, оптимизированные для схемы доступа.
Параллельные транзакции счетов при сохранении контроля над порядком транзакций
Подход с порядковыми номерами, популяризированный Ethereum, обеспечивает полный контроль пользователя над порядком транзакций, эффективную фильтрацию мемпула и ограниченное использование памяти. Мы экспериментировали с расширением подхода к порядковым номерам с помощью устойчивых к конфликтам порядковых номеров , чтобы обеспечить параллелизм учетных записей в окне порядковых номеров, в то же время предоставляя пользователям возможность управлять порядком транзакций, когда это необходимо. Наша будущая работа заключается в рассмотрении альтернативных реализаций параллелизма, которые являются еще более гибкими и компонуемыми.
Быстрая и гибкая поддержка управления состоянием для облегченных, полных, архивных узлов и узлов проверки.
Синхронизация состояний между узлами может сильно нагружать ЦП для высокопроизводительных блокчейнов. Мы поддерживаем ряд различных протоколов синхронизации состояний, которые обеспечивают компромисс между процессором и пропускной способностью сети. Для поддержки недорогих полных узлов у нас есть протокол, который может синхронизировать транзакции и их выполненные результаты, подписанные кворумом валидаторов, что позволяет узлу пропускать вычисления за счет более высокой пропускной способности сети и напрямую обновлять состояние реестра из выполненных полученные результаты.
Вместо того, чтобы загружать цепочку блоков, чтобы добраться до последней книги, как это делают большинство блокчейнов, клиент может использовать накопитель транзакций верхнего уровня, чтобы получить последнюю совершенную транзакцию. Это также позволяет при желании недорого удалить предыдущие транзакции и историю бухгалтерской книги. Надежные путевые точки также позволяют быстро синхронизировать узлы, чтобы быстро наверстать упущенное.
Возможность обновления
Сети должны быстро адаптироваться к меняющимся потребностям Web3 . Варианты использования блокчейна и технологические усовершенствования постоянно растут и развиваются семимильными шагами. Например, в 2021 году NFT стали рынком с оборотом в 40 миллиардов долларов.. Многие предсказывают, что 2022 год станет годом принятия DAO. Разрабатываются новые протоколы консенсуса и языки смарт-контрактов. Транзакции с сохранением конфиденциальности становятся все более практичными. К сожалению, многие из современных сетей столкнулись с трудностями при значительном улучшении протокола после запуска. Некоторые сети, в которых были предприняты значительные обновления, столкнулись с часами простоя, а иногда и со случайными хард-форками. Мы считаем, что это одна из ключевых причин, почему запускается так много новых сетей. К сожалению, стремительное развитие сетей приводит к проблемам с пользовательским интерфейсом, поскольку требует знакомства с различными средами и определения того, какая сеть лучше всего подходит для конкретного случая использования. Мы разработали и построили блокчейн Aptos с возможностью обновления в качестве ключевого свойства, и за последние годы успешно выполнили несколько крупных обновлений без простоев. Для достижения этой цели управление и конфигурация валидаторов управляются с помощью состояния сети, что позволяет сообществу удобно голосовать и быстро выполнять обновления. Надежные методы тестирования и развертывания обеспечивают безопасное и надежное развертывание.
История блокчейна Aptos
Технологический стек Aptos был исследован, спроектирован и разработан группой из 30+ человек, занимающихся исследованиями и разработками криптоплатформы, обладающими знаниями в предметной области и докторами наук в области консенсуса, криптографии, распределенных систем, формальной проверки, безопасности и т. д. Кодовая база значительно выросла за 3+ года. лет с 292 уникальными разработчиками и десятками предложений по улучшению, выдвинутых сообществом. Он прошел боевые испытания в производственной среде с использованием ряда различных вариантов использования и использовался многочисленными корпоративными операторами более года с более чем дюжиной возможных аварийных сценариев. Мы провели несколько успешных значительных обновлений в частной основной сети с нулевым временем простоя. Кодовая база имеет открытый исходный код и управляется сообществом с долгосрочной целью создания инфраструктуры, которую можно использовать для многих сетей.
Наш подход и сроки
Мы стремимся запустить нашу основную сеть как можно скорее, чтобы дать возможность более широкому сообществу начать строительство — многие годами ждали запуска нашей технологии. На пути к основной сети и за ее пределами мы объявим о серии глобальных хакатонов и с нетерпением ждем вашего участия! Мы воспользуемся нашей способностью модернизировать сеть с помощью новых функций, функций, улучшений безопасности и масштабирования, как только они достигнут корпоративной готовности в наших тестовых сетях и процессе развертывания.
1 квартал 2022 г. (15 марта) — запуск тестовой сети для разработчиков
- Сотрудничайте со стратегическими партнерами и сообществом разработчиков Web3, чтобы собирать отзывы и вносить улучшения в отношении интерфейса разработчиков Move и языка Move.
2 квартал 2022 г. — запуск стимулированной тестовой сети
- Более крупная и похожая на сеть тестовая площадка для стратегических партнеров и разработчиков web3.
- Работайте с сообществом операторов узлов для совместной работы и накопления опыта работы с децентрализованной сетью.
- Запустите вознаграждение за ошибку, чтобы улучшить опыт разработчиков, работу узлов и решить проблемы с инфраструктурой.
- Обеспечьте согласование поощрений для всех участников, которые помогут защитить сеть
2022 Q3 — запуск основной сети
4 квартал 2022 г. – 1 квартал 2023 г. — развертывание следующего основного выпуска в основной сети Aptos со следующим набором важных функций.