Grin logo
de en es fr
Shop
GRIN Website
Publicación mundial de textos académicos
Go to shop › Ciencias de la computación - Programación

Das Spiel "Schere, Stein, Papier" als DApp. Entwicklung in der Programmiersprache Solidity

Erstellung sowie Dokumentation

Título: Das Spiel "Schere, Stein, Papier" als DApp. Entwicklung in der Programmiersprache Solidity

Proyecto de Trabajo , 2022 , 30 Páginas , Calificación: 1,5

Autor:in: Jannik Hehemann (Autor), Dominik Bepple (Autor)

Ciencias de la computación - Programación
Extracto de texto & Detalles   Leer eBook
Resumen Extracto de texto Detalles

Diese Projektarbeit befasst sich mit der Erstellung einer dezentralen Anwendung (DApp) für das Spiel "Schere, Stein, Papier". Sie umfasst die Implementierung der App (Quellcode, Deployment, Frontend) sowie die Dokumentation der Erstellung (Anforderungen, Lösungsstrategien, Softwarearchitektur).

Die Aufgabenstellung bestand darin, das Spiel "Schere, Stein, Papier" mithilfe einer DApp zu implementieren, dessen Spiellogik und Nutzerverwaltung von einem in der Programmiersprache Solidity geschriebenen Smart Contract auf dem Ropsten-Testnet der Ethereum Blockchain übernommen wird. Zugriff auf das Spiel sollte über eine Website erfolgen, die wiederum den Smart Contract bedienen sollte.

Im Vergleich zu einer webbasierten Lösung, die durch einen Hersteller zentral betrieben wird, bietet die Implementierung des Spiels als DApp mithilfe der Blockchain-Technologie den Vorteil, dass die Spieler weltweit ohne einen Intermediär direkt gegeneinander spielen können.

Die grundlegende Spiellogik wird im Folgenden geschildert: Beim Aufrufen der Weboberfläche wird das Browserplugin Metamask geöffnet und der Spieler aufgefordert, sich mit einem Account zu verbinden. Erst nach erfolgreichem Verbinden eines Accounts besteht die Möglichkeit, einem Spiel beizutreten, und die Spielersuche zu starten. Für das Beitreten wird eine Servicegebühr von 2.000 Wei erhoben. Wurde ein Gegenspieler gefunden, dürfen beide Spieler ihren Einsatz von 10.000 Wei setzen.

Sowohl Servicegebühr als auch Einsatz sind durch den Ersteller des Smart Contracts beliebig anpassbar. Anschließend wählen die Spieler ihren Spielzug, hashen diesen und veröffentlichen den Hashwert im nächsten Schritt. Nachdem dies erfolgt ist, veröffentlichen beide Spieler den unverschlüsselten Spielzug, sodass der Smart Contract diesen mit dem zuvor veröffentlichten Hashwert verifizieren und den Gewinner ermitteln und auszahlen kann.

Extracto


Inhaltsverzeichnis

1. Einführung

1.1 Aufgabenstellung

1.2 Projektbeschreibung

2. Anforderungen und Umsetzung

2.1 Anforderungen aus Aufgabenstellung

2.1.1 Transparenz der Blockchain berücksichtigen

2.1.2 Zentrale Rolle des Smart Contracts

2.1.3 Vorzeitigen Spielerausstieg berücksichtigen

2.1.4 Verwendung des Factory Patterns

2.1.5 Möglichkeit für Servicegebühr und Wetteinsatz

2.1.6 Nutzerschnittstelle via lokalem Webserver

2.2 Weiterführende Anforderungen

2.2.1 Verwaltung elementarer Spielfunktionalitäten

2.2.2 Intuitive Nutzerführung

2.2.3 Verbesserte Fehlersuche

3. Softwarearchitektur

4. Alternative Lösungsansätze

4.1 Vorkehrungen für Ausstieg beider Spieler

4.2 Wetteinsatz dynamisch von den Spielern bestimmen

4.3 Optimiertes Commit Reveal Schema

4.4 Alternative Blockchain

5. Fazit

Zielsetzung & Themen

