정책 소개

256 Blocks의 Rego 기반 정책 엔진을 사용하여 사용자 정의 규칙으로 트랜잭션 제어

256 Blocks 정책 엔진은 유연하고 강력한 트랜잭션 제어 규칙을 정의하기 위해 Rego 언어를 사용합니다. 정책을 통해 지출 한도 적용, 지역별 접근 제한, 특정 작업 차단, 사용자 정의 비즈니스 로직 구현이 가능합니다.

정책 엔진이란?

정책 엔진은 실행 전에 모든 트랜잭션 요청을 정의된 규칙에 따라 평가합니다. 정책 평가는 성능을 위해 완전히 상태 비저장(stateless)이면서 엔드포인트를 통해 허용되는 트랜잭션을 세밀하게 제어할 수 있습니다.

주요 이점:

  • 선언적 규칙: 무엇을 차단해야 하는지 정의, 어떻게 차단하는지가 아님
  • 실시간 평가: 정책은 모든 요청에서 서브밀리초 지연으로 평가됨
  • 유연한 조건: 트랜잭션 값, 출처 국가, 시간대 등 여러 요소 조합 가능

정책 작동 방식

정책은 각 요청에 대해 두 가지 독립적인 결정을 제어합니다:

규칙제어 대상기본값
denyRPC/MCP 요청이 허용되는지 차단되는지false (허용)
denyGasSponsor256 Blocks가 가스 비용을 스폰서하는지false (스폰서)

이러한 기본값은 시스템에서 정의되며 재정의할 수 없습니다.

요청 접근 (deny)

RPC 또는 MCP 요청을 완전히 차단하려면 deny 규칙을 사용합니다. deny 규칙이 일치하면 요청이 거부됩니다.

# $10,000 USD를 초과하는 트랜잭션 차단
deny if {
    input.usd_value > 10000
}

가스 스폰서십 (denyGasSponsor)

256 Blocks가 가스 비용을 지불하는 시기를 제어하려면 denyGasSponsor 규칙을 사용합니다. denyGasSponsor 규칙이 일치하면 사용자가 직접 가스를 지불해야 합니다.

# $100를 초과하는 트랜잭션은 스폰서하지 않음
denyGasSponsor if {
    input.usd_value > 100
}

두 규칙은 독립적으로 평가됩니다 - 요청이 허용되지만 스폰서되지 않거나 그 반대의 경우도 있습니다.

정책 레벨

정책은 가장 넓은 범위에서 가장 구체적인 범위까지 세 가지 레벨에서 평가됩니다:

플랫폼 레벨 정책

플랫폼 정책은 256 Blocks에서 관리하며 플랫폼 전체의 모든 요청에 적용됩니다. 이는 재정의할 수 없는 기본 보안 및 규정 준수 요구 사항을 적용합니다. 플랫폼 레벨 제어에 대한 자세한 내용은 제한 사항을 참조하세요.

조직 레벨 정책

조직 정책은 MCP 엔드포인트든 RPC 엔드포인트든 관계없이 조직 내 모든 엔드포인트에 적용됩니다. 조직 레벨 정책 용도:

  • 글로벌 규정 준수 규칙 (예: 차단된 국가)
  • 조직 전체 지출 한도
  • 범용 보안 제어

엔드포인트 레벨 정책

엔드포인트 정책은 특정 엔드포인트에만 적용됩니다. 각 엔드포인트는 MCP 또는 RPC(둘 다 아님)이므로 정책은 해당 엔드포인트 유형에 자동으로 적용됩니다. 엔드포인트 레벨 정책 용도:

  • 애플리케이션별 한도
  • 특정 통합을 위한 사용자 정의 비즈니스 로직
  • 조직 기본값을 초과하는 추가 제한

평가 순서

요청이 도착하면:

  1. 플랫폼 정책이 먼저 평가됨 (256 Blocks에서 관리)
  2. 플랫폼 레벨에서 거부되면 요청이 거절됨
  3. 조직 정책이 두 번째로 평가됨
  4. 조직 레벨에서 거부되면 요청이 거절됨
  5. 엔드포인트 정책이 마지막으로 평가됨
  6. 엔드포인트 레벨에서 거부되면 요청이 거절됨
  7. deny 규칙이 일치하지 않으면 요청이 진행됨

각 레벨은 하위 레벨이 재정의할 수 없는 기준선 역할을 합니다. 상위 레벨 정책이 요청을 거부하면 하위 레벨 정책은 이를 허용할 수 없습니다.

다음 단계

정책 소개 | 256 Blocks