MoonCats es el arte generativo más antiguo en Ethereum en el sentido estricto y técnico de ser generado en el momento de la acuñación por los usuarios bajo un algoritmo verificable en la cadena. Punto. Aquí está el porqué🧵
Despliegue en cadena de 2017. El contrato MoonCatRescue fue verificado el 9 de agosto de 2017, antes de ERC-721 y la mayoría de la infraestructura NFT.
Aleatoriedad en el tiempo de activación en la cadena. Cuando los propietarios llaman a activate(), el contrato se compromete a searchSeed = block.blockhash(block.number - 1), que no se puede conocer hasta justo antes de la activación. Esto previene la precomputación o la minería previa de resultados deseables.
Minting con prueba de trabajo. La acuñación utiliza rescueCat(bytes32 seed), que calcula catIdHash = keccak256(seed, searchSeed) y requiere que catIdHash[0] | catIdHash[1] | catIdHash[2] == 0x0. En la práctica, los rescatadores tenían que buscar semillas fuera de la cadena hasta que se encontrara un hash con tres bytes cero al principio, y luego enviar esa semilla en la cadena. Esto hizo que la generación fuera sin permisos y descubrible por los mineros en lugar de ser pre-generada por los creadores.
Derivación de ID determinista en la acuñación. Para semillas válidas, el contrato asigna catId = bytes5((catIdHash & 0xffffffff) << 216), es decir, los 32 bits bajos del hash desplazados a un identificador de 5 bytes, con el byte alto reservado para la bandera de "genesis". La unicidad se aplica en la cadena con require(catOwners[catId] == 0x0).
Generador canónico anclado en la cadena. El contrato almacena imageGenerationCodeMD5 para que los clientes puedan verificar que el código de renderizado que utilizan coincide con el generador canónico al que hace referencia el contrato. Este es un ancla criptográfica en la cadena para el renderizador.
"Receta" compacta y generativa completamente almacenada en la cadena. El ID Hex de 5 bytes de cada MoonCat codifica su receta completa: dirección, inversión de paleta, patrón de pelaje, expresión facial, pose y color base. El segundo byte ("k") multiplexa pose/cara/pelaje/dirección, y los últimos tres bytes proporcionan el RGB base que se expande en una paleta.
Abre, renderizador de referencia. El generador oficial mooncatparser mapea de manera determinista el ID de 5 bytes en un array de píxeles 2D. Cualquiera puede volver a renderizar de forma independiente un MoonCat solo con el ID en la cadena, asegurando la verificabilidad a largo plazo.
Distribución controlada por el usuario en la acuñación. El original "Scanner" permitía a los usuarios minar semillas localmente y decidir si enviar un rescate, lo que hacía que las estadísticas de rareza y las distribuciones de rasgos surgieran de la participación abierta en lugar de un lanzamiento precomputado.
Mercado y nomenclatura completamente en cadena antes de ERC-721. El contrato de 2017 incluye un mercado en cadena (makeAdoptionOffer, acceptAdoptionOffer, requests) y nomenclatura inmutable a través de nameCat, demostrando una acuñación generativa autocontenida más una capa de procedencia e intercambio en un solo sistema.
Más tarde, endurecimiento para imágenes completamente en cadena. En 2022, se desplegaron contratos suplementarios (MoonCatSVGs, MoonCatColors, MoonCatTraits) para que la cadena misma pueda devolver el SVG de cualquier MoonCat directamente desde su receta en cadena, eliminando las dependencias de imágenes fuera de la cadena mientras se preserva el modelo generativo original de 2017.
En resumen, MoonCats fue pionero en la acuñación generativa descubierta por el usuario, con semillas en la cadena, restringida por prueba de trabajo, en agosto de 2017, con un pipeline de renderizado verificable anclado por un hash en el contrato y una receta compacta en la cadena por token.
23,97K