Das Hauptziel dieser Arbeit ist die Implementierung des Spiels "Schere, Stein, Papier" als dezentrale Anwendung (DApp) auf der Ethereum-Blockchain, wobei die Spiellogik und Nutzerverwaltung in einem Smart Contract in der Programmiersprache Solidity realisiert werden. Es soll untersucht werden, wie sich die spezifischen Anforderungen wie Transparenz, Commit-Reveal-Verfahren und Schutz vor Manipulationen wie Re-Entrancy Attacks technisch umsetzen lassen.

  • Entwicklung eines sicheren Smart Contracts zur Abwicklung der Spiellogik.
  • Implementierung eines Commit-Reveal-Schemas zur Sicherstellung fairer Spielzüge.
  • Integration einer Web-Benutzeroberfläche zur Interaktion mit dem Smart Contract.
  • Analyse der Kosten- und Effizienzfaktoren auf der Ethereum-Blockchain.

Auszug aus dem Buch

2.1.1.1 Commit-Reveal Schema

Da die Daten auf der Blockchain zu jedem Zeitpunkt öffentlich zugänglich sind und eingesehen werden können, besteht eine Herausforderung darin zu verhindern, dass ein Spieler auf den Spielzug des Gegners wartet, diesen auf der Blockchain nachschaut und anschließend den eigenen Spielzug vorteilhaft wählt. Die Lösung für diese Herausforderung stellt das Commit-Reveal Schema dar. Hierbei wählen in der Commit Phase zunächst beide Spieler ihren Spielzug aus und hashen diesen zusammen mit einem gewählten Passwort. Der Hashwert ist eindeutig und kann auf Basis aktueller Verschlüsselungsstandards ausschließlich aus der Kombination von Spielzug und Passwort effizient generiert werden. Es ist nicht möglich aus dem Hashwert den gewählten Spielzug zurückzuverfolgen. Das bedeutet, dass beide Spieler ihren Spielzug tätigen und „einloggen“ können, ohne dass es für den Gegenspieler möglich ist mithilfe der Daten auf der Blockchain herauszufinden, was gespielt wurde. Die Smart Contract Funktion play() speichert die von den Spielern gespielten Spielzüge, die von JavaScript gehasht und verschlüsselt an den Smart Contract übergeben wurden (s. Abbildung 1).

Anschließend startet die Reveal Phase, in der die Spieler ihren Spielzug sowie das gewählte Passwort veröffentlichen und zeigen, dass der damit erzeugte Hashwert genau dem Hashwert entspricht, der in der Commit Phase veröffentlicht wurde. Die Smart Contract Funktion reveal() nimmt als Input Parameter die klaren Spielzüge der Spieler, hasht diese und prüft, ob die Werte mit denen der in der play() Funktion gespeicherten Hashwerten übereinstimmen (s. Abbildung 2). Ist dies der Fall, wird der Spielzug zurückgegeben. Solange die Hashwerte nicht übereinstimmen, wird Moves.None zurückgegeben, was bedeutet, dass ein Spieler noch nicht revealt hat. Die Modifier isRegistered() und commitPhaseEnded() prüfen, ob beide Spieler bereits einen Spielzug getätigt haben und auch diejenigen Spielteilnehmer sind, für die das Spiel kreiert wurde. Die Reveal Phase gilt als beendet, sobald beide Spieler den korrekten Spielzug veröffentlicht haben.

Zusammenfassung der Kapitel

1. Einführung: Dieses Kapitel verortet das Projekt im Rahmen des Modulstudiengangs und beschreibt die Aufgabenstellung sowie die grundlegende Funktionsweise des Spiels.

2. Anforderungen und Umsetzung: Hier werden die funktionalen Anforderungen an die DApp, insbesondere Sicherheitsmechanismen und die Smart-Contract-Logik, im Detail analysiert und deren technische Umsetzung erläutert.

3. Softwarearchitektur: Das Kapitel beschreibt den Systemaufbau mittels Usecases und Klassendiagrammen unter besonderer Berücksichtigung der Gaskosten-Optimierung durch Factory Patterns.

4. Alternative Lösungsansätze: Dieser Abschnitt diskutiert potenzielle Erweiterungen und alternative Strategien, um die Nutzerfreundlichkeit und Funktionalität des Spiels weiter zu verbessern.

5. Fazit: Das Fazit bewertet die Machbarkeit der Implementierung und kritisiert die aktuellen Rahmenbedingungen der Ethereum-Blockchain hinsichtlich Kosten und Skalierbarkeit für Massenanwendungen.

Schlüsselwörter

