시가총액: $3.4257T -1.03%
거래량(24시간): $162.4413B -8.00%
공포와 탐욕 지수:

25 - 두려움

  • 시가총액: $3.4257T -1.03%
  • 거래량(24시간): $162.4413B -8.00%
  • 공포와 탐욕 지수:
  • 시가총액: $3.4257T -1.03%
암호화
주제
암호화
소식
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)로 연락주시면 즉시 삭제하도록 하겠습니다.

관련 지식

스마트 계약에서 서비스 거부(DoS) 공격이란 무엇이며 일반적인 형태는 무엇입니까?

스마트 계약에서 서비스 거부(DoS) 공격이란 무엇이며 일반적인 형태는 무엇입니까?

2025-11-10 05:20:08

스마트 계약의 서비스 거부 이해 1. 스마트 계약의 맥락에서 서비스 거부(DoS) 공격은 악의적인 행위자가 합법적인 사용자가 계약 기능에 액세스하거나 사용하는 것을 막는 시나리오를 의미합니다. 이는 일반적으로 공격자가 중요한 작업을 차단할 수 있도록 하는 설계 결함을 ...

거래 서명에 사용되는 암호화 임시값은 무엇입니까?

거래 서명에 사용되는 암호화 임시값은 무엇입니까?

2025-11-11 05:59:39

블록체인 거래의 암호화 임시값 이해 1. 암호화 논스는 블록체인 네트워크 내에서 거래 서명의 맥락에서 한 번만 사용되는 난수 또는 의사 난수입니다. 주요 기능은 각 트랜잭션이 고유하고 악의적인 행위자가 재생할 수 없도록 하는 것입니다. nonce가 없으면 동일한 거래가...

Solidity 스마트 계약에서 상속은 어떻게 작동하나요?

Solidity 스마트 계약에서 상속은 어떻게 작동하나요?

2025-11-11 22:40:12

Solidity의 상속: 모듈식 스마트 계약 구축 1. Solidity의 상속을 통해 하나의 계약이 다른 계약의 속성과 기능을 채택할 수 있으므로 코드 재사용과 구조화된 설계가 가능합니다. 파생 계약은 기본 계약에서 상속할 수 있으며 비공개로 표시되지 않은 상태 변수,...

외부 소유 계정(EOA)과 계약 계정의 차이점은 무엇입니까?

외부 소유 계정(EOA)과 계약 계정의 차이점은 무엇입니까?

2025-11-13 04:00:32

외부 소유 계정(EOA) 이해 1. 외부 소유 계정은 개인 키로 직접 제어됩니다. 즉, 해당 키 소유자만 계정에서 거래를 시작할 수 있습니다. EOA에는 관련 코드가 없습니다. 이는 블록체인에서 거래를 보내고 받는 데 사용되는 간단한 주소입니다. 이러한 계정은 일반적으...

ERC-2981 NFT 로열티 표준은 무엇이며 어떻게 작동합니까?

ERC-2981 NFT 로열티 표준은 무엇이며 어떻게 작동합니까?

2025-11-13 05:39:54

ERC-2981 NFT 로열티 표준 이해 1. ERC-2981 표준은 대체 불가능한 토큰(NFT)에 대한 로열티 메커니즘을 도입하는 제안된 이더리움 의견 요청입니다. 로열티에 대한 기본 지원이 부족한 ERC-721 및 ERC-1155와 같은 이전 NFT 표준과 달리 E...

최소 프록시 계약(EIP-1167)이란 무엇이며 배포 시 가스를 어떻게 절약합니까?

최소 프록시 계약(EIP-1167)이란 무엇이며 배포 시 가스를 어떻게 절약합니까?

2025-11-12 11:39:42

최소 프록시 계약(EIP-1167)이란 무엇입니까? 1. EIP(Ethereum Improvement Proposal) 1167에 따라 표준화된 최소 프록시 계약은 호출을 기존 구현 계약에 위임하도록 설계된 경량 계약입니다. 자체적으로 로직을 저장하지 않고 모든 함수 ...

스마트 계약에서 서비스 거부(DoS) 공격이란 무엇이며 일반적인 형태는 무엇입니까?

스마트 계약에서 서비스 거부(DoS) 공격이란 무엇이며 일반적인 형태는 무엇입니까?

2025-11-10 05:20:08

스마트 계약의 서비스 거부 이해 1. 스마트 계약의 맥락에서 서비스 거부(DoS) 공격은 악의적인 행위자가 합법적인 사용자가 계약 기능에 액세스하거나 사용하는 것을 막는 시나리오를 의미합니다. 이는 일반적으로 공격자가 중요한 작업을 차단할 수 있도록 하는 설계 결함을 ...

거래 서명에 사용되는 암호화 임시값은 무엇입니까?

거래 서명에 사용되는 암호화 임시값은 무엇입니까?

2025-11-11 05:59:39

블록체인 거래의 암호화 임시값 이해 1. 암호화 논스는 블록체인 네트워크 내에서 거래 서명의 맥락에서 한 번만 사용되는 난수 또는 의사 난수입니다. 주요 기능은 각 트랜잭션이 고유하고 악의적인 행위자가 재생할 수 없도록 하는 것입니다. nonce가 없으면 동일한 거래가...

Solidity 스마트 계약에서 상속은 어떻게 작동하나요?

Solidity 스마트 계약에서 상속은 어떻게 작동하나요?

2025-11-11 22:40:12

Solidity의 상속: 모듈식 스마트 계약 구축 1. Solidity의 상속을 통해 하나의 계약이 다른 계약의 속성과 기능을 채택할 수 있으므로 코드 재사용과 구조화된 설계가 가능합니다. 파생 계약은 기본 계약에서 상속할 수 있으며 비공개로 표시되지 않은 상태 변수,...

외부 소유 계정(EOA)과 계약 계정의 차이점은 무엇입니까?

외부 소유 계정(EOA)과 계약 계정의 차이점은 무엇입니까?

2025-11-13 04:00:32

외부 소유 계정(EOA) 이해 1. 외부 소유 계정은 개인 키로 직접 제어됩니다. 즉, 해당 키 소유자만 계정에서 거래를 시작할 수 있습니다. EOA에는 관련 코드가 없습니다. 이는 블록체인에서 거래를 보내고 받는 데 사용되는 간단한 주소입니다. 이러한 계정은 일반적으...

ERC-2981 NFT 로열티 표준은 무엇이며 어떻게 작동합니까?

ERC-2981 NFT 로열티 표준은 무엇이며 어떻게 작동합니까?

2025-11-13 05:39:54

ERC-2981 NFT 로열티 표준 이해 1. ERC-2981 표준은 대체 불가능한 토큰(NFT)에 대한 로열티 메커니즘을 도입하는 제안된 이더리움 의견 요청입니다. 로열티에 대한 기본 지원이 부족한 ERC-721 및 ERC-1155와 같은 이전 NFT 표준과 달리 E...

최소 프록시 계약(EIP-1167)이란 무엇이며 배포 시 가스를 어떻게 절약합니까?

최소 프록시 계약(EIP-1167)이란 무엇이며 배포 시 가스를 어떻게 절약합니까?

2025-11-12 11:39:42

최소 프록시 계약(EIP-1167)이란 무엇입니까? 1. EIP(Ethereum Improvement Proposal) 1167에 따라 표준화된 최소 프록시 계약은 호출을 기존 구현 계약에 위임하도록 설계된 경량 계약입니다. 자체적으로 로직을 저장하지 않고 모든 함수 ...

모든 기사 보기

User not found or password invalid

Your input is correct