-
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)로 연락주시면 즉시 삭제하도록 하겠습니다.
- Bitcoin, eCash Fork 및 Airdrop Dynamics: 암호화폐의 최신 논란에 대한 심층 분석
- 2026-05-03 12:55:01
- 2026년 마이애미 컨센서스: Web3, 블록체인, 암호화폐, NFT, 메타버스, 컨퍼런스, 5월 5일 — 월스트리트가 디지털 프론티어를 만나는 곳
- 2026-05-02 12:45:01
- 연준은 금리를 안정적으로 유지하여 지정학적 긴장 속에서 비트코인 가격 하락을 촉발했습니다
- 2026-05-01 06:45:01
- 비트코인 채굴자들이 전력망을 전기화하다: 오하이오 가스 공장 인수로 디지털 금의 새로운 시대가 열리다
- 2026-05-01 00:45:01
- MegaETH의 MEGA 토큰이 빅 애플을 강타했습니다: 실시간 블록체인을 위한 새로운 성능 벤치마크 설정
- 2026-05-01 00:55:01
- 솔라나의 미끄러운 경사: 가격 예측은 저항 손실 및 추가 하락 가능성을 지적합니다.
- 2026-05-01 06:45:01
관련 지식
모듈형 블록체인이란 무엇입니까? (아키텍처 기초)
2026-04-16 12:39:57
모듈형 블록체인이란 무엇입니까? 1. 모듈형 블록체인은 핵심 블록체인 기능을 의도적으로 상호 운용 가능한 별개의 레이어로 분리하는 아키텍처 패러다임입니다. 2. 실행, 합의, 데이터 가용성 및 결제가 모두 동일한 체인에서 발생하는 모놀리식 체인과 달리 모듈식 설계는 각...
가짜 암호화폐 웹사이트를 식별하는 방법은 무엇입니까? (사기탐지)
2026-04-16 13:19:40
도메인 이름 분석 1. 합법적인 암호화폐 플랫폼은 깨끗하고 기억에 남는 도메인 이름을 사용합니다. 브랜드 이름이나 핵심 서비스를 표준 라틴 문자로 통합하는 경우가 많습니다. 2. 가짜 사이트는 시각적으로기만적인 대체물을 자주 배포합니다. 즉, "o"를...
블록체인에서 오라클이란 무엇입니까? (외부 데이터)
2026-04-11 03:59:39
정의 및 핵심 기능 1. 블록체인의 오라클은 스마트 계약에 외부 데이터를 제공하는 신뢰할 수 있는 제3자 서비스입니다. 2. API, 데이터베이스, 웹 피드 또는 IoT 장치와 같은 온체인 로직과 오프체인 정보 소스 간의 브리지 역할을 합니다. 3. 오라클이 없으면 스...
트랜잭션 해시(TxID)를 해석하는 방법은 무엇입니까? (지불 증명서)
2026-04-10 23:19:44
거래 해시란 무엇입니까? 1. TxID 또는 트랜잭션 ID라고도 하는 트랜잭션 해시는 블록체인 트랜잭션의 직렬화된 데이터에 암호화 해시 함수를 적용하여 생성된 고유한 영숫자 문자열입니다. 2. 이는 각 트랜잭션에 대해 불변의 지문 역할을 하여 두 개의 서로 다른 트랜잭...
GameFi 란 무엇입니까? (플레이 투 적립 기본)
2026-04-13 11:00:17
정의 및 핵심 아키텍처 1. GameFi는 전적으로 퍼블릭 블록체인 인프라를 기반으로 구축된 게임과 금융의 융합을 의미합니다. 2. 스테이킹, 유동성 공급, 이자 농사, 거버넌스 투표 등 분산형 금융 기본 요소를 대화형 게임 메커니즘에 직접 포함합니다. 3. 모든 게임...
NFT 마켓플레이스를 어떻게 사용하나요? (구매 및 판매)
2026-04-19 12:40:30
Web3 지갑 설정 1. 공식 브라우저 확장 프로그램이나 모바일 앱을 통해 MetaMask 또는 Trust Wallet을 설치하세요. 2. 새 지갑을 생성하고 12단어 복구 문구를 오프라인에 안전하게 보관하세요. 3. 가스 비용을 충당하기 위해 기본 체인 토큰(Ethe...
모듈형 블록체인이란 무엇입니까? (아키텍처 기초)
2026-04-16 12:39:57
모듈형 블록체인이란 무엇입니까? 1. 모듈형 블록체인은 핵심 블록체인 기능을 의도적으로 상호 운용 가능한 별개의 레이어로 분리하는 아키텍처 패러다임입니다. 2. 실행, 합의, 데이터 가용성 및 결제가 모두 동일한 체인에서 발생하는 모놀리식 체인과 달리 모듈식 설계는 각...
가짜 암호화폐 웹사이트를 식별하는 방법은 무엇입니까? (사기탐지)
2026-04-16 13:19:40
도메인 이름 분석 1. 합법적인 암호화폐 플랫폼은 깨끗하고 기억에 남는 도메인 이름을 사용합니다. 브랜드 이름이나 핵심 서비스를 표준 라틴 문자로 통합하는 경우가 많습니다. 2. 가짜 사이트는 시각적으로기만적인 대체물을 자주 배포합니다. 즉, "o"를...
블록체인에서 오라클이란 무엇입니까? (외부 데이터)
2026-04-11 03:59:39
정의 및 핵심 기능 1. 블록체인의 오라클은 스마트 계약에 외부 데이터를 제공하는 신뢰할 수 있는 제3자 서비스입니다. 2. API, 데이터베이스, 웹 피드 또는 IoT 장치와 같은 온체인 로직과 오프체인 정보 소스 간의 브리지 역할을 합니다. 3. 오라클이 없으면 스...
트랜잭션 해시(TxID)를 해석하는 방법은 무엇입니까? (지불 증명서)
2026-04-10 23:19:44
거래 해시란 무엇입니까? 1. TxID 또는 트랜잭션 ID라고도 하는 트랜잭션 해시는 블록체인 트랜잭션의 직렬화된 데이터에 암호화 해시 함수를 적용하여 생성된 고유한 영숫자 문자열입니다. 2. 이는 각 트랜잭션에 대해 불변의 지문 역할을 하여 두 개의 서로 다른 트랜잭...
GameFi 란 무엇입니까? (플레이 투 적립 기본)
2026-04-13 11:00:17
정의 및 핵심 아키텍처 1. GameFi는 전적으로 퍼블릭 블록체인 인프라를 기반으로 구축된 게임과 금융의 융합을 의미합니다. 2. 스테이킹, 유동성 공급, 이자 농사, 거버넌스 투표 등 분산형 금융 기본 요소를 대화형 게임 메커니즘에 직접 포함합니다. 3. 모든 게임...
NFT 마켓플레이스를 어떻게 사용하나요? (구매 및 판매)
2026-04-19 12:40:30
Web3 지갑 설정 1. 공식 브라우저 확장 프로그램이나 모바일 앱을 통해 MetaMask 또는 Trust Wallet을 설치하세요. 2. 새 지갑을 생성하고 12단어 복구 문구를 오프라인에 안전하게 보관하세요. 3. 가스 비용을 충당하기 위해 기본 체인 토큰(Ethe...
모든 기사 보기














