PCL 내장 정책 템플릿

component compliance

마루 V1이 기본 제공하는 7개 정책 템플릿을 다룹니다. denylist, 금액 한도, attestation 게이트, KYC 계층 변형, 에이전트별 전송 상한을 포함합니다.

마루의 PCL은 가장 일반적인 규제·비즈니스 컴플라이언스 게이트를 다루는 7개의 내장 정책 템플릿을 기본 제공합니다. 각 템플릿은 Solidity 파라미터 struct(abi.encodePolicySet.policy에 인코딩)와 평가 규칙을 정의합니다. 관리자는 PolicySet 엔트리로 인스턴스화하여 GlobalPolicyConfig(네트워크 전역) 또는 ContractPolicyConfig(컨트랙트별)에 그룹화합니다. 기존 평가자를 사용하는 새 템플릿은 거버넌스로 체인 코어 변경 없이 등록할 수 있으며, 새 평가자를 도입하려면 체인 업그레이드가 필요합니다.

V1의 7개 템플릿

템플릿ABI 튜플목적
DENYLIST_POLICY(address[])목록의 주소 트랜잭션 차단 (제재, 동결 계정)
VOLUME_POLICY(string[] tokens, (uint256 minLimit, uint256 maxLimit)[] limits)denom별 건당 최소/최대 금액 (더스트 방지, 건당 상한)
PERIODIC_VOLUME_POLICY(string[] tokens, (uint256 maxAmount, uint64 resetPeriodSeconds)[] limits)리셋 주기 (24h, 30d)별 누적 금액 한도
EAS_POLICY(address easContract, address indexContract, bytes32 schemaUid)스키마 하의 유효 EAS attestation 요구 (KYC/KYB 게이트)
OKRW_EAS_TRANSFER_LIMIT_POLICY(address eas, address index, bytes32 schemaUid, uint256 transferLimitAmount)미인증 발신자에게만 적용되는 건당 OKRW 상한 (계층 접근)
OKRW_EAS_PERIODIC_VOLUME_LIMIT_POLICY(address eas, address index, bytes32 schemaUid, uint256 maxAmount, uint64 resetPeriodSeconds)미인증 발신자에게만 적용되는 누적 OKRW 상한 (Travel Rule 계층)
AGENT_OKRW_TRANSFER_LIMIT_POLICY(uint256 reserved) (파라미터 없음; 상한은 에이전트 메타데이터에서 읽음)온체인 TransferLimit 메타데이터에서 가져오는 에이전트 지갑 건당 OKRW 상한

사이드바에서 각 템플릿 페이지로 이동해 전체 Solidity struct, abi.encode 예제, 평가 로직, ReasonCode 동작을 확인합니다.

조합 방식

템플릿은 합성 가능합니다. 전형적인 프로덕션 GlobalPolicyConfig는 여러 정책을 동시에 강제합니다.

1. DENYLIST_POLICY — 제재 대상 주소를 차단합니다.
2. OKRW_EAS_TRANSFER_LIMIT_POLICY — 미인증 사용자의 건당 한도를 적용합니다.
3. OKRW_EAS_PERIODIC_VOLUME_LIMIT_POLICY — 미인증 사용자의 24시간 누적 한도를 적용합니다.
4. VOLUME_POLICY — 인증 사용자를 포함한 모두에게 하드 상한을 적용합니다.

PolicySet은 독립적으로 평가되며, 어느 하나라도 거절되면 해당 ReasonCode와 함께 전체 트랜잭션이 거절됩니다. 이로써 모놀리딕 정책을 설계하지 않고 독립 컴플라이언스 게이트를 쌓을 수 있습니다. 컨트랙트별 설정은 규제 경로로 그 컨트랙트를 호출할 때만 적용되는 두 번째 레이어 PolicySet을 추가합니다.

새 템플릿 추가

경로는 두 가지로 나뉩니다.

  • 기존 템플릿을 쓰는 새 PolicySet — 거버넌스만 필요합니다. 템플릿별 struct를 빌드하고 abi.encode로 인코딩한 뒤 PolicySet으로 래핑하여 컨소시엄 제안 흐름으로 제출합니다. 체인 업그레이드는 필요하지 않습니다.
  • 새 템플릿 (새 평가자) — 평가 로직이 x/pcl에 있으므로 마루 체인 업그레이드가 필요합니다. 출시 후 거버넌스가 템플릿을 등록하고 PolicySet 인스턴스화를 시작합니다.


패턴은 다음과 같습니다. 규제기관이 기존 템플릿 로직에 매핑되는 새 요구를 도입하면 새 PolicySet으로 설정합니다. 근본적으로 새로운 평가 경로가 필요하면 다음 업그레이드에서 새 템플릿을 출시합니다.
소스: maroo
ESC
검색어를 입력하세요