Oyun Kitabı

BareToken: NFT (Non-Fungible Token)-Gated Emisyon ve Istismar (Baretoken Nft Gated Emisyon Ve İstismar)

Hashmasks-tarzi NFT-gated claim: ~10e18/gun, INITIAL_ALLOTMENT, 10 yillik emissionEnd. Acik mint yuzeyi ve abuse senaryolari.

Bare Crypto Solidity Marketplace Protokolu

Bolum 5 / 5

Remix IDE ve OpenZeppelin v4.1 GitHub importlariyla Hardhat/Foundry olmadan BareNFT, rezerv, Ingiliz artirmali acik artirma ve NFT-gated BareToken emisyon mimarisi; ADR, zayif RNG ve acil yetki trade-offlari.

Bare Crypto Solidity marketplace protocol diagram

NFT (Non-Fungible Token) tut, gunluk emisyon claim et — ama kapilar acik mi?

BareToken, Hashmasks-benzeri bir ERC20 emisyon motorudur: emissionPerDay ~ 10 * 10^18, INITIAL_ALLOTMENT 1830e18, emissionEnd = start + 10 yil. claim(tokenIndices) yalniz BareNFT sahibi icin accumulated mint eder; _lastClaim per tokenId takip edilir. Ancak acik mint(address,value), kafasikaristik spender/burner rolleri ve burn'un address(this) uzerinden calismasi, emisyon ekonomisini abuse'a acar.

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

Bu bolum, NFT-gated emisyon ADR'sini, 10 yillik ufku ve abuse senaryolarini sabitler.

Kavramlar ilk geçtiği yerde

📦 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.

Hashmasks-tarzi model NFT'ye nakit akisi baglar; public mint veya yanlis rol, ekonomiyi tek tx ile bozar.

ADR: Hashmasks-tarzi 10 yillik emisyon

Karar: BareToken, NFT sahiplerine gunluk ~10e18 biriktirip claim ile mint etsin; ilk claim INITIAL_ALLOTMENT eklesin; emisyon 10 yilda bitsin. Gerekce: koleksiyon tutma tesviki ve uzun vadeli token arz egrisi. Bedel: sozlesme, BareNFT adresine (setBareAddress bir kez) ve sahiplik dogrularina siki bagli; IBareToken.isMintedBeforeReveal arayuzu koleksiyon tarafinda beklenir.

Claim muhasebesi ve diyagram

accumulated, lastClaim (veya emissionStart) ile simdi arasindaki saniyeleri emissionPerDay / SECONDS_IN_A_DAY ile carpar; emissionEnd'den sonrasi sifir. Ilk claim'de INITIAL_ALLOTMENT (+ PRE_REVEAL_MULTIPLIER) eklenir. claim dizi icinde duplicate index ve ownerOf kontrolleri yapar, _lastClaim gunceller, toplam miktari mint eder.

emissionStart ──10y──> emissionEnd
per NFT:
  lastClaim[i]
     |
     v
  qty = dt * 10e18 / 86400
     + (first ? 1830e18 : 0)
claim(ids) → mint to holder

Abuse ve performans senaryolari

Public mint(to, value) rol kontrolu olmadan arz basabilir — emisyon modelini aninda kirar. isSpender MINTER_ROLE'e bakar ama _addSpender BURNER_ROLE yazar; rol semantiği karisik. burn, account'u address(this) yapar — kullanici bakiyesini yakmaz, kontrat bakiyesini hedefler. Abuse: flash-borrow tarzı sahiplik ile claim penceresi (ayni blokta al-claim-sat) lastClaim'i sifirlamadan onceki birikimi kacirabilir veya UI varsayimlarini bozar. Performans: buyuk tokenIndices dizisi ve O(n^2) duplicate kontrolu claim gazini sisirir; whale toplu claim'leri blok limitine yaklasabilir.

Bu bölümde en çok karışan eşleştirmeler

❌ 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

Kendi sisteminizi denetleme listesi

  1. mint(address,value) kimlerce cagrilabilir, rol var mi?
  2. setBareAddress bir kez mi kilitli, yoksa degistirilebilir mi?
  3. Ilk claim'de INITIAL_ALLOTMENT UI'da nasil gosteriliyor?
  4. Ayni blokta NFT al-claim-sat senaryosu lastClaim'i nasil etkiler?
  5. Buyuk tokenIndices claim'inde duplicate kontrol gaz maliyeti ne?

Bu bölümden aklında kalması gerekenler

  1. BareToken, Hashmasks-tarzi NFT-gated gunluk emisyon + 10 yillik ufuk ADR'sidir.
  2. Public mint ve rol/burn quirk'leri, gated modeli tek basina guvence altina almaz.
  3. Claim gaz ve flash-ownership abuse, emisyon tasariminin parçasi olarak test edilmelidir.

Kapili emisyon bir hikayedir; acik mint kapisi varsa hikaye tek transaction'da biter.

SSS

Sık sorulan sorular

NFT-gated emission nedir?

ERC20 claim hakkının ERC721 sahipligine baglanmasi.

INITIAL_ALLOTMENT nedir?

Ilk claim'de eklenen sabit bonus (1830e18); pre-reveal carpanina bagli.

"NFT-gated claim = arz guvenli" doğru mu?

Public mint veya yanlis rol varsa gated claim ekonomiyi kurtaramaz

Bu bölüm neyi sabitler?

Bu bolum, NFT-gated emisyon ADR'sini, 10 yillik ufku ve abuse senaryolarini sabitler. BareToken, Hashmasks-benzeri bir ERC20 emisyon motorudur: emissionPerDay ~ 10 * 10^18, INITIAL_ALLOTMENT 1830e18, emissionEnd = start + 10 yil. claim(tokenIndices) yalniz BareNFT sahibi icin accumulated mint eder; _lastClaim per tokenId takip edilir. Ancak acik mint(address,value), kafasikaristik spender/burner rolleri ve burn'un address(this) uzerinden calismasi, emisyon ekonomisini abuse'a acar.

Ogrenilen Muhendislik Prensipleri

  • NFT-gated emisyon ADR'si mint/burn/role yuzeylerini ayni tehdit modelinde kapsamalidir.
  • Ilk allotment ve gunluk oran, UI ve on-chain muhasebede ayni formulle gosterilmelidir.
  • Claim batch boyutu ve ownership-flash senaryolari performans ve abuse testi olarak yazilmalidir.

Okumaya devam et

Okumaya devam et

Seride sonraki yazi

Ayni seriden

Ayni seriden

Paylaş