Програмування смарт-контрактів Силабус освітнього компонента

Реквізити навчальної дисципліни

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 Інформаційні технології
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інформаційні системи та технології, Інтегровані інформаційні системи; Інформаційні управляючі системи та технології; Інформаційне забезпечення робототехнічних систем
Статус дисципліни Вибіркова
Форма навчання Очна (денна) та дистанційна
Рік підготовки, семестр 4 курс, весняний семестр
Обсяг дисципліни 4 кредити ECTS / 120 годин (36 годин лекцій, 18 годин лабораторних робіт)
Семестровий контроль/ контрольні заходи Залік, Модульна контрольна робота
Розклад занять 1 лекція (2 год.) раз на тиждень; 1 лабораторне заняття (2 год.) раз на 2 тижні
Мова викладання Українська
Інформація про
керівника курсу / викладачів

Лектор: старший викладач Яланецький Валерій Анатолійович, v.yalanetskyi@gmail.com

Лабораторні: старший викладач Яланецький Валерій Анатолійович, v.yalanetskyi@gmail.com

Розміщення курсу https://ecampus.kpi.ua/

Програма навчальної дисципліни

  1. Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання

Цифровізація та діджиталізація бізнес-процесів продукують запити до нових компетенцій серед фахівців з інформаційних систем, зокрема в сфері смарт-контрактів. У вибірковому освітньому компоненті «Програмування смарт-контрактів» (ПСК) вивчаються теоретичні засади, підходи, засоби та технології програмування смарт-контрактів. А також теоретичні засади щодо надійності та юридичної легітимності смарт-контрактів.

Предметом навчальної дисципліни є вивчення здобувачами/слухачами методів та засобів побудови смарт-контрактів децентралізованих баз даних типу блокчейн, одержання навичок програмування смарт-контрактів із використанням сучасних мов та середовищ програмування зокрема Solidity та Rust.

Метою навчальної дисципліни є формування у здобувачів/слухачів здібностей:

  • проектуванню типового рішення смарт-контракту;

  • програмуванню смарт-контрактів мовами Solidity та Rust, розробки функцій, завантаження до блокчейну та тестуванню смарт-контрактів;

    Здобувачі/слухачі після засвоєння навчальної дисципліни мають продемонструвати такі результати навчання:

знання:

- ролі і місця смарт-контрактів при проектуванні і налагоджені інформаційних систем;

- принципів і методів побудови типових смарт-контрактів;

- основних методів забезпечення функціонування смарт-контрактів в блокчейні;

- сучасних програмних технологій розгортання децентралізованих додатків.

уміння:

- проаналізувати відомі способи проектування децентралізованих додатків у відповідності з поставленим завданням і вибрати конкретний метод, виходячи із мети, завдань, реальних допущень та обмежень розробки смарт-контрактів;

- вибрати конкретні методи побудови смарт-контрактів децентралізованого додатку.

досвід:

- раціонально використовувати сучасні технології, пакети прикладних програм та інтегровані середовища програмування смарт-контрактів;

- оволодіння сучасними програмними засобами програмування смарт-контрактів в середовищах IntelliJ IDEA та Remix.

  1. Пререквізити та постреквізити дисципліни (місце в структурно-логічній схемі навчання за відповідною освітньою програмою)

Пререквізити: математика, інформатика, програмування, адміністрування операційних систем, теорія інформації та кодування, теоретичні основи криптографії, основи баз даних, технологія блокчейн.

Постреквізити: знання одержані при вивчені данної дисципліни використовуються в наступних дисциплінах: проектування інформаційних систем, проектування комп'ютеризованих інтелектуальних систем управління, проектування децентралізованих додатків та інші.

  1. Обсяг та зміст навчальної дисциплін

3.1 Обсяг навчальної дисципліни

Дисципліна складається з наступних навчальних складових: Лекції, Лабораторні роботи (ЛР), Модульна контрольна робота (МКР), Залікова контрольна робота (ЗКР).

За денною формою навчання обсяг: 120 годин (36год – Лекції, 18год – ЛР, 66год – СРС)

3.2 Тематика лекційних занять

РОЗДІЛ I. ОСНОВИ СМАРТ-КОНТРАКТІВ

Тема 01. Мета, задачі та організація курсу

Тема 02. Вступ у смарт-контракти

Тема 03. Вступ у мову Solidity

Тема 04. Функції, бібліотеки, рядкові методи

Тема 05. Децентралізована архітектура програмних додатків

Тема 06. Переваги та недоліки децентралізованих додатків

Тема 07. Смарт-контракти проти традиційних договорів

Тема 08. Юридичний смарт-контракт

Тема 09. Стандарти токенів

Тема 10. Приклад емісії токенів згідно ERC-20 на Solidity

