MoonCats on Ethereumin varhaisin generatiivinen taide tiukassa, teknisessä mielessä, että käyttäjät luovat sen rahapajassa ketjussa todennettavissa olevan algoritmin avulla. Jakso. Tässä syy🧵
2017 ketjun käyttöönotto. MoonCatRescue-sopimus tarkistettiin 9. elokuuta 2017, ja se oli peräisin ennen ERC-721:tä ja suurinta osaa NFT-infrastruktuurista.
Ketjussa, aktivointiajan satunnaisuus. Kun omistajat kutsuvat activate(), sopimus sitoutuu searchSeed = block.blockhash(block.number - 1), joka ei ole tiedossa ennen aktivointia. Tämä estää toivottujen tulosteiden esilaskennan tai esilouhinnan.
Proof-of-work aidattu minttu. Lyöntitoiminto käyttää rescueCat(bytes32 seed), joka laskee catIdHash = keccak256(seed, searchSeed) ja vaatii catIdHash[0] | catIdHash[1] | catIdHash[2] == 0x0. Käytännössä pelastajien piti etsiä siemeniä ketjun ulkopuolelta, kunnes löydettiin hajautusarvo, jossa oli kolme nollatavua, ja lähettää sitten siemen ketjuun. Tämä teki sukupolvesta luvattoman ja louhijan löydettävissä sen sijaan, että tekijät olisivat luoneet sen.
Deterministinen ID-johdanto rahapajassa. Kelvollisille siemenille sopimus määrittää catId = bytes5((catIdHash & 0xffffffff) << 216), eli hajautusarvon alimmat 32 bittiä siirretään 5-tavuiseksi tunnisteeksi, jossa korkea tavu on varattu "genesis"-lipulle. Yksilöllisyys pakotetaan ketjussa komennolla require(catOwners[catId] == 0x0).
Kanoninen generaattori ankkuroitu ketjuun. Sopimus tallentaa imageGenerationCodeMD5:n, jotta asiakkaat voivat varmistaa, että heidän käyttämänsä hahmonnuskoodi vastaa sopimuksen viittaamaa kanonista generaattoria. Tämä on ketjun sisäinen kryptografinen ankkuri renderöijjälle.
Kompakti, generatiivinen "resepti", joka on täysin tallennettu ketjuun. Jokaisen MoonCatin 5-tavuinen Hex ID koodaa sen koko reseptin: suunnan, paletin käänteinen, turkiskuvio, ilme, asento ja perusväri. Toinen tavu ("k") multipleksoi pose/face/fur/facing, ja kolme viimeistä tavua tarjoavat perus-RGB:n, joka laajennetaan paletiksi.
Avoin, viittausrenderöinti. Virallinen generaattori mooncatparser kartoittaa deterministisesti 5-tavuisen ID:n 2D-pikseliryhmäksi. Kuka tahansa voi itsenäisesti renderöidä MoonCatin uudelleen pelkästä ketjun tunnuksesta, mikä varmistaa pitkän aikavälin todennettavuuden.
Käyttäjän ohjaama jakelu rahapajassa. Alkuperäisen "Scannerin" avulla käyttäjät voivat louhia siemeniä paikallisesti ja päättää, lähettävätkö he pelastuksen, mikä sai harvinaisuustilastot ja piirrejakaumat syntymään avoimesta osallistumisesta ennalta lasketun pudotuksen sijaan.
Ennen ERC-721:tä, täysin ketjun markkinat ja nimeäminen. Vuoden 2017 sopimus sisältää ketjussa olevan markkinapaikan (makeAdoptionOffer, acceptAdoptionOffer, requests) ja muuttumattoman nimeämisen nameCatin kautta, mikä osoittaa itsenäisen generatiivisen rahapajan sekä alkuperä- ja vaihtokerroksen yhdessä järjestelmässä.
Myöhemmin kovettuminen täysin ketjun sisäisiin kuviin. Vuonna 2022 otettiin käyttöön lisäsopimuksia (MoonCatSVG:t, MoonCatColors, MoonCatTraits), jotta ketju itse voi palauttaa minkä tahansa MoonCatin SVG:n suoraan ketjun sisäisestä reseptistään, mikä eliminoi ketjun ulkopuoliset kuvariippuvuudet säilyttäen samalla alkuperäisen vuoden 2017 generatiivisen mallin.
Yhteenvetona voidaan todeta, että MoonCats oli elokuussa 2017 edelläkävijä ketjussa olevalla kylvämällä, proof-of-work-aidatulla ja käyttäjän löytämällä generatiivisella lyönnillä, jossa oli todennettavissa oleva renderöintiputki, joka oli ankkuroitu sopimukseen sisältyvään hashiin, ja kompakti ketjun sisäinen resepti tokenia kohden.
24,16K