MoonCats é a arte generativa mais antiga na Ethereum no sentido estrito e técnico de ser gerada no momento da mintagem por utilizadores sob um algoritmo verificável em cadeia. Ponto. Aqui está o porquê🧵
Implementação on-chain de 2017. O contrato MoonCatRescue foi verificado a 9 de agosto de 2017, antes do ERC-721 e da maioria da infraestrutura NFT.
Aleatoriedade de tempo de ativação em cadeia. Quando os proprietários chamam activate(), o contrato compromete-se a searchSeed = block.blockhash(block.number - 1), que não pode ser conhecido até pouco antes da ativação. Isso impede a pré-computação ou pré-mineração de saídas desejáveis.
Mintagem com prova de trabalho. A mintagem utiliza rescueCat(bytes32 seed), que calcula catIdHash = keccak256(seed, searchSeed) e requer que catIdHash[0] | catIdHash[1] | catIdHash[2] == 0x0. Na prática, os salvadores tiveram que procurar seeds fora da cadeia até que um hash com três bytes iniciais zero fosse encontrado, e então submeter essa seed na cadeia. Isso tornou a geração sem permissões e descobrível por mineradores, em vez de pré-gerada pelos criadores.
Derivação de ID determinística na mintagem. Para sementes válidas, o contrato atribui catId = bytes5((catIdHash & 0xffffffff) << 216), ou seja, os 32 bits baixos do hash deslocados para um identificador de 5 bytes, com o byte alto reservado para a flag "genesis". A unicidade é imposta na blockchain com require(catOwners[catId] == 0x0).
Gerador canónico ancorado na cadeia. O contrato armazena imageGenerationCodeMD5 para que os clientes possam verificar se o código de renderização que utilizam corresponde ao gerador canónico a que o contrato se refere. Este é um âncora criptográfica na cadeia para o renderizador.
"Receita" compacta e generativa totalmente armazenada na cadeia. O ID Hex de 5 bytes de cada MoonCat codifica sua receita completa: direção, inversão de paleta, padrão de pelagem, expressão facial, pose e cor base. O segundo byte ("k") multiplexa pose/face/pelagem/direção, e os últimos três bytes fornecem o RGB base que é expandido em uma paleta.
Abrir, renderizador de referência. O gerador oficial mooncatparser mapeia deterministicamente o ID de 5 bytes em um array de pixels 2D. Qualquer pessoa pode re-renderizar independentemente um MoonCat apenas com o ID on-chain, garantindo a verificabilidade a longo prazo.
Distribuição controlada pelo utilizador na mintagem. O original "Scanner" permitia aos utilizadores minerar sementes localmente e decidir se deveriam submeter um resgate, o que fez com que as estatísticas de raridade e as distribuições de traços emergissem da participação aberta em vez de uma distribuição pré-computada.
Mercado totalmente on-chain e nomeação pré-ERC-721. O contrato de 2017 inclui um mercado on-chain (makeAdoptionOffer, acceptAdoptionOffer, requests) e nomeação imutável via nameCat, demonstrando uma mint generativa autocontida, além de camada de proveniência e troca em um único sistema.
Mais tarde, a solidificação para imagens totalmente on-chain. Em 2022, contratos suplementares (MoonCatSVGs, MoonCatColors, MoonCatTraits) foram implementados para que a própria cadeia possa retornar o SVG de qualquer MoonCat diretamente da sua receita on-chain, eliminando as dependências de imagens off-chain enquanto preserva o modelo generativo original de 2017.
Em suma, os MoonCats foram pioneiros na cunhagem generativa descoberta pelo usuário, com sementes em cadeia, bloqueio por prova de trabalho, em agosto de 2017, com um pipeline de renderização verificável ancorado por um hash no contrato e uma receita compacta em cadeia por token.
23,93K