Тема 11. Смарт-контракти в блокчейні Bitcoin

Тема 12. Блокчейн Stacks

Тема 13. Індексатори у блокчейнах

Тема 14. Спадкування на мові Solidity

Тема 15. Витоки децентралізованого управління

Тема 16. DAO як нова організаційна форма

РОЗДІЛ IІ. СМАРТ-КОНТРАКТИ НА NEAR PROTOCOL

Тема 17. Основи мови програмування Rust

Тема 18. Блокчейн Near Protocol

Тема 19. Потоки даних в блокчейні Near

Тема 20. Модель смарт-контрактів на Near

Тема 21. Призначення оракулів в блокчейнах

Тема 22. Види кросчейн-мостів

Тема 23. Типові вразливості смарт-контрактів

Тема 24. Приклади атак на смарт-контракти

Тема 25. Автоматизація тестування смарт-контрактів

Тема 26. Приклади тестування смарт-контрактів на Rust

Тема 27. Операційні блокчейни EOS та TON

Тема 28. Операційна система Near BOS

Тема 29. Звичайні HD-, MPC- та смарт-гаманці

Тема 30. Абстрактні облікові записи

Тема 31. Принцип квадратичного голосування

Тема 32. Приклад смарт-контракту е-голосування

Тема 33. Low/No-code програмування й конструювання смарт-контрактів

3.3 Тематика лабораторних робіт (ЛР)

Тема 01. Типи даних в мові Solidity

Тема 02. Інтерфейси в мові Solidity

Тема 03. Паттерни в мові Solidity

Тема 04. Смарт-контракт на Near мовою Rust

Тема 05. Бібліотека Near SDK та шаблони доступу

Тема 06. Застосування індексаторів

  1. Навчальні матеріали та ресурси

4.1 Базові джерела

  1. П. Кравченко, Б. Скрябін, О. Курбатов, О. Дубініна. Блокчейн і децентралізовані системи: навч. посібник для студ. закладів вищ. освіти: в 3 частинах. Ч. 1 / - Харків: ПРОМАРТ, 2019. – 452 с.
  2. П. Кравченко, Б. Скрябін, О. Курбатов, О. Дубініна. Блокчейн і децентралізовані системи: навч. посібник для студ. закладів вищ. освіти: в 3 частинах. Ч. 2 / - Харків: ПРОМАРТ, 2019. – 412 с.
  3. П. Кравченко, Б. Скрябін, О. Курбатов, О. Дубініна. Блокчейн і децентралізовані системи: навч. посібник для студ. закладів вищ. освіти: в 3 частинах. Ч. 3 / - Харків: ПРОМАРТ, 2020. – 306 с.
  4. Manuel José Fernández Iglesias. Introduction to Blockchain, Smart Contracts and Decentralized Applications. University of Vigo, Spain. 2023. 81 p. Ver 3.0/EN. Technical report. atlanTTIc, University of Vigo, Spain. DOI: 10.17605/OSF.IO/FQ3P9.
  5. Smart Legal Contracts: Advice to Government. Great Britain. Law Commission. 2021. – 227 p.

4.2 Додаткові джерела

  1. Таненбаум Е. Розподілені системи. Принципи / Е. Таненбаум, М. ван Стеен. К, 2003.877 с.
  2. Равал С. Децентралізовані програми. Технологія Blockchain в дії. 2017. 193 с.
  3. Вербіцький О. В. Вступ до криптології. Львів: ВНТЛ, 2011. 248 с.
  4. Kose John, Smart, Leonid Kogan, Fahad Saleh. Contracts and Decentralized Finance. Annual Review of Financial Economics. 2023. DOI: 10.1146/annurev-financial-110921-022806.
  5. Max Raskin. The Law and Legality of Smart Contracts. 2017. URL: https://perma.cc/673G-3ANE.
  6. Tanash Utamchandani Tulsidas. Smart Contracts from a Legal Perspective. Academic Course [2017-2018].**

4.3 Рекомендації та роз’яснення

Зазначені навчальні матеріали та ресурси вільно доступні в інтернеті;

Обов’язковим для прочитання є інформація згідно тематики, що викладена у змісті навчальної дисципліни;

Факультативним для прочитання є інформація, що стосується комплексів смарт-контрактів;

Зв’язок цих ресурсів з конкретними темами дисципліни наведений далі у Навчальному контенті.

Навчальний контент

  1. Методика опанування навчальної дисципліни (освітнього компонента)

5.1 Лекційні заняття

|№|Назва теми лекції та перелік основних питань
(перелік дидактичних засобів, посилання на літературу та завдання на СРС)
|| | :-: | :-: | :- | |1|

