Smart contracts enable the development of complex logic and Decentralized Applications, DApps, on blockchain platforms. Ongoing research has focused on language-specific features such as usability, programming paradigms, safety, and security. Among existing smart contract languages, Move provides strong safety guarantees for resource management through its linear type system. However, Move is designed for account-based blockchains and follows an imperative programming paradigm, which limits its adoption to architectures supporting this model, such as Aptos and Sui. In contrast, blockchains like Bitcoin and Cardano provide different security and performance characteristics based on the UTxO model, which is incompatible with the Move language and is often perceived as having a steeper learning curve. In this work, we design and implement a compiler that enables Cardano developers to write smart contracts using a subset of the Move language, generating code in Aiken, a functional language used for Cardano smart contracts. The compiler manages global state through UTxOs, maps non-native Move assets into native Cardano assets, and translates imperative constructs into functional logic compatible with Aiken validators. Although not fully implemented at the time of writing, the system is also designed to generate the corresponding off-chain code required by the Cardano ecosystem. This work aims to simplify smart contract and DApp development on Cardano by introducing an abstraction layer over the UTxO model and functional programming paradigm, while preserving transaction purity, formal correctness, and extending asset handling with linear type safety guarantees.
Smart contracts enable the development of complex logic and Decentralized Applications, DApps, on blockchain platforms. Ongoing research has focused on language-specific features such as usability, programming paradigms, safety, and security. Among existing smart contract languages, Move provides strong safety guarantees for resource management through its linear type system. However, Move is designed for account-based blockchains and follows an imperative programming paradigm, which limits its adoption to architectures supporting this model, such as Aptos and Sui. In contrast, blockchains like Bitcoin and Cardano provide different security and performance characteristics based on the UTxO model, which is incompatible with the Move language and is often perceived as having a steeper learning curve. In this work, we design and implement a compiler that enables Cardano developers to write smart contracts using a subset of the Move language, generating code in Aiken, a functional language used for Cardano smart contracts. The compiler manages global state through UTxOs, maps non-native Move assets into native Cardano assets, and translates imperative constructs into functional logic compatible with Aiken validators. Although not fully implemented at the time of writing, the system is also designed to generate the corresponding off-chain code required by the Cardano ecosystem. This work aims to simplify smart contract and DApp development on Cardano by introducing an abstraction layer over the UTxO model and functional programming paradigm, while preserving transaction purity, formal correctness, and extending asset handling with linear type safety guarantees.
Bridging Smart Contract Languages -- A Move-to-Aiken Compiler
ROVERONI, ANDREA
2025/2026
Abstract
Smart contracts enable the development of complex logic and Decentralized Applications, DApps, on blockchain platforms. Ongoing research has focused on language-specific features such as usability, programming paradigms, safety, and security. Among existing smart contract languages, Move provides strong safety guarantees for resource management through its linear type system. However, Move is designed for account-based blockchains and follows an imperative programming paradigm, which limits its adoption to architectures supporting this model, such as Aptos and Sui. In contrast, blockchains like Bitcoin and Cardano provide different security and performance characteristics based on the UTxO model, which is incompatible with the Move language and is often perceived as having a steeper learning curve. In this work, we design and implement a compiler that enables Cardano developers to write smart contracts using a subset of the Move language, generating code in Aiken, a functional language used for Cardano smart contracts. The compiler manages global state through UTxOs, maps non-native Move assets into native Cardano assets, and translates imperative constructs into functional logic compatible with Aiken validators. Although not fully implemented at the time of writing, the system is also designed to generate the corresponding off-chain code required by the Cardano ecosystem. This work aims to simplify smart contract and DApp development on Cardano by introducing an abstraction layer over the UTxO model and functional programming paradigm, while preserving transaction purity, formal correctness, and extending asset handling with linear type safety guarantees.| File | Dimensione | Formato | |
|---|---|---|---|
|
Roveroni_Andrea_880092.pdf
accesso aperto
Dimensione
532.16 kB
Formato
Adobe PDF
|
532.16 kB | Adobe PDF | Visualizza/Apri |
I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.14247/29221