치료에서 독으로: 허가가 위험의 원천이 된 이유

1. 허가란 무엇인가요?

돈을 빌리는 것에 대한 작은 이야기부터 시작하겠습니다:

제가 친구인 잭 마에게 100만 달러를 빌리고 싶다고 가정해 보겠습니다. 잭은 망설임 없이 전화를 들고 은행에 전화를 걸어 자신의 신원을 확인한 후 100만 달러의 인출 한도를 승인하라고 지시합니다. 은행은 이 승인 내용을 기록하고, 저는 은행을 방문하여 신원을 확인한 후 승인된 금액을 인출하기만 하면 됩니다. 은행에서 승인 여부를 확인할 수 없으면 요청이 거부됩니다.

이제 이 프로세스가 다른 방법인 허용을 사용하면 어떻게 달라지는지 살펴봅시다. 이 시나리오에서 제가 잭에게 100만 달러를 요청하면 잭은 아무렇지 않게 수표를 꺼내 금액을 기입하고 서명한 후 저에게 건네줍니다. 수표를 은행에 가져가면 승인 기록이 없어도 은행은 잭의 서명을 바탕으로 수표를 현금화합니다.

이는 승인과 허가의 차이점을 설명합니다. ERC-20의 필수 기능인 승인은 이더리움 출시 이후 널리 사용되어 왔습니다. 하지만 왜 같은 효과를 얻기 위해 ERC-2612를 통해 허가 기능이 나중에 도입되었을까요?

2. 허가가 필요한 이유는 무엇인가요?

ERC-2612 제안은 2019년 3월에 도입되어 2022년 10월에 최종 확정되었습니다. 이 제안의 개발은 이더리움의 가스 가격이 몇 차례 급등하는 시기와 맞물렸습니다. 상승장 동안 시장의 열광으로 인해 사용자들은 더 빠른 거래를 위해 가스 수수료에 더 많은 비용을 지출하게 되었고, 한 블록의 이점도 상당한 이익을 가져올 수 있었습니다.

그러나 이러한 현상은 사용자들에게 부담을 주었고, 특히 자금이 적은 사용자에게는 승인에 필요한 두 번의 거래 프로세스가 비용이 많이 들었습니다. 허가 도입으로 오프라인 서명이 가능해지면서 즉각적인 온체인 승인이 필요하지 않게 되었습니다. 이러한 변화는 은행의 사전 승인 없이 수표를 현금화하는 것처럼 토큰 전송과 함께 승인을 제공할 수 있다는 것을 의미했습니다.

이는 잭의 전화 통화 비용을 절약하고 사용자 거래 수수료를 줄이는 등 유익한 것처럼 보였지만, 실수로 판도라의 상자를 열게 되었습니다.

3. 위험의 급격한 증가

허가 이전에는 해커들이 종종 사용자에게 거래 승인에 서명하도록 요구하는 피싱 방법에 의존했는데, 이는 가스 수수료를 발생시키고 위험 신호를 발생시켰습니다. 사용자가 실수로 클릭하더라도 온체인 트랜잭션의 시간 지연으로 인해 새로운 트랜잭션으로 작업을 되돌릴 수 있었습니다.

하지만 Permit은 판도를 바꿨습니다. 가스 요금이 없고 서명만 필요하기 때문에 사용자의 경계심을 낮출 수 있습니다. 서명이 오프라인으로 이루어지기 때문에 해커는 언제든 원하는 대로 상황을 통제하고 악용하여 이득을 극대화할 수 있습니다.

이러한 변화의 영향은 피싱 피해자의 수와 도난당한 금액의 증가에서 분명하게 드러납니다. 에 따르면 @ScamSniffer:

  • 2023년 피싱으로 인한 손실은 2억 9,500만 달러에 달했습니다.
  • 2024년 중반에 이미 그 수치는 3억 1,400만 달러를 넘어섰습니다.
  • 2024년 3분기에는 지갑이 퍼밋 피싱 공격의 희생양이 되어 약 3천만 달러에 해당하는 12,000개의 spWETH가 손실되는 중대한 사건이 발생했습니다.

처음에는 가스 비용을 절감하고 사용자 경험을 개선하기 위해 Permit을 제안한 개발자들은 이러한 결과를 예상하지 못했을 것입니다. 양날의 검이 될 것으로 예상했던 것이 오히려 사용자 자산을 둘러싼 보호 장벽을 뚫는 날카로운 칼이 된 것입니다.

유니스왑의 Permit2와 같은 유사한 오프라인 서명 방식이 등장하여 오프라인 서명 의존도를 높이고 피싱 위험을 증폭시키고 있습니다.

허가란 무엇인가요?

4. 자신을 보호하는 방법

이러한 위협에 직면한 사용자는 손실을 줄이기 위해 몇 가지 예방 조치를 취할 수 있습니다:

1. 인지도 향상

  • 에어드랍 유혹에 주의하기: 에어드롭은 매력적일 수 있지만 피싱 시도인 경우가 많습니다. 에어드랍에 참여하기 전에 항상 여러 출처를 통해 에어드랍의 적법성을 확인하세요.
  • 블라인드 서명 방지: 실수로 피싱 사이트에 들어가 거래 창이 나타나면 거래 내역을 자세히 살펴보세요. 허가, 허가2, 승인 또는 증액과 같은 용어는 잠재적인 승인 문제를 나타내므로 주의가 필요합니다. 키스톤과 같은 하드웨어 지갑은 거래 세부 정보를 분석하고 표시하여 충동적인 행동을 방지하는 데 도움이 될 수 있습니다.

2. 도구 활용

  • 스캠스니퍼: 이 브라우저 확장 프로그램은 의심스러운 URL을 입력하기 전에 사용자에게 경고를 표시하여 사용자가 즉시 상호 작용을 중단할 수 있도록 합니다.
  • 취소: Revoke.cash는 지갑에 토큰 승인 기록을 표시하여 사용자에게 의심스러운 승인 또는 무제한 승인을 취소하도록 안내합니다. 정기적으로 승인을 정리하면 위험을 최소화할 수 있습니다.

3. 자산 격리 및 다중 서명 지갑

“한 바구니에 모든 계란을 담지 말라”는 격언은 암호화폐 자산에도 적용됩니다. 중요한 자산은 키스톤과 같은 콜드월렛에 보관하고, 일상적인 거래에는 작은 핫월렛을 사용하세요. 이렇게 하면 하나의 지갑이 손상되더라도 모든 자산이 위험에 노출되는 것은 아닙니다.

보안을 강화하기 위해 다중 서명 지갑을 사용하면 더욱 안전하게 보호할 수 있습니다. 미리 정해진 횟수의 지갑 승인을 통해서만 자산에 액세스할 수 있으므로 지갑이 한 번 손상되어도 전체 손실로 이어지지 않습니다.

5. 결론

Permit이 제공하는 가치를 부정할 수는 없지만, 도난 건수가 증가함에 따라 그 위험성이 이점을 능가할 수 있음을 시사하고 있습니다. 한때 널리 사용되다가 보안 문제로 인해 결국 폐기된 ethsign 방식과 마찬가지로, Permit도 이제 중요한 순간에 직면해 있습니다. 개발자는 앞으로 이 방법을 개선할지 아니면 포기할지 신중하게 고려해야 합니다.