Тема 01. Мета, задачі та організація курсу

Структура навчальної дисципліни, РСО. Мета та задачі курсу. Перспективи та місце смарт-контрактів у соціальній та науковій сфері людства. Загальні поняття, структура та властивості смарт-контрактів.

Тема 02. Вступ у смарт-контракти

Смарт-контракти в Bitcoin. Блокчейн Ethereum як інфраструктура виконання смарт-контрактів. Життєвий цикл смарт-контрактів. Різновиди смарт-контрактів. Вразливості смарт-контрактів. Структура смарт-контрактів на Solidity.

Джерела: Навчальні матеріали та ресурси

|| |2|

Тема 03. Вступ у мову Solidity

Структура смарт-контракту. Приклад смарт-контракту в середовищі Remix. Типи даних в мові Solidity. Особливості вибору типу даних відповідно до фінансових задач смарт-контрактів.

Тема 04. Функції, бібліотеки, рядкові методи

Функції у смарт-контрактах. Вміст тіла функції на Solidity. Повернення результату функції. Компіляція та завантаження прикладу смарт-контракту. Перевірка роботи смарт-контракту. Модифікатори. Бібліотеки функцій та рядкові методи.

Джерела: Навчальні матеріали та ресурси

|| |3|

Тема 05. Децентралізована архітектура програмних додатків

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

Тема 06. Переваги та недоліки децентралізованих додатків

Переваги та недоліки DApps. Сфери застосування DApps. Вбудовані смарт-контракти децентралізованих додатків.

Джерела: Навчальні матеріали та ресурси

|| |4|

Тема 07. Смарт-контракти проти традиційних договорів

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

Тема 08. Юридичний смарт-контракт

Визначення «юридичний смарт-контракт». Хронологія сприйняття смарт-контрактів юридичною професією. Смарт-контракти та цивільний кодекс. Форми юридичних смарт-контрактів. Юридичний смарт-контракт (SLC) і смарт-контрактний код (SCC).

Джерела: Навчальні матеріали та ресурси

|| |5|

Тема 09. Стандарти токенів

Стандарт токенів ERC-20. Різниця між стандартом і токенами ERC-20. Як створювати токени ERC-20. Характеристики та параметри ERC-20. BRC-20 токени. Як створити токени на Біткойні. Стандарт токенів ARC-20. Стандарти «написів». Токени CBDC.

Тема 10. Приклад емісії токенів згідно ERC-20 на Solidity

Інтерфейс смарт-контракту для користувацького токена. Функції смарт-контракту випуску токенів. Події усіма транзакціями смарт-контракту. Функція переведення токенів на іншу адресу. Функція повернення балансу токенів. Випуск токенів без програмування.

Джерела: Навчальні матеріали та ресурси

|| |6|

Тема 11. Смарт-контракти в блокчейні Bitcoin

Поточний стан блокчейну Bitcoin. Фунціонал наявних «смарт-контрактів» в Bitcoin. Не повні за Тюрінгом смарт-контракти в Біткойн. Хешований контракт блокування часу HTLC. Дискретні договори журналу DLC. Верхні рівні Bitcoin зі смарт-контрактами.

Тема 12. Блокчейн Stacks

Блокчейн Stacks як вдосконалення Біткойну. Механізм досягнення консенсусу Proof-of-Transfer. Майнінг токенів STX. Смарт-контракти мовою Clarity. Переваги розв’язуваної мови програмування Clarity.

Джерела: Навчальні матеріали та ресурси

|| |7|

Тема 13. Індексатори у блокчейнах

Потреба в індексаторах для смарт-контрактів. The Graph – Google Of Blockchains. ABI стандарт взаємодії смарт-контракту із зовнішнім світом.

Тема 14. Спадкування на мові Solidity

Ключове слово в мові Solidity для успадкування смарт-контрактів. Приклад успадкування смарт-контракту та виклик його відповідних методів.

Джерела: Навчальні матеріали та ресурси

|| |8|

Тема 15. Витоки децентралізованого управління

Концепція «Децентралізовані автономні організації». Перший і невдалий проєкт DAO на блокчейні Ethereum – The DAO. Групи DAO за зонами інтересів.

Тема 16. DAO як нова організаційна форма

Різні визначення терміну DAO. Призначення та функції DAO. Три рівні інновацій в DAO. Місії, спільнота та культура DAO. Компенсаційні моделі в DAO. Мотиви для створення DAO. Децентралізовані системи управління.

Джерела: Навчальні матеріали та ресурси

|| |9|

Тема 17. Основи мови програмування Rust

Основні відмінності та переваги мови Rust. Властивості безпеки в Rust. Застосування Rust у фронтенді та бекенді. Простий приклад програми мовою Rust. Типи даних, функції та цикли в Rust. Імутабельна змінна, масиви, зрізи, рядки та класи в Rust.

