시가총액: $2.882T -1.49%
거래량(24시간): $102.5955B -0.51%
공포와 탐욕 지수:

67 - 탐욕

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

언어 선택

언어 선택

통화 선택

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

일시 정지 될 수있는 스마트 계약을 구축하는 방법은 무엇입니까?

A pausable smart contract allows developers to temporarily halt functions like token transfers or minting, offering flexibility for maintenance while maintaining security through ownership controls and modifiers.

2025/07/13 19:00

일시 중지 가능한 스마트 계약의 개념을 이해합니다

블록 체인 및 이더 리움 기반 애플리케이션 의 세계에서 스마트 계약은 일단 배포되면 불변의 코드입니다. 그러나 실제 사용 사례의 경우 개발자는 유지 보수 또는 비상 목적으로 계약 기능을 일시적으로 일시 중지하는 메커니즘이 필요할 수 있습니다. 일시 중지 가능한 스마트 계약을 통해 계약의 논리를 영구적으로 변경하지 않고 특정 기능을 중단 할 수 있습니다. 이 기능은 중요한 기간 동안 토큰 전송 , 마이닝 또는 사용자 상호 작용과 같은 특정 작업을 방지 할 필요가있을 때 특히 유용합니다.

계약을 일시 중지하는 능력은 소유자 또는 다중 서명 지갑이 제어 할 수있는 거버넌스 메커니즘을 도입합니다. 계약이 자율적이지만 특정 조건에서 여전히 중앙 집중식 제어 수준을 유지합니다.

일시 정지 스마트 계약의 주요 구성 요소

일시 정지 계약을 구현하려면 몇 가지 주요 구성 요소가 포함되어야합니다.

  • 계약이 현재 일시 중지되었는지 여부를 저장하는 일시 paused 와 같은 부울 상태 변수 .
  • 일시 정지 상태에 따라 기능 실행을 제한하는 수정 자 .
  • 승인 된 주소 만 보장하기위한 소유권 컨트롤은 일시 정지 상태를 전환 할 수 있습니다.

예를 들어, 견고성에서는 다음과 같이 선언 할 수 있습니다.

 bool public paused = false;

이 라인은 중요한 기능을 실행하기 전에 확인할 수있는 공개 변수를 초기화합니다. whenNotPaused 와 whenPaused 수정자는 일반적으로 현재 상태에 따라 함수에 대한 액세스를 게이트하는 데 사용됩니다.

견고성에서 일시 정지 수정자를 구현합니다

일시 정지 성을 계약에 통합하는 가장 효과적인 방법 중 하나는 사용자 정의 수정자를 통하는 것입니다. 이 수정자는 함수가 진행되기 전에 일시 정지 상태를 확인합니다.

다음은 정의 할 수있는 방법입니다.

 modifier whenNotPaused() { require(!paused, 'Contract is paused'); _;

}

WhenPaused () {수정 자

require(paused, 'Contract is not paused'); _;

}

그런 다음 이러한 수정자를 조건부 차단하려는 기능에 적용 할 수 있습니다.

 function mint(address to, uint256 amount) public whenNotPaused { // Minting logic here

}

whenNotPaused 적용함으로써 계약이 일시 중지되는 동안 누군가 전화를 걸려고하면 mint 기능이 메시지와 함께 되돌아갑니다. 마찬가지로, 계약 재개와 같은 일시 정지 상태 운영 만 허용하기 위해 whenPaused 사용할 수 있습니다.

일시 정지 및 불완전 함수 추가

실제로 일시 정지 상태를 제어하려면 두 가지 핵심 기능이 필요합니다. 하나는 일시 중지 하고 다른 하나는 계약을 파악할 수 있습니다. 이들은 Ownable 것과 같은 액세스 제어 메커니즘을 사용하여 보호되어야합니다.

예제 구현은 다음과 같습니다.

 function pause() public onlyOwner { paused = true;

}

함수 unpause () public Onlyowner {

paused = false;

}

이 설정에서는 소유자 만이 기능을 호출 할 수 있습니다. 무단 또는 우발적 일시 중지의 위험을 줄이기 위해 멀티 시그 지갑 또는 타임 락을 구현하여 보안을 더욱 향상시킬 수 있습니다.

상태가 변경 될 때 이벤트를 방출하는 것도 필수적이므로 오프 체인 시스템이 그에 따라 반응 할 수 있습니다.

 event Paused(); event Unpaused(); 함수 pause () public Onlyowner {

paused = true; emit Paused();

}

함수 unpause () public Onlyowner {

paused = false; emit Unpaused();

}

모범 사례 및 보안 고려 사항

