-
bitcoin $78074.098354 USD
1.89% -
ethereum $2299.014391 USD
2.17% -
tether $0.998449 USD
0.01% -
bnb $700.460149 USD
1.26% -
xrp $1.273048 USD
1.81% -
usd-coin $0.999762 USD
0.01% -
solana $92.929882 USD
1.25% -
tron $0.321666 USD
0.30% -
zcash $1272.523101 USD
12.65% -
hyperliquid $84.856242 USD
1.58% -
monero $637.212844 USD
3.50% -
dogecoin $0.074680 USD
1.23% -
unus-sed-leo $9.292529 USD
-0.02% -
chainlink $11.063098 USD
-0.05% -
cardano $0.190385 USD
1.97%
스마트 계약에서 재창조 공격은 무엇입니까?
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)로 연락주시면 즉시 삭제하도록 하겠습니다.
- 프랑스 은행 암호화폐 손실: ZachXBT, Crédit Mutuel Arkéa에서 1억 3300만 달러 규모의 강도 사건 발견
- 2026-11-04 16:55:01
- 민주당이 미국 하원 통제권을 확보하고 중간 선거 속에서 의회의 새로운 시대를 열었습니다.
- 2026-11-04 16:45:01
- 미국 중간고사, 예측 시장 및 암호화폐 경쟁: 워싱턴의 미래에 대한 고액 베팅
- 2026-11-04 04:30:22
- 디지털 자산, 글로벌 금융 및 AI: DavosWeb3 및 그 이상에서 차세대 개척지 탐색
- 2026-11-04 04:30:22
- 광범위한 시장 문제로 인해 Avalanche AVAX 가격 하락; 기관의 관심은 여전히 강하다
- 2026-11-03 12:35:02
- 퀀트 가격이 하락하는 이유는 무엇입니까? 시장 불안 속에서 QNT의 최근 하락세에 대한 심층 분석
- 2026-11-03 12:55:01
관련 지식
BTCUSDT 선물 포지션을 보유하는 데 드는 총 비용을 계산하는 방법
2026-10-26 04:06:35
BTCUSDT 선물 포지션의 총 비용 구성요소 1. BTCUSDT 선물 포지션을 보유하는 데 드는 총 비용에는 명시적 비용과 암묵적 비용이 모두 포함됩니다. 명시적 비용은 개설 및 마감 거래 수수료로 구성되는 반면, 암묵적 비용은 주로 시간이 지남에 따라 자금 요율 지...
XRPUSDT 펀딩 비율과 미결제약정을 함께 모니터링하는 방법
2026-10-20 18:39:42
XRPUSDT 무기한 계약의 펀딩 요율 메커니즘 1. XRPUSDT 영구 스왑의 펀딩 요율은 XRP와 USDT 표시 대출 시장 간의 프리미엄 지수와 이자율 차이를 사용하여 8시간마다 계산됩니다. 2. Binance, Bybit 및 OKX와 같은 거래소는 파생 상품 AP...
SOLUSDT 무기한 선물에 손익분기점 손실을 설정하는 방법
2026-10-23 09:34:18
손익분기점 손실 메커니즘 이해 1. 손익분기점 손절매는 포지션이 수익성 있게 움직일 때 위쪽으로 조정되어 실행 시 순손실이 0으로 고정되는 동적 주문입니다. 2. 거래가 미리 정의된 수익 기준점(일반적으로 초기 위험 또는 진입 수수료의 1배~2배)에 도달한 후에만 작동...
ETHUSDT 거래에 바이낸스 선물 계산기를 사용하는 방법
2026-10-21 02:00:11
바이낸스 선물 계산기 인터페이스 이해 1. 계산기는 주문 입력 패널 아래 ETHUSDT 영구 계약 페이지를 통해 액세스할 수 있는 바이낸스 선물 거래 인터페이스에 직접 내장되어 있습니다. 2. 사용자가 포지션 크기, 진입 가격, 레버리지 수준, 이익실현 또는 손절매 수...
선물 청산 전 BTCUSDT 표시 가격을 확인하는 방법
2026-10-26 12:20:18
BTCUSDT 선물의 시장 평균 가격 이해 1. 시장평균가는 변동성이 큰 시장 상황에서 불공정한 청산을 방지하기 위해 거래소가 계산한 가격입니다. 2. 지수 가격, 펀딩 요율 등 다양한 출처에서 도출된 공정하고 안정적인 기준 가격을 반영합니다. 3. 시장 평균가는 마지...
TRUMPUSDT 무기한 계약의 레버리지를 조정하는 방법
2026-10-30 22:19:37
TRUMPUSDT 무기한 계약 메커니즘 이해 1. TRUMPUSDT는 여러 Tier-1 파생상품 거래소에 상장된 주제별 무기한 선물 계약으로, 기본 자산 펀더멘털보다는 미국 정치적 서술에 대한 가격 심리를 추적하도록 설계되었습니다. 2. USDT를 견적 및 마진 자산으...
BTCUSDT 선물 포지션을 보유하는 데 드는 총 비용을 계산하는 방법
2026-10-26 04:06:35
BTCUSDT 선물 포지션의 총 비용 구성요소 1. BTCUSDT 선물 포지션을 보유하는 데 드는 총 비용에는 명시적 비용과 암묵적 비용이 모두 포함됩니다. 명시적 비용은 개설 및 마감 거래 수수료로 구성되는 반면, 암묵적 비용은 주로 시간이 지남에 따라 자금 요율 지...
XRPUSDT 펀딩 비율과 미결제약정을 함께 모니터링하는 방법
2026-10-20 18:39:42
XRPUSDT 무기한 계약의 펀딩 요율 메커니즘 1. XRPUSDT 영구 스왑의 펀딩 요율은 XRP와 USDT 표시 대출 시장 간의 프리미엄 지수와 이자율 차이를 사용하여 8시간마다 계산됩니다. 2. Binance, Bybit 및 OKX와 같은 거래소는 파생 상품 AP...
SOLUSDT 무기한 선물에 손익분기점 손실을 설정하는 방법
2026-10-23 09:34:18
손익분기점 손실 메커니즘 이해 1. 손익분기점 손절매는 포지션이 수익성 있게 움직일 때 위쪽으로 조정되어 실행 시 순손실이 0으로 고정되는 동적 주문입니다. 2. 거래가 미리 정의된 수익 기준점(일반적으로 초기 위험 또는 진입 수수료의 1배~2배)에 도달한 후에만 작동...
ETHUSDT 거래에 바이낸스 선물 계산기를 사용하는 방법
2026-10-21 02:00:11
바이낸스 선물 계산기 인터페이스 이해 1. 계산기는 주문 입력 패널 아래 ETHUSDT 영구 계약 페이지를 통해 액세스할 수 있는 바이낸스 선물 거래 인터페이스에 직접 내장되어 있습니다. 2. 사용자가 포지션 크기, 진입 가격, 레버리지 수준, 이익실현 또는 손절매 수...
선물 청산 전 BTCUSDT 표시 가격을 확인하는 방법
2026-10-26 12:20:18
BTCUSDT 선물의 시장 평균 가격 이해 1. 시장평균가는 변동성이 큰 시장 상황에서 불공정한 청산을 방지하기 위해 거래소가 계산한 가격입니다. 2. 지수 가격, 펀딩 요율 등 다양한 출처에서 도출된 공정하고 안정적인 기준 가격을 반영합니다. 3. 시장 평균가는 마지...
TRUMPUSDT 무기한 계약의 레버리지를 조정하는 방법
2026-10-30 22:19:37
TRUMPUSDT 무기한 계약 메커니즘 이해 1. TRUMPUSDT는 여러 Tier-1 파생상품 거래소에 상장된 주제별 무기한 선물 계약으로, 기본 자산 펀더멘털보다는 미국 정치적 서술에 대한 가격 심리를 추적하도록 설계되었습니다. 2. USDT를 견적 및 마진 자산으...
모든 기사 보기














