“Igre za novac izvan blockchaina moraju umrijeti”

“Igre za novac izvan blockchaina moraju umrijeti”

Dmitrij Pičulin, poznat pod nadimkom "deemru", postao je pobjednik igre Fhloston Paradise, koju je razvio Tradisys na Waves blockchainu.

Za pobjedu u igra, igrač je morao da napravi poslednju opkladu tokom perioda od 60 blokova - pre nego što je drugi igrač napravio opkladu, čime je brojač ponovo postavio na nulu. Pobjednik je dobio sav novac koji su drugi igrači uložili.

Bot koji je stvorio donio je pobjedu Dmitriju Patrollo. Dmitry je napravio samo osam opklada na jedan TALAS i na kraju je pobijedio 4700 TALASA (836300 RUB). U intervjuu, Dmitrij je govorio o svom botu i izgledima za igre na blockchainu.

Reci nam nešto o sebi. Šta radiš? Kada ste se zainteresovali za blockchain tehnologiju?

Ja sam programer u oblasti informacione bezbednosti. Došao sam na blockchain s hypeom 2017. godine, razumio sam tehnologiju i ostao za tehnologijom.

Šta je bio glavni motiv za učešće u igri?

Prije svega, tehnički interes. Želeo sam da shvatim kako to funkcioniše, da pronađem ranjivosti, da ne dozvolim da se igra završi, i da „trolujem“ ostale igrače, naravno.

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

Nisam mogao da shvatim šta da radim sa dobicima. Nisam to očekivao, tako da nemam planove. Za sada će ostati kako jeste. Možda će se to uliti u neki projekat na Wavesu.

Zašto ste odlučili da učestvujete 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 sa ranjivostima. Pokupio sam igru ​​na probnoj mreži, igrao se sam sa sobom, isprobao sve opcije, ali se pokazalo da je sve “uvezano”, nije bilo ranjivosti u ugovoru. Postalo je jasno da se na ovaj način 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 tip podataka provjerava u zapisima transakcija podataka. Na primjer, očekivao sam da će loše kodiranje zaobići provjeru ponovne upotrebe ID-a transakcije. Drugi je napad preko prekoračenja cijelog broja. Shvatio sam da postoji način da postavim visinu previsoku ili negativnu i pokušam završiti u prošlosti.

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

Šta ste uradili kada ste videli da vaša očekivanja u pogledu ranjivosti nisu ispunjena?

U svom telegram chatu, Tradisys se požalio da će, iako je sve tiho na mreži, igra biti vječna, ali u konfuziji (sa ažuriranjima čvorova ili neočekivanim račvama) povećavaju se šanse za dobre botove. Tamo sam u chatu prihvatio izazov da napišem dobrog bota, što sam i uradio par dana kasnije. Napisao sam Patrollo kod u PHP-u, na osnovu mog okvira WavesKit, u kojem pokušavam uhvatiti sve najbolje tehnike za rad sa blockchainom.

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

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

O prvom odlučuju izuzetno rizične opklade, po mogućnosti u poslednjem bloku. Na kraju sam bota ipak postavio na pretposljednji blok, ali sa dodatnim zakašnjenjem od 29 sekundi. Ovo je omogućilo da se napravi samo osam opklada tokom cijele utakmice.

Zašto tačno 29 sekundi? Kako ste došli do ovog broja?

29 sekundi se pojavilo postepeno. Isprva nije bilo kašnjenja, ali sam primijetio da je na pretposljednjem bloku bilo slučajeva simultanih opklada - to jest, nema smisla kladiti se. Zatim je došlo do kašnjenja - mislim da je bilo 17 sekundi, ali ni to nije pomoglo: i dalje je bilo simultanih opklada. Tada sam odlučio da više rizikujem, ali svakako ne da imam simultane opklade. Zašto 17, 29 itd.? Samo ljubav prema prostim brojevima. 24, 25, 26, 27, 28, 30 - svi spojevi. A više od 30 sekundi bi bilo potpuno rizično.

Kako je riješen problem pouzdanosti?

Pouzdanost se uglavnom bavila mehanizmom za odabir radnog čvora i, u manjoj mjeri, provođenjem transakcije prijenosa za opkladu unaprijed, tako da bi opklada u datumskoj transakciji već tačno upućivala na postojeću transakciju na blockchainu.

Tokom svake runde ciklusa, svi čvorovi navedeni u konfiguraciji su ispitivani za njihovu trenutnu visinu, odabran je čvor sa najvećom trenutnom visinom i s njim se odvijala daljnja interakcija. Po mom razumijevanju, ovo je trebalo zaštititi od forksova, nedostupnosti, keširanja i mogućih grešaka na čvorovima. Postoji uvjerenje da je upravo ovaj jednostavan mehanizam doveo do pobjede.

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

Glavne prednosti su poznata, fiksna i nepromjenjiva pravila igre, plus jednaki uslovi za pristup igri s bilo kojeg mjesta na svijetu.

Igre s novcem van 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 programskim alatima.

Na primjer, ako pokušate odgovoriti na transakcije u realnom vremenu, a ne na udaljenosti od 5-10 potvrda, naučili biste o rijetkim fenomenima koji se javljaju: transakcije skaču iz bloka u blok, transakcije nedostaju u nekim blokovima i pojavljuju se u drugima . Sve je to kritično za brzinu i pouzdanost bilo koje aplikacije i mora se riješiti na opći način, ali za sada svaki programer sam postiže nivo pouzdanosti koji mu je potreban. 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.

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

Ovo su duge igre. Interes za ovakve igre raste sa visinom dobitaka, a iznos dobitaka vremenom raste.

U idealnom slučaju, igra se nikada neće završiti. Kad se utakmica završi tužno je...

Nedavno sam bio lansiran Igra Fhloston Paradise 2. Planirate li učestvovati u tome?

Da, ako budem imao vremena i interesa, poduzet ću iste korake: analizu ranjivosti, igranje sam sa sobom na test mreži, bot, open source, itd.

Na kraju, recite nam o svojim planovima kao programer.

Zanima me rješavanje neriješenih problema, a u blockchain temi ima mnogo neriješenih problema. Ovo je pravi izazov! I bio je prihvaćen.

izvor: www.habr.com

Dodajte komentar