ERC 1155 NFT nutika lepingu turbeanalüüs

ERC 1155 NFT nutika lepingu turbeanalüüs

ERC 1155 NFT nutika lepingu PlatoBlockchain Data Intelligence turbeanalüüs. Vertikaalne otsing. Ai.

Lugemise aeg: 5 protokoll

Olete kindlasti kuulnud krüptovaluuta žetoonidest. Erinevad žetoonid mängivad web3 ökosüsteemis olulist rolli. Need märgid esindavad krüptovaluuta omandiõigust, rikkust, usaldusväärsust ja autoriteeti. Lõbus on see, et saate teha ka oma krüptovaluuta märgi. 

Need märgid on nutikad lepingud, mis hõlmavad erinevaid funktsioone erinevate toimingute jaoks, nagu ülekanne, saldokontroll jne. Saate luua oma märgi, luues selle jaoks nutika lepingu. Sellegipoolest on ERC 20 selleks, et tagada teie märgi turvalisus ja luua sellega usaldustunne nutika lepingu standard mida on soovitatav järgida asendatavate žetoonide loomisel, ja ERC 721 on nutika lepingu standard, mida kasutatakse mitteasendatavate žetoonide (NFT-de) loomiseks.

ERC 20 ja ERC 721 on loa loomiseks laialdaselt aktsepteeritud nutikad lepinguprotokollid. Need pakuvad žetoonidele turvalise ja usaldusväärse keskkonna. Ja need protokollid täiustuvad ja paranevad. Samm selles suunas viib žetoonide jaoks uue ERC 1155 nutika lepinguprotokolli loomiseni. Vaatame, mis see on.

1. Mis on ERC 1155?

Kõik ERC-d, nagu 20 ja 721, on lihtsalt standardid nutikate lepingute loomiseks, mis sobivad NFT-de jaoks erinevate tingimustega. Meil on ERC 721 ja asendatavad märgid, nagu USDT ja DAI, järgivad ERC 20 standardeid. ERC 1155 on üks standard, mis hõlmab ERC 20 ja ERC 721 funktsioone ja omadusi.

Oletame, et soovite luua programmi, milles loote mitu kaupa. Näiteks soovite luua märgi nimega kuld, teise märgi nimega hõbe ja ühe kuninga ning loogika ütleb, et see, kellel on rohkem kulda ja hõbedat, on kuningas. Kuningas saab olla ainult üks. See on lihtne protokoll, kuid selle loomiseks peate rakendama 3 lepingut ainult varade jaoks, üks kulla märgi, teine ​​hõbeda ja üks kuninga jaoks, mis on ERC 721. Aga mis siis, kui saate kasutada lihtsalt üks leping, kus on loetletud kõik need erinevad märgid?

See on üks selline probleem, mida ERC 1155 lahendab. Te ei pea iga plokiahelas soovitud märgi jaoks lepingut juurutama. See oli üks selline ERC 1155 lepingu näide. Arvake ära, kuhu vajame seda tüüpi süsteemi, millel on mitu vara, millest osa on asendatav, osa mitteasendatav. Vastus on web3 mängud. ERC 1155 annab Web3 mängude arendajatele mastaapsuse ja ahelasiseste tehingute sujuva arendamise.

1.1 Token ID-d ERC 1155-s

Peate olema teadlik, kuidas saab kontrollida erinevate ERC 20 žetoonide saldot, võite lihtsalt helistada saldo(aadress _omanik) funktsiooni ja saate teada, kui palju märke sellel aadressil on. Kuid ERC 1155 tegeleb erinevate žetoonidega, seega peame andma erinevatele žetoonidele erinevad ID-d. Peaaegu iga žetoonidega seotud funktsioon sisaldab vähemalt kahte parameetrit: tokenId (vara, mille kohta soovite küsida) ja aadressi, mille kohta soovite teada saada.

Näiteks oletame, et lepingul on 3 märki, kuld, hõbe ja kuningas. Et teada saada, kui palju kulda konkreetsel aadressil selles protokollis on, võite kasutada funktsiooni balanceOf(aadress _omanik, unint256 _id) nutikal lepingul. Oletame, et kulla tokenId on määratud 1. Siis saate helistada saldo(0x4Bf9DeCE75Bc7C4a9054d5b3BB13D53543eE4096, 1).

2 Aruka lepingu ERC 1155 auditeerimisjuhised

ERC 1155 on olnud kasutusel juba mõnda aega ja mõned funktsioonid pole tavalises ERC 20 või ERC 721 protokollis saadaval, näiteks partiiedastus. Samuti on ERC 1155 turul vähem levinud, mistõttu on see valdkond paljude arendajate jaoks veidi vähem uuritud. QuillAudits jagab olulisi teadmisi protokollide kohta, mis otsivad ERC 1155 BUIDL-i, et nad saaksid end kaitstes aidata luua turvalisemat web3 ökosüsteemi. 

