„CryptoKitties“ tyrinėjimas - 2 dalis: „CryptoMidwives“

Tai yra antroji tinklaraščio įrašo apie duomenų iš „Ethereum“ grandinės ištraukimą ir analizę dalis. Galite praleisti įvadą, jei perskaitėte 1 dalį

Įvadas

Jei skaitote tai, tikriausiai girdėjote apie žaidimą, kuris pastaruosius keletą mėnesių patraukė visų dėmesį „Ethereum“ tinkle: „CryptoKitties“!

Trumpai tariant, žaidimą sudaro virtualių kačių rinkimas. Katės yra sukurtos žaidimo žaidėjų, kurie gali užauginti dvi kates, kad būtų sukurta nauja. Kiekviena katė turi savo genetinę seką, kuri lemia jų fizinius požymius. Jų genomas priklauso nuo tėvų genų ir pliusų. Be veisimo, „Axiom Zen“, už žaidimą atsakinga įmonė, gali sukurti iki 50 000 kačių, turinčių iš anksto apibrėžtų savybių. Yra kačių pirkimo ir pardavimo rinka, taip pat kačių veisimo tikslais „išsinuomoti“. Daugiau apie žaidimą galite perskaityti čia.

„Block Science“ yra technologijų tyrimų ir analizės įmonė, kurios specializacija yra decentralizuotų ekonominių sistemų projektavimas ir vertinimas. „CryptoKitties“ ekonomikos aspektų analizė atrodė kaip puiki proga patobulinti mūsų duomenų gavimo įrankius, tuo pačiu metu pasitelkiant kai kuriuos realaus pasaulio duomenis iš tiesioginės (ir gyvos!) Decentralizuotos programos.

Šis tinklaraščio įrašas buvo padalytas į dvi dalis:

  • 1 dalis apima techninius aspektus, susijusius su duomenų gavimu ir transformavimu iš „Ethereum“ grandinės.
  • 2 dalyje (šiame įraše) pateikiama faktinė kai kurių žaidimų duomenų analizė.

Duomenų analizė

Savo analizę pradėjome kurdami duomenų rėmelį su visais žurnalo įrašais, įrašytais tarp blokų 4605167 ir 5374870 pagal tris „CryptoKitties“ išmaniąsias sutartis: žaidimo pagrindinę mechaniką, pardavimo aukcioną ir siringo aukcioną (kai žaidėjai „nuomojasi“ savo kates kitiems, kad galėtų veistis su ). Remiantis skaičiavimais (1 diagrama), mes prieiname prie dviejų įdomių išvadų:

1 diagrama - „CryptoKitties“ įvykių dažnio skaičiavimas
  1. „Pregnant“ įvykis įvyksta daug dažniau nei „siring Auction“ sumaniosios sutarties įvykis „AuctionSuccessful“. Tai turėtų reikšti, kad daugiausiai veisiama kačių, priklausančių tam pačiam žaidėjui, nes iš žaidimo kodo žinome, kad kiekvienas sėkmingas siringo aukcionas sukelia nėštumą; ir
  2. Perdavimo įvykis yra tik 6% dažnesnis nei įvykių, kurie jį sukelia, suma - iš šaltinio kodo mes žinome, kad kiekvienas sukurtas ar atšauktas aukcionas, kiekvienas gimimas ir kiekvienas pardavimas lemia pervedimą. Tai reiškia, kad 6% pervedimų vyksta kitu būdu nei oficialios išmaniosios sutartys - pavyzdžiui, žaidėjai, dovanojantys katytę draugams. Turėtume pastebėti šį procentų padidėjimą, kai nauji žaidimai, sukurti „CryptoKitties“ viršuje, taps pakankamai populiarūs, kad žaidėjai pradės prarasti savo kates, pavyzdžiui, iššūkiuose; arba kartą pasirodžius decentralizuotoms biržoms, turinčioms modernesnių prekybos funkcijų, leidžiančias kriptovaliutų produktus įtraukti į jas.

Kitties gimimo ekonomika

