-
Bitcoin
$117,514.9158
3.84% -
Ethereum
$2,989.0357
6.60% -
XRP
$2.8167
13.10% -
Tether USDt
$1.0002
-0.01% -
BNB
$696.2252
3.23% -
Solana
$164.0625
3.31% -
USDC
$0.9999
0.02% -
Dogecoin
$0.2125
15.32% -
TRON
$0.3030
4.01% -
Cardano
$0.7393
13.50% -
Hyperliquid
$46.1860
8.23% -
Sui
$3.4752
2.33% -
Stellar
$0.3791
26.98% -
Bitcoin Cash
$537.0626
5.66% -
Chainlink
$15.7329
7.93% -
Avalanche
$21.2526
7.63% -
Hedera
$0.2003
11.32% -
UNUS SED LEO
$9.0035
-0.99% -
Shiba Inu
$0.0...01377
8.21% -
Litecoin
$97.3323
5.35% -
Toncoin
$2.9956
3.73% -
Polkadot
$4.0436
8.99% -
Monero
$328.9917
1.21% -
Uniswap
$8.8595
7.82% -
Pepe
$0.0...01294
12.62% -
Dai
$0.9999
0.00% -
Ethena USDe
$1.0007
-0.02% -
Bitget Token
$4.4958
0.41% -
Aave
$307.2617
0.78% -
Pi
$0.4909
0.85%
일반적인 스마트 계약 취약점
스마트 계약 보안을 향상시키기 위해 개발자는 재창조 가드를 구현하고 Safemath Libraries를 사용하고 엄격한 액세스 제어를 시행하며 폴백 기능의 복잡한 논리를 피해야합니다.
2025/07/12 01:21

