TVM и EVM
Введение
Ethereum Virtual Machine (EVM) и TON Virtual Machine (TVM) — это две стековые виртуальные машины, разработанные для запуска кода смарт-контрактов. Несмотря на наличие общих черт, между ними есть и заметные различия.
Различия TVM и EVM
Представление да нных
EVM
- Основные единицы данных
- EVM работает в основном с 256-битными целыми числами, так как она была спроектирована для удобной работы с криптографическими функциями Ethereum (например, хеширование Keccak-256 и операции с эллиптическими кривыми).
- Типы данных в основном ограничены целыми числами, байтами и иногда массивами этих типов, но все они должны соответствовать 256-битным правилам обработки.
- Хранилище состояний
- Всё состояние блокчейна Ethereum представляет собой сочетание 256-битных адресов с 256-битными значениями. Это отображение поддерживается структурой данных, известной как Merkle Patricia Trie (MPT).
- MPT позволяет Ethereum эффективно доказывать согласованность и целостность состояния блокчейна с помощью криптографических проверок, что жизненно важно для децентрализованных систем вроде Ethereum.
- Ограничения структуры данных
- Упрощение до 256 бит означает, что EVM изначально не предназначена для обработки сложных или пользовательских структур данных напрямую. Разработчикам часто требуется внедрять дополнительную логику в смарт-контракты для имитации более сложных структур данных, что может привести к увеличению затрат на газ и увеличению сложности.
TVM
- Архитектура на основе ячеек
- TVM использует уникальную модель «bag of cells»» для представления данных. Каждая ячейка может содержать до 128 байтов данных и до 4 ссылок на другие ячейки.
- Эта структура позволяет TVM изначально поддерживать произвольные алгебраические типы данных и более сложные конструкции, такие как деревья или направленные ациклические графы (DAG), непосредственно в своей модели хранения.
- Гибкость и эффективность
- Модель ячеек обеспечивает значительную гибкость, позволяя TVM обрабатывать широкий спектр структур данных более естественно и эффективно, чем EVM.
- Например, возможность создания связанных структур с помощью ссылок на ячейки позволяет создавать динамические и потенциально бесконечные структуры данных, которые важны для определённых типов приложений, таких как децентрализованные социальные сети или сложные децентрализованные финансовые протоколы (DeFi).
- Обработка сложных данных
- Возможность управлять сложными типами данных, изначально заложенная в архитектуре виртуальной машины, снижает необходимость их имитации в смарт-контрактах, что потенциально снижает стоимость и увеличивает скорость выполнения. Конструкция TVM особенно выгодна для приложений, требующих сложного управления состоянием или взаимосвязанных структур данных. Она предоставляет разработчикам надёжную основу для создания сложных и масштабируемых децентрализованных приложений.