testnet
GitHub EN

프로그래밍 가능 컴플라이언스 계층 (PCL)

compliance external-dapp

사용자 정의 트랜잭션 규칙 및 규제 정책을 정의하고 시행하기 위한 온체인 프레임워크입니다.

프로그래밍 가능 컴플라이언스 계층(PCL)은 마루 네트워크의 핵심 모듈로, 블록체인 상에서 직접 컴플라이언스 정책을 생성하고 시행할 수 있게 합니다. 이 모듈은 트랜잭션이 처리되기 전에 가로채어, 전역 및 컨트랙트별 규칙 집합에 대해 유효성을 검사합니다. 이를 통해 스마트 컨트랙트의 핵심 로직을 변경하지 않고도 KYC/AML 확인, 전송 제한, 거래량 한도와 같은 복잡한 규제 요건을 구현할 수 있습니다.

주요 기능

전역 및 컨트랙트별 정책

네트워크 전체에 규칙을 적용하거나 특정 스마트 컨트랙트를 대상으로 세분화된 제어를 할 수 있습니다.

템플릿 기반 정책 생성

미리 정의된 재사용 가능한 정책 템플릿(예: 거부 목록, 거래량 한도, EAS 증명)을 사용하여 복잡한 규칙을 신속하게 구성합니다.

원활한 EVM 통합

정책은 네이티브 코스모스 SDK 메시지와 표준 이더리움 트랜잭션 모두에 자동으로 적용되어 일관된 컴플라이언스를 보장합니다.

EAS를 통한 확장성

이더리움 증명 서비스(EAS)를 활용하여 온체인 증명 기반 규칙을 시행함으로써 정교한 신원 및 자격 증명 확인을 가능하게 합니다.

아키텍처

graph TD
    subgraph Transaction Lifecycle
        A[Tx Submitted] --> B{PclAnteDecorator};
        B -- Global Policies --> C{Policy Validator};
        C -- Valid --> D[Execute Tx];
        C -- Invalid --> E[Reject Tx];
        D --> F[State Change];
    end

    subgraph EVM Execution
        G[Contract Call] --> H{EVM Pre-execution Hook};
        H -- Global/Contract Policies --> I(PCL Keeper);
        I --> J{Policy Validator};
        J -- Valid --> K[Execute EVM Logic];
        J -- Invalid --> L[Revert Tx];
    end

    subgraph PCL State
        M[Policy Admin] -- Manages --> N(Policy Templates);
        M -- Manages --> O(Global Policy Config);
        P[Contract Admin] -- Manages --> Q(Contract Policy Config);
        N --> O;
        N --> Q;
    end

PCL은 전역 검사를 위해 Ante Handler를 통해 트랜잭션 생명주기에 통합되고, 전역 및 컨트랙트별 검사를 위해 사전 실행 훅을 통해 EVM에 통합됩니다. 모든 정책 구성은 온체인에 저장되며 지정된 관리자 계정에 의해 관리됩니다.

정책 시행 흐름

PCL의 주요 기능은 트랜잭션을 규칙 집합에 대해 검증하는 것입니다. 이는 마루 프로토콜의 기본 수준에서 발생합니다.

네이티브 토큰 전송(bank/MsgSend)이든 EVM 스마트 컨트랙트 호출이든, 모든 트랜잭션은 먼저 AnteHandler라는 일련의 예비 검사를 거칩니다. 마루는 이 핸들러 체인에 PclAnteDecorator를 포함합니다. 이 데코레이터는 활성화된 모든 전역 정책을 자동으로 로드하고 트랜잭션의 세부 정보(발신자, 수신자, 금액 등)에 대해 실행합니다. 전역 정책 검사가 실패하면 전체 트랜잭션은 상당한 가스를 소비하거나 대상 모듈에서 처리되기 전에 거부됩니다.

EVM 트랜잭션의 경우 추가 검사가 발생합니다. 마루 EVM은 호출을 실행하기 전에 PCL 키퍼를 호출하는 훅으로 구성됩니다. 이를 통해 PCL은 전역 정책뿐만 아니라 대상 컨트랙트 주소에 적용되는 모든 컨트랙트별 정책도 확인할 수 있습니다. 이 이중 검사 메커니즘은 네트워크 전체에서 컴플라이언스가 일관되게 시행되도록 보장합니다.
참고: Ante Handler 검사는 유효하지 않은 트랜잭션이 멤풀에 도달하는 것을 방지하여 네트워크 리소스를 절약하고 사용자에게 즉각적인 피드백을 제공하는 강력한 기능입니다.

정책 템플릿 및 구성

PCL은 규칙을 처음부터 정의하는 대신 템플릿 기반 시스템을 사용합니다. PolicyTemplate은 규칙 유형에 대한 청사진입니다. 이름, 설명 및 필요한 매개변수에 대한 JSON 스키마를 정의합니다. 마루에는 DENYLIST_POLICY, VOLUME_POLICY, EAS_POLICY와 같은 여러 내장 템플릿이 있습니다.

모듈 매개변수에 설정된 권한 있는 계정인 PolicyAdmin(거버넌스에 의해 제어 가능)은 이러한 템플릿을 등록하고 관리할 책임이 있습니다.

규칙을 활성화하기 위해 관리자는 구체적인 매개변수로 채워진 템플릿에 대한 참조인 UnitPolicy를 생성합니다. 예를 들어, 거부 목록을 만들려면 DENYLIST_POLICY 템플릿을 가리키는 UnitPolicy를 만들고 금지된 주소 목록이 포함된 JSON 객체를 매개변수로 제공합니다. 이러한 UnitPolicy 객체는 적용될 GlobalPolicyConfig 또는 ContractPolicyConfig로 그룹화됩니다.

다음 단계

소스: maroo
ESC
검색어를 입력하세요