Here is the blog post drafted specifically for 'My Core Pick', following all your formatting and stylistic guidelines.
조용한 지갑 약탈자: 위험한 스마트 컨트랙트 승인을 점검하고 철회하는 방법

처음으로 크립토에 대한 공포로 식은땀을 흘렸던 때가 기억납니다.
시드 구문을 잃어버려서가 아니었습니다.
디스코드 DM으로 온 의심스러운 링크를 클릭해서도 아니었습니다.
그것은 제가 3년 전에 사용했던 디파이 프로토콜이 여전히 제 지갑의 모든 USDT를 빼갈 수 있는 권한을 가지고 있다는 사실을 깨달았기 때문입니다.
우리는 프라이빗 키와 시드 구문을 보호하는 데 많은 시간을 쏟습니다.
하지만 우리는 종종 활짝 열어둔 뒷문을 간과하곤 합니다: 바로 스마트 컨트랙트 승인(Smart Contract Allowances)입니다.
이것은 크립토 세계의 조용한 살인자입니다.
매년 수백만 달러의 손실이 이것 때문에 발생합니다.
그리고 무서운 점은 무엇일까요? 아마도 여러분이 직접 그렇게 하도록 허락했을 가능성이 크다는 것입니다.
오늘 저는 이것이 정확히 무엇인지 설명해 드리겠습니다.
그다음, 우리는 함께 여러분의 지갑을 점검(Audit)할 것입니다.
마지막으로, 여러분의 자금을 위협하는 앱에 대한 접근 권한을 철회할 것입니다.
여러분의 자산을 확실하게 잠가봅시다.
괴물 이해하기: 승인(Allowance)이란 무엇인가?

지갑이 어떻게 털리는지 이해하려면, 이더리움과 EVM 체인이 어떻게 작동하는지 이해해야 합니다.
유니스왑(Uniswap) 같은 탈중앙화 거래소(DEX)에서 토큰을 거래하려 할 때, 그냥 바로 거래할 수는 없습니다.
스마트 컨트랙트는 여러분의 명시적인 허가 없이는 지갑에서 토큰을 가져갈 수 없습니다.
이것은 버그가 아니라 보안 기능입니다.
그래서 첫 스왑을 하기 전에, 여러분은 반드시 "승인(Approve)"이라는 트랜잭션에 서명해야 합니다.
"무제한"의 함정
여기서부터 위험해집니다.
대부분의 탈중앙화 애플리케이션(dApp)은 여러분에게 원활한 경험을 제공하고 싶어 합니다.
그들은 여러분이 거래할 때마다 토큰 "승인"을 위해 가스비를 내는 것을 원치 않습니다.
그래서 권한을 요청할 때, 그들은 단순히 여러분이 교환하려는 100개의 토큰에 대해서만 묻지 않습니다.
그들은 무제한(unlimited) 수량에 대한 사용 권한을 요청합니다.
기술적 데이터를 들여다보면, 그 숫자는 사실상 무한대에 가깝습니다.
저는 이런 경우를 수도 없이 봤습니다.
여러분은 "확인(Confirm)"을 클릭하고, 단순히 50달러짜리 거래를 승인했다고 생각합니다.
하지만 실제로는, 그 스마트 컨트랙트가 여러분이 보유한 (그리고 앞으로 보유할) 해당 종류의 모든 토큰을 영원히 인출할 수 있도록 승인한 것입니다.
지금 이것이 중요한 이유
"그래서 뭐? 유니스왑은 안전하잖아."라고 생각하실 수도 있습니다.
대체로 여러분의 말이 맞습니다.
하지만 수년간 여러분이 사용해 온 수십 개의 이름 모를 파밍 프로토콜, NFT 민팅, 브릿지들을 생각해보세요.
그것들이 모두 여전히 안전할까요?
관리자 키(Admin keys)가 탈취당하지는 않았을까요?
만약 해커가 여러분이 2021년에 승인했던 스마트 컨트랙트에서 취약점을 발견한다면, 그들은 그 오래된 승인 내역을 이용해 오늘 여러분의 지갑을 비울 수 있습니다.
이런 일은 여러분이 온라인 상태가 아니어도 일어날 수 있습니다.
위험 요소: 돈을 잃게 되는 두 가지 경로

