본문으로 건너뛰기

체인 라이선싱

x/license 모듈은 온체인 기능 라이선싱을 제공합니다. QoreChain의 특정 게이팅된 기능 — 가장 대표적으로 체인별 브리지 및 검증자 기능 — 은 작업을 수행하는 계정이 해당 기능에 대한 유효한 라이선스를 보유해야 합니다. 라이선스는 단순히 특정 보유자(수령인)가 특정 게이팅된 기능을 사용하도록 인가하는 온체인 기록입니다.

라이선싱은 이러한 기능을 검증 가능하고 자체 설명 가능하게 유지합니다: 모든 통합자, 익스플로러, 또는 지갑은 오프체인 조회 없이 주어진 계정이 주어진 기능에 대해 인가되었는지 체인에 물어볼 수 있습니다.

라이선스가 나타내는 것​

각 라이선스는 (grantee, feature_id) 쌍을 키로 하는 기록입니다:

  • grantee — 라이선스가 인가하는 qor 계정.
  • feature_id — 잠금이 해제되는 게이팅된 기능. 기능 ID는 안정적인 문자열 식별자입니다. 브리지 및 검증자 기능은 대상 체인별로 명명되며(예: bridge_ethereum, validator_solana), 브리지 프로토콜 및 노드/검증자 운영자 기능과 같은 포괄 기능도 함께 존재합니다.
  • granted_at / expires_at — 라이선스가 부여된 블록 높이와 만료되는 블록 높이(0 값은 만료되지 않음을 의미).
  • granted_by — 라이선스를 발급한 권한.

기능 뒤에 게이팅된 능력은 실행 시점에 단순히 작업을 수행하는 계정이 해당 기능에 대한 활성 라이선스를 보유하고 있는지 확인합니다.

라이선스 생명주기​

라이선스는 작은 상태 집합을 거쳐 이동합니다:

상태의미
부여됨 / 활성라이선스가 존재하며 수령인을 인가합니다. 일시 중지되지 않고 만료되지 않은 동안 활성으로 간주됩니다.
일시 중지됨일시적으로 비활성화됨. 기록은 여전히 존재하지만, 라이선스가 재개될 때까지 게이팅된 능력이 거부됩니다.
취소됨영구적으로 제거됨. 수령인이 더 이상 라이선스를 전혀 보유하지 않습니다.

라이선스는 일시 중지되거나 취소된 적이 없더라도, expires_at 높이가 지나면 활성 상태가 중단됩니다.

누가 라이선스를 변경할 수 있는가​

라이선스 부여, 취소, 일시 중지, 재개는 권한 작업입니다 — 임의의 사용자가 아니라 체인의 거버넌스 권한에 의해 수행됩니다. 이러한 트랜잭션은 모듈의 명령 표면의 일부로 존재하지만, 일반 사용자가 직접 호출하지는 않습니다. 생명주기는 권한에 의해 온체인에서 관리됩니다.

라이선스를 획득하려면 통합자는 **대시보드(Tools → Buy License)**를 거치며, 이것이 요청 흐름을 처리합니다. 그런 다음 권한이 온체인에 부여를 기록합니다.

권한이 게이팅하는 트랜잭션은 다음과 같습니다:

# Grant a license for a feature to a grantee (authority signs)
qorechaind tx license grant qor1grantee... bridge_ethereum \
--expires-at 0 --from qor1authority... --chain-id qorechain-vladi

# Suspend / resume a license
qorechaind tx license suspend qor1grantee... bridge_ethereum --from qor1authority...
qorechaind tx license resume qor1grantee... bridge_ethereum --from qor1authority...

# Revoke a license permanently
qorechaind tx license revoke qor1grantee... bridge_ethereum --from qor1authority...

라이선스 확인 및 검증​

쿼리 명령어는 누구에게나 열려 있습니다. 이들은 통합자가 일상적으로 사용하는 모듈의 부분입니다 — 게이팅된 능력에 의존하기 전에 계정이 인가되었는지 확인하거나, 지갑 또는 익스플로러에 라이선스 상태를 표시하기 위해서입니다.

단일 라이선스 확인​

check는 특정 수령인이 특정 기능을 보유하는지, 그리고 해당 라이선스가 현재 활성 상태인지 보고합니다. 이것은 "이 계정이 X를 수행하도록 허용되는가"라는 표준 호출입니다.

qorechaind query license check qor1grantee... bridge_ethereum
# -> returns the license record and an `active` flag (true / false)

응답에는 라이선스 세부 정보와 일시 중지 및 만료를 이미 고려한 부울 active 필드가 포함됩니다 — 따라서 true는 수령인이 지금 당장 게이팅된 기능을 사용할 수 있음을 의미합니다.

수령인의 라이선스 목록​

list는 모든 기능에 걸쳐 한 계정이 보유한 모든 라이선스를 반환합니다.

qorechaind query license list qor1grantee...

기능 보유자 목록​

holders는 주어진 기능에 대한 라이선스를 보유한 모든 계정을 반환합니다 — 예를 들어 특정 브리지 또는 검증자 기능에 대해 누가 인가되었는지 열거하는 데 유용합니다.

qorechaind query license holders bridge_ethereum

명령어 요약​

트랜잭션 (qorechaind tx license …) — 권한 / 거버넌스 게이팅:

명령어목적
grant수령인을 기능에 대해 인가
revoke라이선스를 영구적으로 제거
suspend라이선스를 일시적으로 비활성화
resume일시 중지된 라이선스를 다시 활성화

쿼리 (qorechaind query license …) — 누구에게나 열림:

명령어목적
check하나의 (grantee, feature) 라이선스와 그 활성 상태 확인
list수령인이 보유한 모든 라이선스 목록 표시
holders주어진 기능을 보유한 모든 수령인 목록 표시

관련 문서​

  • 브리지 및 검증자 기능에 대한 라이선스는 브리지 아키텍처에 설명된 기능을 뒷받침합니다.
  • 라이선스는 **대시보드(Tools → Buy License)**를 통해 획득됩니다.
  • 라이트 노드는 등록 및 라이선싱 중에 라이선스를 획득합니다.
  • Tools Hub에서 라이선스를 구매하고 관리하세요.