Les jeux non Blockchain impliquant de l'argent doivent mourir



Dmitry Pichulin, connu sous le pseudo "deemru", a remporté le jeu Fhloston Paradise , développé par Tradisys sur la blockchain Waves.

Le vainqueur de Fhloston Paradise était censé être le joueur payant la toute dernière mise au cours d'une période de 60 blocs, avant que tout autre joueur puisse payer sa mise et remettre le compteur à zéro. Le gagnant collecterait tous les enjeux payés par les autres joueurs.

La recette gagnante de Dmitry était le bot Patrollo , qu'il a créé. Le bot n'a payé que huit enjeux 1 WAVES pour Dmitry et lui a finalement remporté 4 700 WAVES (13 100 $). Dans cette interview, Dmitry discute de son bot et des perspectives de jeux de blockchain.

Pourriez-vous nous parler de vous? Tu fais quoi Quand vous êtes-vous intéressé à la technologie blockchain?

Je suis développeur dans le domaine de la sécurité de l'information. Je suis venu dans l'espace blockchain avec le battage médiatique de 2017, j'ai maîtrisé la technologie et je suis resté pour la technologie.

Quelle a été votre principale motivation pour jouer au jeu?

C'était surtout un intérêt pour la partie technique. Je voulais comprendre comment cela fonctionne, découvrir des vulnérabilités, arrêter la fin du jeu et, bien sûr, troller les autres joueurs.

Pourquoi avez-vous choisi de participer avec un bot? Comment vous est venue l'idée de Patrollo? Pourriez-vous fournir plus de détails sur son développement?

Cela ne fonctionnait pas avec les vulnérabilités. J'ai déployé le jeu sur le filet de test, l'ai joué avec moi-même, essayé différentes options, mais tout s'est avéré solide. Il n'y a aucune vulnérabilité dans le contrat. Donc, il est devenu clair que je n'allais pas gagner de cette façon.

Comment avez-vous recherché les vulnérabilités? Quelles hypothèses aviez-vous?

J'avais deux hypothèses. Tout d'abord, une attaque contre les vérifications des types de données dans les entrées DataTransaction. Par exemple, j'ai supposé qu'il serait possible de contourner la réutilisation des ID de transaction en raison d'un mauvais codage. La deuxième hypothèse était une attaque contre le débordement d'entier. J'espérais qu'il y aurait un moyen de définir une hauteur de bloc trop grande ou négative et d'essayer de revenir au passé.

$ tx = $ wk-> txBroadcast ($ wk-> txSign ($ wk-> txData (['heightToGetMoney' => -9223372036854775807])));

Qu'avez-vous fait lorsque vous avez vu que vos attentes concernant les vulnérabilités ne se sont pas réalisées?

Tradisys a déclaré sur sa chaîne Telegram que lorsque tout est calme sur le réseau, le jeu durera éternellement, mais dans un état d'incertitude, causé par des mises à jour de nœuds ou des fourchettes inattendues, les bons robots auront plus de chances. Sur place, j'ai accepté le défi d'écrire un bon bot, ce que j'ai fait en quelques jours. J'ai écrit le code de Patrollo en langage PHP, basé sur mon framework WavesKit , dans lequel j'essaie d'enregistrer toutes les meilleures techniques pour travailler avec la blockchain. Je l'ai exécuté sur le réseau de test, téléchargé le code sur GitHub, libéré le bot sur le réseau principal et oublié.

Ma configuration de Patrollo était supposée implémenter deux tâches: payer les enjeux aussi rarement que possible et fonctionner avec une fiabilité maximale.

Le premier a été réalisé grâce au paiement de mises extrêmement risquées - de préférence dans le tout dernier bloc. Finalement, j'ai réglé le bot pour l'avant-dernier bloc, mais avec un retard de 29 secondes. Cela ne lui a permis de payer que huit mises tout au long du match.

Pourquoi exactement 29 secondes? Comment êtes-vous arrivé à ce chiffre?

J'y suis arrivé progressivement. Tout d'abord, il n'y a pas eu de retard et j'ai remarqué qu'au cours de l'avant-dernier bloc, des mises simultanées ont été payées. Donc, payer des enjeux n'avait pas de sens. Ensuite, j'ai ajouté un délai - je pense que c'était 17 secondes, mais cela n'a pas aidé: les mises simultanées ont continué d'être payées. J'ai donc décidé de prendre de plus grands risques pour exclure les enjeux simultanés. Pourquoi 17, 29 etc.? J'aime juste les nombres premiers. 24, 25, 26, 27, 28, 30 sont tous des nombres composites. Et dépasser 30 secondes aurait été trop risqué.

Comment avez-vous résolu le problème de fiabilité?

Dans une large mesure, la fiabilité a été obtenue grâce au mécanisme de choix du nœud de travail et, dans une moindre mesure, en envoyant à l'avance une TransferTransaction pour une participation, de sorte que la participation dans la DataTransaction était définitivement liée à une transaction existante sur le blockchain.

Au cours de chaque tour du cycle, la hauteur actuelle de tous les nœuds définis dans la configuration a été mesurée et le nœud avec la plus grande hauteur a été choisi pour une interaction ultérieure. À mon avis, cela a fonctionné comme protection contre les fourches, l'indisponibilité, l'encaissement et les erreurs de nœud possibles. Je suis convaincu que ce mécanisme simple a finalement mené à la victoire.

Quels sont les principaux avantages des jeux blockchain? Dans quelle mesure la blockchain publique est-elle prometteuse et, en particulier, Waves, pour le développement de jeux?

Les principaux avantages sont des règles du jeu connues, enregistrées et immuables, ainsi que des conditions égales d'accès au jeu depuis n'importe quel endroit du monde.

Les jeux non blockchain impliquant de l'argent doivent mourir.

Waves a une fonctionnalité de portée technique, mais il y a quelques nuances - à la fois, typiques de toute blockchain et spécifiques. Jusqu'à présent, l'un ou l'autre n'a pas été suffisamment reflété dans les instruments existants du développeur.

Par exemple, si vous tentiez de réagir à une transaction en temps réel plutôt qu'à une distance de cinq à dix confirmations, vous découvririez des cas rares, mais toujours existants, de sauts de transactions d'un bloc à l'autre, de disparitions et de réapparitions soudaines dans les blocs de fin . Tout cela est essentiel pour la vitesse et la fiabilité de toutes les applications et doit être résolu de manière générale jusqu'à ce que les développeurs atteignent eux-mêmes le niveau de fiabilité nécessaire. Certes, en temps voulu, tout cela sera résolu, mais à ce stade, il existe une barrière à l'entrée assez élevée, et une crainte des spécificités du fonctionnement des chaînes de blocs véritablement décentralisées en général.

En quoi Fhloston Paradise est-il différent des autres jeux de blockchain que vous connaissez?

Tous les jeux comme ça sont à long terme. L'intérêt pour des jeux de ce type croît proportionnellement à la taille du prix, qui, à son tour, augmente avec le temps.

Idéalement, le jeu ne se terminerait pas du tout. Quand c'est fini, c'est triste ...

Récemment, Fhloston Paradise 2 a été lancé . Envisagez-vous de participer?

Oui, tant que j'ai le temps et l'intérêt, je vais suivre les mêmes étapes: analyse des vulnérabilités, jouer avec moi-même sur le net test, créer un bot avec l'open source etc.

Et, enfin, parlez-nous de vos projets en tant que développeur.

Je suis intéressé à résoudre des tâches non résolues, et dans l'espace blockchain, il y en a beaucoup. C'est un vrai défi. Et cela a été accepté.

Source: https://habr.com/ru/post/fr445246/


All Articles