Navigation auf uzh.ch

Suche

Department of Informatics - Communication Systems Group

Challenge Task 2025

This semester’s Challenge Task (CT) is to design and implement a decentralized application (dAPP), deployed on the blockchain. The choice of use case to be implemented depends on the group’s choice. The groups should inform the teaching assistants on the topic (refer to the →deadlines) and discuss the feasibility of the proposal before starting designing and prototyping the application. Please check past CTs to have an idea about application outcomes (e.g., links).

Requirements

The following requirements must be satisfied for the group to obtain the exam bonus. The necessary information on requirements, useful links and tools, and impact on the grade are detailed in the next sections.

  1. Domain, Problem, and Requirements
    • Select the use case for the application, for example:
      • Food or agriculture supply chain
      • Land title management
      • Intellectual property rights management
      • Decentralized finance
      • Voting
    • Discuss why the chosen use case is important and worth solving.
    • Outline at least three problems of the chosen use case that can be addressed using blockchain. Discuss the suitability of using blockchain to address the identified problems. You may want to consider the suitability evaluation framework mentioned on this page below. 
    • Outline at least three functional requirements for the chosen use case.
    • Outline at least three non-functional requirements for the chosen use case.
  2. dApp Architecture Design and Development
    • Design a high-level software architecture to fulfill identified functional requirements. Consider the blockchain selection (e.g., public or private), the role of the blockchain in the system, on-chain and off-chain components in your diagram. Note that you must show an architecture diagram that illustrates your system components and their interactions. 
    • Develop a dApp based on architecture design and include the following:
      • Interactions with blockchain.
      • At least two smart contracts.
      • Off-chain computational component or oracle.
      • Off-chain data storage (e.g., cloud, IPFS).
    • Ensure that your dApp and its smart contracts can be deployed in the Ethereum testnet.
      • You can use just one node (e.g., Ganache, Parity, Geth client) with multiple addresses.
  3. Presentation and Report
    • Write a final report documenting:
      • Selected domain background and identified problems that can be solved with blockchain, addressing how blockchain is suitable for this use case.
      • Identified functional and non-functional requirements, and whether they are addressed by your dApp design.  
      • Smart contracts, their operations, off-chain components, and the source code.
    • Present your architecture design and demo dApp at the final presentation.

Deadlines 

  1. Attend the introductory presentation on the CT: 20.02.2025 (optional, onsite)
  2. Participate in the exercise session to form the CT groups: 27.02.2025 (onsite).
  3. Hand in the proposal: 06.03.2025 by 23:59 (online - see → Submissions).
  4. Midterm report: 17.04.2025 by 23:59 (optional, online)
    Should include the following sections:
    • Selected domain and why it is important
    • At least three problems of the chosen domain
    • At least three functional requirements
    • Suitability of using blockchain
    • Software architecture
  5. Final report: 15.05.2025 by 23:59 (online)
    Extend the midterm report with the following sections:
    • Implementation details
    • Design trade-offs and limitations
    • Link to the source code
  6. Final presentation: 15.05.2025 and/or 22.05.2025 (onsite)
    • Each group will have 15 minutes to present the architecture design and demo the application, showing that it meets the defined requirements.
    • The presentation should include slides, covering:
      • Selected domain and identified problems
      • Suitability of blockchain for selected problem 
      • Functional and non-functional requirements
      • Visualized system architecture 
      • Demo

Marking Criteria

  Task Mark
1.1 Importance of the use case, why is it worth solving 1
1.2 Suitability of blockchain for the use case 1
1.3 3+ functional requirements 1
1.4 3+ non-functional requirements 1
2.1 Architecture design 3
2.2 Implementation details (blockchain platform, off-chain components, tools used) 2
2.3 2+ smart contracts 2
2.4 Off-chain computational component or an oracle 2
2.5 Interaction with a blockchain 2
3.1 Quality of demo 2
3.2 Quality of report 2
3.3 Quality of code (documentation, testing, deployment) 1
  Total marks 20

 

Submissions

Hand-in the exercise solutions via OLAT, CT proposal, and all CT-related matters by email to vonderassen@ifi.uzh.ch and schumm@ifi.uzh.ch

Libraries and Tools

Make use of the existing libraries and tools developed for building dApps, such as: 

Blockchain Evaluation Framework

To evaluate blockchain suitability, you might find it useful to apply the following evaluation framework [1]: 

Blockchain suitability evaluation framework

[1] S. K. Lo, X. Xu, Y. K. Chiam and Q. Lu, "Evaluating Suitability of Applying Blockchain," 2017 22nd International Conference on Engineering of Complex Computer Systems (ICECCS), Fukuoka, Japan, 2017, pp. 158-161, doi: 10.1109/ICECCS.2017.26.

Organization

The groups should be balanced in experience and workload. Every group should have at least one development expert. During the CT, the group is recommended to meet every week during exercise hours to work on the task and discuss the next steps.

Besides the exercise time slots assigned on Thursdays, the groups should utilize their homework time to work on the CT. The groups should determine and set up an internal project plan with the milestones, responsibilities, and timings. The groups should distribute the workload so that each group member gets a fair load of work. Do not miss the opportunity to discuss details with the teaching assistants, as he/she might give you useful directions.

# Group Name Participants Proposal Presentation day Final Report
1 Apollo

Lazaro Nicolas Hofmann
Lennart Paul Eikens
Jingyi Chen
Xirui Yang
Saksham Joshi

Xiaying ji

   
2 Zeus

Noah Isaak
Annamaria Vass
Gökberk Beydemir
Alessandro Motta
Akos Imats

   
3 Hera

Valentina Zingarello
Maorong Lin
Qingcheng Wang
David Moser
Songran Ning

Solomon Haile Dereje

   
4 Nike

Xiaotong Yan
Zhuojie Wu
Yingxuan Shi

Afshan Shakoor
Haizhou Zheng

   
5 Hades

Niklas Schmatloch
Ruihan Gao
Guilherme Fernando Pereira Sequeira
Md Muhtaseen Hafiz
Zahraa Zaiour

   
6 Nemesis        
7 Athena        
8 Poseidon        
9 Demeter        
10 Tyche        
11 Artemis        
12