재창조 공격
스마트 계약에서 가장 악명 높은 취약점 중 하나는 재창조 공격 으로 2016 년 DAO 해킹으로 유명해졌습니다.이 취약점은 악성 계약이 초기 기능 실행이 완료되기 전에 원래 계약으로 다시 전화를 걸면 발생합니다. 결과적으로 적절한 점검없이 외부 통화를 처리하는 기능을 악용 할 수 있습니다.
재창조 공격을 방지하기 위해 개발자는 알려지지 않았거나 신뢰할 수없는 계약에 대한 외부 호출을 피해야합니다. 일반적인 완화 기술은 Checks-Effects-interactions 패턴을 사용하는 것입니다. 여기에는 외부 통화를하기 전에 계약 상태를 업데이트하는 것이 포함됩니다. 또한 Mutex 잠금 장치를 사용하여 Reentrancy Guard를 구현하면 재귀 통화를 차단하는 데 도움이 될 수 있습니다.
또 다른 방법은 OpenZeppelin의 ReentrancyGuard와 같은 잘 알려진 라이브러리를 사용하는 것입니다.이 라이브러리는 실행 중에 기능 재입국을 제한 할 수없는 수정자를 제공합니다. 개발자는 또한 이러한 공격으로 인한 잠재적 손상을 줄이기 위해 단일 전화로 전송할 수있는 에테르 또는 토큰의 양을 제한하는 것을 고려해야합니다.
정수 오버플로 및 언더 플로우
0.8.0 이전에 견고성 버전으로 작성된 스마트 계약은 정수 오버플로 및 언더 플로 에 취약합니다. 산술 연산이 UINT256과 같은 주어진 데이터 유형에 대한 최소 허용 값보다 최대 값을 초과하는 값을 초과 할 때 발생합니다.
예를 들어, 유형 UINT256의 변수가 값 0을 보유하고 감소하면 최대 값 (2^256-1)으로 유도되어 잘못된 잔액 또는 무단 액세스로 이어집니다. 이를 완화하기 위해 개발자는 OpenZeppelin이 제공하는 Safemath 라이브러리를 사용하여 산술 작업에 대한 명시 적 검사를 수행해야합니다.
Solidity 0.8.0으로 시작하여 이러한 검사는 기본적으로 활성화되며 산술 작업은 확인되지 않은 {...} 블록을 사용하여 명확하게 확인하지 않는 한 오류 또는 언더 플로에 오류가 발생합니다. 그러나이 내장 보호를 받더라도 성능 최적화를 위해 안전 점검을 비활성화 할 때 개발자는 신중해야합니다.
또한 모든 입력을 검증하고 특히 사용자가 제공 한 값 또는 토큰 전송과 관련된 동적 계산을 처리 할 때 수학 작업이 올바르게 제한되는지 확인하는 것이 중요합니다.
선두 주행 공격
이더 리움과 같은 공개 블록 체인에서는 거래가 채굴되기 전에 볼 수 있으므로 선두 주행 공격 의 문을 열어줍니다. 공격자는 보류중인 거래를 관찰하고 더 높은 가스 수수료로 자체적으로 제출하여 먼저 실행하여 결과를 조작 할 수 있습니다.
이 취약점은 일반적으로 분산 거래소 (DEX) 및 거래 주문이 중요한 기타 응용 프로그램에 영향을 미칩니다. 예를 들어, 사용자가 특정 가격으로 거래를 제출하면 공격자는 해당 거래를 앞두고 더 나은 요금을 얻고 효과적으로 가치를 훔칠 수 있습니다.
선두 주행을 방어하기 위해 개발자는 커밋 리베일 체계와 같은 메커니즘을 구현할 수 있습니다. 이 접근법에서 사용자는 먼저 해시 버전의 거래 (커밋 단계)를 제출하고 나중에 전체 세부 사항 (공개 단계)을 공개하여 공격자가 너무 늦을 때까지 정확한 조치를 알지 못하게합니다.
또는 계약 내에서 임의성 또는 시간 기반 조건을 사용하면 거래 결과를 예측하는 것이 더 어려워 질 수 있습니다. 그러나 진정한 임의성 온 체인은 도전적이므로 개발자는 종종 민감한 정보를 모호하게하기 위해 오프 체인 오라클 또는 암호화 약속에 의존합니다.
부적절한 액세스 제어
액세스 제어는 안전한 스마트 계약 개발의 중요한 측면입니다. 부적절한 액세스 제어는 권한있는 기능의 무단 실행으로 이어질 수 있으며, 공격자는 계약 상태를 변경하거나 자금을 배수하거나 계약 기능을 비활성화 할 수 있습니다.
전형적인 실수는 민감한 기능을 부를 수있는 사람을 제한하는 것이 아닙니다. 예를 들어, 계약 소유자 가만 호출 해야하는 함수는 전용 소유자 와 같은 수정자가 부족하여 누구나이를 호출 할 수 있습니다. 또 다른 문제는 사용 후 권한이 하드 코딩되거나 제대로 취소되지 않은 경우에 발생합니다.
이를 해결하기 위해 개발자는 OpenZeppelin 자체 및 역할 라이브러리에있는 것과 같은 역할 기반 액세스 제어 패턴을 사용해야합니다. 중요한 매개 변수를 변경하는 기능에는 발신자의 신원 또는 역할을 확인하는 요구 사항 또는 수정자가 포함되어야합니다.
또한, 다중 서명 지갑은 관리 조치에 사용될 수 있으며, 고위험 작업을 수행하기 전에 여러 승인이 필요합니다. 의도하지 않은 액세스 경로가 존재하지 않도록 허가 된 기능의 정기 감사 및 테스트는 필수적입니다.
서비스 거부 (DOS) 취약점
현명한 계약은 악의적 인 행위자가 합법적 인 사용자가 계약과 상호 작용하는 것을 방지하는 서비스 거부 (DOS) 공격의 피해자가 될 수 있습니다. 이는 과도한 가스 소비를 강제하거나 실행 경로를 막는 등 다양한 수단을 통해 발생할 수 있습니다.
한 가지 예는 에테르를 보내기 위해 일련의 주소를 통해 루프하는 계약입니다. 수신자 중 한 명이 과도한 가스를 소비하는 폴백 함수가 있거나 되돌아 가면 전체 루프가 실패하여 자금이 고정 될 수 있습니다.
DOS 위험을 완화하기 위해 개발자는 동적 배열에 의존하는 루프를 피해야합니다. 대신, 오프 체인 솔루션 또는 풀오버 푸시 결제 모델을 구현할 수 있으며, 여기서 사용자는 자동으로 자금을 푸시하지 않고 인출을 시작합니다.
또한, 계약에는 관리자에 의한 수동 개입을 허용하거나 실패한 작업을 재 시도하는 것과 같은 고장의 경우 폴백 메커니즘이 포함되어야합니다. 기능 호출 내에서 가스 한계 및 시간 초과를 사용하면 무기한 차단을 방지 할 수 있습니다.
폴백 기능 취약점
폴백 기능은 에테르 전송 또는 인식되지 않은 기능 호출의 기본 핸들러 역할을합니다. 그러나 신중하게 설계되지 않으면 심각한 보안 결함을 도입 할 수 있습니다. 폴백 함수는 간단하게 유지해야하며 복잡한 논리 또는 상태 변경을 포함해서는 안됩니다.
주목할만한 위험은 폴백 함수에 루프가 포함되거나 다른 계약을 호출하여 가스 외 예외 또는 재창조 가능성을 높일 때입니다. 또한 계약이 폴백을 통해 에테르 수신에 의존하지만 발신자가 송신 () 또는 send ()를 사용하는 시나리오를 설명하지 않으면 제한된 가스가 전달되어 예기치 않게 실패 할 수 있습니다.
개발자는 폴백 기능이 최소한의 논리로 되돌리거나 처리하여 예기치 않은 에테르를 거부하도록해야합니다. 또한 Solidity 0.6.0에 도입 된 수신 () 및 Follback () 기능을 사용하여 지불 할 수없고 지불 할 수없는 폴백 동작을 분리하는 것이 좋습니다.
폴백 논리를 철저히 감사하고 사용자 지정 폴백으로 계약에서 에테르를 보내는 것과 같은 테스트 엣지 케이스는 혼란이나 악용을 피하기 위해 필수적입니다.
자주 묻는 질문
스마트 계약 취약점을 감지하기 위해 어떤 도구를 사용할 수 있습니까?
Slither, Mythx 및 Oyente와 같은 정적 분석 도구를 사용하여 일반적인 취약점을 식별 할 수 있습니다. OpenZeppelin Defender와 같은 플랫폼은 런타임 모니터링 및 디버깅 기능을 부드럽게 제공합니다. 자동화 된 도구를 수동 코드 리뷰와 항상 포괄적 인 커버리지를 위해 공식적인 검증을 결합하십시오.
스마트 계약에서 재창조를 어떻게 테스트 할 수 있습니까?
기능을 다시 입력하도록 설계된 악성 계약에 대한 외부 통화를 시뮬레이션하는 단위 테스트를 작성하십시오. HardHat 또는 Truffle 프레임 워크를 사용하여 모의 계약을 배포하고 상호 작용하십시오. Echidna와 같은 퍼징 도구를 활용하여 에지 케이스 테스트를 자동화 할 수도 있습니다.
견고성에 인라인 어셈블리를 사용하는 것이 안전합니까?
인라인 어셈블리는 EVM에 대한 낮은 수준의 제어를 부여하지만 많은 Solidity의 안전 기능을 우회합니다. 숙련 된 개발자 만 사용하고 철저히 검토해야합니다. 최적화 또는 특정 EVM 기능에 절대적으로 필요하지 않은 한 사용하지 마십시오.
배포 후 계약을 안전하게 업그레이드 할 수 있습니까?
예, 프록시 패턴을 사용하는 업그레이드 가능한 계약은 상태를 보존하는 동안 업데이트를 허용합니다. 그러나 그들은 복잡성과 새로운 공격 표면을 도입합니다. OpenZeppelin의 Transparent 또는 UUPS 프록시와 같은 확립 된 업그레이드 가능성 패턴을 사용하고 적절한 액세스 제어 및 철저한 테스트를 보장합니다.
부인 성명:info@kdj.com
제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!
본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.
- Binance, USD1 및 Stablecoins : Crypto의 최신 드라마에 대한 New Yorker의 테이크
- 2025-07-12 07:10:12
- MSGA Token: Revolutionizing Wealth Management with AI and Global Assets
- 2025-07-12 06:30:11
- 밈 동전 : 장기 잠재력과 10 배의 꿈
- 2025-07-12 07:10:12
- Arctic Pablo, Trump Coin, Crypto Coins : 과대 광고는 무엇입니까?
- 2025-07-12 06:50:12
- Omni Network (Omni) : 급격한 이익 또는 위험한 비즈니스?
- 2025-07-12 06:30:11
- 비트 코인은 $ 118K를 넘어 폭발합니다. ETF 유입과 약한 달러는 불에 연료를 공급합니다!
- 2025-07-12 06:50:12
관련 지식