Blockchain, DApp, Smart Contract, Solidity, Ropsten-Testnet, Commit-Reveal Schema, Re-Entrancy Attack, Factory Pattern, Ethereum, Gas-Kosten, Nutzerverwaltung, Spiellogik, Web3.js, Metamask, Kryptographie.

Häufig gestellte Fragen

Worum geht es in dieser Arbeit grundsätzlich?

Die Arbeit befasst sich mit der Entwicklung und Dokumentation einer dezentralen Anwendung (DApp) für das Spiel "Schere, Stein, Papier" auf Basis der Blockchain-Technologie.

Welche Themenfelder stehen im Mittelpunkt?

Die Schwerpunkte liegen auf der Smart-Contract-Programmierung, der Implementierung von Sicherheitsmechanismen gegen Betrugsversuche und der Frontend-Integration für eine intuitive Nutzerführung.

Was ist das primäre Ziel der Forschungsarbeit?

Das Ziel ist der Nachweis, dass ein bekanntes Spiel unter Wahrung von Fairness und Sicherheit als DApp auf der Ethereum-Blockchain realisiert werden kann.

Welche wissenschaftliche Methode wurde angewandt?

Es handelt sich um eine praxisorientierte Entwicklungsarbeit, die Anforderungen analysiert, eine Systemarchitektur entwirft und deren Umsetzung exemplarisch im Programmcode dokumentiert.

Was wird im Hauptteil behandelt?

Der Hauptteil behandelt die funktionale Spezifikation des Smart Contracts, die Implementierung des Commit-Reveal-Modells sowie Lösungsansätze zur Vermeidung von Sicherheitslücken wie der Re-Entrancy-Attacke.

Welche Schlüsselbegriffe charakterisieren diese Arbeit?

Zentrale Begriffe sind Smart Contracts, Solidity, Blockchain-Transparenz, Dezentralität und die Optimierung von Gas-Kosten.

Warum wurde das Commit-Reveal-Schema implementiert?

Es dient dazu, dass Spieler ihre Spielzüge geheim halten können, bis der Gegenspieler seinen Zug ebenfalls festgelegt hat, um eine faire Spielentwicklung trotz transparenter Blockchain-Daten zu gewährleisten.

Welche Herausforderung stellen die aktuellen Gaskosten bei Ethereum dar?

Die hohen Transaktionsgebühren auf Ethereum machen das Spiel für eine breite Masse derzeit ökonomisch unattraktiv, da die Gaskosten für die drei notwendigen Spielschritte in einem ungünstigen Verhältnis zum Wetteinsatz stehen.

Welchen Zweck erfüllt das Factory Pattern in diesem Design?

Das Factory Pattern ermöglicht eine kosteneffiziente Erzeugung von neuen Spielinstanzen (Child Contracts), indem durch die Verwendung von Proxys die Gas-Kosten für das Deployment reduziert werden.

Final del extracto de 30 páginas  - subir

Detalles

Título
Das Spiel "Schere, Stein, Papier" als DApp. Entwicklung in der Programmiersprache Solidity
Subtítulo
Erstellung sowie Dokumentation
Universidad
University of Applied Sciences Mittweida
Curso
Blockchain 3
Calificación
1,5
Autores
Jannik Hehemann (Autor), Dominik Bepple (Autor)
Año de publicación
2022
Páginas
30
No. de catálogo
V1304876
ISBN (PDF)
9783346776341
ISBN (Libro)
9783346776358
Idioma
Alemán
Etiqueta
Blockchain Smart Contract Solidity Factory-Pattern Factory Pattern DApp DLT Dezentrale App Nodejs Node Re-Entrancy Attack Reentrancy Attack Security Modifier Commit-Reveal-Schema Commit-Reveal Blockchain Security Transparenz Softwarearchitektur Dezentral Spiel Schere Stein Papier Web3 Web 3.0 Ethereum Ropsten
Seguridad del producto
GRIN Publishing Ltd.
Citar trabajo
Jannik Hehemann (Autor), Dominik Bepple (Autor), 2022, Das Spiel "Schere, Stein, Papier" als DApp. Entwicklung in der Programmiersprache Solidity, Múnich, GRIN Verlag, https://www.grin.com/document/1304876
Leer eBook
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
Extracto de  30  Páginas
Grin logo
  • Grin.com
  • Envío
  • Contacto
  • Privacidad
  • Aviso legal
  • Imprint