MoonCats é a arte generativa mais antiga no Ethereum no sentido estrito e técnico de ser gerada na cunhagem por usuários sob um algoritmo verificável on-chain. Período. Aqui está o porquê🧵
Implantação on-chain em 2017. O contrato MoonCatRescue foi verificado em 9 de agosto de 2017, antecedendo o ERC-721 e a maioria das infraestruturas NFT.
Aleatoriedade em tempo de ativação on-chain. Quando os proprietários chamam activate(), o contrato é confirmado para searchSeed = block.blockhash(block.number - 1), que não pode ser conhecido até pouco antes da ativação. Isso evita a pré-computação ou pré-mineração de saídas desejáveis.
Casa da moeda fechada de prova de trabalho. A cunhagem usa rescueCat(bytes32 seed), que calcula catIdHash = keccak256(seed, searchSeed) e requer catIdHash[0] | catIdHash[1] | catIdHash[2] == 0x0. Na prática, os socorristas tiveram que procurar sementes off-chain até que um hash com três bytes zero iniciais fosse encontrado e, em seguida, enviar essa semente on-chain. Isso tornou a geração sem permissão e detectável pelo minerador, em vez de pré-gerada pelos criadores.
Derivação de ID determinística na casa da moeda. 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 o sinalizador "genesis". A exclusividade é imposta na cadeia com require(catOwners[catId] == 0x0).
Gerador canônico ancorado on-chain. O contrato armazena imageGenerationCodeMD5 para que os clientes possam verificar se o código de renderização que eles usam corresponde ao gerador canônico ao qual o contrato faz referência. Esta é uma âncora criptográfica on-chain para o renderizador.
"Receita" compacta e generativa totalmente armazenada na cadeia. O Hex ID de 5 bytes de cada MoonCat codifica sua receita completa: direção, inversão de paleta, padrão de pele, expressão facial, pose e cor base. O segundo byte ("k") multiplexa pose/face/fur/facing, 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 uma matriz de pixels 2D. Qualquer pessoa pode renderizar novamente um MoonCat de forma independente apenas a partir do ID on-chain, garantindo a verificabilidade a longo prazo.
Distribuição controlada pelo usuário na casa da moeda. O "Scanner" original permitia que os usuários minerassem sementes localmente e decidissem se enviariam um resgate, o que fez com que as estatísticas de raridade e as distribuições de características emergissem da participação aberta, em vez de uma queda pré-computada.
Pré-ERC-721, mercado e nomenclatura totalmente on-chain. O contrato de 2017 inclui um mercado on-chain (makeAdoptionOffer, acceptAdoptionOffer, requests) e nomenclatura imutável via nameCat, demonstrando uma cunhagem generativa independente, além de proveniência e camada de troca em um sistema.
Endurecimento posterior para imagens totalmente on-chain. Em 2022, contratos suplementares (MoonCatSVGs, MoonCatColors, MoonCatTraits) foram implantados para que a própria cadeia possa retornar o SVG para qualquer MoonCat diretamente de sua receita on-chain, eliminando dependências de imagem off-chain e preservando o modelo generativo original de 2017.
Em suma, a MoonCats foi pioneira na cunhagem generativa on-chain, com prova de trabalho e descoberta pelo usuário em agosto de 2017, com um pipeline de renderização verificável ancorado por um hash no contrato e uma receita compacta on-chain por token.
23,97K