"Spil for penge uden for blockchain skal dø"

"Spil for penge uden for blockchain skal dø"

Dmitry Pichulin, kendt under kaldenavnet "deemru", blev vinderen af ​​spillet Fhloston Paradise, udviklet af Tradisys på Waves blockchain.

At vinde ind spillet, skulle en spiller lave det allersidste væddemål i en periode på 60 blokke - før en anden spiller lavede et væddemål, og derved nulstillede tælleren. Vinderen modtog alle penge, der var satset af andre spillere.

Den bot, han skabte, bragte sejr til Dmitry Patrollo. Dmitry lavede kun otte væddemål på én WAVES og vandt til sidst 4700 Bølger (836300 RUB). I et interview talte Dmitry om sin bot og mulighederne for spil på blockchain.

Fortæl os lidt om dig selv. Hvad laver du? Hvornår blev du interesseret i blockchain-teknologi?

Jeg er udvikler inden for informationssikkerhed. Jeg kom til blockchain med hypen fra 2017, forstod teknologien og blev for teknologien.

Hvad var hovedmotivationen for at deltage i spillet?

Først og fremmest teknisk interesse. Jeg ville finde ud af, hvordan det fungerer, finde sårbarheder, ikke lade spillet ende, og selvfølgelig "trolle" de andre spillere.

Har du allerede besluttet, hvordan du vil bruge dine gevinster? Hvordan vil du opbevare det, hvis du beslutter dig for ikke at bruge det endnu?

Jeg kunne ikke finde ud af, hvad jeg skulle gøre med gevinsterne. Jeg havde ikke forventet det, så jeg har ingen planer. Indtil videre forbliver det som det er. Måske vil det flyde ind i et eller andet projekt på Waves.

Hvorfor besluttede du dig for at deltage i spillet ved hjælp af en bot? Hvordan opstod ideen til Patrollo? Kan du fortælle os mere om udviklingen?

Det lykkedes ikke med sårbarheder. Jeg hentede spillet på testnetværket, legede med mig selv, prøvede alle mulighederne, men alt viste sig at være "hardwired", der var ingen sårbarheder i kontrakten. Det blev klart, at denne måde ikke kunne vindes.

Hvordan ledte du efter sårbarheder? Hvad var dine hypoteser? Kan du give en eksempelkode?

Der var to hypoteser. For det første et angreb på datatypetjek i datatransaktionsposter. For eksempel forventede jeg, at dårlig kodning ville omgå genbrugskontrollen af ​​transaktions-id. Det andet er et heltalsoverløbsangreb. Jeg regnede med, at der var en måde at indstille højden for høj eller negativ og forsøge at ende i fortiden.

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

Hvad gjorde du, da du så, at dine forventninger til sårbarhed ikke blev opfyldt?

I sin telegramchat klagede Tradisys over, at selvom alt er stille på netværket, vil spillet være evigt, men i forvirring (med nodeopdateringer eller uventede gafler) øges chancerne for gode bots. Der, i chatten, tog jeg imod udfordringen om at skrive en god bot, hvilket jeg gjorde et par dage senere. Jeg skrev Patrollo-koden i PHP, baseret på mit framework WavesKit, hvor jeg forsøger at fange alle de bedste teknikker til at arbejde med blockchain.

Jeg testede det på testnetværket, postede koden på github, lancerede botten på hovednetværket og glemte det.

Min Patrollo-konfiguration skulle løse to problemer: placere væddemål så sjældent som muligt og arbejde så pålideligt som muligt.

Den første afgøres af ekstremt risikable væddemål, helst i den allersidste blok. Til sidst placerede jeg stadig botten på næstsidste blok, men med en yderligere forsinkelse på 29 sekunder. Dette tillod kun at foretage otte væddemål i løbet af hele spillet.

Hvorfor præcis 29 sekunder? Hvordan kom du frem til dette nummer?

29 sekunder dukkede gradvist op. Først var der ingen forsinkelse, men jeg lagde mærke til, at der på næstsidste blok var tilfælde af samtidige væddemål - det vil sige, at der ikke var nogen mening i at satse. Så var der en forsinkelse - jeg tror, ​​det var 17 sekunder, men det hjalp heller ikke: der var stadig væddemål samtidig. Så besluttede jeg at tage flere risici, men bestemt ikke at have samtidige væddemål. Hvorfor 17, 29 osv.? Bare en kærlighed til primtal. 24, 25, 26, 27, 28, 30 - alle forbindelser. Og mere end 30 sekunder ville være fuldstændig risikabelt.

Hvordan blev pålidelighedsproblemet løst?

Pålidelighed blev hovedsageligt adresseret af mekanismen til at vælge en fungerende node og i mindre grad ved at udføre en overførselstransaktion for væddemålet på forhånd, således at væddemålet i datotransaktionen allerede nøjagtigt ville referere til en eksisterende transaktion på blockchain.

Under hver runde af cyklussen blev alle noder specificeret i konfigurationen pollet for deres aktuelle højde, noden med den højeste aktuelle højde blev valgt, og yderligere interaktion fandt sted med den. Efter min forståelse skulle dette beskytte mod gafler, utilgængelighed, caching og mulige fejl på noderne. Der er tillid til, at det var denne simple mekanisme, der førte til sejr.

Hvad er efter din mening de vigtigste funktioner og fordele ved blockchain-spil? Hvor lovende er offentlige blockchains generelt og Waves blockchain i særdeleshed for spiludvikling?

De vigtigste fordele er de kendte, faste og uforanderlige spilleregler plus lige betingelser for adgang til spillet fra hvor som helst i verden.

Pengespil uden for kæden skal dø.

Waves har rig teknisk funktionalitet, men der er nuancer, både iboende i enhver blockchain og specifikke. Begge afspejles endnu ikke særlig godt i eksisterende udviklerværktøjer.

For eksempel, hvis du forsøgte at reagere på transaktioner i realtid og ikke i en afstand af 5-10 bekræftelser, ville du lære om sjældne, men forekommende fænomener: transaktioner, der hopper fra blok til blok, transaktioner, der mangler i nogle blokke og optræder i andre . Alt dette er afgørende for hastigheden og pålideligheden af ​​enhver applikation og skal løses på en generel måde, men indtil videre opnår hver udvikler det niveau af pålidelighed, han kræver på egen hånd. Over tid vil alt dette selvfølgelig blive løst, men for nu er der en vis, ret høj, adgangsbarriere og frygt for detaljerne i arbejdet med virkelig decentraliserede blockchains generelt.

Hvordan adskiller FOMO-spillet sig fra andre blockchain-spil, du kender? Hvad er dens fordele og ulemper?

Det er lange spil. Interessen for sådanne spil vokser med mængden af ​​gevinster, og mængden af ​​gevinster vokser over tid.

Ideelt set vil spillet aldrig ende. Når spillet slutter, er det trist...

For nylig var jeg lanceret spil Fhloston Paradise 2. Planlægger du at deltage i det?

Ja, hvis jeg har tid og interesse, vil jeg tage de samme trin: sårbarhedsanalyse, lege med mig selv på et testnetværk, bot, open source osv.

Fortæl os endelig om dine planer som udvikler.

Jeg er interesseret i at løse uløste problemer, og der er mange uløste problemer i blockchain-emnet. Dette er en rigtig udfordring! Og han blev accepteret.

Kilde: www.habr.com

Tilføj en kommentar