시가총액: $2.607T 0.90%
거래량(24시간): $88.5549B -12.29%
공포와 탐욕 지수:

64 - 탐욕

  • 시가총액: $2.607T 0.90%
  • 거래량(24시간): $88.5549B -12.29%
  • 공포와 탐욕 지수:
  • 시가총액: $2.607T 0.90%
암호화
주제
암호화
소식
cryptostopics
비디오
최고 암호화

언어 선택

언어 선택

통화 선택

암호화
주제
암호화
소식
cryptostopics
비디오

스마트 계약에서 재진입 공격이란 무엇입니까?

Reentrancy attacks exploit Ethereum’s external call mechanism, allowing malicious contracts to recursively drain funds before state updates—famously enabling The DAO hack.

2025/12/24 02:20

재진입 공격 이해

1. 재진입 공격은 초기 실행이 완료되기 전에 악의적인 계약이 다른 계약의 취약한 기능을 반복적으로 호출할 때 발생합니다.

2. 이 익스플로잇은 상태 변경이 완료되기 전에 제어권이 외부 주소로 전송되는 Ethereum 스마트 계약의 외부 호출 메커니즘을 활용합니다.

3. 공격자는 대상의 출금 또는 전송 논리를 재귀적으로 호출하는 폴백 또는 수신 기능이 포함된 계약을 배포합니다.

4. Ethereum은 단일 스레드, 동기 방식으로 호출을 실행하고 기본적으로 원자 상태 업데이트를 적용하지 않기 때문에 콜백 기간 동안 잔액이나 플래그가 변경되지 않을 수 있습니다.

5. 결과적으로, 적절한 확인 없이 동일한 잔고에서 자금이 여러 번 유출될 수 있으며, 이는 시스템의 의도된 경제적 불변성을 위반합니다.

유명한 역사적 사례: DAO 해킹

1. 2016년 6월, The DAO로 알려진 분산형 자율 조직은 당시 가치가 5 천만 달러가 넘는 약 360만 ETH 에 손상되었습니다.

2. 이 취약점은 제안이 통과된 후 사용자가 자신의 지분을 인출할 수 있도록 허용하는 분할 기능에 존재하지만 자금 이체 기여자의 잔액을 업데이트했습니다.

3. 공격자는 잔액 업데이트가 발생하기 전에 분할 함수를 재귀적으로 호출하는 폴백 함수가 포함된 계약을 배포했습니다.

4. 각 재귀 호출은 원래 잔액 값을 읽어 동일한 할당 금액에서 반복적인 인출을 가능하게 합니다.

5. 이 사건으로 인해 이더리움 블록체인의 하드 포크가 발생하여 이더리움과 이더리움 클래식이 두 개의 별도 체인이 되었습니다.

재진입을 가능하게 하는 기술적 조건

1. 신뢰할 수 없는 주소에 대한 외부 호출은 잔액 업데이트 또는 액세스 플래그 전환과 같은 중요한 상태 수정보다 먼저 수행되어야 합니다.

2. 계약은 재진입 가드를 시행하지 않고 소유권이나 자격을 반영하는 변경 가능한 저장 변수에 의존해야 합니다.

3. 잠긴 부울 또는 재진입 수정자를 사용하는 것과 같은 뮤텍스 패턴이 없으면 중첩된 호출 컨텍스트에서 진입점이 보호되지 않습니다.

4. transfer() 또는 send() 와 같은 안전한 대안 대신 call() 과 같은 하위 수준 호출을 사용하면 가스비 제한 및 자동 되돌리기 동작이 부족하여 위험이 증가합니다.

5. 오래되었거나 감사되지 않은 라이브러리에서 상속된 계약은 상속된 재진입 표면이 있는 함수를 의도치 않게 노출할 수 있습니다.

오늘 배포된 완화 전략

1. 검사-효과-상호작용 패턴은 조건 검증, 내부 상태 업데이트 및 외부 호출 수행을 요구합니다.

2. OpenZeppelin의 ReentrancyGuard 와 같은 재진입 가드는 잠긴 부울을 사용하여 활성 실행 중에 함수 재진입을 방지합니다.

3. 원시 call() 대신 transfer() 또는 send() 를 사용하면 2300개 가스 제한이 적용되어 대체 기능이 추가 재진입 호출을 포함한 복잡한 논리를 실행할 수 없게 됩니다.

4. Slither 및 MythX와 같은 정적 분석 도구는 개발 및 CI 파이프라인 중에 잠재적인 재진입 벡터를 감지합니다.

