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

6/11/2024, 5:47:31 AM
Початківець
Ефіріум
Solana — це високопродуктивна блокчейн-платформа, призначена для підтримка dApps. Він відомий своєю швидкістю та масштабованістю, що досягається завдяки унікальному механізму консенсусу та архітектурному дизайну. У цій статті Ethereum використовується як об'єкт порівняння для короткого представлення характеристик моделі програмування смарт-контрактів Solana.

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

Solana — це високопродуктивна блокчейн-платформа, призначена для підтримка dApps. Він відомий своєю швидкістю та масштабованістю, що досягається завдяки унікальному механізму консенсусу та архітектурному дизайну. У цій статті Ethereum використовується як об'єкт порівняння для короткого представлення характеристик моделі програмування смарт-контрактів Solana.

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

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

Виконувані коди, що працюють на Solana, називаються у блокчейні програмами, і вони можуть інтерпретувати інструкції, надіслані в кожній транзакції. Ці програми можуть бути розгорнуті безпосередньо в ядрі мережі як нативні програми або опубліковані будь-ким як програми SPL.

  1. Інструкції: Інструкції – це унікальні терміни для програм у ланцюжку Solana. Ончейн-програми складаються з інструкцій. Це найменші одиниці, які виконують конкретні операції: одна або кілька інструкцій включаються в кожну Solana транзакцію. Інструкції визначають дії, які потрібно виконати, включаючи виклик певної у блокчейні програми, передачу рахунок, список вхідних даних і надання масиву байтів. Інструкції мають обчислювальні обмеження, тому у блокчейні програми повинні бути оптимізовані для використання невеликої кількості обчислювальних одиниць або для розбиття дорогих операцій на кілька інструкцій.

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

Ви називаєте їх смартконтракти, я називаю їх у блокчейні програмами. Різні терміни, але обидва вони стосуються коду, що працює на блокчейні. Так само, як і Аліса, Боб і Джон – це імена, і їх справжні якості потрібно оцінювати за іншими аспектами.

Модель облікового запису, розв'язка даних:

Подібно до Ethereum, Solana також є блокчейном, заснованим на моделі рахунок, але Solana забезпечує іншу модель рахунок, ніж Ethereum, і зберігає дані різними способами.

У Solana облікові записи можуть зберігати інформацію про гаманець та інші дані. Поля, визначені обліковим записом, включають Lamports (баланс рахунку), Owner (рахунок owner), Executable (незалежно від того, чи є він виконуваним рахунок) і Data (дані, що зберігаються в рахунок). Кожен рахунок визначає програму своїм власником, щоб розрізняти, для якої програми рахунок використовується як сховище станів. Ці у блокчейні програми доступні лише для читання або без стану: програма рахунок (виконуваний рахунок) зберігає лише BPF байт-код і не зберігає жодного стану. Програма буде зберігати стан на інших незалежних рахунках (невиконуваних рахунках). Тобто модель програмування Solana відокремлює код від даних.

Ethereum рахунок в основному є посиланням на EVM державу. Його смарт-контракт не тільки має логіку коду, але й потребує зберігання даних користувача. Це часто вважають недоліком дизайну, що залишився з історії EVM.

Не варто недооцінювати цю відмінність! Solana смартконтракти принципово складніші для атаки порівняно з блокчейнами з пов'язаною моделлю програмування, такою як Ethereum.

У Ethereum «власник» смарт-контракту — це глобальна змінна, яка один до одного відповідає смарт-контракту. Таким чином, виклик функції може безпосередньо змінити контракт "owner".

Однак Solana «власником» смарт-контракту є дані, пов'язані з рахунок, а не глобальною змінною. У рахунок може бути кілька власників, а не об'єднання один на один. Щоб зловмисник міг скористатися вразливістю безпеки в смарт-контракті, йому потрібно не тільки знайти проблемну функцію, але й підготувати «правильні» облікові записи для виклику цієї функції. Цей крок є непростим, оскільки Solana смартконтракти зазвичай включають кілька облікових записів вхідних даних і керують їхніми зв'язками за допомогою обмежень (наприклад, account1.owner == account2.key). Процес від «підготовки правильних облікових записів» до «запуску атаки» дає співробітникам моніторингу безпеки достатньо часу для проактивного виявлення підозрілих транзакцій, пов'язаних зі створенням «фальшивих» облікових записів, пов'язаних зі смарт-контрактом, до того, як атака відбудеться.

Ethereum смартконтракти схожі на сховище, яке використовує унікальний пароль; як тільки ви отримуєте цей пароль, ви отримуєте повне право власності. На противагу цьому, смартконтракти Solana схожі на сховище з безліччю паролів. Щоб отримати доступ, потрібно не тільки отримати паролі, а й з'ясувати, який пароль відповідає якому замку, щоб його відкрити.

Мова програмування

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

Оскільки сама мова Rust складна для початку роботи і не налаштована для розробки блокчейну, багато вимог вимагають заново винаходити велосипед і зайвий код. (У багатьох проектах у виробництві використовується фреймворк Anchor, створений співавтором Backpack Armani для спрощення розробки) Багато новостворених мов програмування, присвячених розробці блокчейну, засновані на 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 фокусується на високій пропускній здатності, низькій вартості та масштабованості, що робить його ідеальним вибором для розробників, які зараз прагнуть створювати високопродуктивні dApps.

