Изучение Solana Смарт-контракт модели программирования

Новичок6/11/2024, 5:47:31 AM
Solana — это высокопроизводительная блокчейн-платформа, предназначенная для поддержки децентрализованных приложений. Он известен своей скоростью и масштабируемостью, достигаемыми благодаря уникальному механизму консенсуса и архитектурному дизайну. В этой статье Ethereum используется в качестве объекта сравнения, чтобы кратко представить характеристики модели программирования смарт-контрактов Solana.

Переслать оригинальное название '小学生也能看懂!Solana 的编程模型,究竟和 ETH 有啥区别?'

Solana — это высокопроизводительная блокчейн-платформа, предназначенная для поддержки децентрализованных приложений. Он известен своей скоростью и масштабируемостью, достигаемыми благодаря уникальному механизму консенсуса и архитектурному дизайну. В этой статье Ethereum используется в качестве объекта сравнения, чтобы кратко представить характеристики модели программирования смарт-контрактов Solana.

Смарт-контракты и в блокчейне программы:

Программы, работающие на Ethereum, называются смарт-контракты, серией кодов (функций), расположенных по определенному адресу на Ethereum и data(state). (О, код и данные связаны) Смарт-контракты также являются учетными записями Ethereum, которые называются контрактными учетными записями. У них есть балансы, и они могут стать объектами транзакций, но они не могут контролироваться человеком и развертываются в сети для запуска в качестве программ.

Исполняемые коды, работающие на Solana, называются программами в блокчейне, и они могут интерпретировать инструкции, отправленные в каждой транзакции. Эти программы могут быть развернуты непосредственно в ядре сети как собственные программы или опубликованы кем угодно как программы SPL.

  1. Инструкция: Инструкции — это уникальные термины для программ в цепочке Solana. Ончейн-программы состоят из инструкций. Это самые маленькие единицы, которые выполняют определенные операции: одна или несколько инструкций включаются в каждую транзакцию Solana. В инструкциях указываются действия, которые необходимо выполнить, включая вызов определенной программы в блокчейне, передачу счета, списка входных данных и предоставление массива байтов. Инструкции имеют вычислительные ограничения, поэтому программы в блокчейне должны быть оптимизированы для использования небольшого количества вычислительных единиц или для разделения дорогостоящих операций на несколько инструкций.

  1. Нативные программы: это программы, которые предоставляют необходимые функциональные возможности для проверки узлов. Наиболее заметной из них является системная программа, которая отвечает за управление созданием новых учетных записей и переводом SOL между двумя учетными записями.
  2. Программы SPL: Они определяют ряд действий в блокчейне, включая создание, биржу и кредитование токенов, а также создание пулов ставок и обслуживание услуг разрешения доменных имен в блокчейне. Среди них программа токенов SPL используется для операций с токенами, в то время как программа связанных учетных записей токенов обычно используется для написания других пользовательских программ.

Вы называете их смарт-контрактами, я называю их программами в блокчейне. Это разные термины, но оба они относятся к коду, работающему в блокчейне. Так же, как и Алиса, Боб и Джон — это все имена, и их реальные качества должны оцениваться другими аспектами.

Модель учетной записи, разделение данных:

Как и Ethereum, Solana также является блокчейном, основанным на модели счет, но Solana предоставляет другую модель счет, чем Ethereum, и хранит данные другими способами.

В Solana учетные записи могут сохранять информацию о кошельке и другие данные. К полям, определяемым учетной записью, относятся Lamports (баланс счета), Owner (владелец счета), Executable (является ли это исполняемым счетом) и Data (данные, хранящиеся в счете). Каждый счет назначает программу в качестве ее владельца, чтобы определить, для какой программы счет используется в качестве хранилища состояний. Эти в блокчейне программы доступны только для чтения или не имеют состояния: программа счет (исполняемая счет) хранит только bytecode BPF и не хранит никаких состояний. Программа будет хранить состояние в других независимых учетных записях (неисполняемых учетных записях). То есть модель программирования Solana разделяет код и данные.

Ethereum счет в основном является отсылкой к EVM государству. Его смарт-контракт не только имеет логику кода, но и должен хранить пользовательские данные. Это часто считается недостатком конструкции, оставшимся от истории EVM.

Не стоит недооценивать это различие! Solana смарт-контракты фундаментально сложнее атаковать по сравнению с блокчейнами со связанной моделью программирования, такой как Ethereum.

В Ethereum «владелец» смарт-контракта — это глобальная переменная, которая соответствует смарт-контракту один к одному. Таким образом, вызов функции может напрямую изменить "владельца" контракта.

