“O jogo por dinheiro fora do blockchain deve morrer”

“O jogo por dinheiro fora do blockchain deve morrer”

Dmitry Pichulin, conhecido pelo apelido de “deemru”, foi o vencedor do jogo Paraíso Fhloston, desenvolvido pela Tradisys no blockchain Waves.

Para ganhar o jogo, um jogador tinha que fazer a última aposta durante um período de 60 blocos - antes que outro jogador fizesse uma aposta, zerando assim o contador. O vencedor recebeu todo o dinheiro apostado pelos outros jogadores.

O bot que ele criou trouxe a vitória para Dmitry Patrulha. Dmitry fez apenas oito apostas em um WAVES e acabou ganhando ONDAS 4700 (836300 rublos). Em entrevista, Dmitry falou sobre seu bot e as perspectivas de jogos no blockchain.

Conte-nos um pouco sobre você. O que você faz? Quando você se interessou pela tecnologia blockchain?

Sou desenvolvedor na área de segurança da informação. Cheguei ao blockchain com o hype de 2017, entendi a tecnologia e fiquei pela tecnologia.

Qual foi a principal motivação para participar do jogo?

Em primeiro lugar, interesse técnico. Queria descobrir como funciona, encontrar vulnerabilidades, não deixar o jogo acabar e “trollar” os outros jogadores, claro.

Você já decidiu como vai gastar seus ganhos? Como você o armazenará se decidir não gastá-lo ainda?

Não consegui descobrir o que fazer com os ganhos. Eu não esperava isso, então não tenho planos. Por enquanto permanecerá como está. Talvez isso flua para algum projeto da Waves.

Por que você decidiu participar do jogo usando um bot? Como surgiu a ideia do Patrollo? Você poderia nos contar mais sobre seu desenvolvimento?

Não funcionou com vulnerabilidades. Peguei o jogo na rede de teste, joguei comigo mesmo, tentei todas as opções, mas acabou tudo “conectado”, não havia vulnerabilidades no contrato. Ficou claro que desta forma não poderia ser vencido.

Como você procurou vulnerabilidades? Quais foram suas hipóteses? Você poderia fornecer um código de exemplo?

Havia duas hipóteses. Em primeiro lugar, um ataque às verificações de tipo de dados nos registros de transações de dados. Por exemplo, eu esperava que uma codificação incorreta ignorasse a verificação de reutilização do ID da transação. O segundo é um ataque de estouro de número inteiro. Achei que havia uma maneira de definir a altura muito alta ou negativa e tentar acabar no passado.

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

O que você fez quando viu que suas expectativas de vulnerabilidade não foram atendidas?

Em seu chat no Telegram, Tradisys reclamou que enquanto tudo estiver tranquilo na rede, o jogo será eterno, mas na confusão (com atualizações de nós ou forks inesperados), as chances de bons bots aumentam. Lá, no chat, aceitei o desafio de escrever um bom bot, o que fiz alguns dias depois. Escrevi o código do Patrollo em PHP, baseado no meu framework Kit Ondas, no qual tento capturar todas as melhores técnicas para trabalhar com blockchain.

Testei na rede de teste, postei o código no github, lancei o bot na rede principal e esqueci.

Minha configuração do Patrollo teve que resolver dois problemas: fazer apostas o mais raramente possível e funcionar da forma mais confiável possível.

A primeira é decidida por apostas extremamente arriscadas, de preferência no último bloco. No final, ainda coloquei o bot no penúltimo bloco, mas com um atraso adicional de 29 segundos. Isso permitiu que apenas oito apostas fossem feitas durante todo o jogo.

Por que exatamente 29 segundos? Como você chegou a esse número?

29 segundos apareceram gradualmente. A princípio não houve atraso, mas notei que no penúltimo bloco havia casos de apostas simultâneas – ou seja, não adiantava apostar. Depois houve um atraso - acho que foram 17 segundos, mas também não ajudou: ainda havia apostas simultâneas. Aí resolvi arriscar mais, mas certamente não fazer apostas simultâneas. Por que 17, 29, etc.? Apenas um amor por números primos. 24, 25, 26, 27, 28, 30 - todos compostos. E mais de 30 segundos seria completamente arriscado.

Como o problema de confiabilidade foi resolvido?

A confiabilidade foi abordada principalmente pelo mecanismo de seleção de um nó de trabalho e, em menor grau, pela condução antecipada de uma transação de transferência para a aposta, de modo que a aposta na transação de data já referenciasse com precisão uma transação existente no blockchain.

Durante cada rodada do ciclo, todos os nós especificados na configuração foram pesquisados ​​quanto à sua altura atual, o nó com a altura atual mais alta foi selecionado e ocorreu maior interação com ele. No meu entendimento, isso deveria proteger contra bifurcações, indisponibilidade, cache e possíveis erros nos nós. Há confiança de que foi este mecanismo simples que levou à vitória.

Quais são, na sua opinião, as principais características e vantagens dos jogos blockchain? Quão promissores são os blockchains públicos em geral e o blockchain Waves em particular para o desenvolvimento de jogos?

As principais vantagens são as regras do jogo conhecidas, fixas e imutáveis, além de condições iguais de acesso ao jogo de qualquer lugar do mundo.

Os jogos a dinheiro fora da rede devem morrer.

Waves possui funcionalidades técnicas ricas, mas existem nuances, tanto inerentes a qualquer blockchain quanto específicas. Ambos ainda não estã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, você aprenderia sobre fenômenos raros, mas que ocorrem: transações saltando de bloco em bloco, transações faltando em alguns blocos e aparecendo em outros . Tudo isso é fundamental para a velocidade e confiabilidade de qualquer aplicação e deve ser resolvido de forma geral, mas por enquanto cada desenvolvedor atinge sozinho o nível de confiabilidade que exige. Com o tempo, é claro, tudo isso será resolvido, mas por enquanto existe uma certa barreira, bastante alta, à entrada e ao medo das especificidades do trabalho de blockchains verdadeiramente descentralizados em geral.

Qual a diferença entre o jogo FOMO e outros jogos blockchain que você conhece? Quais são as vantagens e desvantagens?

São jogos longos. O interesse nesses jogos aumenta com a quantidade de ganhos, e a quantidade de ganhos aumenta com o tempo.

Idealmente, o jogo nunca terminará. Quando o jogo termina é triste...

Recentemente eu estava lançado jogo Fhloston Paraíso 2. Você está planejando participar disso?

Sim, se eu tiver tempo e interesse, seguirei os mesmos passos: análise de vulnerabilidades, brincar comigo mesmo em rede de teste, bot, código aberto, etc.

Por fim, conte-nos sobre seus planos como desenvolvedor.

Estou interessado em resolver problemas não resolvidos e há muitos problemas não resolvidos no tópico blockchain. Este é um verdadeiro desafio! E ele foi aceito.

Fonte: habr.com

Adicionar um comentário