Matydami, kad gimsta naujos katės, yra ekonominis komponentas, mes pereiname prie šio proceso išsamiau. Kai dvi katės veisiasi, nėščios katės atveju nustatomas kintamasis, kuris nurodo, kokia blokada nėštumas bus baigtas. Tačiau „Ethereum“ tinkle nėra įgimto laikmačio, leidžiančio automatiškai vykdyti kodo fragmentą tam tikrame bloke. Tai reiškia, kad kažkas turi iškviesti žaidimo funkciją, kuri „pagimdo“ naują katę. Tai yra „giveBirth“ funkcijos tikslas: paskambinus ji patikrina, ar nėštumas pasibaigė. Tik tada, kai vadinama „giveBirth“ funkcija, palikuonių genai nustatomi uždaro kodo algoritmu. Norėdami sumažinti žaidėjų galimybes žaisti sistemą, kūrėjai sukūrė paskatinimo mechanizmą, kuriuo remiantis „giveBirth“ gali būti pašauktas, kai tik nėštumas bus baigtas.

Kadangi ši „giveBirth ()“ funkcija apima atsitiktinį elementą, labai svarbu, kad ji būtų iškviesta greitai po numatomo gimimo laiko (per 250 blokų arba maždaug 30 minučių). Jei skambutis užtrunka ilgiau, tai suteikia galimybę blogiems aktoriams „perdaryti“ atsitiktinį savo genetinio derinio elementą ir įgyti nesąžiningą pranašumą prieš kitus veisėjus. Kad taip neatsitiktų, mes leidžiame visiems skambinti „giveBirth“ () ir visą gimimo mokestį atiduodame pirmajam skambinančiam asmeniui, kuris sėkmingai pagimdo naują kačiuką. (šaltinis)

Minėjimas iki 250 blokų termino reiškia, kad „CryptoKitties“ naudoja bloko maištą prieš numatomą gimdymo bloką kaip entropijos šaltinį naujų kačiukų genams nustatyti. Blokų maišos EVM prieinamos tik 256 blokams (~ 250). Po to skambučiai blokuoti grįš į nulį. Tai reiškia, kad jei paskata išorės agentams neegzistavo, žaidėjas galėtų imituoti naujos kačiuko gimimą ir, jei rezultatas jiems nepatiko, palaukite 256 blokus ir bandykite dar kartą.

Atnaujinimas (2018 m. Rugpjūčio 19 d.): Neseniai paskelbtas „Erays“ dokumentas verčia manyti, kad ši ekonominė paskata yra dar svarbesnė, nei mes manėme iš pradžių. Remiantis dokumentu, jei gimimas įvyks po 256 blokų laikotarpio, „CryptoKitties“ nenaudoja „nulio“ kaip entropijos šaltinio, o veikiau dabartinį bloko numerį. Reiškia, kad užpuolikas ne tik gautų antrą pakartotinį žaidimą, bet ir tiek, kiek norėjo, tiesiog imituodamas savo naujos kačiuko gimimą skirtinguose blokuose.

Taigi žaidimas surenka mokestį iš kiekvieno veisimo (vadinamas gimimo mokesčiu) ir leidžia bet kuriai „Ethereum“ paskyrai reikalauti šio mokesčio paprasčiausiai paskambinus nėščios katės „giveBirth“ funkcijai dešinėje (arba po jos). Naujoji katė vis tiek atitenka nėščios katės savininkui. Bet kas gali pagimdyti katę, kurios nėštumo laikotarpis pasibaigė, ir už tai gauti kompensaciją.

Tai paskatino „CryptoMidwives“ atsiradimą, kaip jas pavadino Michaelas Zarghamas: agentai, kurie, net patys nebūdami žaidimo žaidėjais, atlieka kritinę funkciją „CryptoKitties“ ekonomikoje. Koncepcija nėra būdinga „CryptoKitties“, ją galima apibendrinti iki „CryptoServices“ - dizaino modelio, kai už tai yra atlyginama sąskaitai, kuri iškviečia tam tikras intelektualiosios sutarties funkcijas.

// Siųskite balanso mokestį asmeniui, kuris pagimdė.
msg.sender.send (autoBirthFee);

Įvykių žurnalo duomenų rinkinys rodo, kad daugumą gimimų lemia tik kelios sąskaitos. Ankstyvoje žaidimo istorijoje su „AxiomZen“ susijusios sąskaitos buvo vienintelės, pagimdžiusios kačiukus. Laikui bėgant kitos sąskaitos ėmė vadintis „giveBirth“ metodu. Taip pat matome, kad tik kelios akušerės gimdo daugiausia: oranžinė sritis 2 diagramoje rodo 5 populiariausias sąskaitas iš 1000 blokų (iš viso 151 sąskaitą). Išskyrus smaigalį aplink 4.700.000 bloką, „AxiomZen“ ir populiariausi skambinantys asmenys visą laiką sudaro didžiąją gimimų dalį.

