← 최신 논문
💻 computer science

Decoupling Reentrancy Protection from Smart Contract Implementation Logic

본 논문은 읽기 전용 변형을 포함한 주요 재진입 공격에 대해 100% 커버리지를 달성하기 위해 프록시 계층에서 이중 모드 보안 시스템을 통해 호출을 가로채고 스마트 계약 논리로부터 재진입 보호를 분리하는 새로운 프록시 기반 프레임워크인 Sentinel 을 소개합니다.

원저자: Shashank Joshi, Wojciech Golab

게시일 2026-05-26
📖 4 분 읽기☕ 가벼운 읽기

원저자: Shashank Joshi, Wojciech Golab

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

블록체인의 세계를 모든 사람이 자금 이동 방식을 위한 자신만의 규칙을 작성할 수 있는 붐비는 고위험 은행으로 상상해 보세요. 이러한 규칙을 스마트 계약이라고 합니다. 이들은 강력하지만 재진입성이라는 유명한 약점을 가지고 있습니다.

문제: "이중 장부" 강도 사건

문제를 이해하기 위해 은행 점원 (스마트 계약) 이 다음 순서대로 행동해야 한다고 상상해 보세요:

  1. 잔고를 확인합니다.
  2. 돈을 건네줍니다.
  3. 그런 다음 잔고가 0 달러가 되었음을 장부에 기록합니다.

일반적인 세상에서는 이것이 안전합니다. 하지만 블록체인 세계에서는 점원이 중단될 수 있는 로봇입니다. 교활한 도둑 (공격자) 이 돈을 인출하라고 점원을 호출할 수 있습니다. 점원이 3 단계 (장부 업데이트) 를 완료하기 전에 도둑의 로봇 계약이 점원을 다시 호출하여 더 많은 돈을 인출합니다.

장부가 아직 업데이트되지 않았기 때문에 점원은 도둑이 여전히 전체 금액을 가지고 있다고 생각합니다. 도둑은 점원이 문제가 있음을 깨닫기 전에 1 초 안에 수십 번 이 루프를 반복하여 은행 금고의 자금을 모두 털어낼 수 있습니다. 이것이 재진입성 공격입니다.

구식 해결책: "방해 금지" 표지판

이전에는 개발자들이 점원의 책상에 "방해 금지" 표지판 (잠금 장치) 을 부착하여 이를 해결하려 했습니다.

  • 결함: 이러한 표지판은 종종 특정 책상 (특정 함수) 에만 붙어 있었습니다. 도둑이 표지판이 없는 뒷문 (다른 함수) 을 발견하면 여전히 들어갈 수 있었습니다.
  • 한계: 은행이 서로 대화하는 여러 지점 (여러 계약) 을 가지고 있다면, 한 지점의 표지판이 도둑이 지점 사이를 오가며 시스템을 혼란스럽게 하는 것을 막지 못했습니다.
  • 맹점: 이러한 표지판은 돈을 쓰지 않고 잔고를 확인하는 것과 같은 합법적인 "조회 전용" 요청도 차단하여 은행을 느리고 투박하게 만들었습니다.

새로운 해결책: 센티넬 (스마트 문지기)

이 논문의 저자 샤샨크 조시와 보이치에흐 골라브는 센티넬이라는 새로운 시스템을 제안합니다. 점원의 책상을 패치하는 대신, 그들은 은행 입구에 스마트 문지기 (프록시) 를 세웁니다.

간단한 비유를 사용하여 센티넬이 작동하는 방식을 살펴보겠습니다:

1. 문지기가 모든 사람을 가로막습니다

누가 은행에 들어가려 하든 무엇을 하려 하든, 먼저 센티넬 문지기를 통과해야 합니다. 문지기는 은행 내부의 복잡한 규칙에 관심이 없으며 보안에만 집중합니다. 이는 은행의 내부 규칙 (비즈니스 로직) 을 안전하게 만들기 위해 다시 작성할 필요가 없다는 것을 의미합니다.

2. 두 가지 운영 모드

문지기는 상황의 위험도에 따라 두 가지 다른 유니폼, 즉 "모드"를 가지고 있습니다:

  • 최적화 모드 (단일 책상 경비원):
    은행이 작고 지점이 하나뿐인 경우, 문지기는 문에 간단하고 빠른 잠금 장치를 사용합니다. 이는 저렴하고 빠릅니다. 누군가 잠긴 문 사이로 슬그머니 들어오려 하면 즉시 돌려보냅니다. 이는 단순한 단일 계약 상황에 적합합니다.

  • 고보안 모드 (글로벌 보안 네트워크):
    은행이 거대한 지점 네트워크의 일부인 경우, 문지기는 중앙 보안 허브 (LockRegistry 라고 함) 에 연결됩니다.

    • 문지기가 중앙 허브에 전화를 겁니다: "A 지점이 현재 바쁜가요?"
    • 허브가 "예"라고 답하면, 문지기는 입구를 차단합니다.
    • 이는 도둑이 서로 다른 지점 사이를 오가며 시스템을 속이는 것을 방지합니다. 이는 한 방이 아닌 전체 네트워크에 걸쳐 보안을 조정합니다.

3. "조회 전용" 예외

블록체인의 까다로운 점은 때때로 사람들이 돈을 쓰지 않고 단순히 잔고를 보고 싶어 한다는 것입니다 (staticcall 이라고 함).

  • 구식 잠금 장치는 이러한 조회자를 차단하여 지연을 초래했습니다.
  • 센티넬은 누군가가 단순히 "보고" 있는지 스마트하게 감지합니다. 만약 그렇다면 문지기는 문을 잠그지 않고 창문으로 엿보게 하지만, 그들이 보는 동안 뒷문으로 슬그머니 들어오지 않도록 주의 깊게 감시합니다.

이것이 중요한 이유

저자들은 이 공격에 취약한 것으로 알려진 70 개의 다양한 스마트 계약에 대해 센티넬을 테스트했습니다.

  • 결과: 센티넬은 서로 다른 계약 사이에서 발생하거나 "조회 전용" 트릭을 포함하는 까다로운 공격을 포함하여 **100%**의 공격을 차단했습니다.
  • 비교: 구식 표준 도구 (OpenZeppelin 의 가드 등) 는 공격의 약 73% 만 차단했습니다. 복잡한 계약 간 강도 사건에서는 실패했습니다.
  • 비용: "문지기"를 실행하는 데는 약간의 추가 에너지 (가스) 가 들지만, 저자들은 수백만 달러의 도난을 막기 위한 작은 대가라고 말합니다.

결론

이 논문은 스마트 계약의 보안비즈니스 로직을 분리하는 방법을 소개합니다. 계약 앞에 스마트하고 적응력 있는 "문지기"를 두어 계약의 내부 규칙이 얼마나 복잡하든 상관없이 도둑이 시스템의 타이밍 간극을 악용하는 것을 막을 수 있습니다. 이는 벽의 모든 가능한 구멍을 고치려는 시도에서 무적의 문을 구축하는 것으로의 전환입니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →