"Los juegos de dinero fuera de la cadena de bloques deben morir"



Dmitry Pichulin, conocido por su apodo "deemru", se convirtió en el ganador del juego Fhloston Paradise desarrollado por Tradisys en la cadena de bloques Waves.

Para ganar el juego , el jugador tuvo que hacer la apuesta más reciente durante un período de 60 bloques, antes de que otro jugador hiciera la apuesta, restableciendo así el contador. El ganador obtuvo toda la apuesta de dinero de otros jugadores.

La victoria de Dmitry fue traída por el bot Patrollo creado por él. Dmitry hizo solo ocho apuestas en una WAVES y como resultado ganó 4700 WAVES (836300 rublos). En una entrevista, Dmitry habló sobre su bot y las perspectivas de los juegos blockchain.

Cuéntanos un poco sobre ti. Que estas haciendo ¿Cuándo te interesaste en la tecnología blockchain?

Soy un desarrollador en el campo de la seguridad de la información. Llegó a la cadena de bloques con una "exageración" de 2017, descubrió la tecnología y se quedó por el bien de la tecnología.

¿Cuál se convirtió en la principal motivación para participar en el juego?

En primer lugar, un interés técnico. Quería descubrir cómo funciona, encontrar vulnerabilidades, evitar que el juego termine y, por supuesto, "troll" a los otros jugadores.

¿Has decidido cómo gastar tus ganancias? ¿En qué lo guardarás si decides no gastarlo todavía?

No sabía qué hacer con la victoria. No lo esperaba, así que no hay planes. Si bien mentirá como es. Tal vez fluirá en algún proyecto en Waves.

¿Por qué decidiste participar en el juego usando un bot? ¿Cómo surgió la idea de Patrollo? ¿Podría contarnos más sobre su desarrollo?

Con vulnerabilidades no funcionó. "Recogí" el juego en la red de prueba, jugué conmigo mismo, probé todas las opciones, pero todo resultó ser "difícil", no hay vulnerabilidades en el contrato. Quedó claro que no se podía ganar de esta manera.

¿Cómo buscaste vulnerabilidades? ¿Cuáles fueron tus hipótesis? ¿Podría dar un código de muestra?

Había dos hipótesis. Primero, un ataque a los controles de tipo de datos en los registros de transacciones de datos. Por ejemplo, esperaba que una codificación deficiente eludiría la verificación para reutilizar ID de transacción. El segundo es un ataque al desbordamiento de enteros. Pensé que había una manera de establecer alturas demasiado altas o negativas e intentar estar en el pasado.

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

¿Qué hizo cuando vio que no se confirmaron las expectativas de vulnerabilidades?

En su chat de telegramas, Tradisys se lamentó de que si bien todo está tranquilo en la red, el juego será eterno, pero en la confusión (con actualizaciones de nodos o bifurcaciones imprevistas) aumentan las posibilidades de buenos bots. En la misma sala de chat, acepté el desafío de escribir un buen bot, lo que hice en un par de días. Escribí el código Patrollo en PHP, basado en mi marco WavesKit , en el que trato de arreglar todas las mejores técnicas para trabajar con blockchain.

Verifiqué el trabajo en la red de prueba, publiqué el código en github, lancé el bot en la red principal y me olvidé.

Se suponía que mi configuración de Patrollo resolvería dos problemas: realizar apuestas lo menos posible y trabajar de la manera más confiable posible.

La primera se decide por apuestas extremadamente arriesgadas, preferiblemente en el último bloque. Como resultado, todavía puse el bot en el penúltimo bloque, pero con un retraso adicional de 29 segundos. Esto nos permitió hacer solo ocho apuestas durante todo el tiempo del juego.

¿Por qué exactamente 29 segundos? ¿Cómo llegaste a este número?

29 segundos aparecieron gradualmente. Al principio no hubo demora, pero noté que había casos de apuestas simultáneas en el penúltimo bloque, es decir, no tenía sentido apostar. Luego hubo un retraso, al parecer, a los 17 segundos, pero tampoco ayudó: todavía había apuestas simultáneas. Entonces decidí arriesgarme más, pero ciertamente no hacer apuestas simultáneas. ¿Por qué 17, 29, etc.? Solo un amor por los primos. 24, 25, 26, 27, 28, 30 son todos compuestos. Y más de 30 segundos sería completamente arriesgado.

¿Cómo se resolvió el problema de confiabilidad?

La fiabilidad se determinó principalmente por el mecanismo para seleccionar el nodo de trabajo y, en menor medida, al realizar una transacción de transferencia para la apuesta por adelantado, de modo que la apuesta en la transacción de datos ya se refería con precisión a la transacción existente en la cadena de bloques.

Durante cada círculo del ciclo, todos los nodos especificados en la configuración fueron interrogados por su altura actual, se seleccionó el nodo con la mayor altura actual y se produjo una mayor interacción con él. En mi opinión, se suponía que esto protegía contra las horquillas, la inaccesibilidad, el almacenamiento en caché y los posibles errores en los nodos. Hay confianza en que fue este simple mecanismo el que condujo a la victoria.

¿Cuáles, en su opinión, son las principales características y ventajas de los juegos blockchain? ¿Qué tan prometedoras son las blockchains públicas en general y las blockchains de Waves en particular para el desarrollo de juegos?

Las principales ventajas son las reglas del juego bien conocidas, fijas e inmutables, además de las mismas condiciones para acceder al juego desde cualquier parte del mundo.

Los juegos por dinero fuera de la cadena de bloques deben morir.

Waves tiene una rica funcionalidad técnica, pero hay matices, tanto inherentes a cualquier blockchain como específicos. Tanto esos como otros no se reflejan muy bien en las herramientas de desarrollador existentes.

Por ejemplo, si trató de responder a las transacciones en tiempo real, y no a una distancia de 5-10 confirmaciones, habría aprendido sobre fenómenos raros pero que ocurren: saltar transacciones de un bloque a otro, faltar transacciones en ciertos bloques y aparecer en otros Todo esto es crítico para la velocidad y confiabilidad de cualquier aplicación y debe decidirse de manera general, pero hasta ahora cada desarrollador alcanza el nivel de confiabilidad que necesita por sí mismo. Con el tiempo, por supuesto, todo esto se resolverá, pero hasta ahora existe un cierto umbral de entrada, bastante alto, y el miedo a los detalles del trabajo de las cadenas de bloques verdaderamente descentralizadas en general.

¿En qué se diferencia el juego FOMO de otros juegos de blockchain que conoces? ¿Cuáles son sus ventajas y desventajas?


Estos son juegos a largo plazo. El interés en tales juegos crece con la magnitud de la ganancia, y la magnitud de la ganancia crece con el tiempo.

Ideal si el juego nunca termina. Cuando termina el juego, es triste ...

Fhloston Paradise 2 ha sido lanzado recientemente. ¿Planeas participar?

Sí, si hay tiempo e interés, seguiré los mismos pasos: análisis de vulnerabilidades, jugar conmigo mismo en una red de prueba, bot, código abierto, etc.

En conclusión, cuéntenos sobre sus planes como desarrollador.

Estoy interesado en resolver problemas no resueltos, y el tema blockchain tiene muchos problemas no resueltos. Este es un verdadero desafío! Y es aceptado.

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


All Articles