Тема 18. Блокчейн Near Protocol

Особливості блокчейну Near Protocol. Обліковий запис блокчейну Near. Паролі та ключі доступу до криптогаманця Near Wallet. Функції нативного токену NEAR.

Джерела: Навчальні матеріали та ресурси

|| |10|

Тема 19. Потоки даних в блокчейні Near

Потік даних в блокчейні Near. Основний принцип передачі даних блокчейном Near. Сегментування блокчейну Near. Зміна стану блокчейну шляхом виконання транзакції. Квитанція як підтвердження виконання транзакції.

Тема 20. Модель смарт-контрактів на Near

Ментальна модель для створення DApps. Економіка розробки й експлуатації DApp. Розробка смарт-контракту засобами Near Rust SDK. Виклик інших смарт-контрактів.

Джерела: Навчальні матеріали та ресурси

|| |11|

Тема 21. Призначення оракулів в блокчейнах

Місце оракулів в блокчейнах. Типи оракулів в блокчейні. Апаратні оракули. Людські оракули. Вхідні оракули. Контрактні оракули. Оракули, що засновані на консенсусі. Централізований та децентралізований оракул.

Тема 22. Види кросчейн-мостів

Децентралізовані (trust-based або federated), централізовані (trustless) та сайдчейн-мости (sidechain bridges). Оптимістичні мости-згортки. Мультичейни.

Джерела: Навчальні матеріали та ресурси

|| |12|

Тема 23. Типові вразливості смарт-контрактів

Найперший відомий приклад успішної уразливості смарт-контракту. Аудит смарт-контрактів. Вразливість Casting Overflow.

Тема 24. Приклади атак на смарт-контракти

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

Джерела: Навчальні матеріали та ресурси

|| |13|

Тема 25. Автоматизація тестування смарт-контрактів

Тестова мережа для тестування смарт-контрактів. Набори тестів перевірки смарт-контрактів.

Тема 26. Приклади тестування смарт-контрактів на Rust

Розгортання фреймворків для тестування смарт-контрактів. Шаблони та приклади типових тестів смарт-контрактів.

Джерела: Навчальні матеріали та ресурси

|| |14|

Тема 27. Операційні блокчейни EOS та TON

Особливості та ключові характеристики блокчейну EOS. Ресурси CPU, NET і RAM як основа EOS. Архітектура блокчейну TON.

Тема 28. Операційна система Near BOS

Визначення та призначення платформи BOS. Три рівні блокчейн-системи. Компоненти та обмеження використання BOS. Приклад розробки DApp в BOS.

Джерела: Навчальні матеріали та ресурси

|| |15|

Тема 29. Звичайні HD-, MPC- та смарт-гаманці

Звичайні HD-криптогаманці. MPC-гаманці, їх переваги та недоліки. Смарт-гаманці, їх переваги та недоліки. Одноключові та мультисіг-гаманці. Блокчейні DMAIL.

Тема 30. Абстрактні облікові записи

Абстракція облікового запису. Як працює АОЗ. Як АОЗ підвищує безпеку гаманців та користувацький досвід. XION – узагальнені абстракції облікових записів.

Джерела: Навчальні матеріали та ресурси

|| |16|

МОДУЛЬНА КОНТРОЛЬНА РОБОТА

Виконання комплексного Тесту.

Джерела: Матеріали Лекцій, ЛР та СРС

|| |17|

Тема 31. Принцип квадратичного голосування

Квадратичне голосування. Квадратичне фінансування. Варіанти використання квадратичного голосування та квадратичного фінансування

Тема 32. Приклад смарт-контракту е-голосування

Структура та методи смарт-контракту системи голосування. Ідентифікація та авторизація в системі голосування. Тестування смарт-контракту системи голосування.

Джерела: Навчальні матеріали та ресурси

|| |18|

Тема 33. Low/No-code програмування й конструювання смарт-контрактів

Традиційна та Low-code розробка смарт-контрактних децентралізованих додатків. Інструмент app.toolblox.net. Приклад конструювання смарт-контракту.

Джерела: Навчальні матеріали та ресурси

ЗАЛІК

|| ||Загальна кількість годин на всі 18 Лекцій (денна)|36| **

5.2 Лабораторні заняття

Назва ЛР Кількість годин
1

Тема 01: Типи даних в мові Solidity

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

Джерела: Навчальні матеріали та ресурси

3
2

Тема 02: Інтерфейси в мові Solidity

