nw  

Blockchain basiertes Spiel mit Zero Knowledge Proofs

Zusammenfassung

In diesem Projekt wurde ein dezentrales Spiel auf dem Ethereum Netwerk (Layer 1) entwickelt. Mittels StarkNet (Layer 2), welches Zero Knowledge Proofs verwendet, kann der Rechenaufwand und die Transaktionskosten auf dem Layer 1 minimiert werden. Das Spiel verwendet Non-Fungible Tokens (NFT) und kann über ein Angular User Interface, gespielt werden.

NFT Beispiele

Bogen Speer Schwert Kavalerie

Schlüsselbegriffe

Cairo, Solidity, Smart Contracts, Ethereum, Blockchain, StarkNet, Zero Knowledge Proofs, DApp, NFT, Angular

Zielsetzung

Das Ziel der Arbeit ist die Erstellung eines kompletten DApp Games, das auf der Ethereum Blockchain läuft, NFTs verwendet, die Spielberechnungen auf einem Cairo Smart Contract im StarkNet ausführt und die Spielresultate auf der Ethereum Blockchain verifiziert. Ausserdem sollen alle notwendigen Benutzerinteraktionen des Spiels über ein User Interface durchgeführt werden können. Im Zuge der Umsetzung sollen Cairo und das StarkNet analysiert und auf deren Tauglichkeit zur Entwicklung von DApps geprüft werden

Ausgangslage

Bisher wird die Blockchain Technologie hauptsächlich für Transaktionen von Kryptowährungen verwendet. In den letzten Jahren wurden jedoch vermehrt neue Anwendungsbereiche für die Blockchain ergründet und die Zahl der Blockchain Projekte nahm stark zu. Einer dieser neuen Anwendungsfälle sind Non-Fungible Tokens (NFTs). Dabei handelt es sich um einzigartige, digitale Objekte, deren Eigentumsrechte öffentlich auf der Blockchain getrackt werden. Ein Beispiel dafür wäre eine digitale Spielkarte, ein Photo oder ein digitales Kunstwerk. Ein weiterer Anwendungsfall sind dezentrale Applikationen (DApps) und insbesondere auch DApp Games, welche sich die Vorteile der Blockchain zu Nutze machen können. Bei DApp Games kann man sich sicher sein, dass das Spiel nach den vorgegebenen Regeln gespielt wird, weil niemand die Kontrolle über den Spielverlauf, oder Einfluss auf das Spielergebnis hat. Das Verwenden der Blockchain hat aber nicht nur Vorteile, sondern stellt Entwickler auch vor Herausforderungen, wie beispielsweise die hohen Transaktionskosten und den hohen Energieverbrauch von rechenintensiven Anwendungen. Dank der wachsenden Beliebtheit von DApps werden fortlaufend neue Technologien und Konzepte entwickelt, um diese Probleme zu lösen, wie zum Beispiel Cairo und StarkNet. Diese Technologien verwenden verifizierbare Berechnungen, damit auf der Blockchain nur noch der Beweis für die korrekte Ausführung des Codes verifiziert werden muss, was in den meisten Fällen weniger Rechenaufwand erfordert, als wenn man die ganze Berechnung auf der Blockchain durchführen würde.

Ergebnisse

Im Laufe der Arbeit konnten wir diverse Probleme mit den verwendeten Technologien aufdecken. Es ist zum Beispiel nicht möglich in einem Solidity Contract eine kryptografisch sichere Zufallszahl zu generieren. Es gibt zwar bereits eine Library, über die man von ausserhalb der Blockchain eine kryptografisch sichere Zufallszahl einlesen kann. Diese Library kann aber zum Beispiel auf dem Görli Testnetzwerk, das einzige Testnetzwerk auf dem das StarkNet getestet werden kann, nicht verwendet werden. Ein weiteres Problem war, dass es je nach Blockchainauslastung teilweise über eine halbe Stunde dauert, bis das Resultat einer Spielrunde ausgerechnet und zurückgeschickt wurde, obwohl nur ein Bruchteil dieser Zeit für die Berechnung des Resultates aufgewendet wurde. Trotz einigen Hindernissen ist es uns gelungen ein dezentrales Spiel zu bauen, dessen Rechenaufwand durch die Verwendung des StarkNet reduziert werden konnte. Deshalb kommen wir zum Schluss, dass das Generieren von Zero Knowledge Proofs auf dem StarkNet, vor allem für rechenintensive dezentrale Applikationen, die Transaktionskosten und die benötigte Rechenleistung stark reduzieren kann.

Schlachtensimulator - Demo

Hiermit möchten wir gerne unsere Lösung vorstellen. Das Video zeigt einen Durchlauf vom Verbinden mit der eigenen Wallet (Metamask), bis hin zum Starten einer Runde und dem Resultat.

Projektdaten

Projektdauer: 16.09.2021 bis 25.03.2022
Aufwand in Personenstunden: 720 Stunden
Teamgrösse: 2 Personen

Auftraggeber

FHNW Hochschule für Technik
Institut für Mobile und Verteilte Systeme
Markus Knecht
markus.knecht@fhnw.ch
Daniel Kröni
daniel.kroeni@fhnw.ch

Projektteam

Mario Wettstein, iCompetence, berufsbegleitend
Kevin Dubach, Informatik, berufsbegleitend

Kontakt

Markus Knecht
markus.knecht@fhnw.ch
Daniel Kröni
daniel.kroeni@fhnw.ch

<< zurück