Cover photo

Ежемесячный технический отчет Tabi Chain: Достижение новых высот в области безопасности, стабильности и EVM-совместимости

Дорогие участники сообщества Tabi и разработчики!

Команда Tabi Chain добилась значительного прогресса в усилении безопасности сети, повышении стабильности системы и расширении EVM-совместимости. Мы понимаем, что надежная и стабильная базовая архитектура имеет решающее значение для процветания Layer1, ориентированного на потребительские финансы. Вот ключевые технические обновления этого месяца:

I. Усиление безопасности

Безопасность всегда была нашим главным приоритетом. В этом месяце мы проактивно внедрили исправления и обновления для устранения потенциальных рисков безопасности:

  • Исправлена уязвимость IBC "Huckleberry" (Fix Inter-Blockchain Communication (IBC) protocol "Huckleberry" vulnerability): Мы успешно устранили уязвимость "Huckleberry", обнаруженную в протоколе межсетевого взаимодействия (Inter-Blockchain Communication, IBC). Это обеспечивает безопасность Tabi Chain при взаимодействии с другими блокчейнами для обмена активами и данными, предотвращая потенциальные риски межсетевых атак.

  • Исправлена потенциальная уязвимость повторного входа в IBC-Hooks (Fix potential reentrancy using Timeout Callbacks in ibc-hooks in IBC module): Оптимизировав механизм обратного вызова по тайм-ауту в ibc-hooks модуля IBC, мы устранили потенциальную уязвимость повторного входа. Это дополнительно повышает атомарность и безопасность межсетевых операций, предотвращая потенциальную потерю средств или проблемы несоответствия состояний, вызванные атаками повторного входа.

  • Обновлена версия net/http для смягчения флуд-атак (Upgrade net/http version to avoid flood attack): Мы обновили базовую библиотеку net/http до последней версии. Эта версия включает эффективные механизмы защиты от флуд-атак (Flood Attacks), повышая устойчивость и стабильность узлов Tabi Chain при столкновении с масштабными вредоносными запросами.

II. Повышение стабильности

Для обеспечения непрерывной стабильной работы и бесперебойного пользовательского опыта сети Tabi Chain мы решили следующие ключевые проблемы:

  • Устранена ошибка "Wrong Block.Header.AppHash" во время синхронизации/воспроизведения состояния блокчейна (Fix "Wrong Block.Header.AppHash" error when sync/replay blockchain state): Это исправление обеспечивает точность и согласованность узлов при синхронизации или воспроизведении исторических состояний блокчейна, избегая прерываний синхронизации, вызванных сбоями проверки AppHash, и повышая эффективность присоединения новых узлов к сети или восстановления узлов.

  • Устранены потенциальные проблемы переполнения стека или исчерпания ресурсов при декодировании транзакций (Fix stack overflow or resource exhaustion caused by decoding transactions): Мы оптимизировали логику декодирования транзакций, устранив проблемы, которые могли вызывать переполнение стека или исчерпание ресурсов при обработке некоторых специально созданных транзакций. Это повышает надежность узлов при обработке различных типов транзакций, обеспечивая непрерывную стабильную работу сети.

III. Обновления и замена основных зависимостей

Поддержание актуальности основных зависимостей является ключом к обеспечению совместимости, безопасности и производительности системы. В этом месяце мы выполнили несколько важных задач по управлению зависимостями:

  • Обновлен Protobuf до v1.5.3 и исправлен бесконечный цикл при десериализации JSON (Upgrade Protobuf version to v1.5.3, and fix Infinite loop in JSON unmarshaling): Являясь эффективным инструментом сериализации данных, стабильность и безопасность Protobuf имеют решающее значение. Обновление до версии v1.5.3 и исправление связанных дефектов десериализации JSON повышает эффективность и безопасность обработки данных.

  • Обновлен golang grpc до v1.59.0 и исправлена уязвимость "Отказ в обслуживании" (Upgrade golang grpc to v1.59.0, and fix bug "Denial of service"): gRPC является основным фреймворком для межсетевого взаимодействия узлов. Обновление до версии v1.59.0 устранило известную уязвимость "Отказ в обслуживании" (Denial of Service), повысив стабильность и устойчивость к атакам межсетевого взаимодействия узлов.

  • Заменен LevelDB на RocksDB (Replace Leveldb with RocksDB): В целях достижения более высокой производительности хранилища и лучшей масштабируемости мы успешно заменили базовый механизм хранения ключ-значение с LevelDB на RocksDB. RocksDB показывает лучшую производительность при чтении/записи, особенно при параллельной обработке, что обеспечит Tabi Chain более эффективные возможности хранения и доступа к состоянию.

  • Обновлен Cosmos-SDK до версии 0.50.x (Upgrade cosmos-sdk 0.46.15 to 0.50.x): Будучи цепочкой, построенной на Cosmos, для нас крайне важно следовать последним разработкам в Cosmos-SDK. Мы начали и постепенно завершим обновление с версии 0.46.15 до 0.50.x. Это позволит Tabi Chain использовать новейшие функции, оптимизации производительности и исправления безопасности из экосистемы Cosmos.

  • Обновления других зависимостей (Other dependencies will be updated: hashicorp/go-getter, cosmossdk.io/math, net/http): Мы также продолжим обновлять другие ключевые зависимости, включая hashicorp/go-getter, cosmossdk.io/math и net/http, чтобы обеспечить прогрессивность и безопасность всего технологического стека.

IV. Совместимость с EVM и расширение функциональности (связано с EVM)

Чтобы предоставить разработчикам более мощную и гибкую среду для разработки смарт-контрактов, команда разработчиков Tabi работает над обновлением версии EVM, стремясь достичь следующих основных целей:

  • Поддержка EIP-7702 (Support EIP-7702, which will be used by account abstraction layer): Внедрение EIP-7702 обеспечит ключевую поддержку для реализации уровня абстракции аккаунта (Account Abstraction). Это значительно улучшит пользовательский опыт, позволяя использовать более гибкие механизмы управления аккаунтами и авторизации транзакций, такие как социальное восстановление, делегирование платы за газ и т. д.

  • Поддержка предкомпилированных контрактов для повышения эффективности Gas (Support pre-compiled contract to improve gas efficiency): Внедряя больше предкомпилированных контрактов, мы можем перевести некоторые ресурсоемкие или часто используемые операции на выполнение в нативном коде, тем самым значительно снижая плату за Gas для этих операций и повышая операционную эффективность смарт-контрактов.

  • Поддержка большего количества опкодов (Support more op-code): Расширение набора опкодов, поддерживаемых EVM, предоставит разработчикам более богатые инструменты программирования и большее пространство для проектирования, позволяя им создавать более сложные и инновационные децентрализованные приложения.

Мы воодушевлены прогрессом, достигнутым в этом месяце, и твердо верим, что эти усилия заложат прочный фундамент для долгосрочного развития Tabi Chain. Благодарим сообщество за ваше постоянное внимание и поддержку. Мы с нетерпением ждем возможности построить процветающую экосистему Tabi вместе со всеми разработчиками!