Необхідно ознайомитися з призначенням інтерфейсів. Розглянути приклад побудови смарт-контракту з інтерфейсом. Засвоїти принцип імпортування прикладу смарт-контракту до іншого смарт-контракту. Ознайомитись із принципом виклику методів смарт-контракту через інтерфейс. Розширити функціонал смарт-контракту за допомогою виклику методів через інтерфейс смарт-контракту.

Джерела: Навчальні матеріали та ресурси

3
3

Тема 03: Паттерни в мові Solidity

Необхідно ознайомитися з потребами використання шаблонів у смарт-контрактах. Розглянути деякі популярні затребувані шаблони. Вивчити шаблон commit/reveal. Виконати шифрування приватної інформації шляхом хешування даних на фронтенді. Розширити функціонал смарт-контракту шляхом додавання модулю голосування за дозвіл виконати відповідний метод смарт-контракту.

Джерела: Навчальні матеріали та ресурси

3
4

Тема 04: Смарт-контракт на Near мовою Rust

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

Джерела: Навчальні матеріали та ресурси

3
5

Тема 05: Бібліотека Near SDK та шаблони доступу

Необхідно ознайомитися із бібліотекою для розробки смарт-контрактів Near SDK. Розглянути макроси та функції серилізації даних. Розширити функціонал смарт-контракту, розробленого у попередніх роботах комп’ютерного практикуму, засобами Near SDK та шаблонів доступу.

Джерела: Навчальні матеріали та ресурси

3
6

Тема 06: Застосування індексаторів

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

Джерела: Навчальні матеріали та ресурси

3
Загальна кількість годин на ЛР (денна) 18
  1. Самостійна робота здобувача/слухача

Самостійна робота є однією з форм організації навчання, основною формою оволодіння навчальним матеріалом у вільний від навчальних занять час (аудиторних, за розкладом).

Вид самостійної роботи Кількість годин
1 Опрацювання лекційного матеріалу 34
2 Підготовка до ЛР 10
3 Підготовка електронних Звітів до ЛР 12
4 Підготовка до МКР 5
5 Підготовка до ЗКР 5
Загальна кількість годин на всі теми СРС (денна) 66

Політика та контроль

  1. Політика навчальної дисципліни (освітнього компонента)

Вимоги, які ставляться перед здобувачем/слухачем дисципліни:

  • відвідування лекційних та лабораторних занять є обов’язковою складовою вивчення матеріалу, викладач фіксує присутність на заняттях (у воєнний час не застосовується);
  • на лекціях викладач користується власними презентаціями; які по закінченні лекції викладає у телеграм-чат з відповідної дисципліни де присутній потік здобувачів/слухачів;
  • на лекціях заборонено відволікати викладача від подання матеріалу, усі питання, уточнення та ін. здобувачі/слухачі ставлять в кінці лекції у відведений для цього час;
  • ЛР захищаються у два етапи – перший етап: здобувачі/слухачі готують електронний Звіт, який надсилається на відповідний імейл викладачу; другий етап – захист ЛР за розкладом у фізичній чи віртуальній присутності та при наявності Звіту. Бали за ЛР враховуються лише по виконанню двох етапів;
  • МКР/ДКР виконується у вигляді комплексного Тесту по запрошенню на імейл;
  • ЗКР виконується на останньому лекційному занятті шляхом виконання письмової роботи та оформлення результатів у вигляді електронного Звіту, що надсилається на імейл;
  • у відповідності до «Кодексу честі» ЛР, МКР, ДКР, ЗКР, ЕКР, Тести та Звіти здобувачі/слухачі виконують самостійно та особисто;
  • заохочувальні бали виставляються за: активну участь на лекціях/практиках;
  • штрафні бали виставляються за: несвоєчасну здачу ЛР.
  1. Види контролю та рейтингова система оцінювання (РСО)

8.1 Склад рейтингу здобувача/слухача

Семестровий рейтинг здобувача/слухача складається з балів, що він отримує за:

  1. Виконання, оформлення та захист 6 ЛР;
  2. Виконання однієї комплексної або двох проміжних МКР;
  3. Активність в семестрі у вигляді заохочувальних та/або штрафних балів.

Сесійний рейтинг здобувача/слухача дисципліни складається з балів:

  1. За виконання ЗКР.

Рейтинг здобувача/слухача = Семестровий рейтинг + Сесійний рейтинг

**

8.2 Поточний контроль

Лабораторні роботи (ЛР)

Максимальна оцінка за ЛР – 10 балів. Кожна ЛР оцінюється наступним чином:

  • повна відповідь на питання під час захисту (не менш ніж 90% потрібної інформації) та електронний Звіт до ЛР оформлений згідно вимог – 10 балів;
  • достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації) та електронний Звіт до ЛР оформлений згідно вимог – 8-9 балів;
  • неповна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації) та електронний Звіт до ЛР оформлений не згідно вимог – 2-7 бали(ів);
  • наявність лише наданого оформленого електронного Звіту до ЛР – 1 бал;
  • незадовільна відповідь та/або не оформлений електронний Звіт до ЛР – 0 балів.

