Sicherheitsanalyse des ERC 1155 NFT Smart Contract

Sicherheitsanalyse des ERC 1155 NFT Smart Contract

Sicherheitsanalyse des ERC 1155 NFT Smart Contract PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Lesezeit: 5 Minuten

Sie müssen von Kryptowährungstoken gehört haben. Verschiedene Token da draußen spielen eine wichtige Rolle im Web3-Ökosystem. Diese Token repräsentieren Eigentum, Reichtum, Glaubwürdigkeit und Autorität in der Kryptowährung. Der lustige Teil ist, dass Sie auch Ihren Kryptowährungstoken erstellen können. 

Diese Token sind intelligente Verträge, die verschiedene Funktionen für verschiedene Aktionen wie Überweisung, Kontostandsprüfung usw. umfassen. Sie können Ihr Token erstellen, indem Sie einen intelligenten Vertrag dafür erstellen. Um sicherzustellen, dass Ihr Token sicher ist und ihm ein Gefühl des Vertrauens verleiht, ist ERC 20 die Smart-Contract-Standard Es wird empfohlen, diesen zu befolgen, um fungible Token zu erstellen, und ERC 721 ist der Smart-Contract-Standard, der zum Erstellen von nicht fungiblen Token (NFTs) verwendet wird.

ERC 20 und ERC 721 sind weithin akzeptierte intelligente Vertragsprotokolle für die Token-Erstellung. Sie bieten eine sichere und vertrauenswürdige Umgebung für die Token. Und diese Protokolle werden immer besser und besser. Ein Schritt in diese Richtung führt zur Schaffung eines neuen ERC 1155-Smart-Contract-Protokolls für Token. Mal sehen, was es ist.

1. Was ist ERC 1155?

Alle ERCs, wie 20 und 721, sind nur Standards für die Erstellung intelligenter Verträge, die zu unterschiedlichen Umständen für NFTs passen. Wir haben ERC 721 und fungible Token wie USDT und DAI folgen den ERC 20-Standards. ERC 1155 ist ein Standard, der Funktionen und Eigenschaften von ERC 20 und ERC 721 umfasst.

Angenommen, Sie möchten ein Programm erstellen, in dem Sie mehrere Waren erstellen. Sie möchten zum Beispiel einen Token namens Gold, einen weiteren Token namens Silber und einen König erstellen, und die Logik sagt, dass derjenige mit mehr Gold und Silber der König sein wird. Es kann nur einen König geben. Es ist ein einfaches Protokoll, aber um dies zu erstellen, müssen Sie 3 Verträge nur für Vermögenswerte bereitstellen, einen für einen Gold-Token, einen weiteren für Silber und einen für den König, der ERC 721 sein wird. Aber was, wenn Sie nur bereitstellen können ein Vertrag, der all diese verschiedenen Token auflistet?

Dies ist ein solches Problem, das ERC 1155 löst. Sie müssen nicht für jeden der Token, die Sie in der Blockchain haben möchten, einen Vertrag bereitstellen. Dies war ein solches Vertragsbeispiel für ERC 1155. Ratet mal, wo wir diese Art von System mit mehreren Assets brauchen, manche fungibel, manche nicht fungibel. Die Antwort ist Web3-Spiele. ERC 1155 ermöglicht Entwicklern von Web3-Spielen Skalierbarkeit und reibungslose Entwicklung für On-Chain-Transaktionen.

1.1 Token-IDs in ERC 1155

Sie müssen sich bewusst sein, wie das Guthaben in verschiedenen ERC 20-Token überprüft werden kann, Sie können einfach anrufen balanceOf(Adresse _Eigentümer) Funktion, und Sie können abrufen, wie viele Token diese Adresse enthält. Aber ERC 1155 befasst sich mit unterschiedlichen Token, also müssen wir unterschiedliche IDs für unterschiedliche Token bereitstellen. Fast jede Funktion, die sich auf Token bezieht, nimmt mindestens zwei Parameter auf, die TokenId (Asset, nach dem Sie sich erkundigen möchten) und die Adresse, über die Sie wissen möchten.

Nehmen wir zum Beispiel an, der Vertrag hat 3 Token, Gold, Silber und König. Um zu wissen, wie viel Gold eine bestimmte Adresse in diesem Protokoll hat, können Sie die Funktion balanceOf(Adresse _Eigentümer, uint256 _id) auf dem Smart Contract. Angenommen, die tokenId für Gold ist auf 1 festgelegt. Dann können Sie anrufen GleichgewichtVon(0x4Bf9DeCE75Bc7C4a9054d5b3BB13D53543eE4096, 1).

2 Prüfungsrichtlinien für Smart Contract ERC 1155

ERC 1155 gibt es schon seit einiger Zeit, und einige Funktionen sind im regulären ERC 20- oder ERC 721-Protokoll nicht verfügbar, wie z. B. die Stapelübertragung. Außerdem ist ERC 1155 auf dem Markt weniger verbreitet, wodurch dieser Bereich für viele Entwickler etwas weniger erforscht wird. QuillAudits teilt entscheidende Erkenntnisse für die Protokolle, die auf BUIDL auf dem ERC 1155 abzielen, damit sie dazu beitragen können, ein sichereres Web3-Ökosystem zu schaffen, indem sie sich selbst schützen. 

