“Igre za novac izvan blockchaina moraju umrijeti”

“Igre za novac izvan blockchaina moraju umrijeti”

Dmitry Pichulin, poznat pod nadimkom "deemru", postao je pobjednik igre Flostonski raj, koji je razvio Tradisys na Waves blockchainu.

Za pobjedu u igra, igrač je morao napraviti posljednju okladu tijekom razdoblja od 60 blokova - prije nego što je drugi igrač napravio okladu, čime je brojač ponovno postavljen na nulu. Pobjednik je dobio sav novac koji su drugi igrači uložili.

Bot koji je napravio donio je pobjedu Dmitriju patrola. Dmitry je napravio samo osam oklada na jedan WAVES i na kraju je pobijedio 4700 TALASA (836300 XNUMX RUB). U intervjuu, Dmitry je govorio o svom botu i izgledima za igre na blockchainu.

Recite nam nešto o sebi. Što radiš? Kada ste se zainteresirali za blockchain tehnologiju?

Programer sam u području informacijske sigurnosti. Došao sam u blockchain uz hype 2017., razumio sam tehnologiju i ostao za tehnologiju.

Što je bio glavni motiv za sudjelovanje u igri?

Prije svega, tehnički interes. Htio sam shvatiti kako to funkcionira, pronaći ranjivosti, ne dopustiti da igra završi i "trolati" ostale igrače, naravno.

Jeste li već odlučili kako ćete potrošiti svoj dobitak? Kako ćete ga pohraniti ako ga odlučite još ne potrošiti?

Nisam mogao smisliti što da radim s dobitkom. Nisam to očekivao, tako da nemam planova. Za sada će ostati kako jest. Možda to pretoči u neki projekt na Wavesu.

Zašto ste odlučili sudjelovati u igri pomoću bota? Kako je nastala ideja za Patrollo? Možete li nam reći nešto više o njegovom razvoju?

Nije išlo s ranjivostima. Igru sam uzeo na testnoj mreži, igrao sam se sam sa sobom, isprobao sve opcije, ali sve se pokazalo “hardwired”, nije bilo ranjivosti u ugovoru. Postalo je jasno da se tim putem ne može pobijediti.

Kako ste tražili ranjivosti? Koje su bile vaše hipoteze? Možete li dati primjer koda?

Postojale su dvije hipoteze. Prvo, napad na vrstu podataka provjerava zapise transakcija podataka. Na primjer, očekivao sam da će loše kodiranje zaobići provjeru ponovne upotrebe ID-a transakcije. Drugi je integer overflow napad. Shvatio sam da postoji način da visinu postavim previsoko ili negativno i pokušam završiti u prošlosti.

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

Što ste učinili kada ste vidjeli da se vaša očekivanja o ranjivosti nisu ispunila?

Tradisys se u svom telegram chatu požalio da će igra biti vječna dok je na mreži sve tiho, ali u zbrci (s ažuriranjem čvorova ili neočekivanim forkovima) povećavaju se šanse za dobre botove. Tamo sam na chatu prihvatio izazov da napišem dobrog bota, što sam par dana kasnije i učinio. Napisao sam Patrollo kod u PHP-u, na temelju svog okvira WavesKit, u kojem pokušavam uhvatiti sve najbolje tehnike za rad s blockchainom.

Testirao sam ga na testnoj mreži, postavio kod na github, pokrenuo bota na glavnoj mreži i zaboravio na njega.

Moja konfiguracija Patrolla morala je riješiti dva problema: kladiti se što je rjeđe moguće i raditi što pouzdanije.

O prvom odlučuju izuzetno rizične oklade, po mogućnosti u zadnjem bloku. Na kraju sam bota ipak postavio na pretposljednji blok, ali uz dodatno kašnjenje od 29 sekundi. To je omogućilo samo osam oklada tijekom cijele igre.

Zašto baš 29 sekundi? Kako ste došli do ovog broja?

Postupno se pojavilo 29 sekundi. U početku nije bilo kašnjenja, ali primijetio sam da je na pretposljednjem bloku bilo slučajeva istodobnih oklada - odnosno, nije bilo smisla kladiti se. Zatim je došlo do kašnjenja - mislim da je bilo 17 sekundi, ali ni to nije pomoglo: još uvijek je bilo simultanih oklada. Tada sam odlučio više riskirati, ali sigurno ne imati simultane oklade. Zašto 17, 29 itd.? Samo ljubav prema prostim brojevima. 24, 25, 26, 27, 28, 30 - svi spojevi. A više od 30 sekundi bilo bi potpuno riskantno.

Kako je riješen problem pouzdanosti?

Pouzdanost se uglavnom rješavala mehanizmom za odabir radnog čvora i, u manjoj mjeri, provođenjem transakcije prijenosa za okladu unaprijed, tako da bi oklada u datumskoj transakciji već točno referencirala postojeću transakciju na blockchainu.

Tijekom svakog kruga ciklusa, svi čvorovi navedeni u konfiguraciji su anketirani za njihovu trenutnu visinu, čvor s najvećom trenutnom visinom je odabran i s njim se odvijala daljnja interakcija. Po mom razumijevanju, ovo je trebalo zaštititi od račvanja, nedostupnosti, predmemoriranja i mogućih grešaka na čvorovima. Postoji uvjerenje da je upravo taj jednostavan mehanizam doveo do pobjede.

Koje su, po vašem mišljenju, glavne karakteristike i prednosti blockchain igara? Koliko obećavaju javni blockchaini općenito, a posebno Waves blockchain za razvoj igara?

Glavne prednosti su poznata, fiksna i nepromjenjiva pravila igre te jednaki uvjeti za pristup igri s bilo kojeg mjesta u svijetu.

Igre za novac izvan lanca moraju umrijeti.

Waves ima bogatu tehničku funkcionalnost, ali postoje nijanse, kako svojstvene svakom blockchainu tako i specifične. Oba se još uvijek ne odražavaju dobro u postojećim razvojnim alatima.

Na primjer, ako ste pokušali odgovoriti na transakcije u stvarnom vremenu, a ne na udaljenosti od 5-10 potvrda, naučili biste o rijetkim fenomenima koji se pojavljuju: transakcije skaču iz bloka u blok, transakcije nedostaju u nekim blokovima i pojavljuju se u drugima . Sve ovo je kritično za brzinu i pouzdanost bilo koje aplikacije i mora se riješiti na generalan način, ali za sada svaki programer sam postiže razinu pouzdanosti koja mu je potrebna. S vremenom će se, naravno, sve to riješiti, ali za sada postoji određena, prilično visoka, barijera za ulazak i strah od specifičnosti rada istinski decentraliziranih blockchaina općenito.

Kako se igra FOMO razlikuje od ostalih blockchain igara koje poznajete? Koje su njegove prednosti i mane?

Ovo su duge igre. Interes za takve igre raste s visinom dobitaka, a iznos dobitaka raste s vremenom.

U idealnom slučaju igra nikada neće završiti. Kad utakmica završi tuga je...

Nedavno sam bio pokrenut igra Flostonski raj 2. Planirate li sudjelovati u tome?

Da, ako imam vremena i interesa, poduzet ću iste korake: analiza ranjivosti, igranje sa samim sobom na testnoj mreži, bot, open source itd.

Na kraju, recite nam svoje planove kao programera.

Zanima me rješavanje neriješenih problema, a ima mnogo neriješenih problema u temi blockchaina. Ovo je pravi izazov! I bio je primljen.

Izvor: www.habr.com

Dodajte komentar