Однако в Solana «владельцем» смарт-контракта являются данные, связанные со счетом, а не глобальная переменная. Счет может иметь несколько владельцев, а не ассоциацию один к одному. Чтобы злоумышленник мог воспользоваться уязвимостью безопасности в смарт-контракте, ему нужно не только найти проблемную функцию, но и подготовить «правильные» учетные записи для вызова этой функции. Этот шаг непрост, так как Solana смарт-контракты обычно включает в себя несколько входных учетных записей и управляет их отношениями с помощью ограничений (например, account1.owner == account2.key). Процесс от «подготовки правильных учетных записей» до «запуска атаки» дает персоналу по мониторингу безопасности достаточно времени для упреждающего обнаружения подозрительных транзакций, связанных с созданием «поддельных» учетных записей, связанных со смарт-контрактом, до того, как произойдет атака.

Ethereum смарт-контракты похожи на хранилище, которое использует уникальный пароль; как только вы получаете этот пароль, вы становитесь его полным владельцем. Напротив, смарт-контракты Solana похожи на хранилище с множеством паролей. Чтобы получить доступ, нужно не только получить пароли, но и выяснить, какой пароль какому замку соответствует, чтобы его открыть.

Язык программирования

Rust является основным языком программирования для разработки смарт-контракты на Solana. Благодаря своей производительности и функциям безопасности он подходит для среды блокчейна и смарт-контрактов с высоким уровнем риска. Solana также поддерживает C, C++ и (что очень необычно) другие языки. Официальный SDK для Rust и C предоставляется для поддержки разработки программ в блокчейне. Разработчики могут использовать инструменты для компиляции программы в Berkley Packet Filter (BPF) bytecode (файл имеет расширение .so), затем развернуть его в цепочке Solana и выполнить логику смарт-контракта через параллельную среду выполнения смарт-контракта Sealevel.

Поскольку язык Rust сам по себе сложен для начала работы и не заточен под разработку блокчейна, многие требования требуют переосмысления колеса и избыточного кода. (Многие проекты в продакшене используют фреймворк Anchor, созданный одним из создателей рюкзака Армани для упрощения разработки) Многие недавно созданные языки программирования, посвященные блокчейн-разработке, основаны на Rust, такие как Cairo (Starknet), Move (Sui, Aptos).

Многие проекты в продакшене используют фреймворк Anchor

Ethereum смарт-контракты в основном разрабатываются на языке Solidity (синтаксис похож на javascript, а файл кода имеет расширение .sol). Из-за относительно простого синтаксиса и более зрелых инструментов разработки (фреймворк Hardhat, Remix IDE...) мы обычно считаем, что опыт разработки Ethereum проще и освежает, в то время как разработку Solana сложнее начать. Таким образом, несмотря на то, что Solana сейчас очень популярна, на самом деле количество разработчиков на Ethereum по-прежнему намного больше, чем на Solana.

При определенных дорожных условиях топовые гоночные автомобили не так быстры, как модифицированные автомобили. Rust похож на гоночный автомобиль высшего уровня, который эффективно гарантирует производительность и безопасность Solana. Однако он не предназначен для разработки этого трека для программ в блокчейне, а вместо этого вызывает увеличение сложности вождения (разработки). Использование публичной цепи, основанной на Rust, и разработка пользовательского языка для цепи эквивалентны модификации гоночного автомобиля, чтобы сделать его более подходящим для дорожных условий. Solana здесь находится в невыгодном положении.

Резюме

Модель программирования смарт-контрактов Solana является инновационной. Он предлагает подход к разработке смарт-контрактов без сохранения состояния, используя Rust в качестве основного языка программирования и архитектуру, которая отделяет логику от состояния. Это предоставляет разработчикам надежную среду для создания и развертывания смарт-контрактов, обеспечивая безопасность и производительность, хотя и создает более высокую сложность разработки. Solana фокусируется на высокой пропускной способности, низкой стоимости и масштабируемости, что делает ее идеальным выбором для разработчиков, которые в настоящее время хотят создавать высокопроизводительные децентрализованные приложения.

Отказ от ответственности:

  1. Эта статья перепечатана с [Foresight News]. Все авторские права принадлежат оригинальному автору [Алексу Лю]. Если у вас есть возражения против этой перепечатки, пожалуйста, свяжитесь с командой Gate Learn, и они оперативно разберутся с этим.
  2. Отказ от ответственности: Взгляды и мнения, выраженные в этой статье, принадлежат исключительно автору и не являются какими-либо инвестиционными рекомендациями.
  3. Переводом статьи на другие языки занимается команда Gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.

Изучение Solana Смарт-контракт модели программирования

