Dmitry Pichulin, conhecido por seu apelido "deemru", se tornou o vencedor do jogo Fhloston Paradise , desenvolvido pela Tradisys na blockchain Waves.
Para ganhar o jogo , o jogador teve que fazer a aposta mais recente durante um período de 60 blocos - antes que a aposta fosse feita por outro jogador, reiniciando o contador. O vencedor recebeu todo o dinheiro apostado por outros jogadores.
A vitória em Dmitry foi trazida pelo bot Patrollo criado por ele. Dmitry fez apenas oito apostas em uma WAVES e, como resultado, ganhou 4700 WAVES (836300 rublos). Em uma entrevista, Dmitry falou sobre seu bot e as perspectivas de jogos blockchain. Conte um pouco sobre você. O que esta fazendo Quando você se interessou pela tecnologia blockchain?Sou desenvolvedor na área de segurança da informação. Ele entrou no blockchain com um "hype" de 2017, descobriu a tecnologia e ficou por causa da tecnologia.
Qual foi a principal motivação para participar do jogo?Primeiro de tudo, um interesse técnico. Eu queria descobrir como ele funciona, encontrar vulnerabilidades, impedir que o jogo terminasse e, é claro, "trollar" os outros jogadores.
Você decidiu como gastar seus ganhos? Em que você o manterá se decidir não gastá-lo ainda?Não descobri o que fazer com a vitória. Eu não esperava, então não há planos. Enquanto ele permanecerá como está. Talvez ele flua para algum projeto no Waves.
Por que você decidiu participar do jogo usando um bot? Como surgiu a idéia de Patrollo? Você poderia nos contar mais sobre o seu desenvolvimento?Com vulnerabilidades não funcionou. Eu "peguei" o jogo na rede de teste, joguei comigo mesmo, tentei todas as opções, mas tudo acabou sendo "difícil", não há vulnerabilidades no contrato. Ficou claro que não se podia vencer dessa maneira.
Como você procurou por vulnerabilidades? Quais foram suas hipóteses? Você poderia dar algum código de exemplo?Havia duas hipóteses. Primeiro, um ataque ao tipo de dados verifica os registros de transações de dados. Por exemplo, eu esperava que uma codificação ruim contornasse a verificação de reutilização de IDs de transação. O segundo é um ataque ao estouro inteiro. Imaginei que havia uma maneira de definir alturas muito altas ou negativas e tentar estar no passado.
$ tx = $ wk-> txBroadcast ($ wk-> txSign ($ wk-> txData (['heightToGetMoney' => -9223372036854775807])));
O que você fez quando viu que as expectativas de vulnerabilidades não eram confirmadas?Em seu bate-papo por telegrama, Tradisys lamentou que, enquanto tudo estiver quieto na rede, o jogo será eterno, mas na confusão (com atualizações de nós ou garfos imprevistos) as chances de bons bots aumentam. Na mesma sala de bate-papo, aceitei o desafio de escrever um bom bot, o que fiz em alguns dias. Eu escrevi o código Patrollo em PHP, com base no meu framework
WavesKit , no qual tento consertar todas as melhores técnicas para trabalhar com blockchain.
Eu verifiquei o trabalho na rede de teste, postei o código no github, lancei o bot na rede principal e esqueci.
Minha configuração do Patrollo deveria resolver dois problemas: fazer apostas o mínimo possível e trabalhar o mais confiável possível.
O primeiro é decidido por apostas extremamente arriscadas, de preferência no último bloco. Como resultado, ainda coloco o bot no penúltimo bloco, mas com um atraso adicional de 29 segundos. Isso nos permitiu fazer apenas oito apostas para o jogo inteiro.
Por que exatamente 29 segundos? Como você chegou a esse número?29 segundos apareceram gradualmente. No início, não houve atraso, mas notei que havia casos de apostas simultâneas no penúltimo bloco - ou seja, não havia sentido em apostar. Houve um atraso - ao que parece, aos 17 segundos, mas também não ajudou: ainda havia apostas simultâneas. Então decidi correr riscos mais difíceis, mas certamente não fazer apostas simultâneas. Por que 17, 29, etc.? Apenas um amor de primos. 24, 25, 26, 27, 28, 30 são todos compostos. E mais de 30 segundos seria completamente arriscado.
Como foi resolvido o problema de confiabilidade?A confiabilidade foi determinada principalmente pelo mecanismo de seleção de um nó de trabalho e, em menor grau, pela realização antecipada de uma transação de transferência para a aposta, para que a aposta na transação de dados já se referisse com precisão à transação existente na blockchain.
Durante cada círculo do ciclo, todos os nós especificados na configuração foram pesquisados em relação à sua altura atual, o nó com a maior altura atual foi selecionado e houve uma interação adicional com ele. No meu entendimento, isso deveria proteger contra garfos, inacessibilidade, cache e possíveis erros nos nós. Há confiança de que foi esse mecanismo simples que levou à vitória.
Na sua opinião, quais são as principais características e vantagens dos jogos blockchain? Quão promissoras são as blockchains públicas em geral e as Waves em particular para o desenvolvimento de jogos?As principais vantagens são as regras bem conhecidas, fixas e imutáveis do jogo, além de condições iguais para o acesso ao jogo de qualquer lugar do mundo.
Jogos por dinheiro fora do blockchain devem morrer.
O Waves possui uma rica funcionalidade técnica, mas existem nuances, ambas inerentes a qualquer blockchain e específicas. Esses e outros não são muito bem refletidos nas ferramentas de desenvolvedor existentes.
Por exemplo, se você tentasse responder às transações em tempo real, e não a uma distância de 5 a 10 confirmações, teria aprendido sobre fenômenos raros, mas que ocorrem: pulando transações de bloco em bloco, perdendo transações em determinados blocos e aparecendo em outros. Tudo isso é crítico para a velocidade e a confiabilidade de qualquer aplicativo e deve ser decidido de uma maneira geral, mas até agora cada desenvolvedor atinge o nível de confiabilidade de que precisa por conta própria. Com o tempo, é claro, tudo isso será resolvido, mas até agora existe um certo limiar de entrada, bastante alto, e o medo das especificidades do trabalho de blockchains verdadeiramente descentralizados em geral.
Qual a diferença entre o jogo FOMO e os outros jogos blockchain que você conhece? Quais são as suas vantagens e desvantagens?
Estes são jogos de longo prazo. O interesse em tais jogos cresce com a magnitude do ganho, e a magnitude do ganho cresce com o tempo.
Ideal se o jogo nunca terminar. Quando o jogo termina, é triste ...
O Fhloston Paradise 2 foi lançado recentemente. Você planeja participar?Sim, se houver tempo e interesse, darei os mesmos passos: análise de vulnerabilidades, jogando comigo em uma rede de teste, bot, código aberto, etc.
Em conclusão, conte-nos sobre seus planos como desenvolvedor.Estou interessado em resolver problemas não resolvidos, e o tópico blockchain tem muitos problemas não resolvidos. Este é um verdadeiro desafio! E ele é aceito.