"Spill for penger utenfor blokkjeden må dø"

"Spill for penger utenfor blokkjeden må dø"

Dmitry Pichulin, kjent under kallenavnet "deemru", ble vinneren av spillet Fhloston Paradise, utviklet av Tradisys på Waves blockchain.

Å vinne inn spillet, måtte en spiller foreta den aller siste innsatsen i løpet av en periode på 60 blokker - før en annen spiller gjorde en innsats, og dermed tilbakestille telleren til null. Vinneren mottok alle pengene som ble satset av andre spillere.

Boten han opprettet brakte seier til Dmitry Patrollo. Dmitry satset bare åtte på én WAVES og vant til slutt 4700 Bølger (RUB 836300 XNUMX). I et intervju snakket Dmitry om boten sin og utsiktene for spill på blokkjeden.

Fortell oss litt om deg selv. Hva gjør du? Når ble du interessert i blockchain-teknologi?

Jeg er utvikler innen informasjonssikkerhet. Jeg kom til blockchain med hypen fra 2017, forsto teknologien og ble for teknologien.

Hva var hovedmotivasjonen for å delta i spillet?

Først av alt, teknisk interesse. Jeg ville finne ut hvordan det fungerer, finne sårbarheter, ikke la spillet ta slutt, og selvfølgelig "trolle" de andre spillerne.

Har du allerede bestemt deg for hvordan du skal bruke gevinstene dine? Hvordan vil du lagre den hvis du bestemmer deg for å ikke bruke den ennå?

Jeg kunne ikke finne ut hva jeg skulle gjøre med gevinstene. Jeg hadde ikke forventet det, så jeg har ingen planer. Foreløpig vil det forbli som det er. Kanskje vil det flyte inn i et eller annet prosjekt på Waves.

Hvorfor bestemte du deg for å delta i spillet ved å bruke en bot? Hvordan oppsto ideen til Patrollo? Kan du fortelle oss mer om utviklingen?

Det gikk ikke med sårbarheter. Jeg plukket opp spillet på testnettverket, spilte med meg selv, prøvde alle alternativene, men alt viste seg å være "hardwired", det var ingen sårbarheter i kontrakten. Det ble klart at denne måten ikke kunne vinnes.

Hvordan så du etter sårbarheter? Hva var hypotesene dine? Kan du gi en eksempelkode?

Det var to hypoteser. For det første, et angrep på datatypesjekker i datatransaksjonsposter. For eksempel forventet jeg at dårlig koding ville omgå gjenbrukskontrollen for transaksjons-ID. Det andre er et heltallsoverløpsangrep. Jeg fant ut at det var en måte å sette høyden for høy eller negativ på og prøve å havne i fortiden.

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

Hva gjorde du da du så at dine sårbarhetsforventninger ikke ble oppfylt?

I telegramchatten sin klaget Tradisys over at selv om alt er stille på nettverket, vil spillet være evig, men i forvirring (med nodeoppdateringer eller uventede gafler), øker sjansene for gode roboter. Der, i chatten, takket jeg ja til utfordringen om å skrive en god bot, noe jeg gjorde et par dager senere. Jeg skrev Patrollo-koden i PHP, basert på rammeverket mitt WavesKit, der jeg prøver å fange opp alle de beste teknikkene for å jobbe med blockchain.

Jeg testet det på testnettverket, la ut koden på github, lanserte boten på hovednettverket og glemte det.

Min Patrollo-konfigurasjon måtte løse to problemer: plasser spill så sjelden som mulig og arbeid så pålitelig som mulig.

Den første avgjøres av ekstremt risikable spill, helst i den aller siste blokken. Til slutt plasserte jeg fortsatt boten på den nest siste blokken, men med en ekstra forsinkelse på 29 sekunder. Dette tillot bare åtte innsatser i løpet av hele spillet.

Hvorfor akkurat 29 sekunder? Hvordan kom du frem til dette tallet?

29 sekunder dukket opp gradvis. Først var det ingen forsinkelse, men jeg la merke til at på den nest siste blokken var det tilfeller av samtidige spill – det vil si at det ikke var noen vits i å satse. Så ble det en forsinkelse - jeg tror det var 17 sekunder, men det hjalp heller ikke: det var fortsatt samtidige spill. Da bestemte jeg meg for å ta mer risiko, men absolutt ikke å ha samtidige spill. Hvorfor 17, 29 osv.? Bare en forkjærlighet for primtall. 24, 25, 26, 27, 28, 30 - alle forbindelser. Og mer enn 30 sekunder ville være helt risikabelt.

Hvordan ble pålitelighetsproblemet løst?

Pålitelighet ble adressert hovedsakelig av mekanismen for å velge en fungerende node og, i mindre grad, ved å gjennomføre en overføringstransaksjon for innsatsen på forhånd, slik at innsatsen i datotransaksjonen allerede nøyaktig vil referere til en eksisterende transaksjon på blokkjeden.

I løpet av hver runde av syklusen ble alle noder spesifisert i konfigurasjonen pollet for deres nåværende høyde, noden med høyest strømhøyde ble valgt, og ytterligere interaksjon fant sted med den. Etter min forståelse var dette ment å beskytte mot gafler, utilgjengelighet, caching og mulige feil på nodene. Det er tillit til at det var denne enkle mekanismen som førte til seier.

Hva er etter din mening hovedfunksjonene og fordelene med blockchain-spill? Hvor lovende er offentlige blokkjeder generelt og Waves-blokkjeden spesielt for spillutvikling?

Hovedfordelene er de kjente, faste og uforanderlige spillereglene, pluss like betingelser for tilgang til spillet fra hvor som helst i verden.

Pengespill utenfor kjeden må dø.

Waves har rik teknisk funksjonalitet, men det er nyanser, både iboende i enhver blokkjede og spesifikke. Begge er ennå ikke særlig godt reflektert i eksisterende utviklerverktøy.

For eksempel, hvis du prøvde å svare på transaksjoner i sanntid, og ikke i en avstand på 5-10 bekreftelser, ville du lære om sjeldne, men forekommende fenomener: transaksjoner som hopper fra blokk til blokk, transaksjoner som mangler i noen blokker og vises i andre. . Alt dette er avgjørende for hastigheten og påliteligheten til enhver applikasjon og må løses på en generell måte, men foreløpig oppnår hver utvikler det pålitelighetsnivået han krever på egen hånd. Over tid vil selvfølgelig alt dette bli løst, men foreløpig er det en viss, ganske høy, adgangsbarriere og frykt for detaljene i arbeidet med virkelig desentraliserte blokkjeder generelt.

Hvordan er FOMO-spillet forskjellig fra andre blokkjedespill du kjenner? Hva er dens fordeler og ulemper?

Dette er lange spill. Interessen for slike spill vokser med mengden gevinster, og gevinstmengden vokser over tid.

Ideelt sett vil spillet aldri ta slutt. Når spillet slutter er det trist...

Nylig var jeg lanserte spill Fhloston Paradise 2. Har du tenkt å være med på det?

Ja, hvis jeg har tid og interesse, vil jeg ta de samme trinnene: sårbarhetsanalyse, leke med meg selv på et testnettverk, bot, åpen kildekode, etc.

Til slutt, fortell oss om planene dine som utvikler.

Jeg er interessert i å løse uløste problemer, og det er mange uløste problemer i blokkjede-emnet. Dette er en skikkelig utfordring! Og han ble akseptert.

Kilde: www.habr.com

Legg til en kommentar