새로운 crypto 프로젝트와 상호작용할 때, 우리는 종종 페이지에서 먼저 토큰을 승인(Approve)해야 한다고 알림을 받습니다. 이 단계는 프로젝트가 우리 지갑에 있는 코인을 거래, 스테이킹, 대출 또는 기타 방법으로 상호작용할 수 있도록 허용하기 위해 필요합니다.
현재 시장의 99% 프로젝트는 이 승인 기능을 스마트 계약에 작성할 때 토큰 승인 값을 무제한으로 설정합니다. 이는 사용자가 앞으로 상호작용할 때마다 추가적인 승인 단계를 거치지 않도록 하기 위함입니다.
그러나 이것은 스마트 계약 운영에 있어 가장 우려되는 보안 취약점 중 하나가 되었습니다. 이는 우리가 코인을 프로토콜에 두지 않더라도, 프로젝트 팀이 동일한 주소에서 코인을 인출할 수 있는 권한을 가지게 됨을 의미합니다. 이 작업은 우리의 개인 키로 서명할 필요가 없으므로, 승인할 때는 항상 신중해야 합니다.
주의: 복구 구문이 유출되면 하드웨어 지갑 사용 여부에 관계없이 모든 코인을 잃게 됩니다. 과도한 승인이 취소되지 않으면 프로젝트 팀이 악용할 수 있으며, 하드웨어 지갑 유무와 관계없이 모든 코인이 사라집니다. 프로젝트 팀이 도망가면 하드웨어 지갑 사용 여부와 관계없이 모든 코인이 사라집니다.