Oyun Kitabı
BareToken : émissions et abus contrôlés par NFT (jeton non fongible) (Baretoken Emissions Et Abus Controles Par Nft Jeton Non Fongible)
Réclamation NFT de style Hashmasks : ~10e18/jour, INITIAL_ALLOTMENT, émission sur 10 ansFin. Open mint surface and abuse scenarios.
Protocole de marché Bare Crypto Solidity
Partie 5 de 5
BareNFT sans Hardhat/Foundry avec Remix IDE et OpenZeppelin v4.1 Importations GitHub, réserve, enchères au Royaume-Uni et architecture d'émission BareToken contrôlée par NFT ; ADR, faible RNG et compromis entre les autorités d’urgence.
Détenez des NFT (Non-Fungible Token), revendiquez vos émissions quotidiennes – mais les portes sont-elles ouvertes ?
BareToken est un moteur d'émissions ERC20 de type Hashmasks : émissionPerDay ~ 10 * 10^18, INITIAL_ALLOTMENT 1830e18, émissionEnd = start + 10 ans. réclamer (tokenIndices) des menthes accumulées uniquement pour le propriétaire de BareNFT ; _lastClaim par tokenId est suivi. Cependant, ouvrir la menthe (adresse, valeur), confondre les rôles de dépensier/brûleur et brûler via l'adresse (cela) ouvre l'économie des émissions à des abus.```text BareNFT ownerOf(tokenId) == msg.sender | accumulated(tokenId) lastClaim → now * emissionPerDay / day + INITIAL_ALLOTMENT (first claim) | claim([ids]) → _mint ERC20 | abuse doors: public mint(), role confusion, burn quirk
## Concepts à la première mention```text
📦 NFT-gated emission
ERC20 claim hakkının ERC721 sahipligine baglanmasi.
📦 INITIAL_ALLOTMENT
Ilk claim'de eklenen sabit bonus (1830e18); pre-reveal carpanina bagli.
📦 emissionEnd
start + 86400*365*10; on yillik emisyon ufku.
📦 Per-token lastClaim
Her NFT indeksinin kendi emisyon saat dilimini tasimasi.
```Le modèle de style Hashmasks connecte les flux de trésorerie au NFT ; La monnaie publique ou un mauvais rôle gâchent l'économie avec un seul impôt.
## ADR : émissions sur 10 ans de type Hashmasks
Décision : BareToken devrait accumuler ~10e18 par jour pour les détenteurs de NFT et le créer avec une réclamation ; ajoutez la première revendication INITIAL_ALLOTMENT ; Que les émissions cessent dans 10 ans. Raison : incitation à la détention de collection et courbe d’offre de jetons à long terme. Prix : le contrat est strictement lié à l'adresse BareNFT (setBareAddress une fois) et aux informations d'identification de propriété ; L'interface IBareToken.isMintedBeforeReveal est attendue côté collection.
## Comptabilité et diagramme des réclamations
accumulé multiplie les secondes entre lastClaim (ou émissionStart) et maintenant par émissionPerDay / SECONDS_IN_A_DAY ; Zéro après émissionFin. INITIAL_ALLOTMENT (+ PRE_REVEAL_MULTIPLIER) est ajouté dans la première revendication. Claim vérifie l'index et le propriétaire en double dans le tableau, met à jour _lastClaim et frappe le montant total.```text
emissionStart ──10y──> emissionEnd
per NFT:
lastClaim[i]
|
v
qty = dt * 10e18 / 86400
+ (first ? 1830e18 : 0)
claim(ids) → mint to holder
```## Scénarios d'abus et de performances
La Monnaie publique (à, valeur) peut imprimer l'offre sans contrôle de rôle, brisant instantanément le modèle d'émission. isSpender regarde MINTER_ROLE mais _addSpender écrit BURNER_ROLE ; La sémantique des rôles est compliquée. burn crée l'adresse du compte (this) - il ne brûle pas le solde de l'utilisateur, il cible le solde du contrat. Abus : avec une propriété de type emprunt flash, la fenêtre de réclamation (achat-réclamation-vente dans le même bloc) peut manquer l'accumulation avant de réinitialiser la dernière réclamation ou rompre les hypothèses de l'interface utilisateur. Performance : un grand tableau de tokenIndices et un contrôle en double O(n^2) gonflent le gaz de réclamation ; Les revendications collectives des baleines pourraient approcher la limite du bloc.
## Les confrontations les plus déroutantes de cet épisode```text
❌ NFT-gated claim = arz guvenli
✓ Public mint veya yanlis rol varsa gated claim ekonomiyi kurtaramaz
❌ INITIAL_ALLOTMENT her claim'de tekrar eklenir
✓ Yalniz lastClaim == emissionStart iken bir kez eklenir
❌ burn(msg.sender bakiyesini yakar)
✓ Bu implementasyonda burn hesabi address(this)'e cevrilir — quirky ve tehlikeli
Liste de contrôle de votre propre système
- Qui peut appeler mint (adresse, valeur), y a-t-il un rôle ?
- SetBareAddress est-il verrouillé une fois ou peut-il être modifié ?
- Comment INITIAL_ALLOTMENT est-il affiché dans l'interface utilisateur lors de la première réclamation ?
- Comment le scénario d'achat-réclamation-vente NFT sur le même bloc affecte-t-il lastClaim ?
- Quel est le coût du gaz de contrôle en double dans la réclamation des grands tokenIndices ?
Choses à retenir de cette section
- BareToken est une émission quotidienne NFT de type Hashmasks + ADR sur un horizon de 10 ans.
- Les bizarreries de la menthe publique et du rol/burn ne suffisent pas à elles seules à sécuriser le modèle fermé.
- L'abus de gaz de réclamation et de propriété de flash doit être testé dans le cadre de la conception des émissions.
L'émission capillaire est une histoire ; S’il y a une porte ouverte, l’histoire se termine par une seule transaction.
FAQ
Frequently asked questions
Qu’est-ce que l’émission contrôlée NFT ?
Lier le droit de revendication ERC20 à la propriété ERC721.
Qu'est-ce que INITIAL_ALLOTMENT ?
Bonus fixe ajouté à la première réclamation (1830e18) ; Cela dépend de la carpanine pré-révélée.
« Réclamation NFT-gated = approvisionnement sécurisé » est-il vrai ?
S’il y a une monnaie publique ou un mauvais rôle, les réclamations fermées ne peuvent pas sauver l’économie.
Que corrige cette section ?
Cette section corrige l'ADR d'émission contrôlé par NFT, l'horizon à 10 ans et les scénarios d'abus. BareToken est un moteur d'émissions ERC20 de type Hashmasks : émissionPerDay ~ 10 * 10^18, INITIAL_ALLOTMENT 1830e18, émissionEnd = start + 10 ans. réclamer (tokenIndices) des menthes accumulées uniquement pour le propriétaire de BareNFT ; _lastClaim par tokenId est suivi. Cependant, ouvrir la menthe (adresse, valeur), confondre les rôles de dépensier/brûleur et brûler via l'adresse (cela) ouvre l'économie des émissions à des abus.
Principes d'ingénierie appris
- L'ADR d'émission contrôlée par NFT doit couvrir les surfaces de menthe/brûlure/rôle dans le même modèle de menace.
- L'allocation initiale et le tarif journalier doivent être affichés avec la même formule dans l'interface utilisateur et la comptabilité en chaîne.
- Les scénarios de réclamation concernant la taille du lot et la propriété doivent être rédigés sous forme de tests de performances et d'abus.
Continuer la lecture
Continuer la lecture
Suivant en série
BareNFTAucure : réclamation, remboursement et pouvoirs d'urgence
Enchères britanniques : offre, réclamation, annulation, retour sous réserve et compromis de transfert d'urgence du propriétaire/transferFunds.
Même série
BareNFTReserve : Escrow, RandomBuy et RNG faible
CreateNewListing, buy et randomBuy réservés au propriétaire — keccak256 (revealNonce, block.difficulty, msg.sender) % 3.…
Même série
BareNFT : Rôles, Pausable et URI de jeton
BareNFT propose un mint (to, id, uri) contrôlé par rôle avec ERC721 Enumerable/Burnable/Pausable et AccessControl. URI par jeton et compromis de pause.