Home » 암호화폐 »

토큰 승인 설명

토큰 승인(허용)이 무엇인지, 분산 애플리케이션에서의 토큰 승인의 목적, 악의적인 행위자가 토큰을 어떻게 남용할 수 있는지 알아보세요.

토큰 승인이란 무엇인가요?

토큰 승인(토큰 허용이라고도 함)은 이더리움 생태계 및 바이낸스 스마트 체인이나 폴리곤과 같이 유사한 아키텍처를 따르는 다른 블록체인 네트워크 내의 권한 메커니즘을 의미합니다. 이 기능을 통해 분산 애플리케이션(DApp)은 사용자가 각 트랜잭션을 개별적으로 승인할 필요 없이 사용자의 토큰과 상호 작용할 수 있습니다.

핵심적으로 토큰 승인은 대체 가능 토큰을 관리하는 ERC-20 표준을 통해 구현됩니다. 사용자가 스마트 계약과 상호 작용하려면(예: 토큰 스왑, 수익 농사 풀에 자산 스테이킹, 유동성 제공) 해당 스마트 계약에 지정된 양의 토큰을 이동할 수 있는 권한을 부여해야 합니다. 이는 비수탁 프로토콜이 명시적인 사용자 동의를 요구하면서도 자율적으로 작동할 수 있도록 하기 때문에 매우 중요합니다.

토큰 승인 작동 방식

토큰 허용량 작동 방식에 대한 기본적인 설명은 다음과 같습니다.

  • 사용자는 지갑에 토큰 A를 소유하고 있습니다.
  • 사용자는 특정 거래에 토큰 A가 필요한 DApp(예: Uniswap과 같은 탈중앙화 거래소)을 사용하려고 합니다.
  • 거래를 완료하기 전에 DApp은 사용자에게 허용량 승인을 요청합니다. 그러면 토큰의 스마트 계약에서 approve() 함수가 호출됩니다.
  • 이 함수를 통해 사용자는 DApp의 스마트 계약이 지정된 양의 토큰 A를 자신을 대신하여 사용할 수 있도록 허용합니다.

이더리움 지갑과 블록체인 프로토콜은 사용자 자산을 보호하도록 설계되었으므로 승인은 필수적입니다. 승인이 없다면 모든 토큰 이동은 사용자가 수동으로 서명하고 승인해야 하므로, 특히 여러 거래가 포함된 복잡한 작업의 경우 사용자 경험이 매우 불편해집니다.

영구 승인

중요한 점은 토큰 승인이 취소될 때까지 온체인에 유지된다는 것입니다. 스마트 계약이 승인되면 추가 사용자 확인 없이 승인된 한도까지 언제든지 부여된 토큰에 접근할 수 있습니다. 일부 프로토콜은 편의를 위해 "무한 승인"을 요청하여 스마트 계약이 향후 승인 거래 없이도 작동할 수 있도록 합니다. 사용자 친화적이지만, 스마트 계약이 손상될 경우 잠재적인 위험을 초래할 수 있습니다.

주요 용어

  • 허용량: 스마트 계약에서 사용할 수 있는 토큰의 구체적인 양입니다.
  • approve(): 스마트 계약에서 허용량을 설정하는 함수입니다.
  • transferFrom(): 승인된 계약에서 허용량 한도 내에서 사용자 토큰을 이동시키는 데 사용되는 함수입니다.

이러한 핵심 메커니즘을 이해하는 것은 탈중앙화 금융(DeFi) 및 기타 블록체인 기반 애플리케이션을 사용하는 사용자에게 필수적입니다. 이는 생태계 내에서 안전하고 효율적인 상호 작용의 기본 요소이기 때문입니다.

토큰 허용이 필요한 이유

토큰 승인은 탈중앙화 애플리케이션(DApp)에 사용자 자산에 대한 안전하고 제한적인 접근 권한을 제공하기 위해 존재합니다. 거래를 중재하는 중앙 기관이 없는 탈중앙화 환경에서 스마트 계약은 토큰 허용이라는 개념을 활용하여 사용자의 자율성을 유지하면서 중요한 기능을 수행합니다. 이 섹션에서는 토큰 승인이 블록체인 생태계에 필수적인 이유를 살펴봅니다.

1. 비수탁형 상호작용 지원

블록체인 혁신의 특징 중 하나는 중개자 없이 자산에 대한 통제권을 유지할 수 있다는 것입니다. DApp은 은행이나 중개인 없이 작동하지만, 사용자를 대신하여 토큰 관련 거래를 수행할 수 있는 방법이 여전히 필요합니다. 토큰 허용은 자동화된 프로토콜이 사용자 토큰을 직접 보관하지 않고 위임된 권한으로 일시적으로 작동할 수 있도록 합니다.

