Як взагалі працюють блокчейн, смарт-контракти та додатки?

Як взагалі працюють блокчейн, смарт-контракти та додатки?

Учасники Tezos DeFi Hackathon 2022 запитували, як працюють смарт-контракти, хто їх викликає, що за вхідні параметри та звідки береться Storage. Розробник Baking Bad Михайло Заїкін дуже докладно це пояснив.

Ми вирішили, що такими знаннями потрібно поділитися зі спільнотою. За основу взяли пост Михайла, розширили його прикладами та додали ілюстрацій.

Що таке блокчейн

Блокчейн — це база даних, яка складається з блоків. Кожен блок містить інформацію про транзакції та операції за невеликий відрізок часу.

Блоки складаються в ланцюжок; звідси й назва blockchain, тобто ланцюжок блоків. Кожен наступний блок містить хеш-суму попереднього — результат перетворення всіх даних в блоці. Він є засобом перевірки того, що інформація в старих блоках не змінювалася з моменту їх створення. Якщо замінити одну операцію в блоці, його хеш-сума зміниться, і вузли помітять факт заміни. Тому блокчейн не можна відредагувати та відкотити старі операції.

Блокчейн зберігають вузли або ноди — комп’ютери, об’єднані в мережу P2P. P2P означає, що всі вузли рівні за правами, виконують однакові функції і безпосередньо обмінюються один з одним інформацією про операції та блоки.

Таким чином, у кожного вузла є власна копія історії всіх виконаних транзакцій, а також стан (State) — підсумковий результат операцій: баланс адрес, список і код смарт-контрактів та їх дані — сховище або Storage.

Як блокчейн виконує операції

Операція це перетворення стану блокчейна. Вузол застосовує до старого стану вхідні параметри і точки входу (Entrypoints), та повертає новий стан. Операції можуть бути різних типів: деплой (публікація) смарт-контракту, транзакція tez, виклик смарт-контракту та інші.

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

Для обробки запиту вузол за адресою смарт-контракту знаходить у блокчейні його код та дані (Storage або сховище). Потім він запускає інтерпретатор контрактів, завантажує до нього код, вхідні аргументи та поточні дані контракту. На виході він отримує нові дані, та перезаписує їх у стані.

Блокчейн-додатки часто використовують кілька смарт-контрактів, які посилаються один на одного. У такому разі вузол завантажуватиме в інтерпретатор контрактів їх код та дані у міру виконання операції.

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

Як працюють смарт-контракти

Смарт-контракт складається з двох частин: коду, що виконується, і сховища, в якому записані дані. Розробник у коді вказує функції та вхідні аргументи, а також тип даних у сховищі.

При деплої контракту в блокчейн розробник задає його початковий стан — дані, які потім перетворюватимуть вузли при виконанні операцій. Наприклад, при створенні смарт-контракту токена розробник вказує кількість токенів та адреси користувачів, які мають право ними розпоряджатися.

Оскільки вузли записують код контракту в блок, у майбутньому розробник не зможе його змінити. Команди перевіряють код у тестових мережах та проводять аудити безпеки, щоб не опублікувати у мейннеті неробочий чи вразливий продукт — його не вдасться виправити.

Як додатки працюють зі смарт-контрактами

Децентралізовані біржі, NFT-маркетплейси та інші додатки отримують дані про баланси користувача з блокчейну.

Коли користувач натискає кнопку, наприклад для обміну токенів на DEX, програма формує запит на виконання операції з зазначеними користувачем аргументами і передає її вузлам.

Підписуйтесь на соціальні мережі Tezos Ukraine, щоб нічого не пропустити:

  1. Telegram-канал
  2. Facebook.
  3. Twitter російською та українською мовами
  4. Twitter англійською мовою
  5. YouTube-канал
  6. Instagram
  7. LinkedIn
  8. hub на ForkLog

наступний

Wrap Protocol об’єднається з Plenty DeFi: що це означає для Tezos

Читайте схожі пости

Історія Teia.art: маркептлейс врятований спільнотою

Історія Teia.art: маркептлейс врятований спільнотою

Дерево Меркла: ось чому Optimistic Rollups будуть безпечними

Дерево Меркла: ось чому Optimistic Rollups будуть безпечними

Deku — перший сайдчейн Tezos уже на Jakartanet

Deku — перший сайдчейн Tezos уже на Jakartanet

Читайте блог і не пропускайте новини про TezosЧитати блог

Спільнота