Новичок6/11/2024, 5:47:31 AM
Solana — это высокопроизводительная блокчейн-платформа, предназначенная для поддержки децентрализованных приложений. Он известен своей скоростью и масштабируемостью, достигаемыми благодаря уникальному механизму консенсуса и архитектурному дизайну. В этой статье Ethereum используется в качестве объекта сравнения, чтобы кратко представить характеристики модели программирования смарт-контрактов Solana.

Переслать оригинальное название '小学生也能看懂!Solana 的编程模型,究竟和 ETH 有啥区别?'

Solana — это высокопроизводительная блокчейн-платформа, предназначенная для поддержки децентрализованных приложений. Он известен своей скоростью и масштабируемостью, достигаемыми благодаря уникальному механизму консенсуса и архитектурному дизайну. В этой статье Ethereum используется в качестве объекта сравнения, чтобы кратко представить характеристики модели программирования смарт-контрактов Solana.

Смарт-контракты и в блокчейне программы:

Программы, работающие на Ethereum, называются смарт-контракты, серией кодов (функций), расположенных по определенному адресу на Ethereum и data(state). (О, код и данные связаны) Смарт-контракты также являются учетными записями Ethereum, которые называются контрактными учетными записями. У них есть балансы, и они могут стать объектами транзакций, но они не могут контролироваться человеком и развертываются в сети для запуска в качестве программ.

Исполняемые коды, работающие на Solana, называются программами в блокчейне, и они могут интерпретировать инструкции, отправленные в каждой транзакции. Эти программы могут быть развернуты непосредственно в ядре сети как собственные программы или опубликованы кем угодно как программы SPL.

  1. Инструкция: Инструкции — это уникальные термины для программ в цепочке Solana. Ончейн-программы состоят из инструкций. Это самые маленькие единицы, которые выполняют определенные операции: одна или несколько инструкций включаются в каждую транзакцию Solana. В инструкциях указываются действия, которые необходимо выполнить, включая вызов определенной программы в блокчейне, передачу счета, списка входных данных и предоставление массива байтов. Инструкции имеют вычислительные ограничения, поэтому программы в блокчейне должны быть оптимизированы для использования небольшого количества вычислительных единиц или для разделения дорогостоящих операций на несколько инструкций.

  1. Нативные программы: это программы, которые предоставляют необходимые функциональные возможности для проверки узлов. Наиболее заметной из них является системная программа, которая отвечает за управление созданием новых учетных записей и переводом SOL между двумя учетными записями.
  2. Программы SPL: Они определяют ряд действий в блокчейне, включая создание, биржу и кредитование токенов, а также создание пулов ставок и обслуживание услуг разрешения доменных имен в блокчейне. Среди них программа токенов SPL используется для операций с токенами, в то время как программа связанных учетных записей токенов обычно используется для написания других пользовательских программ.

Вы называете их смарт-контрактами, я называю их программами в блокчейне. Это разные термины, но оба они относятся к коду, работающему в блокчейне. Так же, как и Алиса, Боб и Джон — это все имена, и их реальные качества должны оцениваться другими аспектами.

Модель учетной записи, разделение данных:

Как и Ethereum, Solana также является блокчейном, основанным на модели счет, но Solana предоставляет другую модель счет, чем Ethereum, и хранит данные другими способами.

В Solana учетные записи могут сохранять информацию о кошельке и другие данные. К полям, определяемым учетной записью, относятся Lamports (баланс счета), Owner (владелец счета), Executable (является ли это исполняемым счетом) и Data (данные, хранящиеся в счете). Каждый счет назначает программу в качестве ее владельца, чтобы определить, для какой программы счет используется в качестве хранилища состояний. Эти в блокчейне программы доступны только для чтения или не имеют состояния: программа счет (исполняемая счет) хранит только bytecode BPF и не хранит никаких состояний. Программа будет хранить состояние в других независимых учетных записях (неисполняемых учетных записях). То есть модель программирования Solana разделяет код и данные.

Ethereum счет в основном является отсылкой к EVM государству. Его смарт-контракт не только имеет логику кода, но и должен хранить пользовательские данные. Это часто считается недостатком конструкции, оставшимся от истории EVM.

Не стоит недооценивать это различие! Solana смарт-контракты фундаментально сложнее атаковать по сравнению с блокчейнами со связанной моделью программирования, такой как Ethereum.

В Ethereum «владелец» смарт-контракта — это глобальная переменная, которая соответствует смарт-контракту один к одному. Таким образом, вызов функции может напрямую изменить "владельца" контракта.

