오픈씨

  • 오픈씨는 NFT 를 거래할 수 있는 플랫폼이다. A 라는 사용자가 NFT를 판매하기 위해 '리스팅'하게 되면, 그 리스팅한 가격을 보고 B라는 사용자는 '구매'를 한다. 이 과정에서 B라는 구매자의 토큰은 A라는 판매자에게 입금이 되고, 수수료는 오픈씨와 창작자에게 돌아간다. 그리고 A 라는 판매자의 NFT는 구매자의 지갑으로 전송된다.
  • 이러한 과정은 스마트 컨트랙트로 개발되어 있고, 스마트 컨트랙트 기능 중에 setApprovalForALl 이라는 함수가 사용자의 권한을 임시로 위임받아 위와 같은 거래 과정을 처리해준다.
  • setApprovalForAll 이라는 함수는 ERC721 표준, 즉 NFT 를 위한 표준 프로토콜의 함수라고 볼 수 있다. 이 함수는 특정 주소에 권한을 주는 역할을 한다
setApprovalForAll(address to, bool approved)
  • 이 함수 때문에 해킹 사고가 빈번하게 발생했었다. 분명 오픈씨 컨트랙트는 문제가 없다. 하지만, 스캠 링크를 클릭해서 그 사이트를 통해서 setApprovalForAll 이 포함된 트랜잭션을 수행했다고 하면 그것은 오픈씨가 아닌 해커에게 권한을 주는 것과 마찬가지이다. 이런 경우에는 해커가 사용자의 지갑의 자산을 자유롭게 빼갈 수 있다.