Skip to main content

목적 및 범위

이 문서는 StableNet 블록체인에서 검증자 세트 거버넌스를 관리하는 GovValidator 시스템 컨트랙트를 설명합니다.
GovValidator는 검증자 등록 및 제거, BLS 키 관리, 네트워크 전반의 가스 팁 정책을 담당합니다.
모든 시스템 컨트랙트에 대한 개요는 시스템 컨트랙트 개요을 참조하세요.
민팅 거버넌스는 민팅 거버넌스 (GovMasterMinter 및 GovMinter)를 참조하세요.

개요

GovValidator(0x0000000000000000000000000000000000001001)는 검증자 세트에 대한 온체인 거버넌스를 구현하는 제네시스 배포 시스템 컨트랙트입니다.
전통적인 스테이킹 기반 검증자 시스템과 달리 StableNet은 기존 거버넌스 멤버의 집단 투표를 통해 검증자가 관리되는 Proof-of-Authority(PoA) 모델을 사용합니다.
주요 책임:
  • 검증자 세트 관리: 거버넌스 투표를 통해 검증자 등록 및 제거
  • 키 관리: 각 검증자에 대한 운영 키, 검증자 키, BLS 공개 키 관리
  • 가스 팁 정책: 네트워크 전반의 필수 가스 팁 설정 및 적용
  • 쿼럼 기반 결정: 모든 거버넌스 작업은 쿼럼 임계값을 충족하는 멤버 투표가 필요함

아키텍처 개요

GovValidator 컨트랙트는 WBFT 합의 엔진과 상호 작용하여 검증자 세트 변경과 가스 팁 정책을 적용합니다.

검증자 키 구조

StableNet 검증자는 운영 키(Operator), 검증자 키(Validator), BLS 키의 세 가지 키를 사용합니다.
각 키의 역할, 생성·파생 절차, 제네시스 구성 예시는 운영 가이드의 검증자 작업을 참고하세요.

제네시스 구성

GovValidator는 제네시스에서 다음 매개변수로 초기화됩니다. 중요:
init.validators / init.blsPublicKeys첫 번째 에포크에만 사용됩니다.
두 번째 에포크부터는 GovValidator 컨트랙트의 저장소 값이 기준이 됩니다.

검증자 거버넌스 흐름

검증자 추가

검증자 추가는 다음 단계를 따릅니다.
  1. 거버넌스 멤버가 새 검증자 정보를 포함한 제안 생성
  2. 다른 멤버들이 투표
  3. 승인 수가 쿼럼에 도달하면 제안 실행
  4. memberVersion 증가
  5. 다음 에포크부터 새 검증자 활성화

검증자 제거

검증자 제거 역시 동일한 쿼럼 기반 제안/투표/실행 흐름을 따르며, 제거된 검증자는 다음 에포크부터 합의 및 블록 서명에 참여하지 않습니다.

가스 팁 정책 관리

GovValidator는 네트워크 전반에 적용되는 필수 가스 팁을 관리합니다.
일반 계정은 이 값을 반드시 따라야 하며, Authorized 계정만 예외적으로 사용자 지정 팁을 설정할 수 있습니다.

가스 팁 라이프사이클

  1. 거버넌스 멤버가 setGasTip(newTip) 제안
  2. 쿼럼 투표 통과
  3. 컨트랙트 저장소의 gasTip 업데이트
  4. 다음 블록 헤더에 반영
  5. 워커와 TxPool이 새로운 최소값으로 동기화

트랜잭션 선택 시 적용

WBFT 합의와의 통합

GovValidator는 에포크 블록마다 WBFT 합의 엔진에 활성 검증자 세트를 제공합니다. 에포크 전환 시:
  1. 합의 엔진이 에포크 블록 감지
  2. GovValidator 저장소에서 validators[]blsPublicKeys[] 조회
  3. EpochInfo 구성
  4. 블록 헤더 Extra 데이터에 인코딩
  5. 다음 에포크에서 새 세트 활성화

컨트랙트 저장소 레이아웃

거버넌스 멤버 작업

모든 변경 작업은 쿼럼 기반 투표를 통해서만 실행됩니다.

다른 컨트랙트와의 관계

GovValidator는 StableNet 거버넌스 시스템의 일부로,
민팅 정책(GovMasterMinter/GovMinter) 및 계정 정책(GovCouncil)과 역할이 명확히 분리되어 있습니다.
이 분리를 통해 합의·검증자 운영과 통화 정책을 독립적으로 관리할 수 있습니다.