시가총액: $2.8337T 0.60%
거래량(24시간): $136.9463B -23.72%
공포와 탐욕 지수:

28 - 두려움

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

언어 선택

언어 선택

통화 선택

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

자기 파괴의 기능은 무엇이며 보안에 미치는 영향은 무엇입니까?

The `selfdestruct` function in Solidity allows a contract to terminate and send its Ether balance to an address, but improper use can lead to fund loss or exploits.

2025/11/13 20:20

스마트 계약에서 자기 파괴의 역할 이해

1. selfdestruct 기능은 스마트 계약이 스스로 종료되고 남은 Ether 잔액을 지정된 주소로 보낼 수 있도록 하는 Solidity에 내장된 기능입니다. 이 작업은 블록체인에서 계약 코드를 영구적으로 제거하여 비활성화합니다. 일단 트리거되면 계약과 더 이상 상호 작용할 수 없으므로 되돌릴 수 없는 작업이 됩니다.

2. 개발자는 계약 수명주기 관리 중에, 특히 업그레이드 가능한 시스템을 배포할 때 종종 selfdestruct를 사용합니다. 프록시 기반 아키텍처에서는 로직을 새로운 구현으로 마이그레이션한 후 selfdestruct를 사용하여 기존 계약을 폐기할 수 있습니다. 이는 사용되지 않는 코드를 정리하고 네트워크 혼란을 줄이는 데 도움이 됩니다.

3. 또 다른 일반적인 적용 분야는 크라우드 펀딩 캠페인이나 임시 에스크로 서비스와 같은 시간 제한이 있는 계약입니다. 목적을 달성한 후 이러한 계약은 selfdestruct를 호출하여 자금을 방출하고 스스로 해체될 수 있으므로 블록체인에서 무기한 휴면 상태로 유지되지 않습니다.

4. 이 기능을 사용하려면 남은 Ether가 전송될 수취인 주소를 지정해야 합니다. 계약이 Ether 대신 토큰을 보유하는 경우, 파기 전에 명시적으로 처리하지 않으면 해당 자산에 액세스할 수 없게 되어 적절하게 관리하지 않으면 영구적인 손실이 발생할 수 있습니다.

Selfdestruct와 관련된 보안 위험

1. 가장 큰 문제는 selfdestruct 기능에 대한 무단 액세스입니다. 액세스 제어가 제대로 구현되지 않으면 악의적인 행위자가 기능을 조기에 실행하여 계약을 삭제하고 자금을 훔칠 수 있습니다. 계약은 이러한 악용을 방지하기 위해 엄격한 역할 기반 권한을 적용해야 합니다.

2. 적절한 인증이 있더라도 조건부 검사의 논리 결함으로 인해 공격자가 상태를 조작하고 selfdestruct를 호출할 자격을 얻을 수 있습니다. 예를 들어, 특정 블록 번호 이후 파기를 허용하는 계약은 해당 조건이 너무 쉽게 충족되거나 적절하게 보호되지 않는 경우 악용될 수 있습니다.

3. 업그레이드 가능한 시스템에서는 프록시 구현 계약에서 실수로 selfdestruct를 사용하면 치명적인 오류가 발생할 수 있습니다. 프록시는 구현에 대한 호출을 위임하므로 위임된 함수 내에서 selfdestruct를 호출하면 프록시 자체가 파괴되어 사용자 자금과 기능이 완전히 손실될 수 있습니다.

4. 일부 프로토콜은 회계 또는 확인 목적으로 계약 주소의 지속적인 존재에 의존합니다. 예상치 못한 자체 파괴로 인해 다른 분산형 애플리케이션과의 통합이 중단되어 생태계 전반에 불일치가 발생할 수 있습니다.

자폭 공격과 관련된 역사적 사건

1. 주목할만한 사례 중 하나는 업그레이드 후 이전 스테이킹 계약을 파기할 수 있는 마이그레이션 메커니즘을 갖춘 분산형 거래소와 관련이 있습니다. 자멸과 결합된 재진입 취약성으로 인해 공격자는 조기 종료를 강제하고 지불금을 공격자가 제어하는 ​​지갑으로 리디렉션하여 유동성을 소모했습니다.

2. 또 다른 프로젝트에서는 개발자가 실수로 공개 호출 가능한 selfdestruct 기능이 포함된 테스트 계약을 프로덕션에 배포하여 부분적인 붕괴가 발생했습니다. 몇 분 안에 봇이 취약점을 감지하고 기능을 실행하여 잠긴 자산 수백만 개를 삭제했습니다.