짧은 미래 위치의 PNL을 추정하는 방법은 무엇입니까?
2025-07-10 17:00:59
선물 거래 및 PNL의 기본 이해 선물 거래 에서 상인은 미래에 특정 시간에 미리 정해진 가격으로 자산을 사거나 판매하기 위해 계약을 체결합니다. 당신이 짧은 미래 지위를 취하면, 당신은 본질적으로 기본 자산의 가격이 하락할 것이라고 내기하고 있습니다. 귀하의 이익 및...

가장 일반적인 스마트 계약 설계 패턴은 무엇입니까?
2025-07-10 21:29:07
스마트 계약 설계 패턴 소개 스마트 계약 설계 패턴은 블록 체인 기반 애플리케이션을 개발하는 동안 발생하는 반복 문제에 대한 표준화 된 솔루션입니다. 이러한 패턴은 개발자가 안전하고 효율적이며 유지 관리 가능한 방식으로 코드를 구성하는 데 도움이됩니다. 이더 리움 및 ...

스마트 계약의 커밋 리뷰 체계는 무엇입니까?
2025-07-10 17:22:03
커밋 회복 체계의 개념을 이해합니다 블록 체인 및 스마트 계약 영역에서 프라이버시와 공정성은 종종 투표, 경매 또는 복권을 포함하는 분산 된 응용 프로그램 (DAPP)에서 중요한 문제입니다. 커밋-재교사 체계는 참가자들이 즉시 공개하지 않고 가치에 헌신 할 수 있도록함...

