"Rahamängud väljaspool plokiahelat peavad surema"

"Rahamängud väljaspool plokiahelat peavad surema"

Mängu võitjaks tuli Dmitri Pichulin, keda tuntakse hüüdnime “deemru” all Fhlostoni paradiis, mille on välja töötanud Tradisys on the Waves plokiahelas.

Et võita mäng, pidi mängija 60 bloki pikkuse perioodi jooksul tegema viimase panuse – enne kui teine ​​mängija panuse tegi, nullides loenduri. Võitja sai kogu teiste mängijate panustatud raha.

Tema loodud bot tõi võidu Dmitrile Patrullo. Dmitri tegi ühele LAINEle vaid kaheksa panust ja lõpuks võitis 4700 LAINET (836300 XNUMX RUB). Ühes intervjuus rääkis Dmitri oma robotist ja mängude väljavaadetest plokiahelas.

Räägi meile natuke endast. Mida sa teed? Millal hakkasite plokiahela tehnoloogia vastu huvi tundma?

Olen infoturbe valdkonna arendaja. Tulin plokiahela juurde 2017. aasta hype’iga, sain tehnoloogiast aru ja jäin tehnoloogia juurde.

Mis oli mängus osalemise peamine motivatsioon?

Esiteks tehniline huvi. Tahtsin välja mõelda, kuidas see töötab, leida turvaauke, mitte lasta mängul lõppeda ja loomulikult teisi mängijaid "trollida".

Kas olete juba otsustanud, kuidas oma võidud kulutate? Kuidas te seda salvestate, kui otsustate seda veel mitte kulutada?

Ma ei saanud aru, mida võitudega peale hakata. Ma ei oodanud seda, nii et mul pole plaane. Praegu jääb see nii nagu on. Võib-olla voolab see mõnesse Waves'i projekti.

Miks otsustasite mängus robotit kasutades osaleda? Kuidas Patrollo idee tekkis? Kas saaksite selle arengust lähemalt rääkida?

See ei õnnestunud haavatavustega. Võtsin mängu testvõrgust üles, mängisin endaga, proovisin kõiki võimalusi, kuid kõik osutus "juhtmega ühendatud", lepingus polnud haavatavusi. Sai selgeks, et niimoodi võita ei saa.

Kuidas otsisite haavatavusi? Millised olid teie hüpoteesid? Kas saaksite anda näidiskoodi?

Oli kaks hüpoteesi. Esiteks rünnak andmetehingukirjete andmetüüpide kontrollidele. Näiteks eeldasin, et halb kodeerimine läheb tehingu ID korduskasutuse kontrollist mööda. Teine on täisarvude ülevoolurünnak. Arvasin, et on võimalik seada kõrgus liiga kõrgeks või negatiivseks ja proovida jõuda minevikku.

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

Mida tegite, kui nägite, et teie ootused haavatavuse kohta ei olnud täidetud?

Tradisys kurtis oma telegrammivestluses, et kuigi võrgus on kõik vaikne, jääb mäng igaveseks, kuid segaduses (sõlmede uuenduste või ootamatute kahvlitega) suureneb heade robotite tõenäosus. Seal vestluses võtsin vastu väljakutse kirjutada hea bot, mida paar päeva hiljem ka tegin. Kirjutasin Patrollo koodi PHP-s oma raamistiku põhjal WavesKit, milles püüan tabada kõiki parimaid plokiahelaga töötamise tehnikaid.

Testisin seda testvõrgus, postitasin koodi githubisse, käivitasin boti põhivõrgus ja unustasin selle.

Minu Patrollo konfiguratsioon pidi lahendama kaks probleemi: teha panuseid nii harva kui võimalik ja töötada võimalikult usaldusväärselt.

Esimese otsustavad äärmiselt riskantsed panused, eelistatavalt kõige viimases blokis. Lõpuks asetasin boti ikkagi eelviimasele plokile, kuid 29 sekundilise lisaviivitusega. See võimaldas kogu mängu jooksul teha vaid kaheksa panust.

