Domaća igra Etherships rešava problem skaliranja sve popularnijih blockchain igara

Gotovo svi koji su upućeni u Ethereum su svesni da mu trenutno manjka mogućnost skaliranja što se verovatno najviše ispoljilo tokom prošlogodišnjih izazova sa aplikacijom CryptoKitties. Domaći Etherships rešava ovaj problem na polju blockchain igara.

Dubravka Vilotić - 10. Avgust, 2018.

Igre zasnovane na Ethereum blockchainu u poslednjih nekoliko meseci doživljavaju sve veću popularnost, ali uprkos velikom interesovanju, njihov kvalitet je i dalje upitan. Jedan od najvećih razloga zbog kog blockchain gaming još uvek nije dobio pun zamah leži u problemu skaliranja.

Gotovo svi koji su upućeni u Ethereum su svesni da mu trenutno manjka mogućnost skaliranja u smislu broja transakcija i korisnika koje mreža može da podrži (što se verovatno najviše ispoljilo tokom prošlogodišnjih izazova sa aplikacijom CryptoKitties). Uprkos tome što njegovi osnivači aktivno rade na trajnim rešenjima kao što su Sharding i Plasma, ona i dalje nisu u potpunosti razvijena, te se postavlja pitanje šta je trenutno moguće uraditi da bi se problem rešio?

Tim domaćeg startapa Decenter koji će bavi razvojem decentralizovanih sistema i tehnologija, ponudio je rešenje ovog problema korišćenjem state kanala za koje smatraju da nose mnogo neiskorišćenog potencijala. Kao demonstraciju svog rešenja napravili su igru Etherships koja služi kao primer kvalitetne primene state kanala za skaliranje igara na Ethereumu. Sa ekipom Decentera smo detaljnije popričali o rešenju koje su osmilili, kao i o njihovom ulasku u svet blockchain gaminga.

Nakon posete konferenciji u Parizu na kojoj je dosta fokusa bilo na skaliranju, došli smo na ideju da napravimo neki framework koji će svima biti dobra osnova za state kanale.

Šta su state kanali i kako rešavaju problem skaliranja?

Glavna ideja state kanala je da smanje broj nepotrebnih transakcija time što određene interakcije obavljaju van blockchaina (off-chain). Broj transakcija se svede na svega dve u toku jedne sesije igre — jednom pri otvaranju i drugi put pri zatvaranju kanala. Više transakcija je potrebno samo u slučaju da neko od igrača odluči da vara u igri.

State kanali omogućavaju da korisnici komuniciraju jedan sa drugim bez korišćenja pametnih ugovora na Ethereumu, a da pritom ukoliko bilo ko od njih uradi nešto što nije validno to može da se reši pozivajući pametni ugovor, koji će biti u stanju da odredi koji igrač je varao. Korisnici šalju poruke jedan drugom tako što ih potpisuju svojim privatnim kriptografskim ključem, taj privatni ključ poseduju samo oni i ukoliko oni urade nešto maliciozno, drugi korisnik može da pošalje neku poruku potpisanu od strane malicioznog korisnika i tako razreši problem na pametnom ugovoru.

Primena state kanala kroz igru Etherships

Pravila igre su vrlo jednostavna jer je identična kao igra podmornica koju smo svi nekada igrali, ali verovatno ne na blockchainu.

Za igru podmornica smo se odlučili jer nam je bio potreban neki jednostavan slučaj na kom možemo da pokažemo ljudima kako bi to radilo, a igra podmornica je bila idealna zato što je zanimljiva za igranje, a nije previše kompleksna za implementaciju.

Igra je postavljena na tabli dimenzija 8×8. Svaki igrač na početku postavlja po 5 brodova na polja koja odabere. Ono što razlikuje ovu igru podmornica od one koju smo igrali kao deca je što se određuje iznos koji će oba igrača uložiti na početku i svaka podmornica vredi petinu novca koji je jedan igrač uložio. Na kraju igre svaki učesnik dobija onoliko novca koliko je protivnikovih brodova potopio, a pobednik na tu sumu dodaje i broj brodova koji mu je ostao.

Na primeru to izgleda ovako:

Ako Ana i Branko odluče da igraju Etherships i ulože svako po 0,05 ETH, vrednost jednog njihovog broda će biti 0,01 ETH. Branko završava igru kao pobednik time što je potopio svih 5 Aninih brodova, dok su njemu ostala 2 nepotopljena. Na kraju igre Branko dobija 0.07 ETH, a Ana dobija ostalih 0.03.

Upotreba state kanala je u ovom slučaju presudna jer umesto da se za svaki potez desi po transakcija, state kanali omogućavaju da se broj transakcija smanji sa prosečnih 40 na svega dve — kada se otvori kanal i prebaci ukupni ulog i kada se po završetku igre zatvori kanal i preuzme osvojena nagrada.

Iz razloga što igra funkcioniše tako što svaki igrač mora da potpiše da mu je potopljen brod, može doći do varanja. Cilj Decenter tima je da kroz Etherships pokaže da i u potpuno peer-to-peer igri u kojoj se dva igrača ne znaju i ne veruju jedno drugom i tehnički mogu da varaju, sistem i dalje garantuje da će varanje biti sprečeno i to bez middleman-a već uz korišćenje state kanala:

Postoje u suštini 2 glavna načina varanja:
1. Direktno varanje laganjem da li je vaš protivnik zapravo pogodio brod
2. Ako protivnik napusti state kanal vaše igre i nikad ga “ne zatvori”

Pri svakom potezu šalju se i kriptografski potpisi koji služe kao garancija da je vaš protivnik vama poslao tu informaciju. Prvi primer laganja se dešava ako vi pogodite neki brod, a protivnik vam potpisano pošalje da ga niste pogodili. Vi tada možete da pozovete pametni ugovor na Ethereumu i pošaljete mu taj potpis od protivnika i time dokažete varanje i vi spostajete pobednik, Naravno ovo je dosta pojednostavljenjo rešenje, više o ovome možete pročitati ovde.

U drugom primeru laganja je igra u limbo stanju i treba da postoji način da se to razreši. Taj problem smo rešili tako što ako posle određenog vremena vaš protivnik još uvek nije zatvorio kanal, vi pozovete pametni ugovor na Ethereumu i postajete pobednik i potom se zatvara kanal.

Uprkos tome što je vrlo jednostavna igra, ideja, tehnologija i rešenja vezana za Etherships su vrlo moćna. Decenter ovo smatra prvim korakom ka razvijanju lakšeg načina za sve kreatore koji koriste state kanale za rešavanje problema skaliranja. 

Za detaljniji opis Ethershipsa sa tehničke strane možete pročitati sledeći članak.

Šta je sledeći korak?

Pored Etherships projekta, Decenter tim već neko vreme radi na igri Cryptage čiju su beta verizuju lansirali u maju. Cryptage vas vodi kroz kripto izazove koje možete prevazići kroz skupljanje i upotrebljavanje određenih sredstava kroz igru.

I Etherships i Cryptage su trenutno u beta fazi i intenzivno se radi na njima. Dok je na Ethershipsu mnogo veći fokus na state kanalima i rešavanju problema koje prate imeplementaciju state kanala, u Cryptage-u je većina fokusa trenutno na mehanici igre.

Takođe trenutno radimo na još jednom projektu koji ima za cilj da privuče umetnike u blockchain svet i nadamo se da ćemo neku beta verziju da izbacimo u sledećih mesec dana.