За помилку або відсутність обов’язкового блоку в контенті Звіту оцінка знижується на 1 бал.

За кожен місяць затримки захисту ЛР її максимальна оцінка знижується на 1 бал.

Статус виконаної, оформленої, поданої до захисту та захищеної ЛР – «Зараховано».

Модульна контрольна робота (МКР)

Максимальна оцінка за МКР – 40 балів. МКР проводиться у формі Тесту.

Протягом семестру проводиться або єдина комплексна МКР або дві проміжні МКР.

Кількість запитань/завдань у тесті однієї комплексної МКР – 40.

  • правильна відповідь на тестове запитання/завдання – 1 бал;
  • не правильна відповідь на тестове запитання/завдання – 0 балів.

Перелік питань до МКР наведений у Додатку 1.

Контрольні запитання (КЗ)

Максимальна оцінка за всі КЗ – 10 балів. КЗ проводяться у формі Тестів після ключових лекцій. Перелік КЗ наведений у лекціях.

Заохочувальні та штрафні бали

За активну роботу на лекції (питання, доповнення, зауваження за темою лекції, коли лектор пропонує здобувачам/слухачам задати свої питання) 1-2 бали, але в сумі не більше 10 балів за семестр.

За несвоєчасний захист ЛР мінус 1 бал за місяць затримки.

За несвоєчасне виконання МКР мінус 1 бал за добу затримки.

8.3 Календарний контроль (міжсесійна атестація)

Календарний контроль проводиться двічі на семестр як моніторинг поточного стану виконання здобувачами/слухачами вимог Силабусу.

За результатами навчальної роботи за перші 7 тижнів максимальний поточний рейтинг – 20 балів (2 ЛР). На першій атестації (8-й тиждень) здобувач/слухач отримає «атестовано», якщо його поточний рейтинг не менший ніж 12 балів.

За результатами 13 тижнів навчання максимальний поточний рейтинг – 40 балів (4 ЛР). На другій атестації (14-й тиждень) здобувач/слухач отримає «атестовано» (А), якщо його поточний рейтинг не менший ніж 22 бали.

За невиконання умов атестації здобувач/слухач отримає «не атестовано» (НА).

Якщо здобувач/слухач з потоку не обирав вибіркову дисципліну – він отримає «не вивчає» (НВ). **

8.4 Семестровий рейтинг здобувача/слухача

Максимальна сума вагових балів контрольних заходів протягом семестру (семестровий рейтинг RD) складає не більше 100 балів:

RD = rЛР + rМКР + (rЗrШ)=6*10 + 40 + (rЗrШ)=100 + (rЗrШ),

де rЛР – бали за виконання ЛР (0…10);

rМКР – бали за виконання МКР (0…40);

rЗ – заохочувальні бали за активну участь на лекціях (0…10);

rШ – штрафні бали за несвоєчасне виконання ЛР та МКР (0…10+).

8.5 Семестровий контроль (сесія)

Наприкінці семестру, умовою допуску до Сесії є відсутність заборгованостей (зарахування всіх ЛР й виконання МКР) та семестровий рейтинг здобувача/слухача RD ≥ 60. Допущеним таким чином здобувачам/слухачам пропонується Залікова оцінка так званим «автоматом» (АвтоЗалік). В такому разі до заліково-екзаменаційної відомості вносяться зароблені бали RD та відповідні оцінки.

Здобувачі/слухачі, у яких RD < 60 та вони не мають заборгованостей, зобов’язані виконувати ЗКР у формі Тесту. Максимальна оцінка за ЗКР – 20 балів. Перелік питань до ЗКР у формі Тестів відповідає МКР та наведений у Додатку 1. Оцінювання такої ЗКР також відповідає МКР.

Здобувачам/слухачам, які протягом семестру «заробили» RD ≥ 60 та мають допуск, надається можливість виконувати комплексну ЗКР з метою підвищення пропонованої автоматичної оцінки. В такому разі, попередній рейтинг RD скасовується і фінальна оцінка виставлятиметься з урахуванням результату виконання комплексної ЗКР.

Максимальна оцінка за комплексну ЗКР – 100 балів.** ЗКР проводиться у формі Тесту.

Кількість запитань/завдань у тесті комплексної ЗКР – 50.

  • правильна відповідь на тестове запитання/завдання – 1 бал;
  • не правильна відповідь на тестове запитання/завдання – 0 балів.

Перелік питань до ЗКР наведений у Додатку 1.

