목적 및 범위
이 문서는 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 컨트랙트의 저장소 값이 기준이 됩니다.
검증자 거버넌스 흐름
검증자 추가
검증자 추가는 다음 단계를 따릅니다.- 거버넌스 멤버가 새 검증자 정보를 포함한 제안 생성
- 다른 멤버들이 투표
- 승인 수가 쿼럼에 도달하면 제안 실행
memberVersion증가- 다음 에포크부터 새 검증자 활성화
검증자 제거
검증자 제거 역시 동일한 쿼럼 기반 제안/투표/실행 흐름을 따르며, 제거된 검증자는 다음 에포크부터 합의 및 블록 서명에 참여하지 않습니다.가스 팁 정책 관리
GovValidator는 네트워크 전반에 적용되는 필수 가스 팁을 관리합니다.일반 계정은 이 값을 반드시 따라야 하며, Authorized 계정만 예외적으로 사용자 지정 팁을 설정할 수 있습니다.
가스 팁 라이프사이클
- 거버넌스 멤버가
setGasTip(newTip)제안 - 쿼럼 투표 통과
- 컨트랙트 저장소의
gasTip업데이트 - 다음 블록 헤더에 반영
- 워커와 TxPool이 새로운 최소값으로 동기화
트랜잭션 선택 시 적용
WBFT 합의와의 통합
GovValidator는 에포크 블록마다 WBFT 합의 엔진에 활성 검증자 세트를 제공합니다. 에포크 전환 시:- 합의 엔진이 에포크 블록 감지
- GovValidator 저장소에서
validators[]와blsPublicKeys[]조회 EpochInfo구성- 블록 헤더 Extra 데이터에 인코딩
- 다음 에포크에서 새 세트 활성화
컨트랙트 저장소 레이아웃
거버넌스 멤버 작업
모든 변경 작업은 쿼럼 기반 투표를 통해서만 실행됩니다.
다른 컨트랙트와의 관계
GovValidator는 StableNet 거버넌스 시스템의 일부로,민팅 정책(GovMasterMinter/GovMinter) 및 계정 정책(GovCouncil)과 역할이 명확히 분리되어 있습니다. 이 분리를 통해 합의·검증자 운영과 통화 정책을 독립적으로 관리할 수 있습니다.

