궁금한 주제를 찾아보세요

비트코인, 스테이블코인, 온체인 데이터처럼 주제로 검색하세요.

다시 읽을 이야기

저장한 글은 이 브라우저에만 보관됩니다.

해설기술·생태계

Cosmos 검증자 세트 변경: 합의 권한이 다음 블록에 반영되는 시점

애플리케이션이 반환한 validator update가 CometBFT 합의 권한에 반영되는 시차와 높이별 검증 방법을 설명합니다.

난이도 중급주제 카테고리와 개념 밀도 기준검토 정보AI 보조 초안 · 출처 목록 제공 · 주장별 대조 진행 중
연속된 두 블록의 원탁 사이에서 검증자 좌석과 참여자가 교체되는 모습
주제의 이해를 돕기 위해 imagegen으로 제작한 AI 생성 개념 일러스트
먼저 읽는 핵심

애플리케이션 상태 변경과 CometBFT validator set 적용은 같은 사건이 아니다.
높이 h를 누가 서명했는지는 h의 합의 시작 전에 정해진 validator set으로 판단한다.
업데이트 감사에는 ABCI 응답, validators RPC, commit signatures를 높이별로 맞춰야 한다.

Cosmos 애플리케이션이 블록 처리 과정에서 validator update를 반환해도 같은 블록의 합의를 소급해 바꾸지는 않습니다. 현재 CometBFT ABCI++ 요구사항에서 높이 H의 FinalizeBlock 응답으로 반환된 update는 H+2 블록부터 효력이 생깁니다. 따라서 ‘staking 상태가 바뀐 높이’, ‘ABCI update가 반환된 높이’, ‘새 voting power가 실제 합의에 사용된 높이’를 분리해 확인해야 합니다.

같은 블록을 소급해 다시 투표하지 않는다

검증자 세트는 각 height의 proposer 선택과 투표권 합계를 결정합니다. 애플리케이션이 블록을 실행한 결과 새 validator public key와 power를 반환해도 이미 그 블록을 제안하고 precommit한 집합은 바뀌지 않습니다. 현재 CometBFT ABCI++ 요구사항에서는 높이 H의 FinalizeBlock update가 H+2 블록부터 효력을 냅니다.

Cosmos SDK의 staking end-block 처리와 ABCI의 validator updates는 애플리케이션 층이고, CometBFT의 Validators·NextValidators는 합의 엔진 층입니다. 체인 버전과 ABCI 규격에 따라 메서드 이름은 달라질 수 있으므로 특정 함수명보다 반환 높이와 적용 높이를 기록하는 편이 안전합니다.

검증자 변경은 블록 실행의 결과이며, 그 블록 합의의 원인이 될 수 없다.

JOBCOIN 해설

VISUAL GUIDE블록을 제안하고 검증하는 과정
블록 제안, 노드의 규칙 검증, 합의 결과를 구분한 개념도
그림과 함께 짚어볼 본문 내용

그림은 이 주제의 공통 개념을 단순화한 설명입니다. 아래 항목에서 이 글의 구체적인 조건과 예외를 함께 읽어보세요.

  1. 같은 블록을 소급해 다시 투표하지 않는다

    검증자 세트는 각 height의 proposer 선택과 투표권 합계를 결정합니다.

  2. 세 높이를 표에 따로 놓는다

    운영자가 ‘h에서 위임이 바뀌었다’고 말할 때 transaction 포함 높이, staking 모듈이 power 변화를 계산한 높이, CometBFT가 새 set을 사용하는 높이가 섞일 수 있습니다.

  3. power 0과 key 교체를 단순 감소로 읽지 않는다

    ABCI validator update에서 power 0은 일반적으로 해당 키를 세트에서 제거하는 의미입니다.

AI로 제작한 개념도 · 실제 가격·거래 내역·통계가 아닙니다.

세 높이를 표에 따로 놓는다

운영자가 ‘h에서 위임이 바뀌었다’고 말할 때 transaction 포함 높이, staking 모듈이 power 변화를 계산한 높이, CometBFT가 새 set을 사용하는 높이가 섞일 수 있습니다. unbonding이나 epoch 기반 선정을 쓰는 체인은 추가 지연 규칙도 가질 수 있습니다. 일반 ABCI 설명만으로 특정 체인의 즉시 반영을 단정하면 안 됩니다.

감사할 때는 h-1, h, h+1의 validators 응답과 commit을 연속 조회합니다. update의 public key 인코딩과 power 0 삭제 의미를 확인하고 중복 키가 없는지 봅니다. proposer가 바뀌지 않았다는 사실만으로 update 실패라고 판단할 수 없습니다. proposer priority는 voting power와 별도 누적 규칙을 갖습니다.

검증자 변경에서 구분할 기록
기록 질문 증거
staking 상태 위임·bond 상태가 언제 변했나 애플리케이션 이벤트·상태
ABCI update 어느 블록 결과로 power를 반환했나 FinalizeBlock/EndBlock 응답
validator set 어느 height 합의에 사용됐나 validators RPC
commit 실제로 누가 얼마의 power로 서명했나 block commit signatures