Miks just 29 sekundit? Kuidas te selle numbrini jõudsite?

29 sekundit ilmus järk-järgult. Alguses viivitust ei olnud, kuid märkasin, et eelviimasel blokil oli samaaegsete panuste juhtumeid - see tähendab, et panustada polnud mõtet. Siis tekkis viivitus - arvan, et see oli 17 sekundit, kuid ka see ei aidanud: samaaegseid panuseid tehti ikka veel. Siis otsustasin võtta rohkem riske, kuid kindlasti mitte teha samaaegseid panuseid. Miks 17, 29 jne? Lihtsalt armastus algarvude vastu. 24, 25, 26, 27, 28, 30 - kõik ühendid. Ja üle 30 sekundi oleks täiesti riskantne.

Kuidas töökindlusprobleem lahendati?

Usaldusväärsust käsitleti peamiselt töötava sõlme valimise mehhanismi ja vähemal määral panuse ülekandetehingu ettevõtmisega, et kuupäevatehingu panus viitaks juba täpselt plokiahelas olemasolevale tehingule.

Tsükli iga vooru jooksul küsitleti kõigilt konfiguratsioonis määratud sõlmedelt nende hetkekõrgus, valiti suurima voolukõrgusega sõlm ja sellega toimus edasine suhtlus. Minu arusaamise järgi pidi see kaitsma kahvlite, kättesaamatuse, vahemällu salvestamise ja võimalike sõlmede vigade eest. On kindel, et just see lihtne mehhanism viis võiduni.

Millised on teie arvates plokiahela mängude peamised omadused ja eelised? Kui paljutõotavad on avalikud plokiahelad üldiselt ja Waves'i plokiahel eriti mängude arendamiseks?

Peamisteks eelisteks on teadaolevad, fikseeritud ja muutumatud mängureeglid, millele lisanduvad võrdsed tingimused mängule juurdepääsuks kõikjalt maailmast.

Ketivälised rahamängud peavad surema.

Waves'il on rikkalik tehniline funktsionaalsus, kuid seal on nüansse, nii igale plokiahelale omaseid kui ka spetsiifilisi. Need mõlemad ei kajastu olemasolevates arendajatööriistades veel kuigi hästi.

Näiteks kui prooviksite tehingutele vastata reaalajas, mitte 5-10 kinnituse kaugusel, saaksite teada haruldastest, kuid esinevatest nähtustest: tehingud hüppavad plokist plokki, tehingud puuduvad mõnes ja ilmuvad teistes. . Kõik see on mis tahes rakenduse kiiruse ja töökindluse jaoks ülioluline ning see tuleb lahendada üldiselt, kuid praegu saavutab iga arendaja iseseisvalt vajaliku usaldusväärsuse taseme. Aja jooksul see kõik muidugi laheneb, kuid praegu on teatud, üsna kõrge sisenemisbarjäär ja hirm tõeliselt detsentraliseeritud plokiahelate töö spetsiifika ees üldiselt.

Mille poolest erineb FOMO mäng teistest teile tuttavatest plokiahela mängudest? Millised on selle eelised ja puudused?

Need on pikad mängud. Huvi selliste mängude vastu kasvab koos võitude hulgaga ning võitude hulk aja jooksul kasvab.

Ideaalis ei lõpe mäng kunagi. Kui mäng lõppeb, on kurb...

Hiljuti olin käivitatud mäng Fhlostoni paradiis 2. Kas plaanite sellest osa võtta?

Jah, kui on aega ja huvi, siis astun samad sammud: haavatavuse analüüs, endaga mängimine testvõrgus, bot, avatud lähtekoodiga jne.

Lõpuks rääkige meile oma plaanidest arendajana.

Olen huvitatud lahendamata probleemide lahendamisest ja plokiahela teemas on palju lahendamata probleeme. See on tõeline väljakutse! Ja ta võeti vastu.

Allikas: www.habr.com

Lisa kommentaar