Dmitry Pichulin, conocido bajo el apodo "deemru", ganó el juego Fhloston Paradise , desarrollado por Tradisys en la cadena de bloques Waves.
Se suponía que el ganador de Fhloston Paradise era el jugador que pagaba la última apuesta durante un período de 60 bloques, antes de que cualquier otro jugador pudiera pagar su apuesta y restablecer el contador a cero. El ganador recogería todas las apuestas pagadas por otros jugadores.
La receta ganadora de Dmitry fue el bot Patrollo , que él creó. El bot pagó solo ocho apuestas de 1 WAVES por Dmitry y finalmente le ganó 4,700 WAVES ($ 13,100). En esta entrevista, Dmitry discute su bot y las perspectivas de los juegos blockchain.¿Podrías contarnos sobre ti? Que haces ¿Cuándo te interesaste en la tecnología blockchain?Soy desarrollador en el área de seguridad de la información. Llegué al espacio blockchain con la publicidad de 2017, dominé la tecnología y me quedé por el bien de la tecnología.
¿Cuál fue tu principal motivación para jugar?Fue principalmente interés en la parte tecnológica. Quería descubrir cómo funciona, descubrir vulnerabilidades, detener el final del juego y, por supuesto, engañar a otros jugadores.
¿Por qué elegiste participar con un bot? ¿Cómo llegaste a la idea de Patrollo? ¿Podría proporcionar más detalles sobre cómo desarrollarlo?No funcionó con vulnerabilidades. Implementé el juego en la red de prueba, jugué conmigo mismo, probé varias opciones, pero todo resultó ser sólido como una roca. No hay vulnerabilidades en el contrato. Entonces, quedó claro que no iba a ganar de esa manera.
¿Cómo buscaste vulnerabilidades? ¿Qué hipótesis tuviste?Tenía dos hipótesis. Primero, un ataque a las verificaciones de los tipos de datos en las entradas de DataTransaction. Por ejemplo, supuse que sería posible omitir la reutilización de ID de transacción debido a una codificación deficiente. La segunda hipótesis fue un ataque al desbordamiento de enteros. Esperaba que hubiera una manera de establecer una altura de bloque demasiado grande o negativa e intentar llegar al pasado.
$ tx = $ wk-> txBroadcast ($ wk-> txSign ($ wk-> txData (['heightToGetMoney' => -9223372036854775807])));
¿Qué hizo cuando vio que sus expectativas con respecto a las vulnerabilidades no se hicieron realidad?Tradisys dijo en su canal de Telegram que cuando todo esté tranquilo en la red, el juego durará para siempre, pero en un estado de incertidumbre, causado por actualizaciones de nodos o bifurcaciones inesperadas, los buenos bots tendrán mayores posibilidades. En el acto, acepté el desafío de escribir un buen bot, lo que hice en unos días. Escribí el código de Patrollo en el lenguaje PHP, basado en mi framework
WavesKit , en el que trato de grabar todas las mejores técnicas para trabajar con blockchain. Lo ejecuté en la red de prueba, cargué el código en GitHub, lancé el bot a la red principal y lo olvidé.
Se suponía que mi configuración de Patrollo implementaría dos tareas: pagar las apuestas lo menos posible y operar con la máxima fiabilidad.
El primero se logró gracias al pago de apuestas extremadamente riesgosas, preferiblemente en el último bloque. Finalmente, configuré el bot para el segundo al último bloque, pero con un retraso de 29 segundos. Eso le permitió pagar solo ocho apuestas a lo largo del juego.
¿Por qué exactamente 29 segundos? ¿Cómo llegaste a esta cifra?Llegué a eso gradualmente. Primero, no hubo demora y noté que durante el penúltimo bloque, se pagaron apuestas simultáneas. Entonces, pagar las apuestas no tenía sentido. Luego agregué un retraso, creo que fueron 17 segundos, pero no sirvió de nada: se continuaron pagando apuestas simultáneas. Así que decidí tomar riesgos mayores para descartar apuestas simultáneas. ¿Por qué 17, 29 etc.? Simplemente me gustan los números primos. 24, 25, 26, 27, 28, 30 son todos números compuestos. Y pasar más de 30 segundos hubiera sido demasiado arriesgado.
¿Cómo resolvió el problema de confiabilidad?En gran medida, la confiabilidad se logró gracias al mecanismo de elegir el nodo de trabajo y, en menor grado, enviando una TransferTransaction para una participación por adelantado, de modo que la participación en la DataTransaction estaba definitivamente vinculada a una transacción existente en el blockchain
Durante cada vuelta del ciclo, se midió la altura actual de todos los nodos establecidos en la configuración, y se eligió el nodo con la altura más grande para una mayor interacción. En mi opinión, eso funcionó como protección contra horquillas, indisponibilidad, cobro y posibles errores de nodo. Estoy seguro de que este mecanismo simple eventualmente condujo a la victoria.
¿Cuáles son las principales ventajas de los juegos blockchain? ¿Qué tan prometedoras son las blockchain públicas y, específicamente, Waves para el desarrollo de juegos?Las principales ventajas son las reglas del juego conocidas, registradas e inmutables, así como la igualdad de condiciones para acceder al juego desde cualquier lugar del mundo.
Los juegos que no son de blockchain que involucran dinero deben morir.
Waves tiene una funcionalidad de alcance tecnológico, pero hay algunos matices, ambos, típicos de cualquier blockchain y específicos. Hasta ahora, tampoco se ha reflejado suficientemente en los instrumentos existentes del desarrollador.
Por ejemplo, si intentara reaccionar a la transacción en tiempo real en lugar de a una distancia de cinco a diez confirmaciones, descubriría casos raros, pero aún existentes, de transacciones que saltan de un bloque a otro, desapariciones y reapariciones repentinas en bloques finales . Todo esto es crítico para la velocidad y la confiabilidad de todas las aplicaciones y debe resolverse de manera general hasta que los desarrolladores alcancen el nivel de confiabilidad necesario por sí mismos. Ciertamente, a su debido tiempo, todo eso se resolverá, pero en este punto, hay una barrera de entrada que es bastante alta, y un temor a los detalles de la operación de cadenas de bloques verdaderamente descentralizadas en general.
¿En qué se diferencia Fhloston Paradise de otros juegos de blockchain que conoces?Todos los juegos como ese son a largo plazo. El interés en juegos de ese tipo crece proporcionalmente con el tamaño del premio, que, a su vez, aumenta a medida que transcurre el tiempo.
Idealmente, el juego no terminaría en absoluto. Cuando termina, es triste ...
Recientemente, se lanzó Fhloston Paradise 2 . ¿Planeas participar?Sí, siempre que tenga tiempo e interés, seguiré los mismos pasos: análisis de vulnerabilidades, jugar conmigo mismo en la red de prueba, crear un bot con código abierto, etc.
Y, finalmente, cuéntenos sobre sus planes como desarrollador.Estoy interesado en resolver tareas no resueltas, y en el espacio blockchain, hay muchas de esas. Este es un verdadero desafío. Y ha sido aceptado.