5. Certora 및 KEVM과 같은 공식 검증 프레임워크는 중첩된 외부 호출을 포함한 임의 호출 시퀀스에서 계약 불변성을 검증합니다.

자주 묻는 질문

Q1. 이더리움 이외의 블록체인에서도 재진입 공격이 발생할 수 있나요? A1. 예. BNB 체인, 폴리곤 및 Arbitrum을 포함한 모든 EVM 호환 체인은 계약이 동일한 결함이 있는 상호 작용 패턴을 복제하는 경우 똑같이 취약합니다. 특정 조건에서 솔라나의 프로그램 간 호출과 같이 유사한 외부 호출 의미를 갖는 비 EVM 체인도 유사한 위험에 직면합니다.

Q2. 재진입을 방지하기 위해 require() 문을 사용하는 것이 충분합니까? A2. 아니요. Require 문은 전제 조건을 확인하지만 재진입을 차단하지는 않습니다. 상태가 변경되기 전에 작동하며 외부 호출이 발생한 후에는 후속 콜백을 제한할 수 없습니다.

Q3. 프록시 기반 업그레이드 가능 계약에 추가 재진입 표면이 도입되나요? A3. 예. 구현 계약에 재진입 보호 기능이 부족하고 프록시가 호출 깊이를 가로채거나 확인하지 않고 호출을 전달하는 경우 업그레이드 가능한 패턴은 기존 취약성을 상속하거나 증폭시킬 수 있습니다.

Q4. 플래시론은 악성 계약 없이도 재진입을 유발할 수 있나요? A4. 예. 플래시 대출 지원 공격은 dYdX, Harvest Finance 및 BurgerSwap에 대한 익스플로잇에서 볼 수 있듯이 가격 오라클 조작과 재진입을 결합하여 유동성 풀 또는 대출 프로토콜을 고갈시키는 경우가 많습니다. 모두 중요한 경로 내의 무방비 외부 호출에 의존합니다.

부인 성명:info@kdj.com

제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!

본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.

관련 지식

DAI란 무엇이며 USDT와 어떻게 다른가요?

DAI란 무엇이며 USDT와 어떻게 다른가요?

2026-09-08 17:00:22

시장 변동성 패턴 1. 24시간 이내에 15%를 초과하는 가격 변동은 2021년 이후 Bitcoin 거래일의 68% 이상에서 발생했습니다. 2. 이더리움은 유동성이 낮은 기간, 특히 UTC 02:00에서 06:00 사이에 Bitcoin보다 더 높은 일중 변동성을 보여주...

스테이블코인이 1달러 페그를 잃을 수 있는 이유는 무엇입니까?

스테이블코인이 1달러 페그를 잃을 수 있는 이유는 무엇입니까?

2026-09-08 02:00:03

준비금 구성 및 투명성 격차 1. 많은 스테이블코인이 현금이나 단기 미국 국채로 완전히 뒷받침된다고 주장하지만 준비금 공개에는 실시간 확인 메커니즘이 부족한 경우가 많습니다. 2. 제3자 증명은 분기별로만 이루어질 수 있으므로 자산-부채 구조 불일치가 감지되지 않는 확...

암호화폐에서 자기 양육권이란 무엇이며 왜 중요한가요?

암호화폐에서 자기 양육권이란 무엇이며 왜 중요한가요?

2026-09-10 04:19:32

정의 및 핵심 메커니즘 1. 자기 관리는 개인이 해당 권한을 제3자 서비스에 위임하지 않고 개인 키에 대한 완전한 통제권을 유지하는 관행을 의미합니다. 2. 자체 관리형 지갑은 서버에 자산을 보관하지 않습니다. 대신 로컬에 저장된 암호화 키를 사용하여 블록체인 네트워크...

관리형 지갑과 비수탁형 지갑: 차이점은 무엇인가요?

관리형 지갑과 비수탁형 지갑: 차이점은 무엇인가요?

2026-09-17 03:19:46

보관용 지갑의 정의 1. 관리 지갑은 제3자 서비스 제공업체가 사용자의 개인 키를 보유하고 관리하는 디지털 자산 보관 솔루션입니다. 2. 사용자는 직접적인 암호화 제어 대신 이메일, 비밀번호, 이중 인증 등 로그인 자격 증명을 통해 자금에 접근합니다. 3. 계정 복구가...

다중서명 지갑이란 무엇이며 언제 유용합니까?

다중서명 지갑이란 무엇이며 언제 유용합니까?

2026-09-12 14:20:01

