메인 콘텐츠로 건너뛰기

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 옵코드 제외 — 아래 참조

툴 설정

모든 툴링에서 evmVersionshanghai로 설정하세요. 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상태
BLOBHASHEIP-4844미지원
BLOBBASEFEEEIP-7516미지원
이 옵코드를 사용하는 컨트랙트는 런타임에서 revert됩니다. Solidity 컴파일러 설정에서 evmVersion: "cancun"을 사용하지 마세요.

추가: Anzeon 프리컴파일

StableNet은 커스텀 프리컴파일을 하나 추가합니다:
주소이름목적
0x00000000000000000000000000000000000b0001blsPoPAnzeon BLS Proof-of-Possession 검증
이 프리컴파일은 합의 레이어에서 내부적으로 사용됩니다. 애플리케이션 컨트랙트에서 직접 호출할 필요가 없습니다.

표준 프리컴파일

모든 표준 EVM 프리컴파일이 정규 주소에서 사용 가능합니다:
주소이름
0x01ecRecover
0x02SHA-256
0x03RIPEMD-160
0x04Identity
0x05ModExp (EIP-198)
0x06ecAdd (EIP-196)
0x07ecMul (EIP-196)
0x08ecPairing (EIP-197)
0x09Blake2f (EIP-152)

네이티브 시스템 컨트랙트

StableNet은 일반 CALL 흐름에 참여하는 Go 구현 시스템 컨트랙트도 포함합니다:
주소이름목적
0x00000000000000000000000000000000000b0002NativeCoinManager네이티브 잔액 직접 조작 (NativeCoinAdapter가 사용)
0x00000000000000000000000000000000000b0003AccountManager계정 추가 데이터 관리 (블랙리스트, 인증 플래그)
이것들은 내부 시스템 컨트랙트입니다. 애플리케이션 컨트랙트는 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 컨트랙트, 표준 툴링이 즉시 사용 가능

관련 문서