2 diagrama. Sėkmingų skambučių, kuriuos atlikus operacija bus perduota, skaičius „Bomb“ per tam tikrą laiką

Panašu, kad „AxiomZen“ aktyvumo padidėjimas gerai koreliuoja su „Ethereum“ sandorių vidutinės dujų kainos padidėjimo akimirkomis. To reikėjo tikėtis, nes padidėjusios gimdymo išlaidos daro jį mažiau patrauklų išorės agentams. Reaguodama į tinklo perkrovą gruodį, „AxiomZen“ kelioms dienoms padidino gimimo mokestį nuo 0,002 eterio iki 0,015 eterio, vėliau jį sumažindama iki 0,008 eterio, kuris gerai išsilaikė sausio piko metu.

Šaltinis: https://etherscan.io/chart/gasprice

Praturtindami įvykių žurnalo duomenų rinkinį iš operacijų, kurios juos sukūrė, pastebime, kad paprastai „CryptoMidwives“ žaidimo sutartyje tiesiogiai nešaukia „giveBirth“ funkcijos, o išgyvena tarpininko išmaniąją sutartį. Tai leidžia jiems atlikti vieną operaciją pagal uždarojo tipo intelektualiąją sutartį, kuri savo ruožtu skambina „giveBirth“ funkciją tiek kartų, kiek liepia. Žr. Operaciją 0x6cc717fc….

3 diagrama. Sėkmingų skambučių, kuriuos atlikus operacija gavėjui suteikiama „Birth“, sudėtis

Turėdami duomenų, esančių „blockchain“ tinkle, galime net įvertinti šių agentų pajamas ir pelningumą. Susitelkime į 10 geriausių 2018 metų „CryptoMidwives“. Paskyra 0x05be6e… yra aukščiausia gimimų skaičiaus reitingo kategorija, aiškiai lenkianti varžybas. Sąskaita 0xa21037… (kuri priklauso „AxiomZen“) yra aštuntoje vietoje, o tai gerai, nes jie turėtų veikti tik kaip paskutinė priemonė.

4 diagrama - 10 populiariausių „CryptoMidwives“ 2018 metų pristatytų komplektų

Nuo gruodžio 11 dienos atlygis už sėkmingą gimdymą buvo 0,008 ETH. Turėdami tą informaciją galime apskaičiuoti pajamas iš 10 geriausių „CryptoMidwives“.

5 diagrama - 10 geriausių „CryptoMidwives“ 2018 metų pajamos

Tačiau gimdymas kriptovaliutomis kainuoja mokesčius. Be to, konkurencija šioje rinkoje yra arši! Daugelis bandymų vadinti „giveBirth“ vadina „atvykti pavėluotai“ - tai reiškia, kad kai kalnakasiai apdoroja sandorį, katė nebėra nėščia, nes pirmiausia buvo atlikta kita operacija. Tie vėlyvieji atvykėliai neima tiek daug dujų, tačiau vis tiek gali kainuoti nemažą sumą mokesčių. Atimdami visus tuos mokesčius nuo atlygio, gauname kiekvienos akušerės pelną. Įdomu tai, kad sąskaita 0x80cfd2…, kuri yra šeštoji pagal pajamas, išsiskiria šiuo veiklos rodikliu. Akivaizdu, kad jie turėjo rasti tam tikrą būdą, kaip sutaupyti mokesčius, ar tai būtų protingas sutarčių sudarymas, geresnis jų transakcijų transliavimo laikas, geresnis dujų kainos pasirinkimas, ar jų derinys.

6 diagrama - 10 geriausių „CryptoMidwives“ 2018 metų pelnas

Siekdami ištirti sumanios sutarties sudarymo hipotezę, mes sukūrėme metriką, kurią vadiname „kodo efektyvumu“. Tai yra paprastas tiekiamų kačiukų ir panaudotų dujų santykis. Jei pažvelgtume į normalizuotas vidutinių kodų efektyvumo kodo sumas, nustatytas intelektualiosioms sutartims, kurias naudoja aukščiausiosios akušerės 2018 m. (7 lentelė), pamatytume, kad jų skirtumas yra labai mažas.

7 diagrama - intelektualiųjų sutarčių, naudojamų geriausių „CryptoMidwives“ 2018 m., Kodo efektyvumas