2. 사용자 경험 향상

토큰 승인이 없다면 토큰 전송과 관련된 모든 상호작용은 사용자가 각 거래를 수동으로 확인하고 서명해야 합니다. 예를 들어, 재투자가 빈번하게 발생하는 수익 농사 프로토콜에서는 이러한 과정이 번거롭고 비실용적일 수 있습니다. 토큰 승인은 사전 정의된 권한을 부여하여 이러한 작업을 간소화하고, 투명성을 유지하면서 효율성을 향상시킵니다.

3. 복잡한 다단계 프로토콜 지원

최신 DApp은 토큰 쌍 교환, 유동성 제공 또는 파생상품과의 상호작용과 같은 다단계 거래를 수행하는 경우가 많습니다. 이러한 각 단계는 별도의 토큰 전송을 필요로 할 수 있습니다. 토큰 승인을 통해 스마트 컨트랙트는 이러한 시퀀스를 일괄 처리하거나 자동화하여 플래시 대출, 크로스 체인 브리지, NFT 스테이킹과 같은 서비스가 효과적으로 작동할 수 있도록 합니다.

4. 가스 비용 최적화

무제한 금액의 계약을 한 번만 승인하면 가스 비용을 절약할 수 있으며, 이는 특히 네트워크 혼잡 기간에 중요합니다. 각 거래에 대해 승인을 반복하면 비용이 증가하고 DeFi 참여가 저해될 수 있습니다.

5. 허가형 보안 모델

승인은 최소 권한 원칙 보안 모델 원칙에 따라 세분화된 수준의 권한을 나타냅니다. 사용자는 자신의 토큰에 누가 얼마나 접근할 수 있는지 결정합니다. 이러한 옵트인 방식을 통해 DApp과 상호 작용할 때에도 사용자가 제어권을 유지할 수 있습니다.

6. 애플리케이션 간 호환성

토큰 할당량은 ERC-20 및 그 파생 모델을 통해 표준화되어 이더리움 가상 머신(EVM) 생태계 전반에서 광범위하게 호환됩니다. 이러한 균일성 덕분에 토큰은 탈중앙화 거래소, 대출 프로토콜, 게임 플랫폼 및 결제 게이트웨이에서 원활하게 사용될 수 있습니다.

7. 프로그래밍 방식 통합

개발자에게도 토큰 승인은 매우 중요합니다. 토큰 승인은 스마트 계약 내에서 토큰에 프로그래밍 방식으로 접근할 수 있도록 하여 대출 시장의 청산이나 탈중앙화 결제 시스템의 거래 정산과 같은 작업을 자동화합니다.

궁극적으로 토큰 승인은 DeFi에서 허가형 접근의 핵심입니다. 토큰 승인이 없다면 모든 탈중앙화 애플리케이션은 사용자 자금의 완전한 보관을 요구하게 되어 탈중앙화의 목적을 달성하지 못하게 됩니다. 토큰 승인은 디지털 금융의 실질적인 요구를 충족하는 동시에 신뢰할 수 없는 상호 작용을 유지하는 데 도움이 됩니다.

암호화폐는 24시간 연중무휴 운영되는 탈중앙화를 통해 높은 수익률 잠재력과 더 큰 재정적 자유를 제공합니다. 그러나 극심한 변동성과 규제 부재로 인해 고위험 자산입니다. 주요 위험으로는 급격한 손실과 사이버 보안 실패가 있습니다. 성공의 열쇠는 명확한 전략과 재정적 안정성을 저해하지 않는 자본으로 투자하는 것입니다.

암호화폐는 24시간 연중무휴 운영되는 탈중앙화를 통해 높은 수익률 잠재력과 더 큰 재정적 자유를 제공합니다. 그러나 극심한 변동성과 규제 부재로 인해 고위험 자산입니다. 주요 위험으로는 급격한 손실과 사이버 보안 실패가 있습니다. 성공의 열쇠는 명확한 전략과 재정적 안정성을 저해하지 않는 자본으로 투자하는 것입니다.

토큰 승인 남용 방식

토큰 승인은 탈중앙화 애플리케이션에서 필수적인 기술적, 기능적 역할을 하지만, 잠재적인 오용 및 악용의 가능성을 열어줍니다. 권한은 온체인에서 무기한으로 유지되고 사용자 자금에 대한 자동 접근을 용이하게 하기 때문에 악의적인 공격자는 토큰 허용량을 악용할 방법을 자주 찾습니다. 이 섹션에서는 토큰 승인이 악용될 수 있는 주요 방법과 사용자가 스스로를 보호하기 위해 할 수 있는 일을 살펴봅니다.

