Разница между моделями программирования Solana и ETH

Продвинутый5/22/2024, 7:43:04 PM
Эта статья сравнивает модели программирования смарт-контрактов Solana и Ethereum. On-chain программы Solana похожи на смарт-контракты Ethereum, но Solana предлагает другую среду выполнения благодаря своей уникальной модели учетной записи и подходу к отделению данных. Модель учетной записи Solana разделяет хранение кода и данных, улучшая безопасность. Solana в основном использует язык Rust для разработки смарт-контрактов, который обеспечивает высокую производительность и безопасность, но имеет крутой кривой обучения. С другой стороны, Ethereum в основном использует Solidity, обеспечивая более простой и зрелый опыт разработки. Несмотря на сложности разработки с Solana, его высокая пропускная способность, низкие затраты и масштабируемость делают его идеальным выбором для разработки высокопроизводительных dApps.

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

Умные контракты и программы на цепи:

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

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

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

Нативные программы: они обеспечивают основные функциональные возможности, необходимые для валидационных узлов. Самая известная из них - Системная программа, отвечающая за управление созданием новых учетных записей и передачу SOL между двумя учетными записями.

Программы SPL: Они определяют серию действий на цепочке, включая создание токенов, обмен, кредитование, создание стейкинг-пулов, поддержку услуг разрешения имен доменов на цепочке и многое другое. Среди них программа токенов SPL используется для операций с токенами, в то время как программы, такие как Программа Ассоциированного Токенного Счета, обычно используются для написания других настраиваемых программ.

Вы называете это смарт-контрактами, а я называю это программами на цепи. Разные названия, но оба относятся к коду, работающему на блокчейне. Как, например, имена Чжан Саня, Ли Си и Ван Ма Цзи - все они имена, и качество должно оцениваться также и по другим аспектам.

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

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

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

С другой стороны, учетные записи Ethereum в основном служат ссылками на состояние EVM (Ethereum Virtual Machine). Смарт-контракты на Ethereum содержат как логику кода, так и необходимость хранить данные пользователей. Это часто рассматривается как конструктивный недостаток, унаследованный из истории EVM.

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

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

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

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

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

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

Однако из-за высокого кривой обучения языка Rust и его отсутствия настройки для разработки блокчейнов, многие требования приводят к избыточному коду и изобретению велосипеда. Чтобы упростить разработку, многие проекты в производстве используют фреймворк Anchor, созданный в результате сотрудничества между Backpack и Armani. Кроме того, несколько новых языков программирования, специально адаптированных для разработки блокчейнов, таких как Cairo (Starknet) и Move (Sui, Aptos), основаны на Rust.

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

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

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

Заключение

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

Утверждение:

  1. Эта статья воспроизведена с [ panews], оригинальное название «Моя бабушка тоже может понять: В чем разница между программной моделью Solana и ETH?», авторские права принадлежат оригинальному автору [Foresight News, Alex Liu], если у вас есть возражения к перепечатке, пожалуйста, свяжитесь с Команда Gate Learn, команда будет обработает это как можно скорее в соответствии с соответствующими процедурами.

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

  3. Другие языковые версии статьи переведены командой Gate Learn, не упомянутой в Gate, переведенная статья не может быть воспроизведена, распространена или использована в качестве плагиата.

Разница между моделями программирования Solana и ETH

Продвинутый5/22/2024, 7:43:04 PM
Эта статья сравнивает модели программирования смарт-контрактов Solana и Ethereum. On-chain программы Solana похожи на смарт-контракты Ethereum, но Solana предлагает другую среду выполнения благодаря своей уникальной модели учетной записи и подходу к отделению данных. Модель учетной записи Solana разделяет хранение кода и данных, улучшая безопасность. Solana в основном использует язык Rust для разработки смарт-контрактов, который обеспечивает высокую производительность и безопасность, но имеет крутой кривой обучения. С другой стороны, Ethereum в основном использует Solidity, обеспечивая более простой и зрелый опыт разработки. Несмотря на сложности разработки с Solana, его высокая пропускная способность, низкие затраты и масштабируемость делают его идеальным выбором для разработки высокопроизводительных dApps.

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

Умные контракты и программы на цепи:

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

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

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

Нативные программы: они обеспечивают основные функциональные возможности, необходимые для валидационных узлов. Самая известная из них - Системная программа, отвечающая за управление созданием новых учетных записей и передачу SOL между двумя учетными записями.

Программы SPL: Они определяют серию действий на цепочке, включая создание токенов, обмен, кредитование, создание стейкинг-пулов, поддержку услуг разрешения имен доменов на цепочке и многое другое. Среди них программа токенов SPL используется для операций с токенами, в то время как программы, такие как Программа Ассоциированного Токенного Счета, обычно используются для написания других настраиваемых программ.

Вы называете это смарт-контрактами, а я называю это программами на цепи. Разные названия, но оба относятся к коду, работающему на блокчейне. Как, например, имена Чжан Саня, Ли Си и Ван Ма Цзи - все они имена, и качество должно оцениваться также и по другим аспектам.

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

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

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

С другой стороны, учетные записи Ethereum в основном служат ссылками на состояние EVM (Ethereum Virtual Machine). Смарт-контракты на Ethereum содержат как логику кода, так и необходимость хранить данные пользователей. Это часто рассматривается как конструктивный недостаток, унаследованный из истории EVM.

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

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

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

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

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

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

Однако из-за высокого кривой обучения языка Rust и его отсутствия настройки для разработки блокчейнов, многие требования приводят к избыточному коду и изобретению велосипеда. Чтобы упростить разработку, многие проекты в производстве используют фреймворк Anchor, созданный в результате сотрудничества между Backpack и Armani. Кроме того, несколько новых языков программирования, специально адаптированных для разработки блокчейнов, таких как Cairo (Starknet) и Move (Sui, Aptos), основаны на Rust.

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

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

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

Заключение

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

Утверждение:

  1. Эта статья воспроизведена с [ panews], оригинальное название «Моя бабушка тоже может понять: В чем разница между программной моделью Solana и ETH?», авторские права принадлежат оригинальному автору [Foresight News, Alex Liu], если у вас есть возражения к перепечатке, пожалуйста, свяжитесь с Команда Gate Learn, команда будет обработает это как можно скорее в соответствии с соответствующими процедурами.

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

  3. Другие языковые версии статьи переведены командой Gate Learn, не упомянутой в Gate, переведенная статья не может быть воспроизведена, распространена или использована в качестве плагиата.

Empieza ahora
¡Registrarse y recibe un bono de
$100
!