Navigation auf uzh.ch
This semester's Challenge Task (CT) is to implement a Decentralized Application (DApp) deployed on the Ethereum blockchain. The application must implement a lottery system that communicates with a random number generator oracle, all implemented using Smart Contracts (SC).
Lottery systems exist since past the Medieval ages. Nowadays, a lottery game can pay out enormous amounts of money, such as USD 1.586 billion (before tax) in the US Powerball [1] and R$ 244 million in the Brazilian Mega-Sena [2]. In such systems, a user buys a ticket with random numbers of its own choice. This ticket remains in possession of the user; once the betting period ends, the lottery managers draw a fixed number of winning numbers. If the user picked the winning numbers he/she can claim the prize. In the event that nobody wins, the prize amount is accumulated for the next draw.
Lottery systems are further explained at https://en.wikipedia.or/wiki/Lottery and https://entertainment.howstuffworks.com/lottery.htm
[1] Powerball, Wikipedia. Available at https://en.wikipedia.org/wiki/Powerball
[2] Mega-Sena, Wikipedia. Available at https://en.wikipedia.org/wiki/Mega-Sena
Each CT group is free to decide on the design of the Lottery, for example, how to store the tickets and users, how to check the winner, how the Lottery system will work, how the random numbers are generated, and how the interaction with the system will be performed. However, for each CT group the following key requirements are to be met:
Further suggestions include:
The final report shall document the application and its operation, mainly with all the details needed understand the solution to be shown at the presentation and demo time slow. The report should contain approximately 4 pages.
The following facts may be assumed:
The Smart Contract can be deployed in a private testnet or in the Ropsten testnet.
The items below represent supporting libraries, tools, or references that are recommended to be taken into consideration.
During the challenge task each group will be able to ask questions and get support from their supervisors:
# | Group Name | Participants | Supervisor |
---|---|---|---|
1 | Babbage |
Alex Scheitlin, Nik Zaugg, Simon Bachmann, Emirald Mateli |
ES/CK |
2 | Lovelace |
Danijel Dordevic, Claude Muller, Lucas Thorbecke, Ratanak Hy |
ES/CK |
3 | Shannon |
Dominik Bünzli, Luc Boillat, Noah Berni, Jan von der Assen |
ES/CK |
4 | Finney | Lukas Yu, Simon Widmer, Daniel Klaus, Badrie Persaud | ES/CK |
5 | Ether |
Timo Surbeck, Fabio Maddaloni, Joachim Baumann, Jonathan Stahl |
ES/CK |
6 | Ada | Fan Feng, Yuang Cheng, Roger Staubli, Sven Stoll | ES/CK |
7 | Nano | Daniel Gächter, Peter Giger, Silas Weber, Alphonse Mariyagnanaseelan | ES/CK |
8 | Einstein | Ile Cepilov, Erion Sula, Tim Strasser, Elfat Esati, Ledri Thaqi | ES/CK |
Challenge task presentations and demonstrations will take place on Tuesday 21.05.2019 from 12:15 to 13:45 and Thursday 23.05.2019 from 14:00 to 15:45 hours. On these dates, the groups will present and demonstrate their results, which will be evaluated by a jury. Presentations and demos on these two dates will take place in room BIN 2.A.10.
The CT grade will impact in the final written exam grade in the following manner:
|
|
Fulfilment of the Requirements
Requirement / Group |
1 - Babbage |
2 - Lovelace |
3 - Shannon |
4 - Finney |
5 - Ether |
6 - Ada |
7 - Nano |
8 - Einstein |
RQ 1 |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ | ✅ |
✅ |
RQ 2 |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ | ✅ |
✅ |
RQ 3 |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ | ✅ |
✅ |
RQ 4 |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ | ✅ |
✅ |
✅ = Fulfilled ❎ = Not Fulfilled
🏆 Winner CSG-award: TBD
The report and source code of each group can be found in this Link
Source code is licensed under open source license. In case of questions, please contact the respective supervisor.