Вимоги до розробки смарт-контрактів та огляд вразливостей смарт-контрактів на рівні Solidity-коду на платформі Ethereum
DOI:
https://doi.org/10.15276/hait.06.2023.4Ключові слова:
Блокчейн, смарт-контракт, вимога, міра співпадіння, міра унікальності, Ethereum, вразливість, транзакціяАнотація
Стаття присвячена розгляду автоматизованих децентралізованих програм на блокчейні, які є сучасним інструментом обробки транзакцій без допомоги довіреної третьої сторони. Метою дослідження є узагальнення та систематизація інформації щодо вимог, які висуваються до смарт-контрактів, а також огляд вразливостей смарт-контрактів на рівні Solidity-коду. Вивчено архітектуру блокчейну та визначено переваги смарт-контрактів у порівнянні зі звичайними контрактами, а саме: зменшення ризиків, скорочення витрат на адміністрування та обслуговування та підвищення ефективності бізнес-процесів. Проведено ретельний аналіз сучасних літературних джерел та виявлено поточні проблеми, з якими стикаються користувачі та розробники смарт-контрактів. Зазначено, що процес розробки смарт-контрактів є недостатньо стандартизованим та доцільним є створення системи рекомендованих вимог для смарт-контрактів, використовуваних у різних предметних областях. Зібрано та проаналізовано вимоги до смарт-контрактів для областей, що стосуються медичної сфери, області навчання, бізнесу, управління проектами, аналізу даних, розробки програмного забезпечення, організації торгівлі, логістики та юридичної сфери. Визначено, що обов’язковими вимогами для всіх цих предметних областей є безпека, прозорість процесів, визначення умов та критеріїв успіху роботи та автоматизація роботи. Проаналізовано решту вимог та введено поняття міри співпадіння та унікальності вимог для певної предметної області, які спирається на відповідні функції. Для розглянутих предметних областей обчислено міри співпадіння та унікальності. Запропоновані міри дозволять у подальшому отримувати кількісну оцінку шаблонів для збору вимог до програм з урахуванням використовуваної предметної області. Проведено огляд та систематизовано види вразливостей смарт-контрактів на рівні Solidity-коду на платформі Ethereum. Визначено найкращі практики, які дозволяють уникнути подібних вразливостей, та можливі приклади їх експлуатації з боку зловмисників. Показано, що підвищення надійності смарт-контрактів посприяє збільшенню довіри до блокчейну серед користувачів.