소개

프리컴파일된 계약은 블록체인의 실행 계층에 직접 구현된 특수 스마트 계약입니다. EVM 바이트코드를 실행하는 사용자 배포 스마트 계약과 달리, 프리컴파일된 계약은 복잡한 암호화 및 계산 작업에 대해 최적화된 네이티브 구현을 제공합니다. 이는 효율성을 크게 향상시키고 가스 비용을 줄입니다. 프리컴파일된 계약은 실행 클라이언트 내의 고정된 주소에 존재하며, 각 프리컴파일은 계산 복잡성에 따라 미리 정의된 가스 비용을 가지고 있어 예측 가능한 실행 수수료를 보장합니다.

Story Protocol은 두 가지 프리컴파일된 계약을 도입합니다:

  • p256Verify 프리컴파일은 secp256r1 타원 곡선에서의 서명 검증을 지원합니다.
  • ipgraph 프리컴파일은 온체인 지적 재산 관리를 향상시킵니다.

또한, Story Protocol의 실행 계층은 모든 표준 EVM 프리컴파일된 계약을 지원하여 이더리움 기반 도구 및 애플리케이션과의 완전한 호환성을 보장합니다.

사전 컴파일된 계약

주소기능
byte1ecrecover- ECDSA 서명 복구
byte2sha256 - SHA-256 해시 계산
byte3ripemd160 - RIPEMD-160 해시 계산
byte4identity - 항등 함수
byte5modexp - 모듈러 지수
byte6bn256Add - BN256 타원 곡선 덧셈
byte7bn256ScalarMul - BN256 타원 곡선 스칼라 곱셈
byte8bn256Pairing - BN256 타원 곡선 페어링 검사
byte9blake2f - Blake2 해시 함수
byte10kzgPointEvaluation - KZG 다항식 약정 평가
byte0p256Verify - Secp256r1 서명 검증
byte1ipgraph - 지적 재산권 관리

p256Verify 사전 컴파일

자세한 내용은 RIP-7212를 참조하세요.

IPgraph 사전 컴파일

ipgraph 사전 컴파일은 가스 비용을 최소화하면서 IP 관계와 로열티 구조의 효율적인 쿼리와 수정을 가능하게 합니다.

이 사전 컴파일은 입력의 첫 4바이트인 함수 선택자를 기반으로 여러 기능을 제공합니다.

함수 선택자설명가스 계산 공식가스 비용
addParentIp부모 IP 기록 추가intrinsicGas + (ipGraphWriteGas * parentCount)1100보다 큼
hasParentIpIP가 다른 IP의 부모인지 확인ipGraphReadGas * averageParentIpCount40
getParentIps부모 IP 검색ipGraphReadGas * averageParentIpCount40
getParentIpsCount부모 IP 수 가져오기ipGraphReadGas10
getAncestorIps조상 IP 검색ipGraphReadGas * averageAncestorIpCount * 2600
getAncestorIpsCount조상 IP 수 가져오기ipGraphReadGas * averageParentIpCount * 280
hasAncestorIpIP가 다른 IP의 조상인지 확인ipGraphReadGas * averageAncestorIpCount * 2600
setRoyaltyIP의 로열티 세부 정보 설정ipGraphWriteGas1000
getRoyaltyIP의 로열티 세부 정보 검색varies by royalty policyLAP:900, LRP:620, other:1000
getRoyaltyStackIP의 로열티 스택 검색varies by royalty policyLAP:50, LRP: 600, other:1000
hasParentIpExt외부 호출을 통해 IP가 다른 IP의 부모인지 확인ipGraphExternalReadGas * averageParentIpCount8400
getParentIpsExt외부 호출을 통해 부모 IP 검색ipGraphExternalReadGas * averageParentIpCount8400
getParentIpsCountExt외부 호출을 통해 부모 IP 수 가져오기ipGraphExternalReadGas2100
getAncestorIpsExt외부 호출을 통해 조상 IP 검색ipGraphExternalReadGas * averageAncestorIpCount * 2126000
getAncestorIpsCountExt외부 호출을 통해 조상 IP 수 가져오기ipGraphExternalReadGas * averageParentIpCount * 216800
hasAncestorIpExt외부 호출을 통해 IP가 다른 IP의 조상인지 확인ipGraphExternalReadGas * averageAncestorIpCount * 2126000
getRoyaltyExt외부 호출을 통해 IP의 로열티 세부 정보 검색varies by royalty policyLAP:189000, LRP:130200, other:1000
getRoyaltyStackExt외부 호출을 통해 IP의 로열티 스택 검색varies by royalty policyLAP:10500, LRP:126000, other:1000

로열티 정책에 대한 자세한 정보는 로열티 모듈을 참조하세요.