Tutorials
All ICBC 2025 tutorials will be held during the morning of June 2nd, 2025. All tutorials have a duration of 2 hours.
Polynomial Commitment Schemes for Zero-Knowledge Proof systems
Giuseppe Vitto (Zircuit)
Date: June 2nd, 8:30-10:30 (Europe/Rome Time)
Abstract
This tutorial offers an in-depth comparison of three major classes of Polynomial Commitment Schemes (PCS) used in modern zero-knowledge proof (ZKP) systems: pairing-based (e.g., KZG), discrete logarithm-based (e.g., Inner Product Argument/IPA), and hash-based (e.g., FRI). We examine their underlying algebraic constructions, efficiency characteristics, and trade-offs, with particular emphasis on their role in achieving succinct and scalable ZKP protocols for blockchain applications. In addition to theoretical foundations, the tutorial features guided, hands-on implementations of each scheme to reinforce understanding through practical experience. We conclude by identifying key limitations of current PCS designs-such as reliance on trusted setups, update inefficiency, and post-quantum vulnerability-and discuss ongoing research efforts aimed at addressing these challenges within the broader blockchain ecosystem.
Blockchain Interoperability: Theory And Practice
Rafael Belchior (Instituto Superior Técnico & INESC-ID & Blockdaemon Ltd., Portugal); André Augusto and André Vasconcelos (INESC-ID, Instituto Superior Técnico, Universidade de Lisboa, Portugal); Miguel Correia (INESC-ID, Portugal & Instituto Superior Técnico, Portugal)
Date: June 2nd, 8:30-10:30 (Europe/Rome Time)
Abstract
Blockchain interoperability refers to the ability of distributed ledgers to communicate with other distributed ledgers and third-party systems. The rapid advancement of blockchain technology has caused knowledge about it to become increasingly fragmented and dispersed. In recent years, we have been seeing interoperability mechanisms being attacked, with the total losses in these protocols amounting to 3.2 billion USD since 2021. This tutorial addresses the growing complexity of blockchain interoperability, creating an increasingly interconnected ecosystem. We present a comprehensive overview of the field's challenges, focusing on the lack of common conceptual models, organizational interoperability gaps, and security risks. Through theoretical foundations and hands-on exercises, participants will explore state-of-the-art solutions, with particular emphasis on the Secure Asset Transfer Protocol (SATP) and its implementation within Hyperledger Cacti. SATP is being developed at the Internet Engineering Task Force with contributions from MIT, Técnico Lisboa, Blockdaemon, Intel, IBM, and several other universities and companies. Participants will have the option to set up and experiment with SATP, contributing to the consolidation of the theoretical part of the tutorial.
Set accumulators and their applications to blockchain systems
Matteo Loporchio (University of Pisa, Italy)
Date: June 2nd, 11:00-13:00 (Europe/Rome Time)
Abstract
The development of novel blockchain protocols has renewed the interest in cryptographic techniques designed to ensure security, enhance user privacy, and maintain data integrity. Among such techniques, set accumulators stand out for their ability to compress large sets of elements into single and fixed-size values while enabling a number of authenticated operations on such sets. This tutorial aims to explore the primary applications of set accumulators in blockchain systems, highlighting their ability to improve scalability, efficiency, and privacy. The tutorial begins with a theoretical overview of set accumulators, followed by the presentation of four relevant applications to blockchain systems: query authentication, stateless transaction validation, anonymity enhancement, and identity management. For each use case, we present the main issues that can be tackled using accumulators and review several state-of-the-art proposals. We then provide a comprehensive discussion of the literature, highlighting common themes and open problems currently faced in each area. Finally, the tutorial concludes with a technical hands-on session demonstrating how set accumulators can be implemented in blockchain systems storing spatial information to efficiently retrieve and verify the integrity of on-chain data.
Testing Smart Contracts: What makes it different? How can we do better?
Morena Barboni, Andrea Morichetta, and Andrea Polini (University of Camerino, Italy)
Date: June 2nd, 11:00-13:00 (Europe/Rome Time)
Abstract
Smart Contracts are software programs that are deployed and executed on a blockchain. Due to their immutable nature, directly resulting from the specific characteristics of the underlying decentralized infrastructure, smart contracts must undergo rigorous testing before deployment. Deficiencies in testing can lead to severe vulnerabilities, which, in turn, may cause significant financial losses. Turing complete languages are generally used to specify smart contracts, making the assessment of their behavioural characteristics a rather complex task. While it is certainly possible to apply well known and affirmed testing strategies, it is also important to take advantage of the opportunities and specific peculiarities that a programming language has in order to make the verification activity more effective. In this tutorial we explore different strategies to make smart contract testing more effective, focusing on the Solidity programming language. In particular we show how specific testing activities can take advantage of Solidity characteristics, and how general testing strategies can be adapted to make smart contract testing more effective. Among the others, the tutorial will provide a concrete example in relation to Mutation Testing, Capture-Replay testing and LLM-based testing. Mutation testing is a well-established technique that evaluates the effectiveness of a test suite by introducing small, systematic modifications (mutations) into the original code and analyzing whether the existing tests can detect them. In this tutorial, we will introduce SuMo, a mutation testing tool specifically designed for Ethereum Smart Contracts. Capture-Replay testing is a testing strategy that leverages recorded previous executions in order to assess programs when they are updated so to check their conformance with respect to concrete executions. The tutorial will introduce CATANA, a replay testing strategy that retrieves transactions from the blockchain and uses them in order to check the conformance of new contract versions when the proxy pattern is used to update a contract. Finally, the tutorial will also present the possibility of combining LLM-based testing with Mutation testing to improve the test suite associated with a contract. In this case, the Alchemist framework is introduced, showing how it is possible to automatically derive test cases that improve the verification capabilities of a given test suite. The tutorial will close discussing possible opportunities for further research in the area of smart contract testing.




