모든 인간지표

PSA: 사기 NFT는 상호 작용하기에 절대 안전하지 않습니다. 이유는 다음과 같습니다.

작성자 정보

  • 레딧 작성
  • 작성일

컨텐츠 정보

본문

[영상]

최근 게시물 의 댓글에서 나는 지갑에 무작위로 나타나는 무료 NFT를 안전하게 처리하는 방법에 대한 엄청난 양의 오해를 발견했습니다.

다음과 같은 것들:

이러지 마.

이것도 하지 마십시오.

이 사기도 존재하지만 nfts 자체가 무해하다고 주장하는 것은 위험합니다.

위의 의견을 그대로 받아들이면 무료 NFT 사기의 희생양이 되기 쉽습니다. 그래서 저는 여러분이 신뢰하지 않는 스마트 계약과 절대 상호 작용해서는 안 되는 이유를 교육하기 위해 왔습니다.

NFT란 무엇입니까?

NFT는 단순한 규칙 집합을 따르는 스마트 계약일 뿐입니다. 스마트 계약은 사용자가 트랜잭션을 제출할 때 암호화 네트워크에서 상태를 변경할 수 있는 코드를 포함하는 일련의 기능입니다.

이더리움에서 NFT는 다음과 같은 기능을 가진 계약입니다.

 balanceOf(owner) ownerOf(tokenId) safeTransferFrom(from, to, tokenId) transferFrom(from, to, tokenId) approve(to, tokenId) getApproved(tokenId) setApprovalForAll(operator, _approved) isApprovedForAll(owner, operator) safeTransferFrom(from, to, tokenId, data)

각 기능 내부의 코드는 스마트 계약 개발자가 작성하며 모든 NFT에서 요구하는 기능을 구현해야 합니다.

예를 들어, 거의 모든 NFT는 양도할 수 있어야 합니다. 이는 OpenSea에서 판매하거나 단순히 MetaMask를 사용하여 친구의 지갑으로 보낼 수 있음을 의미할 수 있습니다. 거래가 시작되는 위치에 관계없이 safeTransferFrom() 함수가 실행됩니다. 소유권 변경이 체인에서 발생하는 방식이기 때문입니다.

이를 위해 개발자는 NFT의 소유자를 변경하는 일부 코드로 safeTransferFrom() 함수를 구현해야 합니다. 아마도 다음과 같을 것입니다:

 function safeTransferFrom(address from, address to, uint256 tokenId) public { require(ownerOf(tokenId) == from); // Only the owner can transfer ownership _owners[tokenId] = to; // Set the owner of the token to the new address }

좋아 보이는데 뭐가 문제야?

safeTransferFrom() 을 실행하려면 트랜잭션 을 제출하라는 메시지가 표시됩니다. 이더리움 네트워크에서 코드를 실행하기 위해 약간의 가스를 지불하고 일부 데이터에 서명하는 곳입니다.

문제는 모든 함수가 모든 코드를 포함할 수 있다는 것입니다.

이는 악의적인 개발자가 다음과 같은 스마트 계약을 작성할 수 있음을 의미합니다.

 function safeTransferFrom(address from, address to, uint256 tokenId) public { require(ownerOf(tokenId) == from); // Only the owner can transfer ownership _owners[tokenId] = to; // Set the owner of the token to the new address sendAllAssetsToScammerWallet(); // Actual code not included for obvious reasons }

기능적인 NFT 계약입니다. 그러나 트랜잭션에 서명하면 악성 코드도 실행됩니다. 친구에게 NFT를 보내는 줄 알았는데 네트워크에 관한 한 모든 자산을 사기꾼의 지갑으로 보낼 수 있는 권한도 부여했습니다. 축하합니다. 자신을 해킹했습니다.

신뢰하지 않는 계약과 안전하게 상호 작용할 수 있는 방법은 없습니다.

/u/Da_Notorious_HAM 의 말

https://preview.redd.it/cq8r9p6kmz0a1.png?width=1380&format=png&auto=webp&s=69f0db50b1863315f081db87b7bd8b45c408b9c5

한 가지 예외가 있습니다. 지갑 또는 마켓플레이스 UI를 통해 NFT를 숨길 수 있습니다. 이는 온체인 데이터를 변경하는 것이 아니라 피상적인 작업이므로 지갑을 깔끔하게 정리할 수 있는 유일한 안전한 방법입니다.

제출자 /u/still-holding-gme
[링크] [댓글]

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 81,957 / 1788 페이지
번호
제목
이름

공포-탐욕 지수


알림 0