-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
Solidity에서 호출, 위임 호출, 정적 호출의 차이점은 무엇입니까?
Understanding `call`, `delegatecall`, and `staticcall` is crucial for secure Solidity development, as each alters execution context, state access, and security risks differently.
2025/11/14 18:59
호출, 위임 호출, 정적 호출 간의 차이점을 이해하는 것은 Solidity의 안전하고 효율적인 스마트 계약 개발에 필수적입니다. 이러한 하위 수준 기능은 다른 계약 또는 외부 계정과의 상호 작용을 허용하지만 컨텍스트, 상태 수정 및 실행 환경 측면에서 다르게 작동합니다.
부르다
1. 호출 함수는 지정된 양의 Ether를 전달하고 호출된 계약의 컨텍스트에서 코드를 실행하는 동안 다른 계약의 기능을 호출합니다.
- 이는 호출 수신자의 저장소, 코드 및 잔액을 사용합니다. 즉, 모든 상태 변경이 대상 계약 범위 내에서 발생함을 의미합니다.
- 이 방법은 컴파일 타임에 ABI를 알 수 없는 외부 계약과 상호 작용할 때 일반적으로 사용됩니다.
- 호출이 선택적 반환 바이트와 함께 성공 또는 실패를 나타내는 부울을 반환하므로 개발자는 반환 데이터를 신중하게 처리해야 합니다.
- 적절한 확인-효과-상호작용 패턴을 따르지 않으면 오용으로 인해 재진입 취약점이 발생할 수 있습니다.
대리인 호출
1. Delegatecall은 다른 계약의 코드를 실행하지만 호출자의 저장소, 컨텍스트 및 균형을 유지합니다.
- 이는 로직이 데이터와 분리되어 업그레이드 가능한 계약을 가능하게 하는 프록시 패턴에 자주 사용됩니다.
- 상태 수정은 호출 계약의 저장소에 영향을 미치므로 프록시와 구현 간에 저장소 레이아웃을 정렬할 때 극도의 주의가 필요합니다.
- call 과 달리 추가 메커니즘을 통해 명시적으로 전송되지 않는 한 Delegatecall 중에 Ether가 전송되지 않습니다.
- 보안 위험에는 프록시의 소유권이나 잔액과 같은 중요한 변수를 변경하는 악의적인 구현 계약이 포함됩니다.
정적 호출
1. staticcall 은 블록체인의 상태를 수정하지 않는 기능을 호출하도록 설계되었습니다.
- 스토리지에 쓰거나, 이벤트를 내보내거나, 상태를 변경하는 작업을 수행하려고 하면 호출이 되돌려집니다.
- 이 기능은 의도하지 않은 부작용의 위험 없이 외부 계약에서 데이터를 안전하게 읽는 데 유용합니다.
- call 과 마찬가지로 대상 계약의 코드 내에서 작동하지만 실행 시 읽기 전용 모드를 적용합니다.
- 주요 사용 사례에는 토큰 잔액 쿼리, 허용량 확인 또는 제3자 계약에서 변경할 수 없는 값 검색이 포함됩니다.
일반적인 질문
델리게이트 콜이 스토리지 레이아웃이 일치하지 않는 계약을 대상으로 하는 경우 어떻게 됩니까? 호출 계약의 저장소 슬롯이 호출된 계약의 논리에서 예상하는 것과 일치하지 않으면 변수를 잘못 덮어쓸 수 있습니다. 예를 들어, 한 슬롯에 저장된 주소는 uint256으로 해석되어 데이터가 손상되거나 무단 액세스가 발생할 수 있습니다.
지불 가능한 함수와 상호 작용하는 데 staticcall을 사용할 수 있습니까? 예, staticcall은 실제로 상태를 수정하지 않는 한 지불 가능한 함수를 대상으로 할 수 있습니다. 그러나 값 전송은 본질적으로 상태 변경을 포함하고 호출이 실패할 수 있기 때문에 staticcall을 통해 Ether를 보내는 것은 중복됩니다.
특정 시나리오에서 호출이 정적 호출보다 더 위험한 것으로 간주되는 이유는 무엇입니까? 호출은 상태 변경과 Ether 전송을 모두 허용하므로 재진입 공격과 같은 공격 벡터를 열어줍니다. 엄격한 입력 검증 및 제어 흐름 관리가 없으면 외부 계약이 콜백 중에 반복적으로 자금을 소모할 수 있습니다.
Delegatecall은 모든 유형의 계약 업그레이드와 호환됩니까? Delegatecall을 사용하면 업그레이드가 가능하지만 신중한 설계가 필요합니다. 스토리지 충돌, 기능 선택기 충돌 및 초기화 문제로 인해 기능이 중단될 수 있습니다. 투명한 프록시와 UUPS 패턴은 이러한 위험을 완화하는 데 도움이 되지만 엄격한 테스트와 감사가 필요합니다.
부인 성명:info@kdj.com
제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!
본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.
- Bitcoin, eCash Fork 및 Airdrop Dynamics: 암호화폐의 최신 논란에 대한 심층 분석
- 2026-05-03 12:55:01
- 2026년 마이애미 컨센서스: Web3, 블록체인, 암호화폐, NFT, 메타버스, 컨퍼런스, 5월 5일 — 월스트리트가 디지털 프론티어를 만나는 곳
- 2026-05-02 12:45:01
- 연준은 금리를 안정적으로 유지하여 지정학적 긴장 속에서 비트코인 가격 하락을 촉발했습니다
- 2026-05-01 06:45:01
- 비트코인 채굴자들이 전력망을 전기화하다: 오하이오 가스 공장 인수로 디지털 금의 새로운 시대가 열리다
- 2026-05-01 00:45:01
- MegaETH의 MEGA 토큰이 빅 애플을 강타했습니다: 실시간 블록체인을 위한 새로운 성능 벤치마크 설정
- 2026-05-01 00:55:01
- 솔라나의 미끄러운 경사: 가격 예측은 저항 손실 및 추가 하락 가능성을 지적합니다.
- 2026-05-01 06:45:01
관련 지식
Bybit에서 BTC 거래를 위해 선형 및 역 무기한 계약 중에서 선택하는 방법은 무엇입니까?
2026-06-06 02:54:55
계약 정산 메커니즘 1. Bybit의 선형 무기한 계약은 USDT로 정산됩니다. 즉, 모든 손익 계산, 마진 요구 사항 및 청산 기준액이 스테이블코인 단위로 표시됩니다. 2. 역영구 계약은 BTC 자체에 정산되므로 모든 거래는 거래자의 BTC 잔액에 직접적으로 영향을 ...
헌팅 중지 및 스푸핑과 같은 선물 시장 조작을 식별하고 방지하는 방법은 무엇입니까?
2026-06-07 14:20:10
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...
일일 최대 손실 한도를 설정하기 위해 Bybit에서 위험 관리 규칙을 설정하는 방법은 무엇입니까?
2026-06-04 16:40:15
계정 수준 손실 한도 구성 1. 이중 인증을 사용하여 웹 또는 모바일 애플리케이션을 통해 Bybit 계정에 로그인하세요. 2. "자산" 섹션으로 이동한 후 왼쪽 메뉴에서 "위험 관리"를 선택합니다. 3. "일일 손실 한도&q...
마진 요구 사항을 줄이기 위해 Binance에서 포트폴리오 마진 모드를 활성화하는 방법은 무엇입니까?
2026-06-05 04:59:43
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 블록당 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 20...
열린 선물 포지션을 닫지 않고 Binance에서 Bybit로 이전하는 방법은 무엇입니까?
2026-06-04 03:59:47
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...
미국에서 암호화폐 선물 거래 수익에 따른 세금 영향을 어떻게 처리합니까?
2026-05-29 18:19:59
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 블록 보상을 통해 새로운 단위가 도입되는 2,100만 코인의 고정 공급 한도를 시행합니다. 2. 210,000블록마다(대략 4년마다) 블록 보상이 절반으로 줄어듭니다. 이 프로세스를 절반으로 줄입니다. 3....
Bybit에서 BTC 거래를 위해 선형 및 역 무기한 계약 중에서 선택하는 방법은 무엇입니까?
2026-06-06 02:54:55
계약 정산 메커니즘 1. Bybit의 선형 무기한 계약은 USDT로 정산됩니다. 즉, 모든 손익 계산, 마진 요구 사항 및 청산 기준액이 스테이블코인 단위로 표시됩니다. 2. 역영구 계약은 BTC 자체에 정산되므로 모든 거래는 거래자의 BTC 잔액에 직접적으로 영향을 ...
헌팅 중지 및 스푸핑과 같은 선물 시장 조작을 식별하고 방지하는 방법은 무엇입니까?
2026-06-07 14:20:10
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...
일일 최대 손실 한도를 설정하기 위해 Bybit에서 위험 관리 규칙을 설정하는 방법은 무엇입니까?
2026-06-04 16:40:15
계정 수준 손실 한도 구성 1. 이중 인증을 사용하여 웹 또는 모바일 애플리케이션을 통해 Bybit 계정에 로그인하세요. 2. "자산" 섹션으로 이동한 후 왼쪽 메뉴에서 "위험 관리"를 선택합니다. 3. "일일 손실 한도&q...
마진 요구 사항을 줄이기 위해 Binance에서 포트폴리오 마진 모드를 활성화하는 방법은 무엇입니까?
2026-06-05 04:59:43
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 블록당 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 20...
열린 선물 포지션을 닫지 않고 Binance에서 Bybit로 이전하는 방법은 무엇입니까?
2026-06-04 03:59:47
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...
미국에서 암호화폐 선물 거래 수익에 따른 세금 영향을 어떻게 처리합니까?
2026-05-29 18:19:59
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 블록 보상을 통해 새로운 단위가 도입되는 2,100만 코인의 고정 공급 한도를 시행합니다. 2. 210,000블록마다(대략 4년마다) 블록 보상이 절반으로 줄어듭니다. 이 프로세스를 절반으로 줄입니다. 3....
모든 기사 보기