일시 정지 성을 구현하면 유연성이 향상되지만 잠재적 인 보안 위험도 도입합니다. 다음은 다음과 같은 모범 사례입니다.

  • 권한있는 액세스 최소화 : 신뢰할 수있는 엔티티 만 계약을 일시 중지 할 수 있어야합니다. 단일 소유자 대신 역할 기반 액세스 제어 (RBAC)를 사용하는 것을 고려하십시오.
  • 지나치게 칭찬을 피하십시오 : 모든 기능을 멈출 수있는 것은 아닙니다. 예를 들어, 읽기 전용 함수 또는 균형 점검은 일반적으로 제한이 필요하지 않습니다.
  • 철저히 테스트 : 일시 정지가 예상되는 행동을 중단하지 않도록하십시오. 계약이 잠시 멈추고 여러 번 사용되지 않는 테스트 시나리오.
  • 메커니즘을 문서화하십시오 : 사용자는 계약에 일시 정지 기능이 있으며 그 의미를 이해해야합니다.

또한, 버그 또는 취약점이 작동 중에 악용되는 경우 비상 복구 메커니즘을 통합하는 것을 고려하십시오.

예제 구현 예

모든 것을 정리하면 OpenZeppelin의 라이브러리를 사용하여 일시 정지 토큰 계약 의 간단하지만 완전한 예입니다.

 pragma solidity ^0.8.0; import '@OpenZeppelin/contracts/token/erc20/erc20.sol'; import '@OpenZeppelin/contracts/access/weelable.sol';

계약 PAUSABLETOKE는 ERC20입니다.

bool public paused = false; constructor(string memory name, string memory symbol) ERC20(name, symbol) {} modifier whenNotPaused() { require(!paused, 'PausableToken: paused'); _; } function pause() external onlyOwner { paused = true; } function unpause() external onlyOwner { paused = false; } function mint(address to, uint256 amount) external whenNotPaused { _mint(to, amount); }

}

이 계약은 OpenZeppelin의 ERC20 기본 클래스를 확장하고 mint 기능에 일시 정지 성을 추가합니다. 소유자는 마음대로 계약을 일시 중지하고 제거 할 수 있습니다.

자주 묻는 질문

Q1 : 스마트 계약의 기능을 멈출 수 있습니까? 그렇습니다. 모든 기능은 whenNotPaused 또는 whenPaused modifier를 적용하여 일시 중지 할 수 있습니다. 그러나 모든 기능을 멈출 수있는 것은 아니며, 특히 거버넌스 또는 소유권과 관련된 기능은 아닙니다.

Q2 : 계약을 영구적으로 일시 중지 할 수 있습니까? 기술적으로 그렇습니다. 그러나 그렇게하면 계약의 일부를 사용할 수 없게 만들 수 있습니다. 기능이 영구적으로 비활성화되지 않는 한 일반적으로 불행한 기능을 포함하는 것이 좋습니다.

Q3 : 계약이 일시 중지 될 때 거래중인 거래는 어떻게됩니까? 일시 정지 기능을 실행하려는 거래 보류 거래는 실패하고 오류 메시지로 되돌아갑니다. 이미 채굴되었지만 아직 실행되지 않은 거래는 일시 정지 기능을 목표로하면 되돌아갑니다.

Q4 : 일시 정지 성이 분산 금융 (Defi) 프로토콜에 어떤 영향을 미칩니 까? 결함에서, 일시 정지 성은 안전 메커니즘이자 중앙 집중화 문제가 될 수있다. 프로토콜은 종종 시간 잠금 거버넌스를 사용하여 일시 정지 권리의 오용을 완화합니다.

부인 성명:info@kdj.com

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

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

관련 지식

레버리지 선물 포지션을 관리할 때 DOT 펀딩 요율을 어떻게 사용합니까?

레버리지 선물 포지션을 관리할 때 DOT 펀딩 요율을 어떻게 사용합니까?

2026-10-04 10:59:52

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...

TRX 무기한 계약에서 손절매 및 이익 실현을 설정하는 방법은 무엇입니까?

TRX 무기한 계약에서 손절매 및 이익 실현을 설정하는 방법은 무엇입니까?

2026-10-03 01:59:43

TRX 무기한 계약의 손절매 및 이익 실현 메커니즘 이해 1. TRX 무기한 계약의 손절매(SL) 및 이익 실현(TP) 주문은 시장 평균가가 사용자가 정의한 임계값에 도달할 때 발동되는 조건부 시장 또는 지정가 주문으로 작동합니다. 이는 주문장에 직접 배치되지 않고 거...

가격이 지지선으로 돌아올 때 LTC 무기한 계약을 어떻게 거래하나요?

가격이 지지선으로 돌아올 때 LTC 무기한 계약을 어떻게 거래하나요?