Відмова від відповідальності:

  1. Цю статтю передруковано з [Foresight News]. Усі авторські права належать оригінальному автору [Alex Liu]. Якщо є заперечення проти цього передруку, будь ласка, зв'яжіться з командою Gate Learn, і вони оперативно впораються з цим.
  2. Відмова від відповідальності: Погляди та думки, висловлені в цій статті, належать виключно автору і не є жодною інвестиційною порадою.
  3. Переклад статті на інші мови здійснює команда Gate Learn. Якщо не зазначено, копіювання, розповсюдження або плагіат перекладених статей заборонено.

Поділіться

Криптокалендар

Запуск продукту NFT AI
Nuls запустить продукт NFT AI в третьому кварталі.
NULS
2.77%
2025-08-07
Запуск dValueChain v.1.0
Bio Protocol планує запустити dValueChain v.1.0 у першому кварталі. Він має на меті створити децентралізовану мережу медичних даних, забезпечуючи безпечні, прозорі та незмінні медичні записи в екосистемі DeSci.
BIO
-2.47%
2025-08-07
Субтитри до відео, згенеровані штучним інтелектом
Verasity додасть функцію субтитрів для відео, створених за допомогою штучного інтелекту, у четвертому кварталі.
VRA
-1.44%
2025-08-07
Підтримка кількох мов VeraPlayer
Verasity додасть багатомовну підтримку до VeraPlayer у четвертому кварталі.
VRA
-1.44%
2025-08-07
Автоматизоване виконання покупки/продажу
Linear додасть автоматизоване виконання купівлі/продажу, що дозволить трейдерам виконувати угоди на основі попередньо визначених параметрів, підвищуючи ефективність та прибутковість.
LINA
1.85%
2025-08-07

Статті на тему

Що таке Wrapped Ethereum (WETH)?
Початківець

Що таке Wrapped Ethereum (WETH)?

Wrapped Ethereum (WETH) – це версія ERC-20 рідної валюти блокчейну Ethereum, Ether (ETH). Токен WETH прив'язаний до оригінальної монети. На кожен WETH в обігу є ETH в резерві. Метою створення WETH є сумісність у мережі. ETH не відповідає стандарту ERC-20, і більшість DApps, створених у мережі, дотримуються цього стандарту. Тому WETH використовується для полегшення інтеграції ETH у програми DeFi.
11/24/2022, 8:49:09 AM
Що таке Neiro? Все, що вам потрібно знати про NEIROETH у 2025 році
Середній

Що таке Neiro? Все, що вам потрібно знати про NEIROETH у 2025 році

Neiro — це собака породи Шиба-іну, яка надихнула на запуск токенів Neiro на різних блокчейнах. Станом на 2025 рік Neiro Ethereum (NEIROETH) перетворився на провідну мем-монету з ринковою капіталізацією 215 мільйонів доларів, 87 000+ власників і лістингами на 12 основних біржах. Екосистема тепер включає DAO для управління спільнотою, офіційний магазин товарів і мобільний додаток. NEIROETH впровадив рішення рівня 2 для підвищення масштабованості та закріпив свою позицію в топ-10 монет-мемів на собачу тематику за ринковою капіталізацією, підкріплені жвавою спільнотою та провідними криптоінфлюенсерами.
9/5/2024, 3:37:06 PM
Що таке Об'єднання?
Початківець

Що таке Об'єднання?

Після того як Ethereum пройде остаточну тестову мережу з Mainnet, Ethereum офіційно перейде з PoW на PoS. Тоді який вплив ця безпрецедентна революція принесе криптосвіту?
7/10/2024, 9:12:24 AM
Що таке Ethereum 2.0? Розуміння злиття
Середній

Що таке Ethereum 2.0? Розуміння злиття

Зміна в одній із найпопулярніших криптовалют, яка може вплинути на всю екосистему
11/21/2022, 8:34:12 AM
Топ 10 ETH LST Токен
Початківець

Топ 10 ETH LST Токен

Конкуренція в секторі стейкінгу ETH нагрівається, з'являються різноманітні інноваційні геймплей та екосистеми винагород, які привертають увагу ринку. Ця стаття відфільтрує Топ-10 токенів ETH LST, які варто врахувати з урахуванням рейтингу за ринковою капіталізацією.
10/28/2024, 1:45:41 PM
Топ-10 торгових інструментів в Крипто
Середній

Топ-10 торгових інструментів в Крипто

Світ криптовалют постійно розвивається, регулярно з'являються нові інструменти та платформи. Дізнайтеся про найкращі інструменти криптовалют для покращення вашого торговельного досвіду. Від управління портфелем та аналізу ринку до відстеження в реальному часі та платформ мем-монет, дізнайтеся, як ці інструменти можуть допомогти вам приймати обґрунтовані рішення, оптимізувати стратегії та бути впереду на динамічному криптовалютному ринку.
11/28/2024, 5:39:59 AM
Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!