Hibatűrő okosszerződések N-verziós programozással
A kriptovalutákat kezelő blokkláncokat programozó okosszerződések (smart contract) hibái jól ismerten súlyos következményekkel járhatnak (lásd pl. DAO Hack 2016 → ~50 millió USD), ami miatt évek óta komoly kutatások folynak az okosszerződések elleni támadások megakadályozására. A születő megoldások elsöprő többsége tervezési idejű megközelítést kínál (tesztelés, statikus analízis, különböző formális módszerek, stb.), mivel a publikus platformokon (pl. Ethereum) nem alkalmazhatók jól futásidejű mechanizmusok.
Ezzel ellentétben a vállalatközi együttműködésekre használt, ún. „konzorciális” blokkláncok eltérő működési modellje miatt ezekben alkalmazhatók lennének futásidejű hibatűrési módszerek is.
Egy ilyen lehetséges technika az N-verziós programozás (N-version programming, NVP), melynek során (leegyszerűsítve) egy közös specifikáció alapján többször implementáljuk ugyanazt a szoftvert, különböző módokon (pl. más programnyelveken), majd futásidőben ezeket mind lefuttatjuk és összevetjük az eredményeket.
A nagy nyelvi modellek (large language model, LLM) hallucinációi elleni küzdelemben egyébként használnak már NVP(-szerű) módszereket. A témának része lehet az okosszerződések futásidejű hibatűrésére LLM-támogatott módszerek beépítése is.
A feladat egy N-verziós programozást támogató keretrendszer fejlesztése a Hyperledger Fabric vállalati blokklánc platformhoz.
A téma során elsajátíthatóak a blokkláncok és okosszerződések alapjai; blockchain előképzettség nem szükséges. Az okosszerződések programozása Fabricben JavaScript/TypeScript, Java, és Go nyelveken lehetséges. Szükség lesz Dockerre is, mivel Fabricben az okosszerződések tipikusan konténerekben futnak.