MoonCats は、オンチェーンの検証可能なアルゴリズムの下でユーザーによってミント時に生成されるという厳密で技術的な意味でのイーサリアム上で最も初期のジェネレーティブ アートです。時代。その理由🧵は次のとおりです
2017 年のオンチェーン展開。MoonCatRescue コントラクトは 2017 年 8 月 9 日に検証され、ERC-721 およびほとんどの NFT インフラストラクチャよりも前です。
オンチェーン、アクティベーション時間のランダム性。所有者がactivate()を呼び出すと、コントラクトはsearchSeed = block.blockhash(block.number - 1)にコミットしますが、これはアクティベーションの直前までわかりません。これにより、望ましい出力の事前計算または事前採掘が防止されます。
プルーフ・オブ・ワーク・ゲート・ミント。ミントは rescueCat(bytes32 seed) を使用し、catIdHash = keccak256(seed, searchSeed) を計算し、 catIdHash[0] |catIdHash[1] |catIdHash[2] == 0x0です。実際には、レスキューは先頭の 3 バイトのハッシュが見つかるまでオフチェーンでシードを検索し、そのシードをオンチェーンに送信する必要がありました。これにより、生成は作成者によって事前に生成されるのではなく、許可不要でマイナーが発見できるようになりました。
mintにおける決定論的ID導出有効なシードの場合、コントラクトは catId = bytes5((catIdHash & 0xffffffff) << 216) を割り当てます。つまり、ハッシュの下位 32 ビットが 5 バイトの識別子にシフトされ、上位バイトは「ジェネシス」フラグ用に予約されます。一意性は、require(catOwners[catId] == 0x0) を使用してオンチェーンで強制されます。
オンチェーンに固定された正規ジェネレーター。コントラクトには imageGenerationCodeMD5 が格納されるため、クライアントは使用するレンダリング コードがコントラクトが参照する正規ジェネレーターと一致することを確認できます。これはレンダラーのオンチェーン暗号化アンカーです。
コンパクトで生成的な「レシピ」は、完全にオンチェーンに保存されます。各 MoonCat の 5 バイトの Hex ID は、方向、パレットの反転、毛皮のパターン、表情、ポーズ、ベース カラーなど、完全なレシピをエンコードします。2 番目のバイト ("k") はポーズ/顔/ファー/フェーシングを多重化し、最後の 3 バイトはパレットに展開される基本 RGB を提供します。
参照レンダラーを開きます。公式のジェネレータ mooncatparser は、5 バイト ID を 2D ピクセル配列に決定論的にマッピングします。誰でもオンチェーン ID のみから MoonCat を独立して再レンダリングできるため、長期的な検証可能性が確保されます。
ミントでのユーザー制御の配布。オリジナルの「スキャナー」では、ユーザーがローカルでシードをマイニングし、レスキューを提出するかどうかを決定できるため、レアリティの統計と特性の分布は、事前に計算されたドロップではなく、オープンな参加から浮かび上がりました。
ERC-721 より前、完全にオンチェーンの市場と命名。2017年の契約には、オンチェーンマーケットプレイス(makeAdoptionOffer、acceptAdoptionOffer、requests)とnameCatによる不変の命名が含まれており、自己完結型のジェネレーティブミントと出所および交換レイヤーを1つのシステムで実証しています。
その後、完全にオンチェーンのイメージに強化されます。2022 年には、補足コントラクト (MoonCatSVG、MoonCatColors、MoonCatTraits) が展開され、チェーン自体がオンチェーン レシピから直接 MoonCat の SVG を返すことができ、元の 2017 年の生成モデルを維持しながらオフチェーンの画像依存関係が排除されました。
要約すると、MoonCatsは2017年8月に、コントラクト内のハッシュとトークンごとのコンパクトなオンチェーンレシピによって固定された検証可能なレンダリングパイプラインを使用して、オンチェーンシード、プルーフオブワークゲート、ユーザー発見のジェネレーティブミンティングのパイオニアとなりました。
23.94K