3. 세간의 이목을 끄는 DAO 공격에서 비록 직접적으로 자멸이 발생하지는 않았지만 그 여파는 스마트 계약의 파괴적인 능력이 어떻게 무기화될 수 있는지를 강조했습니다. 이로 인해 전반적인 네트워크 안전을 향상시키기 위해 selfdestruct와 같은 기능을 제한하거나 더 이상 사용하지 않는 것에 대한 광범위한 논의가 이루어졌습니다.

자주 묻는 질문

selfdestruct가 호출된 후 컨트랙트의 저장소는 어떻게 되나요? selfdestruct가 실행된 후 계약의 코드와 저장소는 Ethereum 상태에서 지워집니다. 계약에 저장된 모든 데이터는 복구할 수 없게 되지만, 기록 기록은 블록체인 탐색기와 보관 노드를 통해 계속 액세스할 수 있습니다.

스스로 파괴된 계약을 되살릴 수 있나요? 아니요. 계약이 파기되면 복원할 수 없습니다. 누군가 코드를 배포하는 트랜잭션을 보내지 않는 한 동일한 주소는 새 계약을 호스팅할 수 없지만 이는 원본과 연결되지 않은 완전히 새로운 인스턴스가 됩니다.

자체 소멸이 계약에 의해 보유된 토큰 잔액에 영향을 줍니까? 이 기능은 Ether만 전송합니다. 계약이 ERC-20 또는 기타 토큰을 보유하고 있는 경우, 파기 전에 출금 기능이 실행되지 않는 한 해당 토큰은 그대로 유지됩니다. 토큰 추출을 처리하지 못하면 영구적인 손실이 발생합니다.

최신 Solidity 버전에서는 selfdestruct를 계속 사용할 수 있나요? 예, selfdestruct는 현재 버전부터 Solidity의 일부로 남아 있습니다. 그러나 보안 문제로 인해 더 이상 사용되지 않거나 제한하자는 제안이 있었습니다. 개발자는 꼭 필요한 경우가 아니면 이를 피하고 사용할 때 엄격한 보호 조치를 구현하는 것이 좋습니다.

부인 성명:info@kdj.com

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

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

관련 지식

LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?

LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?

2026-01-18 13:19:39

LayerZero 아키텍처 이해 1. LayerZero는 신뢰할 수 있는 중개자나 래핑된 자산에 의존하지 않고 블록체인 간의 통신을 가능하게 하는 경량의 무허가 상호 운용성 프로토콜로 작동합니다. 2. 각 체인에 배포된 Ultra Light Node(ULN)를 활용하여...

안전한 서명 검증을 위해 EIP-712를 구현하는 방법은 무엇입니까?

안전한 서명 검증을 위해 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을 구축하는 방법은 무엇입니까?

OpenZeppelin 계약을 사용하여 안전한 dApp을 구축하는 방법은 무엇입니까?

2026-01-18 11:19:49

OpenZeppelin 계약 기본 사항 이해 1. OpenZeppelin Contracts는 Ethereum 및 EVM 호환 블록체인용으로 구축된 재사용 가능한 커뮤니티 감사 스마트 계약 구성 요소 라이브러리입니다. 2. 라이브러리의 각 계약은 검사-효과-상호작용 패턴...

LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?

LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?

2026-01-18 13:19:39

LayerZero 아키텍처 이해 1. LayerZero는 신뢰할 수 있는 중개자나 래핑된 자산에 의존하지 않고 블록체인 간의 통신을 가능하게 하는 경량의 무허가 상호 운용성 프로토콜로 작동합니다. 2. 각 체인에 배포된 Ultra Light Node(ULN)를 활용하여...

안전한 서명 검증을 위해 EIP-712를 구현하는 방법은 무엇입니까?

안전한 서명 검증을 위해 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을 구축하는 방법은 무엇입니까?

OpenZeppelin 계약을 사용하여 안전한 dApp을 구축하는 방법은 무엇입니까?

2026-01-18 11:19:49

OpenZeppelin 계약 기본 사항 이해 1. OpenZeppelin Contracts는 Ethereum 및 EVM 호환 블록체인용으로 구축된 재사용 가능한 커뮤니티 감사 스마트 계약 구성 요소 라이브러리입니다. 2. 라이브러리의 각 계약은 검사-효과-상호작용 패턴...

모든 기사 보기

User not found or password invalid

Your input is correct