2.1 ERC 1155 Empfängerschnittstelle

Wenn unser ERC 1155-Vertrag Vermögenswerte an einen anderen Vertrag überträgt, was im Allgemeinen im Web3-Spielprotokoll erforderlich ist, ist es WICHTIG, die ERC1155-Empfängerschnittstelle im empfangenden Vertrag für eine erfolgreiche Transaktion der Token zu haben.

Zwei Funktionen, die unter die Empfängerschnittstelle ERC 1155 fallen, sind:-

  • onERC1155Received(Operator, von, ID, Wert, Daten)
  • onERC1155BatchReceived(Operator, from, ids, values, data)

Beide Funktionen haben eine fast ähnliche Funktionalität, der einzige Unterschied besteht darin, dass letztere darin besteht, dass, wenn wir es mit mehr als einer Transaktion gleichzeitig zu tun haben, daher der Name Batch, es einen kleinen Unterschied zwischen den Parametern und Rückgabewerten gibt. Aber hier werden wir nur über onERC1155Recieved sprechen. 

Diese Funktion DARF NICHT außerhalb eines Mint- oder Transferprozesses aufgerufen werden. Um die Übertragung zu akzeptieren, muss es bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)")) zurückgeben, wenn die Übertragung erlaubt ist.

Blick auf die Parameter: -

  1. operator:- Die Adresse, die die Übertragung initiiert hat (z. B. msg.sender) 
  2. from:- Die Adresse, die zuvor das Token besessen hat
  3. id:- Die ID des übertragenen Tokens 
  4. value:- Die Anzahl der übertragenen Token 
  5. data:- Zusätzliche Daten ohne festgelegtes Format 

2.2 Keine apply()-Funktion?

Wenn Sie jemals mit ERC 20 oder ERC 721 gearbeitet haben, sind Sie auf die Funktion „approve()“ gestoßen, die es einer Adresse erlaubt, die genehmigten Token aus dem Guthaben des Eigentümers zu nehmen. Wenn A beispielsweise B genehmigen möchte, 100 DAI-Token zu nehmen, kann A die Genehmigungsfunktion aufrufen und sagen, dass B Anspruch auf 100 DAI-Token hat, und später kann B eine Transaktion mit diesem Betrag durchführen.

Aber ERC 1155 hat keine genehmigen Funktion für ein einzelnes Token. Wir haben ein setApprovalForAll(Adressoperator, bool genehmigt) Funktion, die vom Eigentümer aufgerufen wird und einen Adressparameteroperator übernimmt, der die Adresse des Spenders oder desjenigen ist, für den wir unsere Token genehmigen möchten. Wir können also keine anrufen genehmigen Funktion oder Genehmigung für ein einzelnes Token aus unserer ERC 1155-Tokenliste erteilen, aber stattdessen wird der gesamte Tokenzugriff auf einmal genehmigt. Dessen muss sich das Entwicklungsteam bewusst sein. Wenn dies ignoriert wird, kann dies zu massiven Verlusten führen und das Protokoll gefährden.

2.3 Einige regelmäßige Kontrollen

In den beiden obigen Abschnitten wurden zwei der einzigartigen ERC 1155-bezogenen Prüfungen untersucht. In diesem Abschnitt werden wir einige regelmäßige Überprüfungen durchführen, die keiner sehr tiefen Erklärung bedürfen.

  1. Beachten Sie die IDs:- Jede externe Funktion oder Schnittstelle, die mit dem ERC 1155 funktioniert, muss die Token-ID angegeben haben, um diese als Eingabe zu verwenden.
  2. Burn/Mint: – Wann immer diese Funktionen aufgerufen werden, müssen sie nur den Kontostand und die Gesamtversorgung für die angegebene Token-ID ändern.
  3. ERC 20-Ähnlichkeit: Viele Eigenschaften ähneln dem ERC 20-Token-Standard. Dabei hilft auch das Durchgehen der Sicherheitsrichtlinien für ERC 20.
  4. Wiedereintritt: – Wie diskutiert, prüft ERC 1155 auf unterstützte Schnittstellen in der Übertragungslogik. Daher können verschiedene Szenarien auftreten, die sich ergeben können Wiedereintrittsschwachstelle. Es wird empfohlen, Modifikatoren für Nicht-Wiedereintrittsschutz für die anwendbaren Funktionen beizubehalten.

3. Fazit

Das Web3-Ökosystem sieht eine kontinuierliche Entwicklung regelmäßiger Standards vor, um die Sicherheit und Funktionalität zu verbessern. ERC 1155 ist ein Schritt in diese Richtung. Aber wenn die neuen Standards veröffentlicht werden, entsteht eine Wissenslücke, die nicht so sehr gängige Standards in Protokollen betrifft, und birgt das Risiko eines geringeren Probenraums für Sicherheitsmaßnahmen. Hier kommt QuillAudits mit einem Expertenteam ins Spiel. Wir gehen an, analysieren und finden verschiedene Möglichkeiten, wie das Protokoll kompromittiert werden kann, und sichern das Protokoll unserer Kunden mit unglaublichen Ergebnissen. Besuchen Sie unsere Website und sichern Sie sich Ihr Web3-Projekt!

17 Views

Zeitstempel:

Mehr von Quillhash