У випадку підвищення оцінки, бали комплексної ЗКР це фінальний Рейтинг здобувача/слухача.

8.6 Рейтингова система оцінювання (РСО) результатів вивчення дисципліни

Рейтинг здобувача/слухача переводиться до Залікової оцінки згідно з наступною таблицею відповідності кількості набутих рейтингових балів оцінкам за університетською шкалою:

Рейтинг здобувача/слухача Залікова оцінка
94 - 100 Відмінно
85 - 94 Дуже добре
75 - 84 Добре
65 - 74 Задовільно
60 - 64 Достатньо
Менше 60 Незадовільно
Не виконані умови допуску Не допущено
  1. Додаткова інформація з дисципліни (освітнього компонента)

  • перелік теоретичних питань, які виносяться на Поточний, Календарний та Семестровий контроль наведено в Додатку 1;
  • згідно рекомендацій університету/факультету викладач може зараховувати окремі роботи з дисципліни здобувачам/слухачам, які працюють і виконують завдання, що пов’язані із дисципліною.
  • на початку семестру викладач інформує здобувачів/слухачів про можливість пройти відповідні безкоштовні (або платні) курси на свій розсуд з тематики навчальної дисципліни. Після отриманням здобувачем/слухачем офіційного сертифікату проходження відповідних курсів(кількістю годин не менше за 60%), викладач зараховує курс в цілому на Достатню оцінку.

Робочу програму навчальної дисципліни (силабус):

Складено старший викладач, Яланецький Валерій Анатолійович

Ухвалено кафедрою ІСТ (протокол № 16 від 12.06.2024)

Погоджено Методичною комісією факультету1 (протокол № 10 від 21.06.2024)

Додаток 1

