„Hry za peniaze mimo blockchainu musia zomrieť“

„Hry za peniaze mimo blockchainu musia zomrieť“

Víťazom hry sa stal Dmitrij Pichulin, známy pod prezývkou „deemru“. Fhlostonský raj, vyvinutý spoločnosťou Tradisys na blockchaine Waves.

Ak chcete vyhrať hru, hráč musel urobiť poslednú stávku počas obdobia 60 blokov - predtým, ako vsadil iný hráč, čím sa počítadlo vynulovalo. Víťaz získal všetky peniaze, ktoré vsadili ostatní hráči.

Robot, ktorý vytvoril, priniesol víťazstvo Dmitrijovi Patrolo. Dmitry urobil iba osem stávok na jednu WAVES a nakoniec vyhral 4700 VLN (836300 XNUMX RUB). V rozhovore Dmitry hovoril o svojom robotovi a vyhliadkach na hry na blockchaine.

Povedz nám niečo o sebe. Čo robíš? Kedy ste sa začali zaujímať o technológiu blockchain?

Som vývojár v oblasti informačnej bezpečnosti. K blockchainu som prišiel s humbukom roku 2017, pochopil som technológiu a zostal som pri nej.

Čo bolo hlavnou motiváciou zúčastniť sa hry?

V prvom rade technický záujem. Chcel som zistiť, ako to funguje, nájsť zraniteľné miesta, nenechať hru skončiť a samozrejme „trollovať“ ostatných hráčov.

Už ste sa rozhodli, ako miniete svoju výhru? Ako ho budete skladovať, ak sa ho rozhodnete ešte neminúť?

Nevedel som prísť na to, čo robiť s výhrou. Nečakal som to, takže nemám žiadne plány. Zatiaľ to zostane tak, ako je. Možno to prejde do nejakého projektu na Waves.

Prečo ste sa rozhodli zúčastniť sa hry pomocou robota? Ako vznikol nápad na Patrollo? Mohli by ste nám priblížiť jeho vývoj?

So zraniteľnosťami to nevyšlo. Zobral som hru na testovacej sieti, hral som sám so sebou, vyskúšal som všetky možnosti, ale všetko sa ukázalo ako „napevno pripojené“, v zmluve neboli žiadne zraniteľné miesta. Bolo jasné, že takto sa vyhrať nedá.

Ako ste hľadali zraniteľné miesta? Aké boli vaše hypotézy? Mohli by ste poskytnúť príklad kódu?

Boli dve hypotézy. Po prvé, útok na dátový typ kontroluje záznamy dátových transakcií. Očakával som napríklad, že zlé kódovanie obíde kontrolu opätovného použitia ID transakcie. Druhým je útok pretečenia celého čísla. Usúdil som, že existuje spôsob, ako nastaviť výšku príliš vysoko alebo záporne a pokúsiť sa skončiť v minulosti.

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

Čo ste urobili, keď ste videli, že vaše očakávania týkajúce sa zraniteľnosti neboli splnené?

Tradisys sa vo svojom telegramovom chate sťažoval, že zatiaľ čo na sieti je všetko ticho, hra bude večná, no v zmätku (s aktualizáciami uzlov alebo neočakávanými forkami) sa zvyšuje šanca na dobrých botov. Tam som na chate prijal výzvu napísať dobrého bota, čo sa mi podarilo o pár dní neskôr. Napísal som kód Patrollo v PHP na základe môjho frameworku WavesKit, v ktorej sa snažím zachytiť všetky najlepšie techniky práce s blockchainom.

Otestoval som to v testovacej sieti, poslal kód na github, spustil bota v hlavnej sieti a zabudol som na to.

Moja konfigurácia Parollo musela vyriešiť dva problémy: podávať stávky čo najmenej a fungovať čo najspoľahlivejšie.

O prvom rozhodujú mimoriadne riskantné stávky, najlepšie v úplne poslednom bloku. Nakoniec som aj tak umiestnil bota na predposledný blok, no s dodatočným oneskorením 29 sekúnd. To umožnilo uskutočniť len osem stávok počas celej hry.