2.1 ERC 1155 vastuvõtja liides

Kui meie ERC 1155 leping kannab varad üle mõnele muule lepingule, mis on üldiselt web3 mänguprotokolli nõue, on märkide edukaks tehinguks OLULINE, et vastuvõtulepingus oleks ERC1155 vastuvõtja liides.

Kaks funktsiooni, mis kuuluvad ERC 1155 vastuvõtjaliidese alla, on järgmised:

  • onERC1155 Vastu võetud (operaator, saatja, ID, väärtus, andmed)
  • onERC1155BatchReceived(operaator, alates, ID, väärtused, andmed)

Mõlemal funktsioonil on peaaegu sarnane funktsionaalsus, ainsaks erinevuseks on see, et viimane on see, et kui tegeleme korraga rohkem kui ühe tehinguga, seega on nimipartii parameetrite ja tagastusväärtuste vahel väike erinevus. Kuid siin räägime ainult onERC1155Recievedist. 

Seda funktsiooni EI TOHI kutsuda väljapoole rahapaja või ülekandeprotsessi. Ülekande vastuvõtmiseks peab see tagastama bytes4(keccak256(“onERC1155Received(address,address,uint256,uint256,bytes)”), kui ülekanne on lubatud.

Vaadates parameetreid:

  1. operaator:- edastuse algatanud aadress (st sõnum.saatja) 
  2. from:- Aadress, millel varem luba kuulus
  3. id:- edastatava märgi ID 
  4. väärtus: – ülekantavate žetoonide arv 
  5. andmed: - täpsustamata vorminguga lisaandmed 

2.2 Approve() funktsiooni pole?

Kui olete kunagi töötanud ERC 20 või ERC 721-ga, oleksite kohanud funktsiooni kinnitamine(), mis võimaldab mõnel aadressil võtta omaniku saldost kinnitatud märgid. Näiteks kui A soovib B-l heaks kiita 100 DAI märgi võtmist, saab A aktiveerida kinnitamisfunktsiooni, öeldes, et B-l on õigus 100 DAI-märgile ja hiljem saab B selle summaga tehingu teha.

Kuid ERC 1155-l pole heaks kiitma funktsioon ühe märgi jaoks. Meil on setApprovalForAll (aadressi operaator, bool kinnitatud) funktsioon, mille kutsub välja omanik ja mis võtab sisse aadressiparameetri operaatori, mis on kulutaja aadress või aadress, mille jaoks tahame oma märgid kinnitada. Niisiis, me ei saa helistada heaks kiitma funktsiooni või andke heakskiit ühele märgile meie ERC 1155 žetoonide loendist, kuid selle asemel kinnitatakse kogu loa juurdepääs korraga. Arendusmeeskond peab sellest teadlik olema. Kui seda eiratakse, võib see kaasa tuua suuri kaotusi ja protokolli kahjustada.

2.3 Mõned regulaarsed kontrollid

Ülaltoodud kahes jaotises uuriti kahte ainulaadset ERC 1155-ga seotud kontrolli. Selles jaotises läbime mõned regulaarsed kontrollid, mis ei vaja väga põhjalikku selgitust.

  1. Pidage meeles ID-sid: - Igal välisel funktsioonil või liidesel, mis töötab ERC 1155-ga, peab selle sisendiks võtmiseks olema määratud märgi ID.
  2. Burn/Mint: – kui neid funktsioone kutsutakse, peavad need muutma ainult määratud loa ID saldot ja totalSupply.
  3. ERC 20 sarnasus: Paljud omadused on nagu ERC 20 märgi standard. Selles küsimuses aitab ka ERC 20 turvajuhiste läbimine.
  4. Taassisenemine: Nagu arutatud, kontrollib ERC 1155 edastusloogikas toetatud liidest. Seega võib olla erinevaid stsenaariume, mis võivad lõppeda tagasisissepääsu haavatavus. Soovitatav on hoida kehtivate funktsioonide juures mittetagasitõkkekaitse modifikaatorid.

3. järeldus

Web3 ökosüsteem näeb tavapäraste standardite pidevat arendamist, et parandada turvalisust ja funktsionaalsust. ERC 1155 on samm selles suunas. Kuid kui uued standardid avaldatakse, tekitab see teadmistes lünka, mis hõlmab protokollides mitte nii väga levinud standardeid, ja sellega kaasneb oht, et turvameetmete näidisruum jääb väiksemaks. See on siis, kui QuillAudits tuleb koos ekspertide meeskonnaga pildile. Me tegeleme, analüüsime ja leiame erinevaid viise, kuidas protokolli võidakse kahjustada ning kindlustame oma klientide protokolli uskumatute tulemustega. Külastage meie veebisaiti ja kindlustage oma Web3 projekt!

17 views

Ajatempel:

Veel alates Quillhash