Jei užuot apibrėžę efektyvumą pagal sunaudotas dujas, apibrėžtume jį kaip pelną (pelną už pristatytą kačiuką), pamatytume, kad sąskaita 0x80cfd2 yra daug mažiau efektyvi nei sąskaita 0x05be6e (8 diagrama). Darant prielaidą, kad kodas yra efektyvus, tai reikštų, kad 0x80cfd2 moka didesnes dujų kainas už savo operacijas, kurios sėkmingai pagimdo katytę.

8 diagrama - geriausių 2018 metų „CryptoMidwives“ efektyvumas

Aukštesnės dujų kainos gali paaiškinti didesnį 0x80cfd2 sąskaitos pelningumą - tai gali lemti, kad jos laimės visas varžybas, kad suteiktų „Birtį“, kuriame konkuruoja. Ir iš tiesų, kiekviena operacija iš sąskaitos 0x80cfd2 lėmė tai, kad gimė vienas ar daugiau kačiukų. To paties negalima pasakyti apie 0x05be6e, kuri vykdo daugybę operacijų su savo intelektualiosiomis sutartimis, kurios nepagimdo jokių kačiukų.

9 diagrama. Sandorių, sudarytų pagal sąskaitas 0x05be6e ir 0x80cfd2, histograma, atsižvelgiant į gimusių kačių skaičių

Tačiau mokesčiai, kuriuos patiria sąskaita 0x05be6e ir dėl kurių negimsta, yra ne tik dėl sandorių, prarandančių dujų kainų karą. Atrodo, kad jų pagrindinei išmaniajai sutarčiai 0x39243a reikia tam tikros periodinės sąveikos, kuri yra labai brangi dujų atžvilgiu. Žr., Pavyzdžiui, operaciją 0xcc0f970e. Jei tai būtų ne tas sandoris, „0x05be6e“ reikštų ne tik pajamų reitingą, bet ir pelningumą.

Atnaujinimas (2018 m. Gegužės 25 d.): Tolesnė analizė rodo, kad tokie sandoriai, kaip 0xcc0f970e, leidžia akušerės išmaniajai sutarčiai taupyti dujas sandoriams, kurie pagimdo katytėms, naudojant „saugojimo grąžinimus“ - tą pačią techniką už „GasToken“. Turiu padėkoti Ricardo už tai, kad padėjo man tai išsiaiškinti. Panašu, kad sutartyje, kuria naudojasi sąskaita 0x80cfd2, šios grąžinamosios išmokos išnaudojamos, tačiau norint išsaugoti duomenis saugykloje (0x3a91b4…), naudojant kitą sąskaitą. Tikslesnėje pelningumo analizėje reikėtų atsižvelgti į sąskaitų grupes ir protingas sutartis, priklausančias vienam agentui.

Šių analizių šaltinio kodus galite rasti „Jupyter“ nešiojamajame kompiuteryje, esančiame mūsų „GitHub“.

Išvada

Panašu, kad ekonominė paskata, sukurta įsitikinti, kad katės kuo greičiau gimsta, yra veiksminga. Gimimo įvykių susikaupimas keliose sąskaitose rodo, kad buvo sukurti robotai, kad katės kuo greičiau pagimdytų. Tačiau panašu, kad kai tik nebus daugiau naudos iš protingesnių akušerių sutarčių, robotai turės išlaikyti dujų kainų karą, kad išliktų konkurencingi. O tai reiškia, kad galiausiai didelė dalis apgyvendinimo mokesčių tikriausiai pateks į kalnakasių rankas.

Bet kokiu atveju, gimimo mokestis daro „CryptoKitties“ žaidimą brangesnį nei tuo atveju, jei šis mechanizmas nebuvo būtinas. Kaip pirmasis tokio pobūdžio žaidimas, įgavęs didelę trauką „Ethereum“ tinkle, „CryptoKitties“ tikrai kurį laiką įkvėps daugelį kūrėjų. Bus įdomu pamatyti, kaip nauji žaidimai ateityje susidoros su tokiu iššūkiu.

Būsimas darbas

Kaip ir daugelio analizių atveju, taip kyla daugiau klausimų. Palikite savo ir savo atsiliepimus komentaruose! Toliau nagrinėsime šį duomenų rinkinį būsimuose straipsniuose.

10 diagrama. „Top 10“ 2018 metų „CryptoMidwives“ operacijų pagal schemą ir intelektualiąją sutartį schema. Ką tu matai?

Ypatinga padėka „Block Science“ komandai už tyrimus, įžvalgas ir apžvalgą.