-
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%
스마트 계약에서 재창조 공격은 무엇입니까?
A reentrancy attack exploits recursive function calls in smart contracts to drain funds, as seen in the infamous DAO hack.
2025/07/15 02:50
스마트 계약의 기본 사항 이해
스마트 계약은 코드에 직접 작성된 용어와 자체 실행 계약입니다. 이더 리움과 같은 블록 체인 플랫폼에서 실행되며 중개자가없는 당사자 간의 계약을 자동으로 시행합니다. 이 계약은 일단 배포되면 불변이 불변이므로 코드에 존재하는 취약점은 배치 후 변경 될 수 없습니다. 이 불변성은 스마트 계약이 생방송 전에 가능한 모든 악용으로부터 안전하도록하는 것이 중요합니다.
그러한 악용 중 하나는 재창조 공격 으로, 암호 화폐 생태계의 상당한 손실을 담당했습니다. 이 취약성이 어떻게 작동하는지 이해하려면 스마트 계약이 기능 통화를 통해 외부 계정 및 기타 계약과 상호 작용하는 방법을 이해해야합니다.
재창조 공격이란 무엇입니까?
재창조 공격은 악성 계약이 초기 실행이 완료되기 전에 다른 계약에서 취약한 기능을 반복적으로 호출 할 때 발생합니다. 이 재귀 행동은 자금을 배출하거나 의도하지 않은 방식으로 상태 변수를 조작 할 수 있습니다.
전형적인 예는 계약 처리 에테르 전송이 포함됩니다. 내부 잔액을 업데이트하기 전에 함수가 외부 주소로 Ether를 보내면 악성 계약은 양도 중에 기능을 다시 입력하고 계약의 자금을 반복적으로 배출 할 수 있습니다. 2016 년 악명 높은 DAO 해킹은 6 천만 달러에 이더 손실을 초래했으며 재창조 취약점의 결과였습니다.
재창조 공격은 실제로 어떻게 작동합니까?
재창조 공격의 메커니즘을 더 잘 이해하려면 다음의 단순화 된 시나리오를 고려하십시오.
- 계약에는 사용자가 입금 된 에테르를 인출 할 수있는
withdraw()기능이 있습니다. - 이 기능은 먼저
call.value()사용하여 Ether를 사용자에게 보낸 다음 사용자의 균형을 0으로 업데이트합니다. - 악성 계약은 사용자로서 자체를 등록하고 대상 계약에 에테르를 입금합니다.
-
withdraw()호출되면 대상 계약은 에테르 전송을 시작합니다. - 양도 중에 악성 계약의 폴백 함수 (자동으로 트리거되는)가
withdraw()다시 호출합니다. - 잔액이 아직 업데이트되지 않았으므로 계약은 사용자가 여전히 자금을 사용할 수 있고 더 많은 에테르를 보냅니다.
- 이 루프는 계약이 배수되거나 가스가 소진 될 때까지 계속됩니다.
이 프로세스는 계약 내 운영 순서를 이용하여, 특히 상태를 업데이트하기 전에 에테르를 전송합니다.
재창조 취약점의 유형
재창조 공격은 계약 논리의 다른 측면을 이용하여 여러 형태로 제공됩니다.
- 단일 기능 재창조 : 단일 함수에 외부 통화 및 상태 변경이 모두 포함 된 경우 발생합니다. 공격자는 주가 업데이트되기 전에 외부 통화 중에 재입국을 유발합니다.
- 교차 기능 재창조 : 여기에서 여러 기능이 상태 변수를 공유합니다. 공격자는 두 번째 기능을 다시 입력 할 수 있고 첫 번째는 여전히 실행 중이며 공유 데이터를 일관성있게 조작합니다.
- DelegateCall Reentrancy :이 고급 변형은
delegatecall메커니즘을 사용하여 다른 계약에서 한 계약에서 코드를 실행합니다. 신중하게 처리하지 않으면 예기치 않은 재창조 시나리오로 이어질 수 있습니다.
각 유형은 착취를 방지하기 위해 신중한 감사 및 특정 완화 전략이 필요합니다.
재창조 공격을 방지하는 방법
재창조 공격 방지에는 계약 설계에 모범 사례를 채택하고 보안 도구를 활용하는 것이 포함됩니다.
- 점검 효과 상호 작용 패턴 사용 : 외부 호출을하기 전에 항상 계약 상태를 업데이트하십시오. 이를 통해 재입국은 기존 잔액이나 상태를 조작 할 수 없습니다.
- Reentrancy Guards 구현 : OpenZeppelin과 같은 라이브러리는 Mutex 변수를 사용하여 재진입 통화를 차단하는 Reentrancy Guard 수정자를 제공합니다.
- 복잡한 외부 통화를 피하십시오 : 알려지지 않았거나 신뢰할 수없는 계약과의 상호 작용을 최소화하십시오. 필요한 경우 콜백이 안전하고 임의 코드를 트리거하지 않도록하십시오.
- 풀 오버 푸시 지불금을 사용하십시오 : 자금을 사용자에게 추진하는 대신 인출을 시작하십시오. 이것은 재귀 배수의 위험을 줄입니다.
- 철저한 감사 수행 : 자동화 된 도구 및 수동 리뷰를 사용하여 코드베이스에서 잠재적 인 재창조 벡터를 감지하십시오.
이러한 전략을 적용함으로써 개발자는 성공적인 재창조 공격의 가능성을 크게 줄일 수 있습니다.
Reentrancy Exploits의 실제 사례
몇 가지 유명한 사건은 재창조 공격의 치명적인 영향을 강조합니다.
- The Dao Hack (2016) : 가장 유명한 사례에는 스마트 계약으로 재귀적인 인출이 허용되는 분산 된 자율 조직이 포함되었습니다. 공격자들은 이것을 수백만 분의 에테르를 배수하기 위해이를 이용했습니다.
- Fusion Network Attack (2021) : 해커는 프로토콜에서 교차 기능 재창조 버그를 이용하여 1,400 만 달러의 손실을 초래했습니다.
- Warp Finance Hack (2021) : 여러 기능에 걸쳐 여러 재창조 포인트가 악용되어 공격자는 거의 800 만 달러의 자산을 배출 할 수있었습니다.
이 예는 코딩 관행을 안전하게 테스트하고 준수하는 엄격한 테스트의 중요성을 강조합니다.
자주 묻는 질문
Q : 비에 테레륨 블록 체인에서 재창조 공격이 발생할 수 있습니까? 예, 재창조 공격은 외부 통화 및 변이 가능한 상태로 스마트 계약을 지원하는 모든 블록 체인 플랫폼에 영향을 줄 수 있습니다. 이더 리움은 가장 두드러진 사례를 보았지만 Binance Smart Chain, Solana 및 기타에는 유사한 취약점이 존재합니다.
Q : 모든 외부 전화가 위험합니까? 아니요. 그러나 외부 통화는주의해서 처리해야합니다. 위험은 중요한 상태 변수를 업데이트하기 전에 만들어 질 때 발생합니다. 적절한 코딩 패턴과 보호 조치는이 위험을 완화 할 수 있습니다.
Q : 재창조 취약점 계약을 어떻게 테스트합니까? Slither 또는 Sicurify와 같은 정적 분석 도구를 사용하고 수동 코드 감사를 수행하며 Brownie 또는 Hardhat과 같은 프레임 워크를 사용하여 공격 시나리오를 시뮬레이션 할 수 있습니다. 재창조 가드를 사용하고 안전한 개발 관행도 도움이됩니다.
Q : 플래시 대출 공격과 재창조 공격의 차이점은 무엇입니까? 두 사람 모두 defi 프로토콜을 이용할 수 있지만, 플래시 대출 공격은 담보없이 많은 양의 자본을 빌려서 동일한 거래 내에서이를 상환하는 데 의존합니다. 재창조 공격은 계약 상태를 조작하기 위해 재귀 적으로 기능을 호출하는 데 중점을 둡니다. 그러나 일부 공격은 두 기술을 결합하여 더 큰 영향을 미칩니다.
부인 성명: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
- MegaETH의 대담한 내기: 상장 수수료 없음, 교환 에어드롭 없음, 순수한 투지
- 2026-01-31 19:20:02
- BlockDAG 사전 판매 지연으로 시장 조사 중에 상장 날짜에 대한 의문 제기
- 2026-01-31 19:15:01
- 광범위한 암호화폐 시장 약화로 NFT 판매 급락, 이더리움이 중대한 고비에 직면
- 2026-01-31 19:15:01
관련 지식
LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?
2026-01-18 13:19:39
LayerZero 아키텍처 이해 1. LayerZero는 신뢰할 수 있는 중개자나 래핑된 자산에 의존하지 않고 블록체인 간의 통신을 가능하게 하는 경량의 무허가 상호 운용성 프로토콜로 작동합니다. 2. 각 체인에 배포된 Ultra Light Node(ULN)를 활용하여...
안전한 서명 검증을 위해 EIP-712를 구현하는 방법은 무엇입니까?
2026-01-20 22:20:26
EIP-712 개요 및 핵심 목적 1. EIP-712는 이더리움 애플리케이션에서 형식화된 구조화된 데이터 해싱 및 서명에 대한 표준을 정의합니다. 2. 서명 요청 시 원시 16진수 문자열 대신 사람이 읽을 수 있는 도메인 및 메시지 필드를 지갑에 표시할 수 있습니다. ...
새로운 계약과 상호 작용하여 에어드랍 자격을 얻는 방법은 무엇입니까?
2026-01-24 21:00:23
계약 상호 작용 요구 사항 이해 1. 대부분의 에어드롭 캠페인은 Ethereum, Arbitrum 또는 Base와 같은 지원되는 블록체인에 배포된 스마트 계약과의 직접적인 상호 작용을 요구합니다. 2. 상호 작용에는 일반적으로 dApp 인터페이스에 연결된 지갑을 사용하...
보안 경고에 대한 스마트 계약을 모니터링하는 방법은 무엇입니까?
2026-01-21 07:59:57
온체인 모니터링 도구 1. Etherscan 및 Blockscout와 같은 블록체인 탐색기를 사용하면 계약 바이트 코드, 트랜잭션 로그 및 내부 호출을 실시간으로 검사할 수 있습니다. 2. 온체인 데이터를 신뢰하기 전에 계약 확인 상태를 확인해야 합니다. 확인되지 않은...
자동 결제 계약을 설정하고 자금을 조달하는 방법은 무엇입니까?
2026-01-26 08:59:35
스마트 계약 배포 이해 1. 개발자는 가스 효율성 및 보안 요구 사항을 기반으로 Ethereum, Polygon 또는 Arbitrum과 같은 호환 가능한 블록체인 플랫폼을 선택해야 합니다. 2. Solidity는 특히 반복 또는 조건부 이체를 위한 결제 자동화 로직 작...
OpenZeppelin 계약을 사용하여 안전한 dApp을 구축하는 방법은 무엇입니까?
2026-01-18 11:19:49
OpenZeppelin 계약 기본 사항 이해 1. OpenZeppelin Contracts는 Ethereum 및 EVM 호환 블록체인용으로 구축된 재사용 가능한 커뮤니티 감사 스마트 계약 구성 요소 라이브러리입니다. 2. 라이브러리의 각 계약은 검사-효과-상호작용 패턴...
LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?
2026-01-18 13:19:39
LayerZero 아키텍처 이해 1. LayerZero는 신뢰할 수 있는 중개자나 래핑된 자산에 의존하지 않고 블록체인 간의 통신을 가능하게 하는 경량의 무허가 상호 운용성 프로토콜로 작동합니다. 2. 각 체인에 배포된 Ultra Light Node(ULN)를 활용하여...
안전한 서명 검증을 위해 EIP-712를 구현하는 방법은 무엇입니까?
2026-01-20 22:20:26
EIP-712 개요 및 핵심 목적 1. EIP-712는 이더리움 애플리케이션에서 형식화된 구조화된 데이터 해싱 및 서명에 대한 표준을 정의합니다. 2. 서명 요청 시 원시 16진수 문자열 대신 사람이 읽을 수 있는 도메인 및 메시지 필드를 지갑에 표시할 수 있습니다. ...
새로운 계약과 상호 작용하여 에어드랍 자격을 얻는 방법은 무엇입니까?
2026-01-24 21:00:23
계약 상호 작용 요구 사항 이해 1. 대부분의 에어드롭 캠페인은 Ethereum, Arbitrum 또는 Base와 같은 지원되는 블록체인에 배포된 스마트 계약과의 직접적인 상호 작용을 요구합니다. 2. 상호 작용에는 일반적으로 dApp 인터페이스에 연결된 지갑을 사용하...
보안 경고에 대한 스마트 계약을 모니터링하는 방법은 무엇입니까?
2026-01-21 07:59:57
온체인 모니터링 도구 1. Etherscan 및 Blockscout와 같은 블록체인 탐색기를 사용하면 계약 바이트 코드, 트랜잭션 로그 및 내부 호출을 실시간으로 검사할 수 있습니다. 2. 온체인 데이터를 신뢰하기 전에 계약 확인 상태를 확인해야 합니다. 확인되지 않은...
자동 결제 계약을 설정하고 자금을 조달하는 방법은 무엇입니까?
2026-01-26 08:59:35
스마트 계약 배포 이해 1. 개발자는 가스 효율성 및 보안 요구 사항을 기반으로 Ethereum, Polygon 또는 Arbitrum과 같은 호환 가능한 블록체인 플랫폼을 선택해야 합니다. 2. Solidity는 특히 반복 또는 조건부 이체를 위한 결제 자동화 로직 작...
OpenZeppelin 계약을 사용하여 안전한 dApp을 구축하는 방법은 무엇입니까?
2026-01-18 11:19:49
OpenZeppelin 계약 기본 사항 이해 1. OpenZeppelin Contracts는 Ethereum 및 EVM 호환 블록체인용으로 구축된 재사용 가능한 커뮤니티 감사 스마트 계약 구성 요소 라이브러리입니다. 2. 라이브러리의 각 계약은 검사-효과-상호작용 패턴...
모든 기사 보기