2026-10-03 10:40:29

지원 영역 인식 1. 라이트코인의 60일 이동 평균 $68.40은 지난 7주 중 5번의 주간 마감에서 역동적인 바닥 역할을 했습니다. 2. 온체인 데이터에 따르면 90일 이상 LTC를 보유하는 주소 중 73%가 $66.20~$69.80 사이에 축적되어 밀도가 높은 비용...

주요 저항 수준 근처에서 APT 선물 가격 경고를 설정하는 방법은 무엇입니까?

주요 저항 수준 근처에서 APT 선물 가격 경고를 설정하는 방법은 무엇입니까?

2026-10-04 02:00:21

APT에 대한 주요 저항 수준 식별 1. 4시간 및 일일 차트에서 과거 가격 움직임을 조사하여 APT가 반복적으로 상승하지 못한 영역을 찾습니다. 2. 저항 강도를 확인하기 위한 오버레이 볼륨 프로필 데이터 - 현재 가격보다 높은 볼륨 노드는 기관 공급을 나타냅니다. ...

APT 미결제약정을 사용하여 잠재적인 선물 돌파를 식별하는 방법은 무엇입니까?

APT 미결제약정을 사용하여 잠재적인 선물 돌파를 식별하는 방법은 무엇입니까?

2026-10-02 10:39:57

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 블록 보상이 대략 210,000블록마다 또는 대략 4년마다 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 2024년 4월 반감기 이벤트 이후 현재 블록 보상은 블록당 3.125 BTC입니다. 3. ...

범위 돌파 후 ARB 무기한 계약을 거래하는 방법은 무엇입니까?

범위 돌파 후 ARB 무기한 계약을 거래하는 방법은 무엇입니까?

2026-10-04 09:19:52

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 블록당 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 20...

레버리지 선물 포지션을 관리할 때 DOT 펀딩 요율을 어떻게 사용합니까?

레버리지 선물 포지션을 관리할 때 DOT 펀딩 요율을 어떻게 사용합니까?

2026-10-04 10:59:52

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...

TRX 무기한 계약에서 손절매 및 이익 실현을 설정하는 방법은 무엇입니까?

TRX 무기한 계약에서 손절매 및 이익 실현을 설정하는 방법은 무엇입니까?

2026-10-03 01:59:43

TRX 무기한 계약의 손절매 및 이익 실현 메커니즘 이해 1. TRX 무기한 계약의 손절매(SL) 및 이익 실현(TP) 주문은 시장 평균가가 사용자가 정의한 임계값에 도달할 때 발동되는 조건부 시장 또는 지정가 주문으로 작동합니다. 이는 주문장에 직접 배치되지 않고 거...

가격이 지지선으로 돌아올 때 LTC 무기한 계약을 어떻게 거래하나요?

가격이 지지선으로 돌아올 때 LTC 무기한 계약을 어떻게 거래하나요?

2026-10-03 10:40:29

지원 영역 인식 1. 라이트코인의 60일 이동 평균 $68.40은 지난 7주 중 5번의 주간 마감에서 역동적인 바닥 역할을 했습니다. 2. 온체인 데이터에 따르면 90일 이상 LTC를 보유하는 주소 중 73%가 $66.20~$69.80 사이에 축적되어 밀도가 높은 비용...

주요 저항 수준 근처에서 APT 선물 가격 경고를 설정하는 방법은 무엇입니까?

주요 저항 수준 근처에서 APT 선물 가격 경고를 설정하는 방법은 무엇입니까?

2026-10-04 02:00:21

APT에 대한 주요 저항 수준 식별 1. 4시간 및 일일 차트에서 과거 가격 움직임을 조사하여 APT가 반복적으로 상승하지 못한 영역을 찾습니다. 2. 저항 강도를 확인하기 위한 오버레이 볼륨 프로필 데이터 - 현재 가격보다 높은 볼륨 노드는 기관 공급을 나타냅니다. ...

APT 미결제약정을 사용하여 잠재적인 선물 돌파를 식별하는 방법은 무엇입니까?

APT 미결제약정을 사용하여 잠재적인 선물 돌파를 식별하는 방법은 무엇입니까?

2026-10-02 10:39:57

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 블록 보상이 대략 210,000블록마다 또는 대략 4년마다 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 2024년 4월 반감기 이벤트 이후 현재 블록 보상은 블록당 3.125 BTC입니다. 3. ...

범위 돌파 후 ARB 무기한 계약을 거래하는 방법은 무엇입니까?

범위 돌파 후 ARB 무기한 계약을 거래하는 방법은 무엇입니까?

2026-10-04 09:19:52

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 블록당 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 20...

모든 기사 보기

User not found or password invalid

Your input is correct