Формальна верифікація Tezos надає можливості безпеки Децентралізованих фінансів
Tezos як відома PoS блокчейн, його переваги не обмежуються лише функцією Staking. Особливість формальної верифікації Tezos також є однією з його основних технічних переваг. Ця особливість може значно підвищити безпеку додатків DeFi, зміцнюючи довіру користувачів до безпеки коштів у смарт-контрактах.
Безпека DeFi та методи формальної верифікації
Швидкий розвиток Децентралізованих фінансів привернув увагу багатьох розробників, деякі відомі протоколи Децентралізованих фінансів накопичили понад сто мільйонів доларів фінансування. Проте, сфера Децентралізованих фінансів все ще стикається з однією великою проблемою: проблемою безпеки.
Ціна цього питання є величезною, вона негативно вплинула на мережеві ефекти деяких проектів блокчейн. За останні кілька місяців кілька проектів Децентралізовані фінанси зазнали атак, збитки варіювалися від десятків тисяч до десятків мільйонів доларів. Деякі проекти вчасно виявили помилки через самоперевірку та вжили заходів замороження, що дозволило уникнути більших втрат.
Для розробників DeFi, які приділяють увагу безпеці, формальна верифікація Tezos може зміцнити безпеку та надати можливості для застосувань DeFi.
У традиційних інтернет-додатках, після атаки хакерів на сервер, достатньо лише відкотити дані користувачів, щоб відшкодувати збитки. Тому традиційні додатки, які зосереджені на користувацькому досвіді, можуть пожертвувати частиною безпеки заради швидкої ітерації. Проте в додатках DeFi, через незмінність блокчейн-технології, якщо смарт-контракт вийде на ринок і виникнуть проблеми безпеки, збитки, завдані користувачам, будуть величезними та незворотними.
Тому процес розробки DeFi застосунків вимагає значних витрат на тестування та дорогі аудити для забезпечення безпеки, що, у свою чергу, впливає на швидкість ітерацій та зручність продукту. Крім того, через високі витрати на безпековий аудит багатьом розробникам важко розпочати проекти DeFi.
Недостатня кількість кадрів у сфері розробки блокчейну призводить до високих витрат на ручний аудит. Тому все більше застосовуються машиноасистовані методи верифікації, серед яких Формальна верифікація є ключовим засобом забезпечення безпеки.
Формальна верифікація є процесом використання формальних методів з математики для доведення або спростування властивостей алгоритмів, існують основні два методи:
Моделювання: перерахунок усіх можливих станів системи та їх перевірка, підходить для повністю автоматизованої верифікації малих систем.
Дедуктивна верифікація: спочатку систему коду позначають як абстрактну математичну модель, а потім доводять теореми, що підходить для великих систем, але потрібно вручну перетворити методи роботи системи на мову, зрозумілу для системи верифікації.
Протягом тривалого часу, через високу вартість, формальна верифікація застосовувалася переважно в академічній, оборонній, військовій та аерокосмічній сферах, а в комерційній сфері застосовувалася рідше. У зв'язку з суттєвими відмінностями в середовищі функціонування традиційних інтернет-додатків і блокчейн-додатків, їх процес розробки також має бути відповідним чином адаптований, особливо в частині співвідношення витрат на безпеку.
!
Застосування функціональних мов у сфері публічних блокчейнів
Щоб забезпечити безпеку, багато блокчейн-проєктів обирають функціональні мови, такі як Ocaml, Haskell, Erlang тощо, для підкладки архітектури, віртуальної машини або мови смарт-контрактів. Функціональні мови мають гарну репутацію в сфері безпеки завдяки строгому визначенню типів змінних, компіляційній перевірці та хорошим інструментам формальної верифікації (таким як CoQ). Код, написаний на звичайних процедурних мовах, зазвичай потрібно повторно позначити за допомогою функціональної мови для проведення формальної верифікації.
Серед багатьох блокчейн-проєктів, Tezos підтримує найбільшу різноманітність мов високого рівня для смарт-контрактів, які включають не лише такі функціональні мови, як Pascal, Ocaml, Haskell, але й широко використовувану мову Python. У порівнянні з цим, деякі інші проєкти вимагають від розробників вивчення нових функціональних мов, що безумовно підвищує поріг входження для розробки.
Безпекові характеристики мови Michelson
Tezos впровадив інноваційний підхід у проєктуванні мов для смарт-контрактів. Його смарт-контракти базуються на мові Michelson, що ґрунтується на Ocaml, тоді як розробники фактично працюють з такими високорівневими мовами, як Python, не потребуючи глибокого розуміння самої мови Michelson. Цей підхід поєднує безпеку та аудитоздатність мови Michelson з легкістю використання високорівневих мов, таких як Python.
Michelson має подібності з EVM Ethereum в архітектурі, такі як стекова мова, використання зберігання на блокчейні, модель витрат на газ, Тюрінгова повнота тощо. Але основна різниця між Michelson та EVM полягає в тому:
Статичні типи: всі дані, що надходять до смарт-контрактів Michelson, повинні мати чітко визначений тип, що запобігає помилкам у програмному забезпеченні, пов'язаним з невідповідністю типів.
Атомні обчислення: смарт-контракт Michelson повинен завершити виконання, перш ніж викликати інші контракти, що запобігає атакам повторного входу.
Чітке викликання не вдалося: не вдалося виконання може статися лише в трьох випадках: чітке невдача, вичерпання gas, переповнення кількості, що допомагає уникнути деяких поширених атак під час виконання.
Сувора семантика: є суворі норми щодо регістру, пробілів, коротких рядків тощо, що полегшує аудит коду.
Ці вдосконалення дозволяють Michelson краще протистояти поширеним типам атак в Ethereum.
!
SmartPy розробницький пакет
Розробникам DApp на Tezos не потрібно володіти мовою Michelson. Вони можуть використовувати SmartPy SDK на базі Python, щоб компілювати смарт-контракти, написані на Python, у мову Michelson. Таким чином, розробники DApp можуть легко почати працювати, знаючи лише Python.
SmartPy є бібліотекою Python, SmartPy.io дозволяє користувачам виконувати Python-скрипти в браузері. Офіційний сайт SmartPy пропонує онлайн-редактор, де розробники можуть безпосередньо писати код на Python і компілювати його в Michelson смарт-контракт, а потім розгортати на основній мережі Tezos. Його інтерфейс користувача є більш зрозумілим та простим у використанні, ніж онлайн-редактор Remix для Ethereum. SmartPy також постачається з готовими шаблонами для розробки, що полегшує вивчення для розробників.
Інтерфейс SmartPy.io складається з області написання коду та області відображення результатів виконання. Розробники можуть легко використовувати Python для написання та редагування коду контракту. SmartPy спрощує процес компіляції та виконання, достатньо натиснути кнопку виконання. Результати виконання відразу з'являються справа на екрані, включаючи точки входу для виклику контракту, стан зберігання, компільований код Michelson тощо.
Окрім онлайн-редактора, SmartPy також пропонує командну версію SmartPyBasic, що дозволяє розробникам компілювати та виконувати SmartPy-код у локальному середовищі. Розгорнуті смарт-контракти можна переглядати за допомогою SmartPy Contract Explorer, де поточний стан контракту та історія операцій видно на перший погляд.
Наразі SmartPy підтримує багато поширених функцій Python, таких як локальні змінні, перевірка типів змінних, Lambda-функції тощо. Невелика кількість функцій, які не підтримуються (наприклад, масиви), можуть бути замінені на map. Це означає, що для вивчення SmartPy не потрібно витрачати багато часу та зусиль, розробники можуть зосередитися на реалізації кращих функцій.
Для розробників, які хочуть почати з SmartPy, є кілька навчальних курсів, на які можна звернути увагу:
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Технологія формальної верифікації Tezos забезпечує безпеку Децентралізованих фінансів
Формальна верифікація Tezos надає можливості безпеки Децентралізованих фінансів
Tezos як відома PoS блокчейн, його переваги не обмежуються лише функцією Staking. Особливість формальної верифікації Tezos також є однією з його основних технічних переваг. Ця особливість може значно підвищити безпеку додатків DeFi, зміцнюючи довіру користувачів до безпеки коштів у смарт-контрактах.
Безпека DeFi та методи формальної верифікації
Швидкий розвиток Децентралізованих фінансів привернув увагу багатьох розробників, деякі відомі протоколи Децентралізованих фінансів накопичили понад сто мільйонів доларів фінансування. Проте, сфера Децентралізованих фінансів все ще стикається з однією великою проблемою: проблемою безпеки.
Ціна цього питання є величезною, вона негативно вплинула на мережеві ефекти деяких проектів блокчейн. За останні кілька місяців кілька проектів Децентралізовані фінанси зазнали атак, збитки варіювалися від десятків тисяч до десятків мільйонів доларів. Деякі проекти вчасно виявили помилки через самоперевірку та вжили заходів замороження, що дозволило уникнути більших втрат.
Для розробників DeFi, які приділяють увагу безпеці, формальна верифікація Tezos може зміцнити безпеку та надати можливості для застосувань DeFi.
У традиційних інтернет-додатках, після атаки хакерів на сервер, достатньо лише відкотити дані користувачів, щоб відшкодувати збитки. Тому традиційні додатки, які зосереджені на користувацькому досвіді, можуть пожертвувати частиною безпеки заради швидкої ітерації. Проте в додатках DeFi, через незмінність блокчейн-технології, якщо смарт-контракт вийде на ринок і виникнуть проблеми безпеки, збитки, завдані користувачам, будуть величезними та незворотними.
Тому процес розробки DeFi застосунків вимагає значних витрат на тестування та дорогі аудити для забезпечення безпеки, що, у свою чергу, впливає на швидкість ітерацій та зручність продукту. Крім того, через високі витрати на безпековий аудит багатьом розробникам важко розпочати проекти DeFi.
Недостатня кількість кадрів у сфері розробки блокчейну призводить до високих витрат на ручний аудит. Тому все більше застосовуються машиноасистовані методи верифікації, серед яких Формальна верифікація є ключовим засобом забезпечення безпеки.
Формальна верифікація є процесом використання формальних методів з математики для доведення або спростування властивостей алгоритмів, існують основні два методи:
Моделювання: перерахунок усіх можливих станів системи та їх перевірка, підходить для повністю автоматизованої верифікації малих систем.
Дедуктивна верифікація: спочатку систему коду позначають як абстрактну математичну модель, а потім доводять теореми, що підходить для великих систем, але потрібно вручну перетворити методи роботи системи на мову, зрозумілу для системи верифікації.
Протягом тривалого часу, через високу вартість, формальна верифікація застосовувалася переважно в академічній, оборонній, військовій та аерокосмічній сферах, а в комерційній сфері застосовувалася рідше. У зв'язку з суттєвими відмінностями в середовищі функціонування традиційних інтернет-додатків і блокчейн-додатків, їх процес розробки також має бути відповідним чином адаптований, особливо в частині співвідношення витрат на безпеку.
!
Застосування функціональних мов у сфері публічних блокчейнів
Щоб забезпечити безпеку, багато блокчейн-проєктів обирають функціональні мови, такі як Ocaml, Haskell, Erlang тощо, для підкладки архітектури, віртуальної машини або мови смарт-контрактів. Функціональні мови мають гарну репутацію в сфері безпеки завдяки строгому визначенню типів змінних, компіляційній перевірці та хорошим інструментам формальної верифікації (таким як CoQ). Код, написаний на звичайних процедурних мовах, зазвичай потрібно повторно позначити за допомогою функціональної мови для проведення формальної верифікації.
Серед багатьох блокчейн-проєктів, Tezos підтримує найбільшу різноманітність мов високого рівня для смарт-контрактів, які включають не лише такі функціональні мови, як Pascal, Ocaml, Haskell, але й широко використовувану мову Python. У порівнянні з цим, деякі інші проєкти вимагають від розробників вивчення нових функціональних мов, що безумовно підвищує поріг входження для розробки.
Безпекові характеристики мови Michelson
Tezos впровадив інноваційний підхід у проєктуванні мов для смарт-контрактів. Його смарт-контракти базуються на мові Michelson, що ґрунтується на Ocaml, тоді як розробники фактично працюють з такими високорівневими мовами, як Python, не потребуючи глибокого розуміння самої мови Michelson. Цей підхід поєднує безпеку та аудитоздатність мови Michelson з легкістю використання високорівневих мов, таких як Python.
Michelson має подібності з EVM Ethereum в архітектурі, такі як стекова мова, використання зберігання на блокчейні, модель витрат на газ, Тюрінгова повнота тощо. Але основна різниця між Michelson та EVM полягає в тому:
Статичні типи: всі дані, що надходять до смарт-контрактів Michelson, повинні мати чітко визначений тип, що запобігає помилкам у програмному забезпеченні, пов'язаним з невідповідністю типів.
Атомні обчислення: смарт-контракт Michelson повинен завершити виконання, перш ніж викликати інші контракти, що запобігає атакам повторного входу.
Чітке викликання не вдалося: не вдалося виконання може статися лише в трьох випадках: чітке невдача, вичерпання gas, переповнення кількості, що допомагає уникнути деяких поширених атак під час виконання.
Сувора семантика: є суворі норми щодо регістру, пробілів, коротких рядків тощо, що полегшує аудит коду.
Ці вдосконалення дозволяють Michelson краще протистояти поширеним типам атак в Ethereum.
!
SmartPy розробницький пакет
Розробникам DApp на Tezos не потрібно володіти мовою Michelson. Вони можуть використовувати SmartPy SDK на базі Python, щоб компілювати смарт-контракти, написані на Python, у мову Michelson. Таким чином, розробники DApp можуть легко почати працювати, знаючи лише Python.
SmartPy є бібліотекою Python, SmartPy.io дозволяє користувачам виконувати Python-скрипти в браузері. Офіційний сайт SmartPy пропонує онлайн-редактор, де розробники можуть безпосередньо писати код на Python і компілювати його в Michelson смарт-контракт, а потім розгортати на основній мережі Tezos. Його інтерфейс користувача є більш зрозумілим та простим у використанні, ніж онлайн-редактор Remix для Ethereum. SmartPy також постачається з готовими шаблонами для розробки, що полегшує вивчення для розробників.
Інтерфейс SmartPy.io складається з області написання коду та області відображення результатів виконання. Розробники можуть легко використовувати Python для написання та редагування коду контракту. SmartPy спрощує процес компіляції та виконання, достатньо натиснути кнопку виконання. Результати виконання відразу з'являються справа на екрані, включаючи точки входу для виклику контракту, стан зберігання, компільований код Michelson тощо.
Окрім онлайн-редактора, SmartPy також пропонує командну версію SmartPyBasic, що дозволяє розробникам компілювати та виконувати SmartPy-код у локальному середовищі. Розгорнуті смарт-контракти можна переглядати за допомогою SmartPy Contract Explorer, де поточний стан контракту та історія операцій видно на перший погляд.
Наразі SmartPy підтримує багато поширених функцій Python, таких як локальні змінні, перевірка типів змінних, Lambda-функції тощо. Невелика кількість функцій, які не підтримуються (наприклад, масиви), можуть бути замінені на map. Це означає, що для вивчення SmartPy не потрібно витрачати багато часу та зусиль, розробники можуть зосередитися на реалізації кращих функцій.
Для розробників, які хочуть почати з SmartPy, є кілька навчальних курсів, на які можна звернути увагу:
!