이러한 무제한 승인이 우리를 괴롭히는 주된 경로에는 두 가지가 있습니다.
저는 여러분이 두 가지 모두를 인지하기를 바랍니다. 각각 다른 수준의 경각심이 필요하기 때문입니다.
1. 프로토콜 취약점 공격 (Exploit)
앞서 설명한 시나리오입니다.
여러분은 합법적인 프로젝트와 상호작용합니다.
그들을 신뢰하기 때문에 무제한 지출 권한을 줍니다.
6개월 후, 해당 프로젝트의 스마트 컨트랙트에서 버그가 발견됩니다.
해커들은 그 버그를 악용(Exploit)합니다.
컨트랙트가 여러분의 자금을 옮길 권한을 가지고 있기 때문에, 해커는 그 컨트랙트를 이용해 여러분의 토큰을 자신의 지갑으로 전송합니다.
여러분의 시드 구문은 유출된 적이 없습니다.
하드웨어 지갑은 서랍 속에 안전하게 있었습니다.
하지만 남아있던 그 권한 때문에 자금은 사라졌습니다.
2. 피싱 "승인" 사기
이 방식은 점점 더 흔해지고 있습니다.
여러분은 합법적인 NFT 민팅이나 에어드랍 청구처럼 보이는 웹사이트에 접속합니다.
"지갑 연결(Connect Wallet)"을 클릭합니다.
트랜잭션 팝업이 뜹니다. 단순히 "청구(Claim)"나 "확인(Verify)" 버튼처럼 보일 수 있습니다.
하지만 작은 글씨를 읽어보면, 여러분은 사실 setApprovalForAll 함수에 서명하고 있는 것입니다.
저는 똑똑한 사람들도 이런 일을 당하는 것을 항상 봅니다.
그것에 서명함으로써, 여러분은 에어드랍을 받는 것이 아닙니다.
사기꾼의 지갑에 여러분의 NFT나 스테이블코인을 몽땅 빼갈 수 있는 권한을 주는 것입니다.
점검: 노출 여부 확인하기
이제 제가 여러분을 충분히 겁먹게 한 것 같으니, 행동을 취해봅시다.
누가 여러분의 디지털 주머니에 손을 넣고 있는지 확인해야 합니다.
저는 한 달에 한 번씩 제 승인 내역을 확인합니다.
이것은 제 디지털 위생 관리 루틴의 일부입니다.
사용하는 도구들
이를 위한 몇 가지 신뢰할 수 있는 도구가 있지만, 저는 주로 Revoke.cash를 추천합니다.
이것은 업계 표준입니다.
오픈 소스이며 매우 높은 평가를 받고 있습니다.
대안으로 이더스캔(Etherscan)이나 BscScan에도 자체적인 "토큰 승인(Token Approval)" 확인 기능이 있습니다.
하지만 사용자 경험(UX) 측면에서 Revoke.cash가 가장 보기 편합니다.
목록을 보고 느낀 충격
여러분이 해야 할 일은 다음과 같습니다.
웹사이트에 접속합니다 (항상 URL을 세 번 확인하세요).
지갑을 연결합니다.
여러분이 보유한 모든 토큰이 나열된 대시보드가 보일 것입니다.
토큰 옆에는 "사용자(Spenders)" 목록이 보일 것입니다.
이것들이 바로 여러분의 돈을 옮길 권한을 가진 컨트랙트들입니다.
제가 처음 이것을 했을 때, 저는 충격을 받았습니다.
수년 전에 '러그 풀(먹튀)' 당한 프로젝트의 컨트랙트들이 보였습니다.
제가 샀었는지조차 잊어버린 밈 코인들에 대한 "무제한(Unlimited)" 접근 권한도 보였습니다.
마치 제 아파트 열쇠를 여전히 가지고 있는 전 연인들의 목록 같아 보였습니다.
저는 즉시 자물쇠를 바꿔야 한다는 걸 알았습니다.
해결책: 단계별 접근 권한 철회 방법
지갑을 청소하는 것은 꽤나 만족스러운 일입니다.
하지만 비용이 따릅니다.
승인을 철회(Revoke)할 때마다, 그것은 온체인 트랜잭션이 됩니다.
즉, 가스비를 지불해야 한다는 뜻입니다.
철회 과정
대시보드에서 더 이상 사용하지 않는 컨트랙트를 찾으세요.
혹은 의심스러워 보이는 컨트랙트를 찾으세요.
"Revoke(철회)" 버튼을 클릭하세요.
지갑(메타마스크, 래비 등) 팝업이 뜨고 트랜잭션 서명을 요청할 것입니다.
블록체인에서 트랜잭션이 확인되면, 해당 권한은 삭제됩니다.
그 스마트 컨트랙트는 더 이상 여러분의 자금을 건드릴 수 없습니다.
우선순위 정하기
크립토 업계에 오래 있었다면, 수백 개의 승인 내역이 있을 수도 있습니다.
이더리움 메인넷에서 이 모든 것을 철회하려면 가스비로만 수백 달러가 들 수 있습니다.
가스비가 비싸다면 무턱대고 모든 것을 철회하는 것은 추천하지 않습니다.
우리는 선별(Triage)해야 합니다.
높은 우선순위:
- USDT/USDC/DAI: 스테이블코인은 해커들의 주된 타겟입니다. 이것들에 대한 오래된 승인은 즉시 철회하세요.
- 알 수 없는 컨트랙트: "Unknown Contract"라고 뜨거나 기억나지 않는 프로젝트라면, 없애버리세요.
- 고가치 자산: 많은 양의 ETH나 WBTC를 보유하고 있다면, 그 특정 자산들을 보호하세요.
낮은 우선순위:
- 먼지(Dust) 토큰: 승인했던 잡코인이 지금 0원이 되었다면, 굳이 5달러의 가스비를 들여 철회할 가치는 없을 겁니다.
"연결 해제"의 오해
한 가지 확실하게 짚고 넘어가야 할 것이 있습니다.
메타마스크 설정에 들어가서 "사이트 연결 해제(Disconnect Site)"를 클릭하는 것은 권한을 철회하는 것이 아닙니다.
연결 해제는 단지 웹사이트에 방문했을 때 그 사이트가 여러분의 지갑 잔액을 보지 못하게 할 뿐입니다.
그것은 엄밀히 말해 개인정보 보호 기능입니다.
보안 기능이 아닙니다.
스마트 컨트랙트 권한은 브라우저 캐시가 아니라 블록체인 위에 살아있습니다.
그것을 제거하려면 반드시 트랜잭션을 실행해야 합니다.
미래를 위한 모범 사례
과거를 청산하는 것은 훌륭합니다.
하지만 애초에 어질러지는 것을 막아봅시다.
다음은 제가 아침에 일어났을 때 텅 빈 지갑을 마주하지 않기 위해 현재 실천하고 있는 방법들입니다.
사용자 지정 지출 한도 사용하기
DEX에서 스왑을 할 때, 지갑 팝업은 보통 "기본(Default - 무제한)" 또는 "사용자 지정(Custom)" 승인을 묻습니다.
저는 항상 "사용자 지정"을 선택합니다.
만약 500 USDC를 스왑한다면, 승인 한도에 "500"을 입력합니다.
이 말은 다음에 거래할 때 다시 승인해야 한다는 뜻일까요?
네.
다음에 가스비를 또 내야 하니 귀찮을까요?
조금은요.
하지만 이것은 프로토콜이 해킹당하더라도, 그들은 제가 승인한 만큼만 가져갈 수 있다는 것을 의미합니다.
만약 제 승인 한도가 500이었고 잔여 승인량이 0이라면, 그들은 아무것도 훔쳐갈 수 없습니다.
버너(Burner) 지갑 전략
저는 절대로 제 메인 "금고(Vault)" 지갑을 새로운 dApp에 연결하지 않습니다.
제 금고 지갑은 장기 보관용입니다.
그것은 아무것과도 상호작용하지 않습니다.
새로운 프로토콜을 시도해보고 싶거나 위험한 밈 코인을 사고 싶다면, 저는 자금을 "버너" 지갑으로 보냅니다.
그리고 거기서 거래를 합니다.
만약 제가 실수를 해서 나쁜 승인에 서명하더라도, 피해는 버너 지갑에 국한됩니다.
금고에 있는 제 전 재산은 건드리지 못한 채로 남습니다.
정기 점검 일정 잡기
달력에 표시해두세요.
매월 첫째 주 일요일.
커피 한 잔과 함께 자리에 앉으세요.
철회 도구(Revoke tool)를 여세요.
여러분의 체인들(이더리움, 아비트럼, 베이스, 솔라나 등)을 스캔하세요.
한 달 동안 사용하지 않은 것이 보이면, 철회하세요.
디지털 쓰레기를 내다 버린다고 생각하세요.
마무리를 하며
크립토에서의 보안은 사람을 지치게 만듭니다.
마치 사방에 지뢰가 깔려 있는 것처럼 느껴진다는 걸 압니다.
하지만 승인(Allowances)에 대해 이해하는 것은 일반 사용자들에 비해 엄청난 이점을 제공합니다.
대부분의 사람들은 크립토의 마법을 블랙박스처럼 여깁니다.
그들은 버튼을 클릭하고 행운을 빕니다.
승인 권한을 통제함으로써, 여러분은 여러분의 재정적 운명을 통제하게 되는 것입니다.
"조용한 약탈자"가 여러분의 크립토 여정을 끝내게 두지 마세요.
오늘 딱 10분만 투자하세요.
지갑을 점검하세요.
위험을 철회하세요.
그리고 오늘 밤은 좀 더 편안하게 주무세요.