1. 무한 승인 및 과도한 노출

많은 DApp은 반복적인 승인을 피하기 위해 편의 기능으로 무한하거나 매우 높은 토큰 허용량을 요청합니다. 하지만 이로 인해 사용자는 위험에 노출됩니다. 소프트웨어 취약점이나 거버넌스 공격 등으로 스마트 계약이 손상될 경우, 공격자는 사용자 지갑에서 승인된 모든 토큰을 유출시킬 수 있습니다. 토큰은 온체인에서 사용자가 제어할 수 있지만, 이러한 과도한 권한 부여는 최소 권한 원칙을 사실상 위반합니다.

2. 악성 스마트 계약

사기꾼은 합법적인 DApp이나 NFT 드롭으로 위장한 악성 스마트 계약을 자주 배포합니다. 사용자가 이러한 계약에 대한 토큰 접근을 승인하면, 즉시 또는 나중에 자금을 훔치도록 프로그래밍될 수 있습니다. 이러한 승인은 스마트 계약이나 지갑 앱 자체에서 되돌릴 수 없으므로, 사용자가 직접 또는 토큰 승인 관리자를 통해 철회해야 합니다.

3. 스마트 계약 인터페이스를 통한 피싱

또 다른 일반적인 공격 경로는 잘 알려진 프로토콜을 모방하는 피싱 웹사이트입니다. 사용자는 자신도 모르게 가짜 인터페이스와 상호 작용하여 사기성 주소로 토큰 접근을 승인하도록 유도합니다. 이러한 공격은 사전 정의된 조건이 충족되면 즉시 자산을 훔치거나 지연 공격을 유발할 수 있습니다.

4. 프로토콜의 악용 가능한 버그

평판이 좋은 DApp이 취약점을 통해 악용될 경우, 공격자는 기존 토큰 할당량을 활용하여 사용자 자금을 고갈시킬 수 있습니다. DeFi 역사상 bZx 익스플로잇과 BadgerDAO 해킹과 같은 사례는 공격 당시 즉각적인 거래에 참여하지 않았음에도 불구하고 고액의 허용량을 부여한 사용자가 상당한 손실을 입었기 때문에 두드러졌습니다.

5. 휴면 승인

많은 사용자가 DApp과 상호 작용한 후 허용량을 취소하는 것을 잊어버립니다. 심지어 다시 사용할 의도가 없더라도 말입니다. 이러한 휴면 승인은 온체인에 남아 있으며, 관련 스마트 컨트랙트가 취약해질 경우 훨씬 나중에 악용될 수 있습니다. 장기적인 보안을 위해 불필요한 승인에 대한 정기적인 감사 및 취소는 필수적입니다.

6. 승인 선행 실행 및 경쟁 조건

드물지만, 일부 익스플로잇은 선행 실행 토큰 승인과 관련이 있습니다. 공격자는 보류 중인 거래가 표시되는 메모리풀을 모니터링하고 거래 순서를 악용하여 사용자가 알아차리기 전에 토큰 승인을 가로채거나 악용하려고 시도할 수 있습니다. 악성 봇도 경쟁 조건을 시도할 수 있지만, 대부분의 지갑은 현재 논스를 다양하게 사용하고 이러한 예외 상황에 대한 보호 기능을 제공합니다.

7. 권한의 불가역적 특성

은행의 재량에 따라 권한을 취소할 수 있는 기존 금융 시스템과 달리, 블록체인 승인은 사용자가 사전 조치를 취하여 허용량을 제거하거나 조정해야 합니다. 사용자가 Revoke.cash 또는 Etherscan의 승인 확인기와 같은 플랫폼을 사용하지 않는 한, 보안 위협을 야기하는 미처리 권한을 인지하지 못할 수 있습니다.

보안 모범 사례

이러한 위험을 완화하기 위해 사용자는 다음 예방 조치를 고려해야 합니다.

  • 검증된 DApp 및 공식 URL만 사용하십시오.
  • 가능한 경우 제한적이거나 특정 토큰 허용량을 부여하십시오.
  • 토큰 승인 도구를 사용하여 기존 권한을 모니터링하고 취소하십시오.
  • 무한한 승인을 요청하는 DApp에 주의하십시오.
  • 지갑 활동을 주기적으로 검토하여 사용되지 않거나 방치된 애플리케이션.

블록체인의 탈중앙화 특성은 사용자에게 권한을 부여하지만, 동시에 더 큰 개인의 책임을 요구합니다. 깨끗한 수당 내역을 유지하는 것은 안전한 암호화폐 자산 관리에 매우 중요합니다.

지금 투자하세요 >>