ERC 1155 NFT 스마트 계약의 보안 분석

ERC 1155 NFT 스마트 계약의 보안 분석

ERC 1155 NFT 스마트 계약 PlatoBlockchain 데이터 인텔리전스의 보안 분석. 수직 검색. 일체 포함.

읽기 시간: 5

암호화폐 토큰에 대해 들어보셨을 것입니다. 다양한 토큰이 web3 생태계에서 중요한 역할을 합니다. 이러한 토큰은 암호 화폐의 소유권, 부, 신용 및 권한을 나타냅니다. 재미있는 부분은 암호화폐 토큰을 만들 수도 있다는 것입니다. 

이러한 토큰은 전송, 잔액 확인 등과 같은 다양한 작업을 위한 다양한 기능을 포함하는 스마트 계약입니다. 스마트 계약을 생성하여 토큰을 만들 수 있습니다. 그럼에도 불구하고 귀하의 토큰이 안전한지 확인하고 신뢰감을 부여하기 위해 ERC 20은 스마트 계약 표준 ERC 721은 NFT(Non-Fungible Token) 생성에 사용되는 스마트 컨트랙트 표준입니다.

ERC 20 및 ERC 721은 토큰 생성을 위해 널리 사용되는 스마트 계약 프로토콜입니다. 그들은 토큰에 대한 안전하고 신뢰할 수 있는 환경을 제공합니다. 그리고 이러한 프로토콜은 계속해서 개선되고 개선되고 있습니다. 그 방향으로 나아가는 단계는 토큰을 위한 새로운 ERC 1155 스마트 계약 프로토콜의 생성으로 이어집니다. 그것이 무엇인지 보자.

1. ERC 1155란 무엇입니까?

20 및 721과 같은 모든 ERC는 NFT의 다양한 상황에 맞는 스마트 계약을 생성하기 위한 표준일 뿐입니다. ERC 721이 있으며 USDT 및 DAI와 같은 대체 가능한 토큰은 ERC 20 표준을 따릅니다. ERC 1155는 ERC 20 및 ERC 721 기능 및 속성을 포함하는 하나의 표준입니다.

여러 상품을 만드는 프로그램을 만들고 싶다고 가정합니다. 예를 들어, 금이라는 이름의 토큰과 은이라는 이름의 또 다른 토큰과 하나의 왕을 만들고자 하면 논리는 금과 은을 더 많이 가진 사람이 왕이 될 것이라고 말합니다. 왕은 한 명만 있을 수 있습니다. 간단한 프로토콜이지만 이를 생성하려면 자산에 대해서만 3개의 계약을 배포해야 합니다. 하나는 금 토큰, 다른 하나는 은, 다른 하나는 ERC 721이 될 왕입니다. 하지만 그냥 배포할 수 있다면 어떨까요? 다른 모든 토큰을 나열하는 하나의 계약?

이것은 ERC 1155가 해결하는 그러한 문제 중 하나입니다. 블록체인에서 원하는 각 토큰에 대한 계약을 배포할 필요가 없습니다. 이것은 그러한 ERC 1155 계약 사례 중 하나였습니다. 일부는 대체 가능하고 일부는 대체 불가능한 여러 자산이 있는 이러한 유형의 시스템이 필요한 곳을 추측해 보십시오. 답은 web3 게임입니다. ERC 1155는 Web3 게임 개발자에게 온체인 트랜잭션을 위한 확장성과 원활한 개발을 지원합니다.

1.1 ERC 1155의 토큰 ID

다른 ERC 20 토큰의 잔액을 확인하는 방법을 알고 있어야 합니다. balanceOf(주소 _소유자) 기능을 수행하고 주소가 보유한 토큰 수를 얻을 수 있습니다. 하지만 ERC 1155는 서로 다른 토큰을 다루기 때문에 서로 다른 토큰에 서로 다른 ID를 제공해야 합니다. 토큰과 관련된 거의 모든 기능은 tokenId(조회하려는 자산)와 알고 싶은 주소를 두 개 이상의 매개 변수로 받습니다.

예를 들어 계약에 금, 은, 왕의 3개의 토큰이 있다고 가정해 보겠습니다. 특정 주소가 해당 프로토콜에 얼마나 많은 금을 가지고 있는지 알기 위해 balanceOf( 함수를 호출할 수 있습니다.주소 _소유자, uint256 _id) 스마트 계약에. 금에 대한 tokenId가 ​​1로 지정되었다고 가정합니다. 그러면 다음을 호출할 수 있습니다. 균형(0x4Bf9DeCE75Bc7C4a9054d5b3BB13D53543eE4096, 1).

2 스마트 계약 ERC 1155에 대한 감사 지침

ERC 1155는 한동안 사용되어 왔으며 배치 전송과 같은 일부 기능은 일반 ERC 20 또는 ERC 721 프로토콜에서 사용할 수 없습니다. 또한 ERC 1155는 시장 공간에서 덜 널리 퍼져 있으므로 많은 개발자가 이 영역을 덜 탐색하게 만듭니다. QuillAudits는 ERC 1155에서 BUIDL을 고려하는 프로토콜에 대한 중요한 통찰력을 공유하여 스스로를 보호하여 더 안전한 web3 생태계를 만드는 데 도움을 줄 수 있습니다. 

