-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
재진입 공격이란 무엇이며 스마트 계약이 이를 어떻게 방어할 수 있나요?
Re-entrancy attacks exploit unchecked external calls in smart contracts, allowing attackers to recursively withdraw funds before state updates, as seen in the $60M DAO hack.
2025/11/13 03:40
스마트 계약의 재진입 공격 이해
1. 재진입 공격은 초기 실행이 완료되기 전에 악의적인 계약이 다른 계약의 취약한 기능을 반복적으로 호출할 때 발생합니다. 이 공격은 상태 변경 및 외부 호출이 실행되는 순서를 활용합니다.
2. 가장 악명 높은 사례는 2016년 DAO 해킹입니다. 공격자는 Ether를 보내기 전에 잔액을 업데이트하지 못한 계약에서 반복적으로 자금을 인출하여 6천만 달러 이상을 유출했습니다.
3. 이러한 공격은 일반적으로 중요한 상태 변수를 일관되지 않은 상태로 유지하면서 신뢰할 수 없는 계약에 대한 외부 호출을 수행하는 기능을 표적으로 삼습니다.
4. 재귀 호출 중에 공격자의 대체 또는 수신 기능은 동일한 철회 논리를 다시 트리거하여 액세스 제어 또는 잔액 확인을 효과적으로 우회합니다.
5. 핵심 취약점은 실행 중 조작을 방지하기 위해 상태 수정이 항상 외부 호출보다 선행되어야 하는 검사 효과 상호 작용 패턴을 위반하는 데 있습니다.
Solidity의 일반적인 취약한 패턴
1. 먼저 내부 계정을 업데이트하지 않고 사용자가 제어하는 주소로 이더리움이나 토큰을 보내는 기능은 재진입의 주요 대상입니다.
2. 기본 Ether 전송을 통한 호출 과 같은 낮은 수준의 호출을 사용하는 계약은 남은 모든 가스를 전달하고 복잡한 콜백 논리를 활성화하므로 특히 위험합니다.
3. 호출 자체가 재귀적 항목을 트리거하면 호출 후 검증에 의존하는 논리가 실패하여 손상이 완료될 때까지 해당 검사가 효과가 없게 됩니다.
4. 하위 계약이 안전해 보이더라도 상위 계약이 적절한 보호를 시행하지 않으면 상속 구조가 의도치 않게 기능을 노출할 수 있습니다.
5. 대리자 호출 메커니즘이 공유 저장소 레이아웃을 통해 상태 손상을 허용하는 경우 라이브러리 또는 프록시 패턴이 취약점을 전파할 수 있습니다.
효과적인 방어 메커니즘
1. 검사-효과-상호작용 패턴을 엄격하게 구현합니다. 항상 입력의 유효성을 검사하고 상태 변수를 업데이트한 다음 외부 호출을 진행합니다.
2. 재귀 항목을 차단하기 위해 뮤텍스 잠금을 사용하는 OpenZeppelin의 ReentrancyGuard와 같은 기존 라이브러리의 재진입 가드를 사용합니다.
3. 통화 대신 이체 또는 전송을 통해 자금을 이체하는 것을 선호합니다. 이러한 방법은 가스 전달을 제한하고 공격 표면을 줄입니다.
4. 자동으로 자금을 발송하는 대신 사용자가 자금을 청구하는 풀오버-푸시 결제 모델을 채택하여 아웃바운드 통화 위험을 제거합니다.
5. 개발 중에 엄격한 정적 분석 도구와 공식 검증을 적용하여 배포 전에 잠재적인 재귀 경로를 감지합니다.
자주 묻는 질문
재진입 시나리오에서 대체 기능이 위험한 이유는 무엇입니까? 호출 계약의 비즈니스 기능을 다시 호출하는 논리가 포함된 대체 함수는 위험해집니다. 외부 호출을 하기 전에 원래 계약이 상태를 업데이트하지 않은 경우 이 재귀 트리거는 오래된 잔액이나 권한을 이용할 수 있습니다.
여러 계약 상호 작용에서 재진입이 발생할 수 있습니까? 예, 동일한 계약 내의 여러 기능이 적절한 동기화 없이 공유 상태에 액세스하는 경우 기능 간 재진입이 가능합니다. 공격자는 외부에서 호출하는 하나의 함수를 트리거한 다음 상태 업데이트가 발생하기 전에 폴백을 사용하여 두 번째 취약한 함수에 들어갈 수 있습니다.
비Ether 계약은 재진입에 영향을 받지 않나요? 아니요, ERC-20 전송을 처리하는 토큰 계약도 활용될 수 있습니다. 토큰 전송이 수신자 후크(예: 승인 + 콜백)를 트리거하고 수신 계약이 전송 중간에 발신자의 상태를 조작하는 경우 유사한 재귀적 공격이 나타납니다.
컴파일러 업그레이드는 재진입을 완화하는 데 어떻게 도움이 됩니까? 최신 버전의 Solidity에는 알려진 안티 패턴에 대한 더 안전한 기본값과 경고가 포함되어 있습니다. 예를 들어, 명시적인 가시성 지정자와 개선된 가스비 규칙은 의도하지 않은 동작을 줄입니다. 그러나 컴파일러 기능만으로는 아키텍처 규율이 필요한 논리적 결함을 제거할 수 없습니다.
부인 성명:info@kdj.com
제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!
본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.
- 백악관 중개업자 평화: 암호화폐, 은행, 금융의 미래
- 2026-01-31 18:50:01
- 희귀한 왕립 조폐국 발견으로 인해 가치 열광이 촉발되었습니다: 당신의 변화 가치는 얼마입니까?
- 2026-01-31 18:55:01
- Pi Network의 메인넷 마이그레이션이 가속화되어 수백만 달러를 잠금 해제하고 Pi 코인의 기반을 강화합니다.
- 2026-01-31 18:55:01
- Lido의 stVaults는 기관을 위한 이더리움 스테이킹을 혁신합니다.
- 2026-01-31 19:25:01
- MegaETH의 대담한 내기: 상장 수수료 없음, 교환 에어드롭 없음, 순수한 투지
- 2026-01-31 19:20:02
- BlockDAG 사전 판매 지연으로 시장 조사 중에 상장 날짜에 대한 의문 제기
- 2026-01-31 19:15:01
관련 지식
반감기란 무엇입니까? (Bitcoin의 보급 일정 이해)
2026-01-16 00:19:50
Bitcoin 반감기란 무엇입니까? 1. Bitcoin 반감기는 채굴자에게 제공되는 블록 보상을 50% 줄이는 Bitcoin 프로토콜에 내장된 사전 프로그래밍된 이벤트입니다. 2. 이는 약 210,000블록마다 발생하며, Bitcoin의 평균 블록 시간 10분을 기준으...
P2E(Play-to-Earn) 게임이란 무엇이며 어떻게 작동합니까?
2026-01-12 20:19:33
정의 및 핵심 메커니즘 1. P2E(Play-to-Earn) 게임은 플레이어가 게임 플레이 활동을 통해 암호화폐 토큰 또는 대체 불가능한 토큰(NFT)을 획득하는 블록체인 기반 디지털 경험입니다. 2. 이러한 게임은 분산 원장 기술을 사용하여 소유권을 확인하고, 자산을...
멤풀이란 무엇이며 거래는 어떻게 확인되나요?
2026-01-24 06:00:16
멤풀이란 무엇입니까? 1. 멤풀은 확인되지 않은 트랜잭션을 보관하는 각 Bitcoin 노드 내의 임시 저장 영역입니다. 2. 거래는 네트워크에 전파된 후 채굴자가 블록에 포함시키기 전에 멤풀에 들어갑니다. 3. 모든 풀 노드는 자체 버전의 mempool을 유지 관리하며...
암호화폐로 수동 소득을 얻는 방법은 무엇입니까?
2026-01-13 07:39:45
스테이킹 메커니즘 1. 스테이킹에는 거래 검증 및 합의 유지와 같은 네트워크 운영을 지원하기 위해 일정량의 암호화폐를 지갑에 잠그는 것이 포함됩니다. 2. 참가자는 자신이 스테이킹한 동일한 토큰으로 표시된 보상을 받으며 일반적으로 네트워크 정의 매개변수에 따라 정기적으...
영지식 증명(ZK-Proof)이란 무엇입니까?
2026-01-22 04:40:14
정의 및 핵심 개념 1. 영지식 증명(ZK-Proofs)은 진술의 유효성을 넘어서는 기본 정보를 공개하지 않고 한 당사자가 다른 당사자에게 진술의 진실성을 증명할 수 있게 해주는 암호화 프로토콜입니다. 2. ZK 증명은 완전성, 건전성, 영지식이라는 세 가지 기본 속성...
블록체인 트릴레마란 무엇인가요? (보안, 확장성 및 분산화)
2026-01-15 17:00:25
핵심 갈등 이해 1. 블록체인 트릴레마는 단일 블록체인 프로토콜 내에서 보안, 확장성 및 분산화를 동시에 극대화하는 것이 매우 어려운 근본적인 아키텍처 제약을 설명합니다. 2. 모든 주요 설계 결정에는 상충 관계가 필요합니다. 처리량을 늘리려면 노드 수를 줄이거나 합의...
반감기란 무엇입니까? (Bitcoin의 보급 일정 이해)
2026-01-16 00:19:50
Bitcoin 반감기란 무엇입니까? 1. Bitcoin 반감기는 채굴자에게 제공되는 블록 보상을 50% 줄이는 Bitcoin 프로토콜에 내장된 사전 프로그래밍된 이벤트입니다. 2. 이는 약 210,000블록마다 발생하며, Bitcoin의 평균 블록 시간 10분을 기준으...
P2E(Play-to-Earn) 게임이란 무엇이며 어떻게 작동합니까?
2026-01-12 20:19:33
정의 및 핵심 메커니즘 1. P2E(Play-to-Earn) 게임은 플레이어가 게임 플레이 활동을 통해 암호화폐 토큰 또는 대체 불가능한 토큰(NFT)을 획득하는 블록체인 기반 디지털 경험입니다. 2. 이러한 게임은 분산 원장 기술을 사용하여 소유권을 확인하고, 자산을...
멤풀이란 무엇이며 거래는 어떻게 확인되나요?
2026-01-24 06:00:16
멤풀이란 무엇입니까? 1. 멤풀은 확인되지 않은 트랜잭션을 보관하는 각 Bitcoin 노드 내의 임시 저장 영역입니다. 2. 거래는 네트워크에 전파된 후 채굴자가 블록에 포함시키기 전에 멤풀에 들어갑니다. 3. 모든 풀 노드는 자체 버전의 mempool을 유지 관리하며...
암호화폐로 수동 소득을 얻는 방법은 무엇입니까?
2026-01-13 07:39:45
스테이킹 메커니즘 1. 스테이킹에는 거래 검증 및 합의 유지와 같은 네트워크 운영을 지원하기 위해 일정량의 암호화폐를 지갑에 잠그는 것이 포함됩니다. 2. 참가자는 자신이 스테이킹한 동일한 토큰으로 표시된 보상을 받으며 일반적으로 네트워크 정의 매개변수에 따라 정기적으...
영지식 증명(ZK-Proof)이란 무엇입니까?
2026-01-22 04:40:14
정의 및 핵심 개념 1. 영지식 증명(ZK-Proofs)은 진술의 유효성을 넘어서는 기본 정보를 공개하지 않고 한 당사자가 다른 당사자에게 진술의 진실성을 증명할 수 있게 해주는 암호화 프로토콜입니다. 2. ZK 증명은 완전성, 건전성, 영지식이라는 세 가지 기본 속성...
블록체인 트릴레마란 무엇인가요? (보안, 확장성 및 분산화)
2026-01-15 17:00:25
핵심 갈등 이해 1. 블록체인 트릴레마는 단일 블록체인 프로토콜 내에서 보안, 확장성 및 분산화를 동시에 극대화하는 것이 매우 어려운 근본적인 아키텍처 제약을 설명합니다. 2. 모든 주요 설계 결정에는 상충 관계가 필요합니다. 처리량을 늘리려면 노드 수를 줄이거나 합의...
모든 기사 보기














