“Los juegos por dinero fuera de blockchain deben morir”

“Los juegos por dinero fuera de blockchain deben morir”

Dmitry Pichulin, conocido con el sobrenombre de “deemru”, fue el ganador del juego Paraíso de Fhloston, desarrollado por Tradisys en la cadena de bloques Waves.

para ganar en el juego, un jugador tenía que hacer la última apuesta durante un período de 60 bloques, antes de que otro jugador hiciera una apuesta, poniendo así el contador a cero. El ganador recibió todo el dinero apostado por los demás jugadores.

El bot que creó le dio la victoria a Dmitry patrulla. Dmitry hizo solo ocho apuestas en un WAVES y finalmente ganó ONDAS 4700 (836300 rublos). En una entrevista, Dmitry habló sobre su bot y las perspectivas de los juegos en blockchain.

Cuéntanos un poco sobre ti. ¿A qué te dedicas? ¿Cuándo te interesaste por la tecnología blockchain?

Soy desarrollador en el campo de la seguridad de la información. Llegué a blockchain con el entusiasmo de 2017, entendí la tecnología y me quedé con la tecnología.

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

En primer lugar, el interés técnico. Quería descubrir cómo funciona, encontrar vulnerabilidades, no dejar que el juego termine y, por supuesto, "trollear" a los demás jugadores.

¿Ya has decidido cómo gastarás tus ganancias? ¿Cómo lo guardarás si decides no gastarlo todavía?

No sabía qué hacer con las ganancias. No me lo esperaba, así que no tengo planes. Por ahora seguirá como está. Tal vez fluya hacia algún proyecto sobre Waves.

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

No funcionó con las vulnerabilidades. Tomé el juego en la red de prueba, jugué conmigo mismo, probé todas las opciones, pero todo resultó estar "cableado", no había vulnerabilidades en el contrato. Quedó claro que de esta manera no se podía ganar.

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

Había dos hipótesis. En primer lugar, un ataque a las comprobaciones de tipos de datos en los registros de transacciones de datos. Por ejemplo, esperaba que una codificación incorrecta pasara por alto la verificación de reutilización del ID de transacción. El segundo es un ataque de desbordamiento de enteros. Pensé que había una manera de establecer la altura demasiado alta o negativa e intentar terminar en el pasado.

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

¿Qué hizo cuando vio que sus expectativas de vulnerabilidad no se cumplían?

En su chat de Telegram, Tradisys se quejó de que mientras todo esté tranquilo en la red, el juego será eterno, pero en la confusión (con actualizaciones de nodos o bifurcaciones inesperadas), aumentan las posibilidades de que aparezcan buenos bots. Allí, en el chat, acepté el reto de escribir un buen bot, lo cual hice un par de días después. Escribí el código de Patrollo en PHP, basado en mi marco OlasKit, en el que intento capturar las mejores técnicas para trabajar con blockchain.

Lo probé en la red de prueba, publiqué el código en github, lancé el bot en la red principal y lo olvidé.

Mi configuración de Patrollo tenía que resolver dos problemas: realizar apuestas lo menos posible y funcionar de la manera más confiable posible.

La primera se decide mediante apuestas extremadamente arriesgadas, preferiblemente en el último bloque. Al final, todavía coloqué el bot en el penúltimo bloque, pero con un retraso adicional de 29 segundos. Esto permitió que sólo se hicieran ocho apuestas durante todo el 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 en el penúltimo bloque había casos de apuestas simultáneas, es decir, no tenía sentido apostar. Luego hubo un retraso, creo que fueron 17 segundos, pero tampoco ayudó: todavía había apuestas simultáneas. Luego decidí correr más riesgos, pero ciertamente no hacer apuestas simultáneas. ¿Por qué 17, 29, etc.? Simplemente amor por los números primos. 24, 25, 26, 27, 28, 30 - todos los compuestos. Y más de 30 segundos sería completamente arriesgado.

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

La confiabilidad se abordó principalmente mediante el mecanismo para seleccionar un nodo de trabajo y, en menor medida, realizando una transacción de transferencia para la apuesta por adelantado, de modo que la apuesta en la fecha de transacción ya hiciera referencia con precisión a una transacción existente en la cadena de bloques.

Durante cada ronda del ciclo, todos los nodos especificados en la configuración fueron sondeados para determinar su altura actual, se seleccionó el nodo con la altura actual más alta y se llevó a cabo una mayor interacción con él. Según tengo entendido, se suponía que esto protegería contra bifurcaciones, indisponibilidad, almacenamiento en caché y posibles errores en los nodos. Hay confianza en que fue este sencillo mecanismo el que condujo a la victoria.

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

Las principales ventajas son las reglas del juego conocidas, fijas e inmutables, además de la igualdad de condiciones de acceso al juego desde cualquier parte del mundo.

Los juegos de dinero fuera de la cadena deben morir.

Waves tiene una rica funcionalidad técnica, pero hay matices, tanto inherentes a cualquier blockchain como específicos. Ninguno de ellos aún está muy bien reflejado en las herramientas de desarrollo existentes.

Por ejemplo, si intentara responder a las transacciones en tiempo real, y no a una distancia de 5 a 10 confirmaciones, aprendería sobre fenómenos raros pero que ocurren: transacciones que saltan de un bloque a otro, transacciones que faltan en algunos bloques y aparecen en otros. . Todo esto es crítico para la velocidad y confiabilidad de cualquier aplicación y debe resolverse de manera general, pero de momento cada desarrollador consigue por sí solo el nivel de confiabilidad que requiere. Con el tiempo, por supuesto, todo esto se resolverá, pero por ahora existe una cierta barrera de entrada, bastante alta, y el miedo a las características específicas del trabajo de las cadenas de bloques verdaderamente descentralizadas en general.

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

Estos son juegos largos. El interés en este tipo de juegos crece con la cantidad de ganancias y la cantidad de ganancias crece con el tiempo.

Lo ideal es que el juego nunca termine. Cuando el juego termina es triste...

Recientemente estuve lanzado juego Fhloston Paraíso 2. ¿Estás pensando en participar en él?

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

Finalmente, cuéntenos sobre sus planes como desarrollador.

Estoy interesado en resolver problemas no resueltos y hay muchos problemas sin resolver en el tema blockchain. ¡Este es un verdadero desafío! Y fue aceptado.

Fuente: habr.com

Añadir un comentario