정의 및 핵심 아키텍처 1. 다중서명 지갑은 단일 블록체인 거래를 승인하기 위해 여러 개인 키가 필요한 암호화 구성입니다. 2. M-of-N 서명 체계 에 따라 작동합니다. 여기서 M은 필요한 최소 서명 수를 나타내고 N은 승인된 서명자의 총 수를 나타냅니다. 3. 각...

Bitcoin vs 라이트닝 네트워크: 차이점은 무엇인가요?

Bitcoin vs 라이트닝 네트워크: 차이점은 무엇인가요?

2026-09-13 15:40:16

핵심 아키텍처 및 트랜잭션 모델 1. Bitcoin은 모든 거래가 암호화 방식으로 확인되고 수천 개의 전체 노드에 전파되며 약 10분마다 순차적 블록에 영구적으로 기록되는 단일 계층의 무허가형 블록체인에서 작동합니다. 2. 라이트닝 네트워크는 Bitcoin의 UTXO ...

DAI란 무엇이며 USDT와 어떻게 다른가요?

DAI란 무엇이며 USDT와 어떻게 다른가요?

2026-09-08 17:00:22

시장 변동성 패턴 1. 24시간 이내에 15%를 초과하는 가격 변동은 2021년 이후 Bitcoin 거래일의 68% 이상에서 발생했습니다. 2. 이더리움은 유동성이 낮은 기간, 특히 UTC 02:00에서 06:00 사이에 Bitcoin보다 더 높은 일중 변동성을 보여주...

스테이블코인이 1달러 페그를 잃을 수 있는 이유는 무엇입니까?

스테이블코인이 1달러 페그를 잃을 수 있는 이유는 무엇입니까?

2026-09-08 02:00:03

준비금 구성 및 투명성 격차 1. 많은 스테이블코인이 현금이나 단기 미국 국채로 완전히 뒷받침된다고 주장하지만 준비금 공개에는 실시간 확인 메커니즘이 부족한 경우가 많습니다. 2. 제3자 증명은 분기별로만 이루어질 수 있으므로 자산-부채 구조 불일치가 감지되지 않는 확...

암호화폐에서 자기 양육권이란 무엇이며 왜 중요한가요?

암호화폐에서 자기 양육권이란 무엇이며 왜 중요한가요?

2026-09-10 04:19:32

정의 및 핵심 메커니즘 1. 자기 관리는 개인이 해당 권한을 제3자 서비스에 위임하지 않고 개인 키에 대한 완전한 통제권을 유지하는 관행을 의미합니다. 2. 자체 관리형 지갑은 서버에 자산을 보관하지 않습니다. 대신 로컬에 저장된 암호화 키를 사용하여 블록체인 네트워크...

관리형 지갑과 비수탁형 지갑: 차이점은 무엇인가요?

관리형 지갑과 비수탁형 지갑: 차이점은 무엇인가요?

2026-09-17 03:19:46

보관용 지갑의 정의 1. 관리 지갑은 제3자 서비스 제공업체가 사용자의 개인 키를 보유하고 관리하는 디지털 자산 보관 솔루션입니다. 2. 사용자는 직접적인 암호화 제어 대신 이메일, 비밀번호, 이중 인증 등 로그인 자격 증명을 통해 자금에 접근합니다. 3. 계정 복구가...

다중서명 지갑이란 무엇이며 언제 유용합니까?

다중서명 지갑이란 무엇이며 언제 유용합니까?

2026-09-12 14:20:01

정의 및 핵심 아키텍처 1. 다중서명 지갑은 단일 블록체인 거래를 승인하기 위해 여러 개인 키가 필요한 암호화 구성입니다. 2. M-of-N 서명 체계 에 따라 작동합니다. 여기서 M은 필요한 최소 서명 수를 나타내고 N은 승인된 서명자의 총 수를 나타냅니다. 3. 각...

Bitcoin vs 라이트닝 네트워크: 차이점은 무엇인가요?

Bitcoin vs 라이트닝 네트워크: 차이점은 무엇인가요?

2026-09-13 15:40:16

핵심 아키텍처 및 트랜잭션 모델 1. Bitcoin은 모든 거래가 암호화 방식으로 확인되고 수천 개의 전체 노드에 전파되며 약 10분마다 순차적 블록에 영구적으로 기록되는 단일 계층의 무허가형 블록체인에서 작동합니다. 2. 라이트닝 네트워크는 Bitcoin의 UTXO ...

모든 기사 보기

User not found or password invalid

Your input is correct