Перелік питань до МКР/ДКР/ЗКР

  1. Перспективи та місце смарт-контрактів у соціальній та науковій сфері людства.
  2. Загальні поняття про смарт-контракт.
  3. Структура та властивості смарт-контрактів.
  4. Смарт-контракти в Bitcoin.
  5. Блокчейн Ethereum як інфраструктура виконання смарт-контрактів.
  6. Життєвий цикл смарт-контрактів.
  7. Різновиди смарт-контрактів.
  8. Вразливості смарт-контрактів.
  9. Структура смарт-контрактів на Solidity.
  10. Структура смарт-контракту.
  11. Приклад смарт-контракту в середовищі Remix.
  12. Типи даних в мові Solidity.
  13. Особливості вибору типу даних відповідно до фінансових задач смарт-контрактів.
  14. Функції у смарт-контрактах.
  15. Вміст тіла функції смарт-контракту на Solidity.
  16. Повернення результату функції в смарт-контрактах.
  17. Компіляція та завантаження прикладу смарт-контракту.
  18. Перевірка роботи смарт-контракту.
  19. Модифікатори в Solidity. Бібліотеки функцій та рядкові методи в Solidity.
  20. Порівняння архітектури клієнт-сервер та децентралізованої архітектури DApp.
  21. Повний цикл виконання смарт-контракту.
  22. Визначення, архітектура та обмеження DApp.
  23. Переваги та недоліки DApps.
  24. Сфери застосування DApps.
  25. Вбудовані смарт-контракти децентралізованих додатків.
  26. Переваги смарт-контрактів над традиційними угодами.
  27. Існуючі проблеми та перепони масового впровадження смарт-контрактів.
  28. Відповідальність за порушення умов і помилки у смарт-контрактах.
  29. Визначення «юридичний смарт-контракт».
  30. Хронологія сприйняття смарт-контрактів юридичною професією.
  31. Смарт-контракти та цивільний кодекс.
  32. Форми юридичних смарт-контрактів.
  33. Юридичний смарт-контракт (SLC) і смарт-контрактний код (SCC).
  34. Стандарт токенів ERC-20.
  35. Різниця між стандартом і токенами ERC-20.
  36. Як створювати токени ERC-20.
  37. Характеристики та параметри ERC-20.
  38. BRC-20 токени.
  39. Як створити токени на Біткойні.
  40. Стандарт токенів ARC-20.
  41. Стандарти «написів».
  42. Токени CBDC.
  43. Інтерфейс смарт-контракту для користувацького токена.
  44. Функції смарт-контракту випуску токенів.
  45. Події усіма транзакціями смарт-контракту.
  46. Функція переведення токенів на іншу адресу.
  47. Функція повернення балансу токенів.
  48. Випуск токенів без програмування.
  49. Поточний стан блокчейну Bitcoin.
  50. Фунціонал наявних «смарт-контрактів» в Bitcoin.
  51. Не повні за Тюрінгом смарт-контракти в Біткойн.
  52. Хешований контракт блокування часу HTLC.
  53. Дискретні договори журналу DLC.
  54. Верхні рівні Bitcoin зі смарт-контрактами.
  55. Блокчейн Stacks як вдосконалення Біткойну.
  56. Механізм досягнення консенсусу Proof-of-Transfer.
  57. Майнінг токенів STX.
  58. Смарт-контракти мовою Clarity.
  59. Переваги розв’язуваної мови програмування Clarity.
  60. Потреба в індексаторах для смарт-контрактів.
  61. The Graph – Google Of Blockchains.
  62. ABI стандарт взаємодії смарт-контракту із зовнішнім світом.
  63. Ключове слово в мові Solidity для успадкування смарт-контрактів.
  64. Приклад успадкування смарт-контракту та виклик його відповідних методів.
  65. Концепція «Децентралізовані автономні організації».
  66. Перший і невдалий проєкт DAO на блокчейні Ethereum – The DAO.
  67. Групи DAO за зонами інтересів.
  68. Різні визначення терміну DAO.
  69. Призначення та функції DAO.
  70. Три рівні інновацій в DAO.
  71. Місії, спільнота та культура DAO.
  72. Компенсаційні моделі в DAO.
  73. Мотиви для створення DAO.
  74. Децентралізовані системи управління.
  75. Основні відмінності та переваги мови Rust.
  76. Властивості безпеки в Rust.
  77. Застосування Rust у фронтенді та бекенді.
  78. Простий приклад програми мовою Rust.
  79. Типи даних, функції та цикли в Rust.
  80. Імутабельна змінна.
  81. Масиви та зрізи в Rust.
  82. Рядки та класи в Rust.
  83. Особливості блокчейну Near Protocol.
  84. Обліковий запис блокчейну Near.
  85. Паролі та ключі доступу до криптогаманця Near Wallet.
  86. Нативний токен NEAR.
  87. Потік даних в блокчейні Near.
  88. Основний принцип передачі даних блокчейном Near.
  89. Сегментування блокчейну Near.
  90. Зміна стану блокчейну шляхом виконання транзакції.
  91. Квитанція як підтвердження виконання транзакції.
  92. Ментальна модель для створення DApps.
  93. Підхід до розробки смарт-контракту як основи DApp.
  94. Економіка розробки й експлуатації DApp.
  95. Розробка смарт-контракту засобами Near Rust SDK.
  96. Макрос Near_bindgen.
  97. Виклик інших смарт-контрактів.
  98. Місце оракулів в блокчейнах.
  99. Типи оракулів в блокчейні.
  100. Апаратні, людські та вхідні оракули.
  101. Контрактні оракули.
  102. Оракули, що засновані на консенсусі.
  103. Централізований та децентралізований оракул.
  104. Децентралізовані (trust-based або federated) мости.
  105. Централізовані (trustless) та сайдчейн-мости (sidechain bridges).
  106. Оптимістичні мости-згортки.
  107. Мультичейни.
  108. Тестова мережа для тестування смарт-контрактів.
  109. Найперший відомий приклад успішної уразливості смарт-контракту.
  110. Аудит смарт-контрактів.
  111. Помилки смарт-контракту, які можна виправити та невиправні помилки.
  112. Переповнення цілих чисел.
  113. Вразливість Casting Overflow.
  114. Проблеми із плаваючою комою.
  115. Управління доступом та відмова в обслуговуванні.
  116. Особливості та ключові характеристики блокчейну EOS.
  117. Ресурси CPU, NET і RAM як основа EOS.
  118. Архітектура блокчейну TON.
  119. Визначення та призначення платформи BOS.
  120. Три рівні блокчейн-системи.
  121. Компоненти та обмеження використання BOS.
  122. Приклад розробки DApp в BOS.
  123. Звичайні HD-криптогаманці.
  124. MPC-гаманці. Переваги та недоліки MPC-гаманців.
  125. Смарт-гаманці. Переваги та недоліки смарт-гаманців.
  126. Одноключові та мультисіг-гаманці.
  127. Електронна пошта на блокчейні DMAIL.
  128. Абстракція облікового запису.
  129. Як працює АОЗ.
  130. XION – узагальнені абстракції облікових записів.
  131. Квадратичне голосування та квадратичне фінансування.
  132. Варіанти використання квадратичного голосування та квадратичного фінансування.
  133. Структура та методи смарт-контракту системи голосування.
  134. Ідентифікація та авторизація в системі голосування.
  135. Тестування смарт-контракту системи голосування.
  136. Традиційна та Low-code розробка смарт-контрактних децентралізованих додатків.
  137. Інструмент app.toolblox.net.
  138. Приклад конструювання смарт-контракту.

  1. Методичною радою університету – для загальноуніверситетських дисциплін.