Краткое описание модели программирования Solana: в чем отличие от ETH?
Оригинальный автор: Foresight News, Алекс Лю
Solana — это высокопроизводительная блокчейн-платформа, разработанная для поддержки dApps, известная своей скоростью и масштабируемостью, что достигается за счет уникального механизма консенсуса и архитектурного дизайна. В этой статье Ethereum используется в качестве объекта сравнения для краткого ознакомления с характеристиками модели программирования смарт-контрактов Solanas.
Смарт-контракты, ончейн-программы:
Программы, работающие на Ethereum, называются смарт-контрактами, которые представляют собой ряд кодов (функций) и данных (статуса), расположенных по определенному адресу на Ethereum. (О нет, код и данные связаны) Смарт-контракты также являются счетами Ethereum, называемыми контрактными счетами, которые имеют балансы и могут быть предметом торговли, но не могут быть изменены людьми и размещаются в сети для запуска в качестве программ.
Исполняемый код, работающий на Solana, называется программой on-chain, которая интерпретирует инструкции, отправленные в каждой транзакции. Эти программы могут быть развернуты непосредственно в ядре сети как собственные программы или опубликованы кем угодно как программы SPL.
- Инструкции: Инструкции — это специальный термин для программ Solana on-chain. Программы on-chain состоят из инструкций, которые являются наименьшей единицей для выполнения определенных операций: каждая транзакция Solana содержит одну или несколько инструкций. Инструкции определяют операции, которые должны быть выполнены, включая вызов определенной программы on-chain, передачу учетных записей, списков ввода и предоставление массивов байтов. Инструкции имеют вычислительные ограничения, поэтому программы on-chain должны быть оптимизированы для использования небольшого количества вычислительных единиц или разделения дорогостоящих операций на несколько инструкций.
- Собственная программа: Собственная программа, которая обеспечивает функции, требуемые узлом проверки. Наиболее известной из них является Системная программа, которая отвечает за управление созданием новых учетных записей и передачу SOL между двумя учетными записями.
- Программа SPL: определяет ряд действий в цепочке, включая создание, обмен, кредитование, создание пулов ставок, обслуживание служб разрешения доменных имен в цепочке и т. д. Среди них программа токенов SPL используется для операций с токенами, в то время как программа связанных счетов токенов часто используется для написания других пользовательских программ.
Вы называете это смарт-контрактом, я называю это цепочкой программ. У всех разные термины, но все они относятся к коду, работающему на блокчейне. Чжан Сань, Ли Си и Ван Мази — это имена людей. Их качество еще нужно изучить в других аспектах.
Модель счета и разделение данных:
Подобно Ethereum, Solana также представляет собой блокчейн, основанный на модели аккаунтов, но Solana предлагает отличную от Ethereum модель аккаунтов и хранит данные другим способом.
В Solana учетные записи могут хранить информацию о кошельке и другие данные. Поля, определяемые учетной записью, включают Lamports (баланс учетной записи), Owner (владелец учетной записи), Executable (исполняемая ли это учетная запись) и Data (данные, хранящиеся в учетной записи). Каждая учетная запись указывает программу в качестве своего владельца, чтобы различать, какая программа используется учетной записью в качестве хранилища состояния. Эти программы в цепочке доступны только для чтения или не имеют состояния: учетные записи программ (исполняемые учетные записи) хранят только байт-код BPF и не хранят никакого состояния. Программа будет хранить состояние в других независимых учетных записях (неисполняемые учетные записи), то есть модель программирования Solanas разделяет код и данные.
Аккаунты Ethereum в основном ссылаются на состояния EVM, а их смарт-контракты содержат как логику кода, так и необходимость хранить пользовательские данные. Это обычно считается недостатком дизайна, оставшимся от истории EVM.
Не стоит недооценивать это различие! Смарт-контракты Solana принципиально сложнее атаковать, чем блокчейны с моделями связанного программирования, такими как Ethereum:
В Ethereum владелец смарт-контракта — это глобальная переменная, которая соответствует смарт-контракту один за другим. Поэтому вызов функции может напрямую изменить владельца контракта.
В Solana владельцем смарт-контракта являются данные, связанные с учетной записью, а не глобальная переменная. У учетной записи может быть несколько владельцев, а не ассоциация один к одному. Чтобы злоумышленник мог воспользоваться уязвимостью безопасности в смарт-контракте, ему нужно не только найти проблемную функцию, но и подготовить правильную учетную запись для вызова функции. Этот шаг непрост, поскольку смарт-контракты Solana обычно включают несколько учетных записей ввода и управляют отношениями между ними с помощью ограничений (например, `account 1.owner==account 2.key`). Процесс от подготовки правильной учетной записи до запуска атаки достаточен для мониторов безопасности, чтобы заранее обнаружить подозрительные транзакции, которые создают поддельные учетные записи, связанные со смарт-контрактами, до атаки.
Смарт-контракт Ethereum похож на сейф с уникальным паролем. Если вы получите пароль, вы сможете получить полное владение. Solana — это сейф со многими паролями, но чтобы получить разрешение, вам нужно не только найти способ получить пароль, но и выяснить число, соответствующее паролю, прежде чем вы сможете открыть замок.
язык программирования
Rust — основной язык программирования для разработки смарт-контрактов на Solana. Благодаря своим характеристикам производительности и безопасности он подходит для высокорисковых сред блокчейнов и смарт-контрактов. Solana также поддерживает C, C++ и другие языки (очень редко). Официальные SDK для Rust и C предоставляются для поддержки разработки программ на цепочке. Разработчики могут использовать инструменты для компиляции программ в байт-код Berkley Packet Filter (BPF) (файлы с расширением .so), затем развертывать их в цепочке Solana и выполнять логику смарт-контракта через параллельную среду выполнения смарт-контрактов Sealevel.
Поскольку язык Rust сам по себе сложен в изучении и не адаптирован для разработки блокчейнов, многие требования требуют переосмысления и избыточного кода. (Многие проекты в производстве используют фреймворк Anchor, созданный соучредителем Backpack Армани для упрощения разработки). Многие недавно созданные языки программирования, предназначенные для разработки блокчейнов, основаны на Rust, например, Cairo (Starknet) и Move (Sui, Aptos).
Многие проекты в производстве используют фреймворк Anchor.
Смарт-контракты Ethereum в основном разрабатываются на Solidity (синтаксис похож на javascript, а файл кода имеет расширение .sol). Из-за относительно простого синтаксиса и более зрелых инструментов разработки (фреймворк Hardhat, Remix IDE…) мы обычно думаем, что опыт разработки Ethereum проще и приятнее, в то время как разработка Solana сложна для начала. Поэтому, несмотря на то, что Solana сейчас очень популярна, на самом деле число разработчиков Ethereum все еще намного больше, чем Solana.
При определенных дорожных условиях гоночный автомобиль высшего уровня не может ехать так же быстро, как модифицированный автомобиль. Rust похож на гоночный автомобиль высшего уровня, что фактически гарантирует производительность и безопасность Solana. Однако он не предназначен для разработки программ в цепочке, что затрудняет вождение (разработку). Использование публичной цепи на основе Rust и настройка языка для разработки в цепочке эквивалентны модификации гоночного автомобиля, чтобы сделать его более адаптируемым к дорожным условиям. Solana находится в невыгодном положении в этом отношении.
Подведем итог
Модель программирования смарт-контрактов Solanas является инновационной. Она обеспечивает метод разработки смарт-контрактов без сохранения состояния, использует Rust в качестве основного языка программирования и архитектуру, которая отделяет логику от состояния, предоставляя мощную среду для разработчиков для создания и развертывания смарт-контрактов, обеспечивая безопасность и производительность, но разработка сложна. Solana фокусируется на высокой пропускной способности, низкой стоимости и масштабируемости и по-прежнему является идеальным выбором для разработчиков, стремящихся создать высокопроизводительные dApps.
Ссылки для справки
https://solana.com/docs
https://ethereum.org/en/developers/docs
https://www.anchor-lang.com/
Эта статья взята из Интернета: Краткое описание модели программирования Solana: В чем разница с ETH?
Первоначальный автор: @Web3 Mario Введение: Вчера я случайно узнал от друга, что он получил значительную отдачу от инвестиций в области надписей BTC, что глубоко пробудило у автора менталитет шага в пустоту. Я был встревожен два дня подряд, что было действительно стыдно. Вспомнив, что техническая архитектура Ordinals была только что выпущена ранее, автор изучил соответствующие документы, но как разработчик я был весьма недоволен этим техническим путем. В то время я рассудил, что это просто инверсия технологии шифрования, потому что ее концепция дизайна казалась похожей на далекий альткоин-проект Color Coin, то есть на то, как использовать техническую архитектуру BTC для выпуска некоторых независимых токенов, но разница в том, что Ordinals не…