Програмування смарт-контрактів Силабус освітнього компонента
Реквізити навчальної дисципліни
Рівень вищої освіти | Перший (бакалаврський) |
---|---|
Галузь знань | 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/ |
Програма навчальної дисципліни
Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання
Цифровізація та діджиталізація бізнес-процесів продукують запити до нових компетенцій серед фахівців з інформаційних систем, зокрема в сфері смарт-контрактів. У вибірковому освітньому компоненті «Програмування смарт-контрактів» (ПСК) вивчаються теоретичні засади, підходи, засоби та технології програмування смарт-контрактів. А також теоретичні засади щодо надійності та юридичної легітимності смарт-контрактів.
Предметом навчальної дисципліни є вивчення здобувачами/слухачами методів та засобів побудови смарт-контрактів децентралізованих баз даних типу блокчейн, одержання навичок програмування смарт-контрактів із використанням сучасних мов та середовищ програмування зокрема Solidity та Rust.
Метою навчальної дисципліни є формування у здобувачів/слухачів здібностей:
проектуванню типового рішення смарт-контракту;
програмуванню смарт-контрактів мовами Solidity та Rust, розробки функцій, завантаження до блокчейну та тестуванню смарт-контрактів;
Здобувачі/слухачі після засвоєння навчальної дисципліни мають продемонструвати такі результати навчання:
знання:
- ролі і місця смарт-контрактів при проектуванні і налагоджені інформаційних систем;
- принципів і методів побудови типових смарт-контрактів;
- основних методів забезпечення функціонування смарт-контрактів в блокчейні;
- сучасних програмних технологій розгортання децентралізованих додатків.
уміння:
- проаналізувати відомі способи проектування децентралізованих додатків у відповідності з поставленим завданням і вибрати конкретний метод, виходячи із мети, завдань, реальних допущень та обмежень розробки смарт-контрактів;
- вибрати конкретні методи побудови смарт-контрактів децентралізованого додатку.
досвід:
- раціонально використовувати сучасні технології, пакети прикладних програм та інтегровані середовища програмування смарт-контрактів;
- оволодіння сучасними програмними засобами програмування смарт-контрактів в середовищах IntelliJ IDEA та Remix.
Пререквізити та постреквізити дисципліни (місце в структурно-логічній схемі навчання за відповідною освітньою програмою)
Пререквізити: математика, інформатика, програмування, адміністрування операційних систем, теорія інформації та кодування, теоретичні основи криптографії, основи баз даних, технологія блокчейн.
Постреквізити: знання одержані при вивчені данної дисципліни використовуються в наступних дисциплінах: проектування інформаційних систем, проектування комп'ютеризованих інтелектуальних систем управління, проектування децентралізованих додатків та інші.
Обсяг та зміст навчальної дисциплін
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. Застосування індексаторів
Навчальні матеріали та ресурси
4.1 Базові джерела
- П. Кравченко, Б. Скрябін, О. Курбатов, О. Дубініна. Блокчейн і децентралізовані системи: навч. посібник для студ. закладів вищ. освіти: в 3 частинах. Ч. 1 / - Харків: ПРОМАРТ, 2019. – 452 с.
- П. Кравченко, Б. Скрябін, О. Курбатов, О. Дубініна. Блокчейн і децентралізовані системи: навч. посібник для студ. закладів вищ. освіти: в 3 частинах. Ч. 2 / - Харків: ПРОМАРТ, 2019. – 412 с.
- П. Кравченко, Б. Скрябін, О. Курбатов, О. Дубініна. Блокчейн і децентралізовані системи: навч. посібник для студ. закладів вищ. освіти: в 3 частинах. Ч. 3 / - Харків: ПРОМАРТ, 2020. – 306 с.
- 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.
- Smart Legal Contracts: Advice to Government. Great Britain. Law Commission. 2021. – 227 p.
4.2 Додаткові джерела
- Таненбаум Е. Розподілені системи. Принципи / Е. Таненбаум, М. ван Стеен. К, 2003.877 с.
- Равал С. Децентралізовані програми. Технологія Blockchain в дії. 2017. 193 с.
- Вербіцький О. В. Вступ до криптології. Львів: ВНТЛ, 2011. 248 с.
- Kose John, Smart, Leonid Kogan, Fahad Saleh. Contracts and Decentralized Finance. Annual Review of Financial Economics. 2023. DOI: 10.1146/annurev-financial-110921-022806.
- Max Raskin. The Law and Legality of Smart Contracts. 2017. URL: https://perma.cc/673G-3ANE.
- Tanash Utamchandani Tulsidas. Smart Contracts from a Legal Perspective. Academic Course [2017-2018].**
4.3 Рекомендації та роз’яснення
Зазначені навчальні матеріали та ресурси вільно доступні в інтернеті;
Обов’язковим для прочитання є інформація згідно тематики, що викладена у змісті навчальної дисципліни;
Факультативним для прочитання є інформація, що стосується комплексів смарт-контрактів;
Зв’язок цих ресурсів з конкретними темами дисципліни наведений далі у Навчальному контенті.
Навчальний контент
Методика опанування навчальної дисципліни (освітнього компонента)
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 | Опрацювання лекційного матеріалу | 34 |
2 | Підготовка до ЛР | 10 |
3 | Підготовка електронних Звітів до ЛР | 12 |
4 | Підготовка до МКР | 5 |
5 | Підготовка до ЗКР | 5 |
Загальна кількість годин на всі теми СРС (денна) | 66 |
Політика та контроль
Політика навчальної дисципліни (освітнього компонента)
Вимоги, які ставляться перед здобувачем/слухачем дисципліни:
- відвідування лекційних та лабораторних занять є обов’язковою складовою вивчення матеріалу, викладач фіксує присутність на заняттях (у воєнний час не застосовується);
- на лекціях викладач користується власними презентаціями; які по закінченні лекції викладає у телеграм-чат з відповідної дисципліни де присутній потік здобувачів/слухачів;
- на лекціях заборонено відволікати викладача від подання матеріалу, усі питання, уточнення та ін. здобувачі/слухачі ставлять в кінці лекції у відведений для цього час;
- ЛР захищаються у два етапи – перший етап: здобувачі/слухачі готують електронний Звіт, який надсилається на відповідний імейл викладачу; другий етап – захист ЛР за розкладом у фізичній чи віртуальній присутності та при наявності Звіту. Бали за ЛР враховуються лише по виконанню двох етапів;
- МКР/ДКР виконується у вигляді комплексного Тесту по запрошенню на імейл;
- ЗКР виконується на останньому лекційному занятті шляхом виконання письмової роботи та оформлення результатів у вигляді електронного Звіту, що надсилається на імейл;
- у відповідності до «Кодексу честі» ЛР, МКР, ДКР, ЗКР, ЕКР, Тести та Звіти здобувачі/слухачі виконують самостійно та особисто;
- заохочувальні бали виставляються за: активну участь на лекціях/практиках;
- штрафні бали виставляються за: несвоєчасну здачу ЛР.
Види контролю та рейтингова система оцінювання (РСО)
8.1 Склад рейтингу здобувача/слухача
Семестровий рейтинг здобувача/слухача складається з балів, що він отримує за:
- Виконання, оформлення та захист 6 ЛР;
- Виконання однієї комплексної або двох проміжних МКР;
- Активність в семестрі у вигляді заохочувальних та/або штрафних балів.
Сесійний рейтинг здобувача/слухача дисципліни складається з балів:
- За виконання ЗКР.
Рейтинг здобувача/слухача = Семестровий рейтинг + Сесійний рейтинг
**
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;
- згідно рекомендацій університету/факультету викладач може зараховувати окремі роботи з дисципліни здобувачам/слухачам, які працюють і виконують завдання, що пов’язані із дисципліною.
- на початку семестру викладач інформує здобувачів/слухачів про можливість пройти відповідні безкоштовні (або платні) курси на свій розсуд з тематики навчальної дисципліни. Після отриманням здобувачем/слухачем офіційного сертифікату проходження відповідних курсів(кількістю годин не менше за 60%), викладач зараховує курс в цілому на Достатню оцінку.
Робочу програму навчальної дисципліни (силабус):
Складено старший викладач, Яланецький Валерій Анатолійович
Ухвалено кафедрою ІСТ (протокол № 16 від 12.06.2024)
Погоджено Методичною комісією факультету1 (протокол № 10 від 21.06.2024)
Додаток 1
Перелік питань до МКР/ДКР/ЗКР
- Перспективи та місце смарт-контрактів у соціальній та науковій сфері людства.
- Загальні поняття про смарт-контракт.
- Структура та властивості смарт-контрактів.
- Смарт-контракти в Bitcoin.
- Блокчейн Ethereum як інфраструктура виконання смарт-контрактів.
- Життєвий цикл смарт-контрактів.
- Різновиди смарт-контрактів.
- Вразливості смарт-контрактів.
- Структура смарт-контрактів на Solidity.
- Структура смарт-контракту.
- Приклад смарт-контракту в середовищі Remix.
- Типи даних в мові Solidity.
- Особливості вибору типу даних відповідно до фінансових задач смарт-контрактів.
- Функції у смарт-контрактах.
- Вміст тіла функції смарт-контракту на Solidity.
- Повернення результату функції в смарт-контрактах.
- Компіляція та завантаження прикладу смарт-контракту.
- Перевірка роботи смарт-контракту.
- Модифікатори в Solidity. Бібліотеки функцій та рядкові методи в Solidity.
- Порівняння архітектури клієнт-сервер та децентралізованої архітектури DApp.
- Повний цикл виконання смарт-контракту.
- Визначення, архітектура та обмеження DApp.
- Переваги та недоліки DApps.
- Сфери застосування DApps.
- Вбудовані смарт-контракти децентралізованих додатків.
- Переваги смарт-контрактів над традиційними угодами.
- Існуючі проблеми та перепони масового впровадження смарт-контрактів.
- Відповідальність за порушення умов і помилки у смарт-контрактах.
- Визначення «юридичний смарт-контракт».
- Хронологія сприйняття смарт-контрактів юридичною професією.
- Смарт-контракти та цивільний кодекс.
- Форми юридичних смарт-контрактів.
- Юридичний смарт-контракт (SLC) і смарт-контрактний код (SCC).
- Стандарт токенів ERC-20.
- Різниця між стандартом і токенами ERC-20.
- Як створювати токени ERC-20.
- Характеристики та параметри ERC-20.
- BRC-20 токени.
- Як створити токени на Біткойні.
- Стандарт токенів ARC-20.
- Стандарти «написів».
- Токени CBDC.
- Інтерфейс смарт-контракту для користувацького токена.
- Функції смарт-контракту випуску токенів.
- Події усіма транзакціями смарт-контракту.
- Функція переведення токенів на іншу адресу.
- Функція повернення балансу токенів.
- Випуск токенів без програмування.
- Поточний стан блокчейну Bitcoin.
- Фунціонал наявних «смарт-контрактів» в Bitcoin.
- Не повні за Тюрінгом смарт-контракти в Біткойн.
- Хешований контракт блокування часу HTLC.
- Дискретні договори журналу DLC.
- Верхні рівні Bitcoin зі смарт-контрактами.
- Блокчейн Stacks як вдосконалення Біткойну.
- Механізм досягнення консенсусу Proof-of-Transfer.
- Майнінг токенів STX.
- Смарт-контракти мовою Clarity.
- Переваги розв’язуваної мови програмування Clarity.
- Потреба в індексаторах для смарт-контрактів.
- The Graph – Google Of Blockchains.
- ABI стандарт взаємодії смарт-контракту із зовнішнім світом.
- Ключове слово в мові Solidity для успадкування смарт-контрактів.
- Приклад успадкування смарт-контракту та виклик його відповідних методів.
- Концепція «Децентралізовані автономні організації».
- Перший і невдалий проєкт DAO на блокчейні Ethereum – The DAO.
- Групи DAO за зонами інтересів.
- Різні визначення терміну DAO.
- Призначення та функції DAO.
- Три рівні інновацій в DAO.
- Місії, спільнота та культура DAO.
- Компенсаційні моделі в DAO.
- Мотиви для створення DAO.
- Децентралізовані системи управління.
- Основні відмінності та переваги мови Rust.
- Властивості безпеки в Rust.
- Застосування Rust у фронтенді та бекенді.
- Простий приклад програми мовою Rust.
- Типи даних, функції та цикли в Rust.
- Імутабельна змінна.
- Масиви та зрізи в Rust.
- Рядки та класи в Rust.
- Особливості блокчейну Near Protocol.
- Обліковий запис блокчейну Near.
- Паролі та ключі доступу до криптогаманця Near Wallet.
- Нативний токен NEAR.
- Потік даних в блокчейні Near.
- Основний принцип передачі даних блокчейном Near.
- Сегментування блокчейну Near.
- Зміна стану блокчейну шляхом виконання транзакції.
- Квитанція як підтвердження виконання транзакції.
- Ментальна модель для створення DApps.
- Підхід до розробки смарт-контракту як основи DApp.
- Економіка розробки й експлуатації DApp.
- Розробка смарт-контракту засобами Near Rust SDK.
- Макрос Near_bindgen.
- Виклик інших смарт-контрактів.
- Місце оракулів в блокчейнах.
- Типи оракулів в блокчейні.
- Апаратні, людські та вхідні оракули.
- Контрактні оракули.
- Оракули, що засновані на консенсусі.
- Централізований та децентралізований оракул.
- Децентралізовані (trust-based або federated) мости.
- Централізовані (trustless) та сайдчейн-мости (sidechain bridges).
- Оптимістичні мости-згортки.
- Мультичейни.
- Тестова мережа для тестування смарт-контрактів.
- Найперший відомий приклад успішної уразливості смарт-контракту.
- Аудит смарт-контрактів.
- Помилки смарт-контракту, які можна виправити та невиправні помилки.
- Переповнення цілих чисел.
- Вразливість Casting Overflow.
- Проблеми із плаваючою комою.
- Управління доступом та відмова в обслуговуванні.
- Особливості та ключові характеристики блокчейну EOS.
- Ресурси CPU, NET і RAM як основа EOS.
- Архітектура блокчейну TON.
- Визначення та призначення платформи BOS.
- Три рівні блокчейн-системи.
- Компоненти та обмеження використання BOS.
- Приклад розробки DApp в BOS.
- Звичайні HD-криптогаманці.
- MPC-гаманці. Переваги та недоліки MPC-гаманців.
- Смарт-гаманці. Переваги та недоліки смарт-гаманців.
- Одноключові та мультисіг-гаманці.
- Електронна пошта на блокчейні DMAIL.
- Абстракція облікового запису.
- Як працює АОЗ.
- XION – узагальнені абстракції облікових записів.
- Квадратичне голосування та квадратичне фінансування.
- Варіанти використання квадратичного голосування та квадратичного фінансування.
- Структура та методи смарт-контракту системи голосування.
- Ідентифікація та авторизація в системі голосування.
- Тестування смарт-контракту системи голосування.
- Традиційна та Low-code розробка смарт-контрактних децентралізованих додатків.
- Інструмент app.toolblox.net.
- Приклад конструювання смарт-контракту.
-
Методичною радою університету – для загальноуніверситетських дисциплін.↩