power 0과 key 교체를 단순 감소로 읽지 않는다

ABCI validator update에서 power 0은 일반적으로 해당 키를 세트에서 제거하는 의미입니다. 동일 운영자가 키를 교체하면 기존 키 제거와 새 키 추가가 함께 보일 수 있습니다. 두 줄을 독립 검증자 감소·증가로 세면 활성 수와 운영 주체를 잘못 집계합니다.

public key 유형과 바이트 표현도 일치시켜야 합니다. 화면의 운영자 주소, consensus address, account address는 서로 다른 인코딩일 수 있습니다. 주소 문자열이 다르다는 이유로 별개 검증자라고 결론 내리지 말고 키 변환 규칙과 온체인 매핑을 확인합니다.

  • 변경 transaction·이벤트의 포함 height를 저장한다
  • 해당 height의 ABCI validator updates를 public key 기준으로 정규화한다
  • 전후 validators RPC에서 voting power와 total을 비교한다
  • 다음 commit의 서명 집합을 새 set 기준으로 검산한다

세트 변경은 임계값도 바꾼다

+2/3 조건은 고정 코인 수가 아니라 해당 height validator set의 total voting power를 기준으로 계산됩니다. 큰 power가 추가·제거되면 같은 서명자 집합도 다음 height에서 다른 비율이 됩니다. 모니터링은 validator 수뿐 아니라 total과 개별 power를 함께 저장해야 합니다.

대규모 변경은 안전성과 진행성에 영향을 줄 수 있어 애플리케이션 자체가 한 블록 변화량을 제한하기도 합니다. 그 제한은 CometBFT 일반 규칙이 아니라 체인별 staking·거버넌스 규칙일 수 있습니다. 문서와 실제 파라미터를 확인하지 않고 공통 상한으로 표현하지 않습니다.

현재·다음 세트를 이름 그대로 읽는다

노드 내부 상태나 디버그 출력에는 current validators와 next validators가 함께 나타날 수 있습니다. next를 이미 현재 합의 권한이라고 부르면 한 높이 앞서 해석하게 됩니다. 반대로 explorer 캐시가 늦으면 실제 적용 뒤에도 과거 power가 보일 수 있습니다. RPC height를 명시해 같은 시점 자료를 대조합니다.

결론은 간단합니다. 변경 요청, 앱 계산, 엔진 적용, 실제 commit을 네 칸으로 나누면 시차가 보입니다. 이 구조는 검증자 추가가 실패했는지, 표시만 늦는지, 다음 높이에 정상 적용됐는지를 구분하는 가장 재현 가능한 방법입니다.

자주 묻는 질문

검증자 등록 transaction이 들어간 블록에 새 검증자가 서명하나요?

그 블록의 합의 세트는 실행 결과보다 먼저 정해졌으므로 소급 서명하지 않습니다. 현재 CometBFT ABCI++ 기준 H에서 반환된 update는 H+2부터 효력이 생기며 체인 버전과 RPC로 확인해야 합니다.

validator 수만 비교하면 변경을 확인할 수 있나요?

아닙니다. power 변경과 키 교체는 수가 같아도 발생하므로 public key와 voting power를 비교해야 합니다.

proposer가 그대로면 update가 실패한 것인가요?

아닙니다. proposer priority 규칙 때문에 set 변경과 즉시 proposer 교체는 같은 사건이 아닙니다.

더 깊이 읽기

본문에서 다룬 개념과 확인 절차를 다음 글에서 이어서 살펴보세요.

참고한 원문 자료

자료 확인 기준일 2026.09.27
  1. ABCI++ Methodsgithub.com
  2. CometBFT Blockchain Specificationgithub.com
  3. Cosmos SDK Staking Moduledocs.cosmos.network
자료 대조 기록과 확인 범위
출처 수집
원문 링크 3개 제공
핵심 주장 대조
완료 근거가 아직 기록되지 않았습니다.
분야 전문가 검수
별도 완료 기록이 없습니다.

원문 링크와 자료 확인일은 글 전체의 주장 대조나 전문가 검수 완료를 뜻하지 않습니다. 별도 확인이 필요한 절차는 원문의 적용 대상과 최신 안내를 함께 확인해 주세요.

AI 활용 안내

이 글은 초안 구성과 자료 정리에 AI를 활용했습니다. 글에 표시된 출처와 기준일을 함께 확인해 주세요. 별도 검토 정보가 없다면 전문가 검수를 뜻하지 않습니다.

이해를 위한 정보 콘텐츠

이 글은 특정 자산의 매수·매도 또는 수익을 권유하지 않습니다. 자료의 발표 시점과 이후 변경 사항을 함께 확인해 주세요.

편집 원칙 보기 →이 기사 정정 제보 →