Prečo práve 29 sekúnd? Ako ste prišli k tomuto číslu?

Postupne sa objavilo 29 sekúnd. Najprv nebolo žiadne zdržanie, ale všimol som si, že na predposlednom bloku boli prípady simultánnych stávok - to znamená, že stávkovanie nemalo zmysel. Potom došlo k oneskoreniu - myslím, že to bolo 17 sekúnd, ale ani to nepomohlo: stále existovali súčasné stávky. Potom som sa rozhodol viac riskovať, ale určite nie simultánne stávky. Prečo 17, 29 atď.? Len láska k prvočíslam. 24, 25, 26, 27, 28, 30 - všetky zlúčeniny. A viac ako 30 sekúnd by bolo úplne riskantné.

Ako sa vyriešil problém so spoľahlivosťou?

Spoľahlivosť bola riešená najmä mechanizmom výberu pracovného uzla a v menšej miere aj vykonaním prevodnej transakcie pre stávku vopred, aby stávka v dátumovej transakcii už presne odkazovala na existujúcu transakciu na blockchaine.

Počas každého kola cyklu boli všetky uzly špecifikované v konfigurácii dotazované na ich aktuálnu výšku, bol vybraný uzol s najvyššou aktuálnou výškou a prebiehala s ním ďalšia interakcia. V mojom chápaní to malo chrániť pred forkmi, nedostupnosťou, cachovaním a možnými chybami na uzloch. Existuje presvedčenie, že to bol tento jednoduchý mechanizmus, ktorý viedol k víťazstvu.

Aké sú podľa vás hlavné črty a výhody blockchainových hier? Ako sľubné sú verejné blockchainy vo všeobecnosti a Waves blockchain konkrétne pre vývoj hier?

Hlavnými výhodami sú známe, pevné a nemenné pravidlá hry plus rovnaké podmienky pre prístup k hre odkiaľkoľvek na svete.

Hry o peniaze mimo reťazca musia zomrieť.

Waves má bohaté technické funkcie, ale existujú nuansy, ktoré sú vlastné každému blockchainu a špecifické. Obidve sa zatiaľ veľmi dobre neodrážajú v existujúcich vývojárskych nástrojoch.

Ak by ste sa napríklad pokúsili reagovať na transakcie v reálnom čase a nie na vzdialenosť 5 až 10 potvrdení, dozvedeli by ste sa o zriedkavých, ale vyskytujúcich sa javoch: transakcie preskakujúce z bloku na blok, transakcie chýbajúce v niektorých blokoch a objavujúce sa v iných. . Toto všetko je rozhodujúce pre rýchlosť a spoľahlivosť akejkoľvek aplikácie a musí sa to vyriešiť všeobecným spôsobom, ale zatiaľ každý vývojár dosahuje úroveň spoľahlivosti, ktorú vyžaduje, sám. Časom sa to všetko samozrejme vyrieši, no zatiaľ je tu určitá, dosť vysoká, bariéra vstupu a strach zo špecifík práce skutočne decentralizovaných blockchainov všeobecne.

Ako sa hra FOMO líši od ostatných blockchainových hier, ktoré poznáte? Aké sú jeho výhody a nevýhody?

Sú to dlhé hry. Záujem o takéto hry rastie s výškou výhier a výška výhier časom rastie.

V ideálnom prípade hra nikdy neskončí. Keď hra skončí, je to smutné...

Nedávno som bol spustený hra Fhlostonský raj 2. Plánujete sa jej zúčastniť?

Áno, ak budem mať čas a záujem, urobím rovnaké kroky: analýza zraniteľnosti, hranie sa so sebou na testovacej sieti, bot, open source atď.

Nakoniec nám povedzte o svojich plánoch ako vývojár.

Zaujímam sa o riešenie nevyriešených problémov a v téme blockchainu je veľa nevyriešených problémov. Toto je skutočná výzva! A bol prijatý.

Zdroj: hab.com

Pridať komentár