"Os xogos por diñeiro fóra da cadea de bloques deben morrer"

"Os xogos por diñeiro fóra da cadea de bloques deben morrer"

Dmitry Pichulin, coñecido co alcume de "deemru", converteuse no gañador do xogo Paraíso de Fhloston, desenvolvido por Tradisys na cadea de bloques Waves.

Para gañar o xogo, un xogador tiña que facer a última aposta durante un período de 60 bloques, antes de que outro xogador fixera unha aposta, restablecendo así o contador a cero. O gañador recibiu todo o diñeiro apostado por outros xogadores.

O bot que creou trouxo a vitoria a Dmitry Patrulla. Dmitry fixo só oito apostas nunha ONDA e finalmente gañou 4700 ONDAS (836300 rublos). Nunha entrevista, Dmitry falou sobre o seu bot e as perspectivas dos xogos na cadea de bloques.

Fálanos un pouco de ti. Que fas? Cando se interesou pola tecnoloxía blockchain?

Son un programador no campo da seguridade da información. Cheguei ao blockchain co bombo de 2017, entendín a tecnoloxía e quedei pola tecnoloxía.

Cal foi a principal motivación para participar no xogo?

En primeiro lugar, interese técnico. Quería descubrir como funciona, atopar vulnerabilidades, non deixar que o xogo terminase e "trollar" aos outros xogadores, por suposto.

Xa decidiches como gastarás as túas ganancias? Como o almacenarás se aínda decides non gastalo?

Non sabía que facer coas ganancias. Non o esperaba, así que non teño plans. Polo de agora permanecerá como está. Quizais desemboque nalgún proxecto sobre Waves.

Por que decidiches participar no xogo usando un bot? Como xurdiu a idea de Patrollo? Poderías contarnos máis sobre o seu desenvolvemento?

Non funcionou coas vulnerabilidades. Collín o xogo na rede de proba, xoguei comigo mesmo, probei todas as opcións, pero todo resultou "conectado", non había vulnerabilidades no contrato. Quedou claro que deste xeito non se podía gañar.

Como buscaches vulnerabilidades? Cales foron as túas hipóteses? Poderías proporcionar un código de exemplo?

Había dúas hipóteses. En primeiro lugar, un ataque ao tipo de datos comproba os rexistros de transaccións de datos. Por exemplo, esperaba que unha codificación incorrecta ignorase a comprobación de reutilización de ID de transacción. O segundo é un ataque de desbordamento de enteiros. Pensei que había unha forma de establecer a altura demasiado alta ou negativa e tentar acabar no pasado.

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

Que fixo cando viu que non se cumpriu as súas expectativas de vulnerabilidade?

No seu chat de telegramas, Tradisys queixouse de que mentres todo está tranquilo na rede, o xogo será eterno, pero na confusión (con actualizacións de nodos ou bifurcacións inesperadas), aumentan as posibilidades de bos bots. Alí, no chat, aceptei o reto de escribir un bo bot, que fixen un par de días despois. Escribín o código Patrollo en PHP, baseado no meu framework WavesKit, no que intento captar todas as mellores técnicas para traballar con blockchain.

Probeino na rede de proba, publiquei o código en github, lancei o bot na rede principal e esquecín.

A miña configuración de Patrollo tivo que resolver dous problemas: facer apostas o menos posible e traballar o máis fiable posible.

A primeira decídese por apostas extremadamente arriscadas, preferentemente no último bloque. Ao final, aínda coloquei o bot no penúltimo bloque, pero cun atraso adicional de 29 segundos. Isto permitiu facer só oito apostas durante todo o xogo.

Por que exactamente 29 segundos? Como chegaches a este número?

29 segundos apareceron gradualmente. Ao principio non houbo atraso, pero notei que no penúltimo bloque había casos de apostas simultáneas, é dicir, non tiña sentido apostar. Despois houbo un atraso: creo que foron 17 segundos, pero tampouco axudou: aínda había apostas simultáneas. Entón decidín asumir máis riscos, pero desde logo non facer apostas simultáneas. Por que 17, 29, etc.? Só un amor polos números primos. 24, 25, 26, 27, 28, 30 - todos os compostos. E máis de 30 segundos sería completamente arriscado.

Como se resolveu o problema de fiabilidade?

A fiabilidade abordouse principalmente polo mecanismo para seleccionar un nodo de traballo e, en menor medida, mediante a realización dunha transacción de transferencia para a aposta con antelación, de xeito que a aposta na transacción de data xa faría referencia con precisión a unha transacción existente na cadea de bloques.

Durante cada rolda do ciclo, todos os nodos especificados na configuración foron consultados pola súa altura actual, seleccionouse o nodo coa altura actual máis alta e tivo lugar unha interacción adicional con el. Ao meu entender, suponse que isto protexe contra os forks, a indisponibilidade, a caché e os posibles erros nos nodos. Hai confianza en que foi este sinxelo mecanismo o que levou á vitoria.

Cales son, na túa opinión, as principais características e vantaxes dos xogos blockchain? Que prometedoras son as cadeas de bloques públicas en xeral e as de Waves en particular para o desenvolvemento de xogos?

As principais vantaxes son as regras do xogo coñecidas, fixas e inalterables, ademais da igualdade de condicións para acceder ao xogo desde calquera lugar do mundo.

Os xogos de diñeiro fóra da cadea deben morrer.

Waves ten unha rica funcionalidade técnica, pero hai matices, tanto inherentes a calquera blockchain como específicos. Ambos aínda non están moi ben reflectidos nas ferramentas de desenvolvemento existentes.

Por exemplo, se tentas responder ás transaccións en tempo real, e non a unha distancia de 5-10 confirmacións, aprenderías sobre fenómenos raros pero que ocorren: transaccións que pasan de bloque en bloque, transaccións que faltan nalgúns bloques e aparecen noutros. . Todo isto é fundamental para a rapidez e fiabilidade de calquera aplicación e debe ser resolto de forma xeral, pero polo de agora cada desenvolvedor consegue por si mesmo o nivel de fiabilidade que precisa. Co paso do tempo, por suposto, todo isto resolverase, pero de momento hai unha certa barreira de entrada, bastante alta, e o temor aos detalles específicos do traballo das cadeas de bloques realmente descentralizadas en xeral.

En que se diferencia o xogo FOMO doutros xogos blockchain que coñeces? Cales son as súas vantaxes e inconvenientes?

Son xogos longos. O interese por este tipo de xogos crece coa cantidade de ganancias, e a cantidade de ganancias medra co paso do tempo.

Idealmente, o xogo nunca rematará. Cando remata o xogo é triste...

Hai pouco estiven lanzado xogo Fhloston Paradise 2. Tes pensado participar nel?

Si, se teño tempo e interese, darei os mesmos pasos: análise de vulnerabilidades, xogar comigo mesmo nunha rede de proba, bot, código aberto, etc.

Finalmente, cóntanos os teus plans como programador.

Estou interesado en resolver problemas sen resolver e hai moitos problemas sen resolver no tema da cadea de bloques. Este é un verdadeiro reto! E foi aceptado.

Fonte: www.habr.com

Engadir un comentario