Playbook
BareToken: Emisión y abuso controlados por NFT (token no fungible) (Baretoken Emision Y Abuso Controlados Por Nft Token No Fungible)
Reclamación cerrada por NFT estilo Hashmasks: ~10e18/día, INITIAL_ALLOTMENT, fin de emisión de 10 años. Abra la superficie de menta y los escenarios de abuso.
Protocolo de mercado de solidez criptográfica desnuda
Parte 5 de 5
BareNFT sin Hardhat/Foundry con Remix IDE y OpenZeppelin v4.1 Importaciones de GitHub, reserva, subasta en el Reino Unido y arquitectura de emisión BareToken controlada por NFT; ADR, RNG débil y compensaciones de autoridad de emergencia.
Mantenga NFT (token no fungible), reclame emisiones diarias, pero ¿están las puertas abiertas?
BareToken es un motor de emisiones ERC20 similar a Hashmasks: emitPerDay ~ 10 * 10^18, INITIAL_ALLOTMENT 1830e18, emitEnd = inicio + 10 años. reclamar (tokenIndices) mentas acumuladas solo para el propietario de BareNFT; Se sigue _lastClaim por tokenId. Sin embargo, abrir la menta (dirección, valor), confundir los roles de gastador/quemador y quemar la ejecución a través de la dirección (esto) abre la economía de emisiones al abuso.```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
## Conceptos en la primera mención```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.
```El modelo estilo Hashmasks conecta el flujo de caja con NFT; La ceca pública o el papel equivocado arruinan la economía con un solo tx.
## ADR: Emisiones a 10 años al estilo Hashmasks
Decisión: BareToken debería acumular ~10e18 por día para los titulares de NFT y acuñarlo con un reclamo; agregue el primer reclamo INITIAL_ALLOTMENT; Que se acaben las emisiones en 10 años. Motivo: incentivo de retención de colecciones y curva de oferta de tokens a largo plazo. Precio: el contrato está estrictamente vinculado a la dirección BareNFT (establezcaBareAddress una vez) y las credenciales de propiedad; Se espera la interfaz IBareToken.isMintedBeforeReveal en el lado de la colección.
## Contabilidad y diagrama de reclamaciones
acumulado multiplica los segundos entre lastClaim (o emisiónStart) y ahora por emisiónPerDía/SECONDS_IN_A_DAY; Cero después del fin de la emisión. INITIAL_ALLOTMENT (+ PRE_REVEAL_MULTIPLIER) se agrega en el primer reclamo. Claim comprueba si hay índices duplicados y propietario de en la matriz, actualiza _lastClaim y acuña el importe total.```text
emissionStart ──10y──> emissionEnd
per NFT:
lastClaim[i]
|
v
qty = dt * 10e18 / 86400
+ (first ? 1830e18 : 0)
claim(ids) → mint to holder
```## Escenarios de abuso y rendimiento
La menta pública (a, valor) puede imprimir suministro sin control de roles, rompiendo instantáneamente el modelo de emisión. isSpender mira MINTER_ROLE pero _addSpender escribe BURNER_ROLE; La semántica de roles es complicada. burn crea la dirección de la cuenta (this): no quema el saldo del usuario, sino que apunta al saldo del contrato. Abuso: con la propiedad de estilo préstamo rápido, la ventana de reclamo (compra-reclamo-venta en el mismo bloque) puede perder la acumulación antes de restablecer el último reclamo o romper los supuestos de la interfaz de usuario. Rendimiento: la gran matriz de tokenIndices y el control duplicado O(n^2) inflan el gas reclamado; Los reclamos colectivos de ballenas pueden acercarse al límite del bloque.
## Los enfrentamientos más confusos de este episodio.```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
Lista de verificación de su propio sistema
- ¿Quién puede llamar mint (dirección, valor)? ¿Existe alguna función?
- ¿setBareAddress se bloquea una vez o se puede cambiar?
- ¿Cómo se muestra INITIAL_ALLOTMENT en la interfaz de usuario en el primer reclamo?
- ¿Cómo afecta a lastClaim el escenario de compra-reclamación-venta de NFT en el mismo bloque?
- ¿Cuál es el costo del gas de control duplicado en el reclamo de índices simbólicos grandes?
Cosas para recordar de esta sección
- BareToken es una emisión diaria controlada por NFT estilo Hashmasks + ADR con un horizonte de 10 años.
- Las peculiaridades públicas de acuñación y rol/quema por sí solas no aseguran el modelo cerrado.
- Se debe probar el abuso de propiedad del gas y de la propiedad inflamable como parte del diseño de emisiones.
La emisión capilar es una historia; Si hay una puerta abierta, la historia termina en una sola transacción.
FAQ
Frequently asked questions
¿Qué es la emisión controlada por NFT?
Vincular el derecho de reclamo ERC20 a la propiedad ERC721.
¿Qué es INITIAL_ALLOTMENT?
Bonificación fija agregada en el primer reclamo (1830e18); Depende de la carpanina previa a la revelación.
¿Es cierto "afirmación controlada por NFT = suministro seguro"?
Si existe una casa de moneda pública o un papel equivocado, el reclamo cerrado no puede salvar la economía.
¿Qué soluciona esta sección?
Esta sección fija el ADR de emisiones controlado por NFT, el horizonte de 10 años y los escenarios de abuso. BareToken es un motor de emisiones ERC20 similar a Hashmasks: emitPerDay ~ 10 * 10^18, INITIAL_ALLOTMENT 1830e18, emitEnd = inicio + 10 años. reclamar (tokenIndices) mentas acumuladas solo para el propietario de BareNFT; Se sigue _lastClaim por tokenId. Sin embargo, abrir la menta (dirección, valor), confundir los roles de gastador/quemador y quemar la ejecución a través de la dirección (esto) abre la economía de emisiones al abuso.
Principios de ingeniería aprendidos
- El ADR de emisión controlado por NFT debe cubrir superficies mint/burn/role en el mismo modelo de amenaza.
- La asignación inicial y la tarifa diaria deben mostrarse con la misma fórmula en la interfaz de usuario y en la contabilidad en cadena.
- Los escenarios de tamaño de lote de reclamaciones y de propiedad inmediata deben escribirse como pruebas de rendimiento y abuso.
Continuar leyendo
Continuar leyendo
Siguiente en la serie
BareNFTAuction: Reclamación, Reembolso y Poderes de Emergencia
Subasta británica: oferta, reclamación, cancelación, devolución bajo reserva y transferencia de emergencia del propietario.…
Misma serie
BareNFTReserve: depósito en garantía, compra aleatoria y RNG débil
CreateNewListing, buy y randomBuy exclusivos para el propietario: keccak256(revealNonce, block.difficulty, msg.sender) % 3.…
Misma serie
BareNFT: Roles, Pausable y Token URI
BareNFT ofrece mint (a, id, uri) controlado por roles con ERC721 Enumerable/Burnable/Pausable y AccessControl. URI por token y compensaciones de pausa.