MoonCats es el arte generativo más antiguo en Ethereum en el sentido estricto y técnico de ser generado en la acuñación por usuarios bajo un algoritmo verificable en cadena. Periodo. He aquí por qué🧵
Despliegue en cadena en 2017. El contrato de MoonCatRescue se verificó el 9 de agosto de 2017, anterior a ERC-721 y a la mayoría de las infraestructuras de NFT.
Aleatoriedad en el tiempo de activación en cadena. Cuando los propietarios llaman a activate(), el contrato se compromete con searchSeed = block.blockhash(block.number - 1), que no se puede conocer hasta justo antes de la activación. Esto evita el cálculo previo o el preminado de resultados deseables.
Prueba de trabajo con menta cerrada. La acuñación usa rescueCat(bytes32 seed), que calcula catIdHash = keccak256(seed, searchSeed) y requiere catIdHash[0] | catIdHash[1] | catIdHash[2] == 0x0. En la práctica, los rescatistas tenían que buscar semillas fuera de la cadena hasta que se encontrara un hash con tres cero bytes iniciales, y luego enviar esa semilla a la cadena. Esto hizo que la generación no tuviera permisos y fuera detectable por los mineros en lugar de ser generada previamente por los creadores.
Derivación determinista de ID en la ceca. Para semillas válidas, el contrato asigna catId = bytes5((catIdHash & 0xffffffff) << 216), es decir, los 32 bits bajos del hash se convirtieron en un identificador de 5 bytes, con el byte alto reservado para el indicador "génesis". La unicidad se aplica en la cadena con require(catOwners[catId] == 0x0).
Generador canónico anclado en cadena. El contrato almacena imageGenerationCodeMD5 para que los clientes puedan verificar que el código de representación que usan coincida con el generador canónico al que hace referencia el contrato. Se trata de un anclaje criptográfico en cadena para el renderizador.
"Receta" compacta y generativa totalmente almacenada en cadena. El Hex ID 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/face/fur/facing, y los últimos tres bytes proporcionan el RGB base que se expande en una paleta.
Abierto, renderizador de referencia. El generador oficial mooncatparser mapea de forma determinista el ID de 5 bytes en una matriz de píxeles 2D. Cualquiera puede volver a renderizar de forma independiente un MoonCat solo a partir de la identificación en cadena, lo que garantiza la verificabilidad a largo plazo.
Distribución controlada por el usuario en la casa de la moneda. El "Scanner" original permitía a los usuarios extraer semillas localmente y decidir si enviar un rescate, lo que hizo que las estadísticas de rareza y las distribuciones de rasgos surgieran de la participación abierta en lugar de una caída precalculada.
Pre-ERC-721, mercado y nomenclatura totalmente en cadena. El contrato de 2017 incluye un mercado en cadena (makeAdoptionOffer, acceptAdoptionOffer, requests) y nombres inmutables a través de nameCat, lo que demuestra una acuñación generativa autónoma más una capa de procedencia e intercambio en un solo sistema.
Endurecimiento posterior a imágenes completamente en cadena. En 2022, se implementaron contratos complementarios (MoonCatSVGs, MoonCatColors, MoonCatTraits) para que la propia cadena pueda devolver el SVG para cualquier MoonCat directamente desde su receta en cadena, eliminando las dependencias de imágenes fuera de la cadena y preservando el modelo generativo original de 2017.
En resumen, MoonCats fue pionera en la acuñación generativa en cadena, controlada por prueba de trabajo y descubierta por el usuario en agosto de 2017, con una canalización de renderizado verificable anclada por un hash en el contrato y una receta compacta en cadena por token.
23.92K