2.1 ERC 1155 수신기 인터페이스

ERC 1155 계약이 웹3 게임 프로토콜의 일반적 요구 사항인 다른 계약으로 자산을 이전할 때 토큰의 성공적인 거래를 위해 수신 계약에 ERC1155수신기 인터페이스를 포함하는 것이 중요합니다.

ERC 1155 수신기 인터페이스에 속하는 두 가지 기능은 다음과 같습니다.

  • onERC1155수신(연산자, 보낸 사람, ID, 값, 데이터)
  • onERC1155BatchReceived(연산자, 보낸 사람, ID, 값, 데이터)

두 함수는 거의 유사한 기능을 가지고 있으며 유일한 차이점은 후자가 한 번에 둘 이상의 트랜잭션을 처리할 때라는 것입니다. 그러나 여기서는 onERC1155Recieved에 대해서만 이야기하겠습니다. 

이 함수는 발행 또는 전송 프로세스 외부에서 호출하면 안 됩니다(MUST NOT). 전송을 수락하려면 전송이 허용된 경우 bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))를 반환해야 합니다.

매개변수 보기:-

  1. operator:- 전송을 시작한 주소(예: msg.sender) 
  2. from:- 이전에 토큰을 소유한 주소
  3. id:- 전송되는 토큰의 ID 
  4. 값:- 전송되는 토큰의 수 
  5. 데이터:- 지정된 형식이 없는 추가 데이터 

2.2 승인() 기능이 없습니까?

ERC 20 또는 ERC 721로 작업한 적이 있다면 승인() 기능을 접했을 것입니다. 이 기능은 일부 주소가 소유자의 잔액에서 승인된 토큰을 가져오도록 허용합니다. 예를 들어 A가 DAI 토큰 100개를 B에게 가져가는 것을 승인하고 싶다면 A는 승인 기능을 호출하여 B가 100 DAI 토큰을 받을 자격이 있다고 말하고 나중에 B는 그 금액으로 거래를 할 수 있습니다.

그러나 ERC 1155에는 승인 단일 토큰에 대한 기능. 우리는 setApprovalForAll(주소 연산자, bool 승인됨) 함수는 소유자가 호출하고 지출자의 주소 또는 토큰을 승인하려는 주소인 주소 매개변수 연산자를 사용합니다. 그래서 우리는 승인 ERC 1155 토큰 목록에서 단일 토큰에 대한 기능을 수행하거나 승인을 부여하지만 대신 모든 토큰 액세스가 한 번에 승인됩니다. 개발팀은 이를 인지해야 합니다. 무시할 경우 막대한 손실이 발생하고 프로토콜이 손상될 수 있습니다.

2.3 일부 정기 점검

위의 두 섹션에서는 두 가지 고유한 ERC 1155 관련 검사를 살펴보았습니다. 이 섹션에서는 매우 깊은 설명이 필요하지 않은 몇 가지 정기적인 검사를 살펴보겠습니다.

  1. ID에 주의:- ERC 1155와 함께 작동하는 모든 외부 기능 또는 인터페이스에는 토큰 ID를 입력으로 사용하도록 지정된 토큰 ID가 있어야 합니다.
  2. 소각/민트:- 이 함수가 호출될 때마다 지정된 토큰 ID에 대한 잔액과 totalSupply만 변경해야 합니다.
  3. ERC 20 유사성:- 많은 속성이 ERC 20 토큰 표준과 같습니다. ERC 20에 대한 보안 지침을 살펴보는 것도 이 문제에 도움이 될 것입니다.
  4. 재진입: 논의한 바와 같이 ERC 1155는 전송 논리에서 지원되는 인터페이스를 확인합니다. 따라서 다음과 같은 결과를 초래할 수 있는 다양한 시나리오가 있을 수 있습니다. 재진입 취약점. 해당 기능에 대한 비재진입 가드 수정자를 유지하는 것이 좋습니다.

3. 결론

Web3 생태계는 보안 및 기능을 향상시키기 위해 일반 표준에서 지속적으로 발전하고 있습니다. ERC 1155는 그 방향으로 나아가는 단계입니다. 그러나 새 표준이 발표되면 프로토콜의 그다지 일반적이지 않은 표준과 관련된 지식 격차가 발생하고 보안 조치를 위한 샘플 공간이 줄어들 위험이 있습니다. 이때 QuillAudits가 전문가 팀과 함께 등장합니다. 우리는 프로토콜이 손상될 수 있는 다양한 방법을 다루고 분석하고 찾아내고 믿을 수 없는 결과로 고객의 프로토콜을 보호합니다. 웹사이트를 방문하여 Web3 프로젝트를 확보하십시오!

17 조회수

타임 스탬프 :

더보기 퀼해시