Ключевые моменты релиза включают: ротация набора валидаторов, криптографические доказательства, пороговая подпись состояния платформы, оптимизация пирингового уровня, метаданные платформы, строгое и безопасное подтверждение контракта данных, эффективная синхронизация JS Wallet и улучшения Dashmate.
Dash Core Group рады представить релиз Dash Platform v0.20 в тестовой сети. Новый релиз вводит несколько значительных изменений в консенсус платформы. Изменения в том числе включают в себя ротацию набора валидаторов, оптимизацию пирингового уровня и пороговую подпись — подробнее о них расскажем ниже. Некоторые из нововведений выводят криптографическую безопасность Dash Platform на новый уровень, благодаря чему она становится первым примером масштабируемой сети, работающей на pBFT консенсусе. Это важный этап для нас.
Новый релиз вводит несколько значительных изменений, из-за которых уже существующие на платформе данные станут недействительными. Чтобы не пришлось совершать большое количество дополнительной работы для обработки этих изменений, мы приняли решение удалить данные платформы на Слое 2. Этот шаг является частью этого релиза. Основной блокчейн Core и платёжные транзакции останутся нетронутыми.
Кроме того, для этой новой версии Dash Platform обновления DashPay кошельков для Android и iOS проходят проверку. Пользователи программы альфа-тестирования получат обновление после того, как подтвердится стабильность сети.
Чтобы обновить вашу ноду в тестовой сети, пожалуйста, обновите установочный пакет и перезагрузите данные платформы.
Ключевые моменты релиза
- Ротация набора валидаторов. Чтобы достичь консенсуса на блокчейне платформы, блоки проверяет и подписывает особый набор мастернод под названием валидаторы. Вплоть до версии 0.19 набор валидаторов был статичен и хранился на контролируемых DCG нодах. В версии 0.20 для распространения и ротации набора валидаторов по всем мастернодам сети применяются Долгосрочные кворумы мастернод (LLMQs). Такой подход позволяет равномерно распределить нагрузку и делает сеть намного более безопасной и стабильной.
- Подпись Dash Core. В предыдущих версиях валидаторы использовали предустановленные наборы публичных/приватных ключей, где публичный ключ был известен всей сети, а приватный ключ находился в незащищённом файле на диске. В этой версии Dash Core предоставляет подписи для индивидуальных участников активного набора валидаторов кворума, благодаря чему ключи никогда не выходят за пределы безопасного пространства системы Dash Core.
- Криптографические доказательства. Ранее клиентам нужно было использовать доверенные полные ноды, чтобы убедиться в подлинности и целостности полученных из сети платформы данных. В этой версии DAPI предоставляет эффективные криптографические доказательства наряду с данными платформы, благодаря чему лёгкие клиенты (например, мобильные кошельки) могут безопасно взаимодействовать с Dash Platform. Эти доказательства задействуют деревья Меркла, подтверждая состояние любых возвращаемых данных и затем подпись состояния известным кворумом. Хотя платформа предоставляет доказательства в версии 0.20, мы планируем провести дальнейшие улучшения в версии 0.21 до верификации этих доказательств в библиотеках клиентов. Мы заметили, что для полного подтверждения здесь может потребоваться доработка.
- Валидаторы пороговой подписи состояния платформы ранее использовали EdDSA подписи криптографического дайджеста состояния платформы, чтобы предоставлять криптографические доказательства и гарантировать консенсус сети. Из-за количества и общего размера этих подписей, доказательства стали слишком ресурсозатратными для лёгких клиентов. В версии 0.20 используется механизм пороговой подписи BLS для подтверждения лишь одной подписи, что достаточно легко подтвердить для мобильных кошельков и лёгких клиентов.
- Пиринговая оптимизация уровней. Раньше полные ноды, так же как и валидаторы, получали и верифицировали все типы пиринговых сообщений. Это означало, что через полные ноды также проходил трафик с сообщениями, которые актуальны только для валидаторов — для достижения консенсуса. В новой версии все полные ноды больше не получают сообщения, касающиеся достижения консенсуса, создаваемые валидаторами. Вместо этого валидаторы создают всего одно сообщение с пороговой подписью BLS, чтобы распространить решение о консенсусе по остальной сети. Это значительно снижает нагрузку на сеть, поскольку сокращает количество распространяемых по полным нодам сообщений, и на порядки повышает пропускную способность.
- Метаданные платформы. Dash Platform теперь прикрепляет к ответам DAPI дополнительные метаданные, например текущую высоту блока платформы, а также синхронизированную высоту блока ядра, с которой согласны все ноды, участвующие в консенсусе сети. Поскольку блокчейны платформы и core не синхронизированы, платформа использует высоту блока core, чтобы убедиться, что все ноды платформы обладают детерминированным представлением о состоянии core сети.
- Строгое и безопасносное подтверждение контракта данных. Новая версия протокола Dash Platform обновляет спецификацию JSON Schema, которая использовалась для определения контрактов данных в последних версиях 2020–12, и применяет жёсткие правила валидации, чтобы избежать возможных ошибок со стороны пользователя в загруженных в сеть контрактов данных. Чтобы избежать ReDoS атак также применяется специальный обработчик регулярных выражений.
- Эффективная синхронизация JS Wallet Предыдущие версии библиотеки JS Wallet не всегда получали все запрошенные транзакции и сообщения с мгновенной фиксацией во время синхронизации через DAPI. В версии 0.20 это было исправлено.
- Улучшения Dashmate. Последняя версия Dashmate содержит 20 улучшений и исправлений ошибок. Наиболее значимые из них были сделаны, чтобы настройка локальных сетей для разработки стала более удобной и эффективной. Кроме того улучшилась производительность и появилась поддержка Windows.
Что дальше?
Команда разработчиков DCG продолжает усердно работать над исправлением ошибок, улучшением стабильности и релизом окончальных функций Dash Platform. Хотя работы, связанные с MVP версиями кошельков DashPay остаются одним из главных наших приоритетов, в будущих версиях платформы Dash появится также больше стабильности и новых функций для разработчиков сообщества.
Мы уже начали работу над будущим релизом. Ожидается, что он будет включать в себя новый механизм с кодами ошибок, благодаря которому клиенты будут лучше обрабатывать ошибки платформы; процесс обновления, для которого не понадобится удалять все данные L2, что даст безопасный переход с одной версии протокола на другую; доказательства невключения и другие функции; возможность обновлять схемы уже существующих контрактов данных для поддержки этих новых функций.
Кроме всего прочего, будет определена новая, более надёжная и безопасная схема дерева состояний, и мы продолжим работать над первым релизом в основной сети. Мы ещё раз хотим поблагодарить наше сообщество разработчиков за терпение, пока мы работаем над улучшением и стабильными версиями наших программ.
Что касается этого релиза, мы ожидаем, что данные будут стёрты и во время следующего релиза v0.21. Все интересующиеся могут ожидать очередной релиз платформы примерно через шесть недель, в начале сентября.
Подпишитесь на блог Dash и наши страницы в соцсетях, чтобы быть в курсе релизов и обновлений. Как обычно, мы с нетерпением ждём и приветствуем ваши идеи, обратную связь и предложения изменений.
Примечания к релизу