Documentation Index
Fetch the complete documentation index at: https://docs.stablenet.network/llms.txt
Use this file to discover all available pages before exploring further.
StableNet은 완전한 EVM 호환성을 제공합니다. 단 하나의 제외(blob 옵코드)와 하나의 추가(Anzeon BLS 프리컴파일)가 있습니다.
지원 명령어 세트
StableNet은 Anzeon EVM 명령어 세트를 사용하며, 이는 부분적인 Cancun 지원이 포함된 London + Shanghai와 동일합니다:
| 포크 | 상태 | 비고 |
|---|
| Frontier – Istanbul | 지원 | 모든 기본 옵코드 |
| Berlin | 지원 | EIP-2929 접근 목록 |
| London | 지원 | BASEFEE 옵코드 |
| Shanghai | 지원 | PUSH0 옵코드 |
| Cancun (부분) | 부분 지원 | Blob 옵코드 제외 — 아래 참조 |
툴 설정
모든 툴링에서 evmVersion을 shanghai로 설정하세요. cancun을 사용하면 컴파일 오류나 런타임 실패가 발생합니다.
Hardhat (hardhat.config.js):
solidity: {
version: "0.8.20",
settings: {
evmVersion: "shanghai",
},
},
Foundry (foundry.toml):
Foundry는 Solidity 0.8.20+에 대해 기본값으로 shanghai를 사용합니다. 프로필에 evm_version을 명시적으로 설정하지 않은 경우 변경이 필요 없습니다.
미지원: Blob 옵코드
다음 Cancun 옵코드는 지원되지 않습니다:
| 옵코드 | EIP | 상태 |
|---|
BLOBHASH | EIP-4844 | 미지원 |
BLOBBASEFEE | EIP-7516 | 미지원 |
이 옵코드를 사용하는 컨트랙트는 런타임에서 revert됩니다. Solidity 컴파일러 설정에서 evmVersion: "cancun"을 사용하지 마세요.
추가: Anzeon 프리컴파일
StableNet은 커스텀 프리컴파일을 하나 추가합니다:
| 주소 | 이름 | 목적 |
|---|
0x00000000000000000000000000000000000b0001 | blsPoP | Anzeon BLS Proof-of-Possession 검증 |
이 프리컴파일은 합의 레이어에서 내부적으로 사용됩니다. 애플리케이션 컨트랙트에서 직접 호출할 필요가 없습니다.
표준 프리컴파일
모든 표준 EVM 프리컴파일이 정규 주소에서 사용 가능합니다:
| 주소 | 이름 |
|---|
0x01 | ecRecover |
0x02 | SHA-256 |
0x03 | RIPEMD-160 |
0x04 | Identity |
0x05 | ModExp (EIP-198) |
0x06 | ecAdd (EIP-196) |
0x07 | ecMul (EIP-196) |
0x08 | ecPairing (EIP-197) |
0x09 | Blake2f (EIP-152) |
네이티브 시스템 컨트랙트
StableNet은 일반 CALL 흐름에 참여하는 Go 구현 시스템 컨트랙트도 포함합니다:
| 주소 | 이름 | 목적 |
|---|
0x00000000000000000000000000000000000b0002 | NativeCoinManager | 네이티브 잔액 직접 조작 (NativeCoinAdapter가 사용) |
0x00000000000000000000000000000000000b0003 | AccountManager | 계정 추가 데이터 관리 (블랙리스트, 인증 플래그) |
이것들은 내부 시스템 컨트랙트입니다. 애플리케이션 컨트랙트는 NativeCoinAdapter를 통해 간접적으로 상호작용합니다.
StableNet 특이 동작
다음 동작은 표준 이더리움 EVM 실행과 다릅니다:
| 동작 | 상세 |
|---|
| 최대 콜 스택 깊이 | 1024 (이더리움과 동일) |
| 가치 전송 제한 | Anzeon은 CALL 실행 중 가치 전송에 추가 목적지 제한을 적용합니다 |
| 블랙리스트 검사 | 모든 CALL은 발신자와 수신자 계정의 Extra 필드에서 블랙리스트 플래그를 확인합니다 — 블랙리스트 주소로의 전송 또는 블랙리스트 주소에서의 전송은 revert됩니다 |
블랙리스트 상태는 GovCouncil 컨트랙트(0x…1004)가 관리하며 각 계정의 Extra 필드에 저장됩니다. 이 검사는 RPC 레이어가 아닌 EVM 레이어에서 발생합니다 — 블랙리스트 주소로의 트랜잭션은 추정 시점에 eth_estimateGas를 통과하더라도 revert됩니다.
개발자 이점
- 기존 모든 Solidity 라이브러리와 패턴이 수정 없이 동작
- EIP-2930 접근 목록과 EIP-1559 수수료 지원
- Multicall3, OpenZeppelin 컨트랙트, 표준 툴링이 즉시 사용 가능
관련 문서