Однако в Solana «владельцем» смарт-контракта являются данные, связанные со счетом, а не глобальная переменная. Счет может иметь несколько владельцев, а не ассоциацию один к одному. Чтобы злоумышленник мог воспользоваться уязвимостью безопасности в смарт-контракте, ему нужно не только найти проблемную функцию, но и подготовить «правильные» учетные записи для вызова этой функции. Этот шаг непрост, так как Solana смарт-контракты обычно включает в себя несколько входных учетных записей и управляет их отношениями с помощью ограничений (например, account1.owner == account2.key). Процесс от «подготовки правильных учетных записей» до «запуска атаки» дает персоналу по мониторингу безопасности достаточно времени для упреждающего обнаружения подозрительных транзакций, связанных с созданием «поддельных» учетных записей, связанных со смарт-контрактом, до того, как произойдет атака.

Ethereum смарт-контракты похожи на хранилище, которое использует уникальный пароль; как только вы получаете этот пароль, вы становитесь его полным владельцем. Напротив, смарт-контракты Solana похожи на хранилище с множеством паролей. Чтобы получить доступ, нужно не только получить пароли, но и выяснить, какой пароль какому замку соответствует, чтобы его открыть.

Язык программирования

Rust является основным языком программирования для разработки смарт-контракты на Solana. Благодаря своей производительности и функциям безопасности он подходит для среды блокчейна и смарт-контрактов с высоким уровнем риска. Solana также поддерживает C, C++ и (что очень необычно) другие языки. Официальный SDK для Rust и C предоставляется для поддержки разработки программ в блокчейне. Разработчики могут использовать инструменты для компиляции программы в Berkley Packet Filter (BPF) bytecode (файл имеет расширение .so), затем развернуть его в цепочке Solana и выполнить логику смарт-контракта через параллельную среду выполнения смарт-контракта Sealevel.

Поскольку язык Rust сам по себе сложен для начала работы и не заточен под разработку блокчейна, многие требования требуют переосмысления колеса и избыточного кода. (Многие проекты в продакшене используют фреймворк Anchor, созданный одним из создателей рюкзака Армани для упрощения разработки) Многие недавно созданные языки программирования, посвященные блокчейн-разработке, основаны на Rust, такие как Cairo (Starknet), Move (Sui, Aptos).

Многие проекты в продакшене используют фреймворк Anchor

Ethereum смарт-контракты в основном разрабатываются на языке Solidity (синтаксис похож на javascript, а файл кода имеет расширение .sol). Из-за относительно простого синтаксиса и более зрелых инструментов разработки (фреймворк Hardhat, Remix IDE...) мы обычно считаем, что опыт разработки Ethereum проще и освежает, в то время как разработку Solana сложнее начать. Таким образом, несмотря на то, что Solana сейчас очень популярна, на самом деле количество разработчиков на Ethereum по-прежнему намного больше, чем на Solana.

При определенных дорожных условиях топовые гоночные автомобили не так быстры, как модифицированные автомобили. Rust похож на гоночный автомобиль высшего уровня, который эффективно гарантирует производительность и безопасность Solana. Однако он не предназначен для разработки этого трека для программ в блокчейне, а вместо этого вызывает увеличение сложности вождения (разработки). Использование публичной цепи, основанной на Rust, и разработка пользовательского языка для цепи эквивалентны модификации гоночного автомобиля, чтобы сделать его более подходящим для дорожных условий. Solana здесь находится в невыгодном положении.

Резюме

Модель программирования смарт-контрактов Solana является инновационной. Он предлагает подход к разработке смарт-контрактов без сохранения состояния, используя Rust в качестве основного языка программирования и архитектуру, которая отделяет логику от состояния. Это предоставляет разработчикам надежную среду для создания и развертывания смарт-контрактов, обеспечивая безопасность и производительность, хотя и создает более высокую сложность разработки. Solana фокусируется на высокой пропускной способности, низкой стоимости и масштабируемости, что делает ее идеальным выбором для разработчиков, которые в настоящее время хотят создавать высокопроизводительные децентрализованные приложения.

Отказ от ответственности:

  1. Эта статья перепечатана с [Foresight News]. Все авторские права принадлежат оригинальному автору [Алексу Лю]. Если у вас есть возражения против этой перепечатки, пожалуйста, свяжитесь с командой Gate Learn, и они оперативно разберутся с этим.
  2. Отказ от ответственности: Взгляды и мнения, выраженные в этой статье, принадлежат исключительно автору и не являются какими-либо инвестиционными рекомендациями.
  3. Переводом статьи на другие языки занимается команда Gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.
ابدأ التداول الآن
اشترك وتداول لتحصل على جوائز ذهبية بقيمة
100 دولار أمريكي
و
5500 دولارًا أمريكيًا
لتجربة الإدارة المالية الذهبية!