Dmitry Pichulin, bekannt unter dem Spitznamen "deemru", gewann das von Tradisys entwickelte Spiel Fhloston Paradise in der Waves-Blockchain.
Der Gewinner von Fhloston Paradise sollte der Spieler sein, der den allerletzten Einsatz innerhalb eines Zeitraums von 60 Blöcken bezahlt, bevor ein anderer Spieler seinen Einsatz bezahlen und den Zähler auf Null zurücksetzen konnte. Der Gewinner würde alle von anderen Spielern gezahlten Einsätze sammeln.
Dmitrys Erfolgsrezept war der Bot Patrollo , den er kreierte. Der Bot zahlte nur acht 1 WAVES-Einsätze für Dmitry und gewann schließlich 4.700 WAVES (13.100 $). In diesem Interview diskutiert Dmitry seinen Bot und die Aussichten auf Blockchain-Spiele.Können Sie uns etwas über sich erzählen? Was machst du Wann haben Sie sich für Blockchain-Technologie interessiert?Ich bin Entwickler im Bereich Informationssicherheit. Ich bin mit dem Hype von 2017 in den Blockchain-Bereich gekommen, habe die Technologie gemeistert und bin der Technologie zuliebe geblieben.
Was war Ihre Hauptmotivation, das Spiel zu spielen?Es war vor allem das Interesse am technischen Teil. Ich wollte herausfinden, wie es funktioniert, Schwachstellen aufdecken, das Ende des Spiels verhindern und natürlich andere Spieler trollen.
Warum hast du dich entschieden, mit einem Bot teilzunehmen? Wie sind Sie auf die Idee zu Patrollo gekommen? Könnten Sie weitere Details zur Entwicklung angeben?Es hat nicht mit Schwachstellen funktioniert. Ich habe das Spiel im Testnetz bereitgestellt, mit mir selbst gespielt, verschiedene Optionen ausprobiert, aber alles hat sich als absolut solide herausgestellt. Der Vertrag enthält keine Sicherheitslücken. So wurde klar, dass ich so nicht gewinnen würde.
Wie haben Sie nach Schwachstellen gesucht? Welche Hypothesen hatten Sie?Ich hatte zwei Hypothesen. Zunächst ein Angriff auf Überprüfungen von Datentypen in DataTransaction-Einträgen. Zum Beispiel nahm ich an, dass es möglich wäre, die Wiederverwendung von Transaktions-IDs aufgrund einer schlechten Codierung zu umgehen. Die zweite Hypothese war ein Angriff auf den Ganzzahlüberlauf. Ich hoffte, dass es eine Möglichkeit geben würde, eine zu große oder negative Blockhöhe einzustellen und zu versuchen, in die Vergangenheit zu gelangen.
$ tx = $ wk-> txBroadcast ($ wk-> txSign ($ wk-> txData (['heightToGetMoney' => -9223372036854775807]));
Was haben Sie getan, als Sie sahen, dass Ihre Erwartungen in Bezug auf Sicherheitslücken nicht in Erfüllung gingen?Tradisys sagte auf seinem Telegrammkanal, dass das Spiel für immer andauern wird, wenn im Netzwerk alles ruhig ist, aber in einem Zustand der Unsicherheit, der durch Knotenaktualisierungen oder unerwartete Gabeln verursacht wird, haben gute Bots höhere Chancen. Vor Ort nahm ich die Herausforderung an, einen guten Bot zu schreiben, was ich in wenigen Tagen tat. Ich habe Patrollos Code in der PHP-Sprache geschrieben, basierend auf meinem Framework
WavesKit , in dem ich versuche, die besten Techniken für die Arbeit mit der Blockchain aufzuzeichnen. Ich habe es im Testnetz ausgeführt, den Code auf GitHub hochgeladen, den Bot im Hauptnetz veröffentlicht und vergessen.
Meine Konfiguration von Patrollo sollte zwei Aufgaben implementieren: Einsätze so selten wie möglich bezahlen und mit maximaler Zuverlässigkeit arbeiten.
Ersteres wurde durch die Zahlung extrem riskanter Einsätze erreicht - vorzugsweise im allerletzten Block. Schließlich stellte ich den Bot für den vorletzten Block ein, jedoch mit einer Verzögerung von 29 Sekunden. Damit konnte es während des Spiels nur acht Einsätze bezahlen.
Warum genau 29 Sekunden? Wie sind Sie zu dieser Zahl gekommen?Ich kam allmählich dazu. Erstens gab es keine Verzögerung und ich bemerkte, dass während des vorletzten Blocks gleichzeitige Einsätze gezahlt wurden. Es machte also keinen Sinn, Einsätze zu zahlen. Dann habe ich eine Verzögerung hinzugefügt - ich glaube, es waren 17 Sekunden, aber es hat nicht geholfen: Gleichzeitige Einsätze wurden weiterhin ausgezahlt. Deshalb habe ich mich für größere Risiken entschieden, um gleichzeitige Einsätze auszuschließen. Warum 17, 29 usw.? Ich mag nur Primzahlen. 24, 25, 26, 27, 28, 30 sind alle zusammengesetzte Zahlen. Und über 30 Sekunden zu gehen wäre zu riskant gewesen.
Wie haben Sie das Zuverlässigkeitsproblem gelöst?Zu einem großen Teil wurde die Zuverlässigkeit durch den Mechanismus der Auswahl des Arbeitsknotens und in geringerem Maße durch das Senden einer TransferTransaction für einen Anteil im Voraus erreicht, so dass der Anteil an der DataTransaction definitiv mit einer auf dem Server vorhandenen Transaktion verknüpft war Blockchain.
Während jeder Runde des Zyklus wurde die aktuelle Höhe aller in der Konfiguration festgelegten Knoten gemessen und der Knoten mit der größten Höhe für die weitere Interaktion ausgewählt. Meiner Meinung nach diente dies als Schutz vor Gabeln, Nichtverfügbarkeit, Einlösung und möglichen Knotenfehlern. Ich bin zuversichtlich, dass dieser einfache Mechanismus letztendlich zum Sieg geführt hat.
Was sind die Hauptvorteile von Blockchain-Spielen? Wie vielversprechend sind öffentliche Blockchain und insbesondere Waves für die Spieleentwicklung?Die Hauptvorteile sind bekannte, aufgezeichnete und unveränderliche Spielregeln sowie gleiche Bedingungen für den Zugang zum Spiel von jedem Ort der Welt aus.
Nicht-Blockchain-Spiele mit Geld müssen sterben.
Waves verfügt über eine Reach-Tech-Funktionalität, aber es gibt einige Nuancen - sowohl typisch für jede Blockchain als auch spezifisch. Bisher haben sich beide nicht gründlich genug in den vorhandenen Instrumenten des Entwicklers niedergeschlagen.
Wenn Sie beispielsweise versuchen, in Echtzeit auf Transaktionen zu reagieren, anstatt in einem Abstand von fünf bis zehn Bestätigungen, werden Sie seltene, aber immer noch vorhandene Fälle entdecken, in denen Transaktionen von einem Block zum anderen springen, verschwinden und plötzlich in Endblöcken wieder auftauchen . All dies ist entscheidend für die Geschwindigkeit und Zuverlässigkeit aller Anwendungen und muss allgemein gelöst werden, bis die Entwickler selbst das erforderliche Maß an Zuverlässigkeit erreichen. Sicherlich wird zu gegebener Zeit alles gelöst sein, aber an diesem Punkt gibt es eine ziemlich hohe Eintrittsbarriere und die Angst vor den Besonderheiten eines wirklich dezentralen Blockchains-Betriebs im Allgemeinen.
Inwiefern unterscheidet sich Fhloston Paradise von anderen Blockchain-Spielen, die Sie kennen?Alle derartigen Spiele sind langfristig. Das Interesse an Spielen dieser Art wächst entsprechend der Größe des Preises, der wiederum mit der Zeit zunimmt.
Im Idealfall würde das Spiel überhaupt nicht enden. Wenn es endet, ist es traurig ...
Kürzlich wurde Fhloston Paradise 2 eingeführt . Planen Sie teilzunehmen?Ja, solange ich Zeit und Interesse habe, werde ich die gleichen Schritte unternehmen: Schwachstellenanalyse, mit mir selbst im Testnetz spielen, einen Bot mit Open Source erstellen usw.
Und schließlich erzählen Sie uns von Ihren Plänen als Entwickler.Ich bin daran interessiert, ungelöste Aufgaben zu lösen, und im Blockchain-Bereich gibt es viele davon. Dies ist eine echte Herausforderung. Und es wurde akzeptiert.