수율 농업 애그리 게이터는 스마트 계약을 어떻게 사용합니까?
2025-07-11 02:49:40
수확량 농업 응집기에서 스마트 계약의 역할 이해 수확량 농업 응집기는 스마트 계약을 활용하여 여러 분산 금융 (DEFI) 프로토콜에서 수율 생성 프로세스를 자동화하고 최적화합니다. 이러한 스마트 계약은 Ethereum 또는 Binance Smart Chain과 같은 블...

스마트 계약이 오프 체인 API와 상호 작용할 수 있습니까?
2025-07-10 21:42:30
스마트 계약이란 무엇입니까? 스마트 계약은 코드 라인에 직접 작성된 계약 조건과 자체 실행 계약입니다. 이 계약은 이더 리움과 같은 블록 체인 플랫폼에서 실행되며 미리 정해진 조건이 충족 될 때 조치를 자동으로 실행합니다. 분산 된 네트워크에서 작동하기 때문에 스마트 ...

암호화 대출 프로토콜은 스마트 계약으로 금리를 어떻게 계산합니까?
2025-07-11 07:21:56
암호화 대출 프로토콜의 기본 사항 이해 암호화 대출 프로토콜은 스마트 계약을 사용하여 블록 체인 네트워크에서 작동하여 디지털 자산을 빌리고 대출하는 프로세스를 자동화합니다. 이 플랫폼은 사용자가 자체 실행 코드에 전적으로 의존하여 중개자없이 유동성을 공급하거나 대출을받...

짧은 미래 위치의 PNL을 추정하는 방법은 무엇입니까?
2025-07-10 17:00:59
선물 거래 및 PNL의 기본 이해 선물 거래 에서 상인은 미래에 특정 시간에 미리 정해진 가격으로 자산을 사거나 판매하기 위해 계약을 체결합니다. 당신이 짧은 미래 지위를 취하면, 당신은 본질적으로 기본 자산의 가격이 하락할 것이라고 내기하고 있습니다. 귀하의 이익 및...

가장 일반적인 스마트 계약 설계 패턴은 무엇입니까?
2025-07-10 21:29:07
스마트 계약 설계 패턴 소개 스마트 계약 설계 패턴은 블록 체인 기반 애플리케이션을 개발하는 동안 발생하는 반복 문제에 대한 표준화 된 솔루션입니다. 이러한 패턴은 개발자가 안전하고 효율적이며 유지 관리 가능한 방식으로 코드를 구성하는 데 도움이됩니다. 이더 리움 및 ...

스마트 계약의 커밋 리뷰 체계는 무엇입니까?
2025-07-10 17:22:03
커밋 회복 체계의 개념을 이해합니다 블록 체인 및 스마트 계약 영역에서 프라이버시와 공정성은 종종 투표, 경매 또는 복권을 포함하는 분산 된 응용 프로그램 (DAPP)에서 중요한 문제입니다. 커밋-재교사 체계는 참가자들이 즉시 공개하지 않고 가치에 헌신 할 수 있도록함...

수율 농업 애그리 게이터는 스마트 계약을 어떻게 사용합니까?
2025-07-11 02:49:40
수확량 농업 응집기에서 스마트 계약의 역할 이해 수확량 농업 응집기는 스마트 계약을 활용하여 여러 분산 금융 (DEFI) 프로토콜에서 수율 생성 프로세스를 자동화하고 최적화합니다. 이러한 스마트 계약은 Ethereum 또는 Binance Smart Chain과 같은 블...

스마트 계약이 오프 체인 API와 상호 작용할 수 있습니까?
2025-07-10 21:42:30
스마트 계약이란 무엇입니까? 스마트 계약은 코드 라인에 직접 작성된 계약 조건과 자체 실행 계약입니다. 이 계약은 이더 리움과 같은 블록 체인 플랫폼에서 실행되며 미리 정해진 조건이 충족 될 때 조치를 자동으로 실행합니다. 분산 된 네트워크에서 작동하기 때문에 스마트 ...

암호화 대출 프로토콜은 스마트 계약으로 금리를 어떻게 계산합니까?
2025-07-11 07:21:56
암호화 대출 프로토콜의 기본 사항 이해 암호화 대출 프로토콜은 스마트 계약을 사용하여 블록 체인 네트워크에서 작동하여 디지털 자산을 빌리고 대출하는 프로세스를 자동화합니다. 이 플랫폼은 사용자가 자체 실행 코드에 전적으로 의존하여 중개자없이 유동성을 공급하거나 대출을받...
모든 기사 보기
