This course is directed at students that finished the cryptocurrencies lecture with good marks and programming skills. If completed successfully you will receive 6 CP and you will have the opportunity to take a deeper look at some topics that were introduced in the lecture.

The goal is to work in small groups of 2-3 and jointly implement a project.

Some example topics include, but you can be creative:

·        Find, describe and implement an attack on a real-world cryptocurrency, a smart contract, an ICO, …

·        Build a (complex) decentralized secure application on top of the Ethereum Blockchain using smart contracts.

·        Connect IoT devices with the blockchain, i.e. a door lock which is only opened when payed, payment for a coffee machine, etc. …

·        Build or extend a wallet i.e. in order to include more complex security measures (i.e. hot/cold wallet, threshold crypto, hardware wallet...)

·        Build a block explorer with advanced properties or a deanonymization tool for some cryptocurrencies.

·        Secure Ethereum oracles with MPC, trusted hardware,….

You can freely choose the topic as well as the programming language and details of your project. It only has to be somehow related to cryptocurrencies and be non-trivial.

 

Outline

You should find a group and topic before you start this course. It is important that you propose the topic of your project and explain and motivate it well in your project proposal. Make sure your group is able to handle scope and goal of your project. This course is not aimed to teach you how to do either of the proposed topics, but gives you a platform to independently work on your own project. The basic tools that you need and that shall inspire you to develop a project you shall have learnt via the Cryptocurrency class.

The project -- including a final presentation and a final report -- will be graded. The grade will include four weighted sub-grades:

·        contribution of the project

·        project management

·        status reports and final report

·        status project presentations and final presentation

There will not be an overall test or exam. Only choose this course, if you are interested in cryptocurrencies and have fun and skills to work on a complex project.

 

There is only a limited number of 35 places available for this course, so please register early. Make sure you and your group manage to join the praktikum. We will provide a forum in the cryptocurrencies moodle course to help you with finding group partners and topics.

Kick-off meeting

The first meeting is mandatory for all students that want to participate. Here you will get further details about the tasks, the grading and potential projects. There will not be any lecture in the traditional sense. Please tell us here already, if you need any hardware which we need to order for your project.

Project proposal

In the second meeting all groups will present their project. What is your goal and how do you plan to achieve this goal? You will be asked to hand in a project proposal report one week before the meeting (max 4 pages + references). The project proposal shall contain the following information:

1.     Motivation and goals: what problem does your project solve? Who can benefit from your project? What are the goals that you plan to achieve? (approx. 1 page)

2.     Background: what is the current state of the art? Do there already exist projects that solve a similar problem? If yes, please outline what is the advantage of your approach? (max. 1 page)

3.     Project plan: explain how you plan to achieve your goals? What tools, software and methodology will you use? What are the milestones? (approx. 2 pages)

A latex template will be provided. You will receive individual feedback about your project during the meeting. Please keep the description concise and focus on the main aspects of your project.

We will grade the outcome of your project according to these rules. If you do not manage to achieve some of the goals that you describe in your project proposal, make sure to explain later during execution of the project why this was the case.

Progress presentation meeting

There will be two meetings, where you are asked to present on the progress of your project (10-15 mins each project). You will also be asked to hand-in one week before the meeting a short status report of your project (max. 1 page).  What did you already achieve? Did you run into any problems? What remains to be done?

Final presentation and demonstration

This is the last meeting, where you will present your project`(30-45 mins each project) at the end of the semester.

You will be asked to hand in a report (min. 5 pages without references) where you should respond to the following questions (a template will be provided):

·        Explain your project and describe how it works.

·        What is new or improved about this project in comparison with existing tools?

·        How did you manage your project?

·        What milestones did you have?

·        How did your group organize?

·        How can your tool be extended or improved?

If you have an idea, which is too big to fit into the scope of this praktikum, we are happy to discuss the possibility of writing a Master’s thesis about it, or split work between a larger team.