Reorg란 무엇인가?
작성자 Alchemy
리오그(reorg)란 무엇인가?
체인 재구성, 즉 “리오그(reorg)”는 검증자들이 블록체인의 가장 정확한 버전에 대해 합의하지 못할 때 발생한다. 리오그는 여러 블록이 동시에 생성되거나, 버그가 있거나, 악의적인 공격이 있을 때 발생한다. 리오그는 더 약한 중복 블록체인을 제거한다. 리오그가 오래 지속될수록 처리 비용이 더 커진다.
블록체인 리오그는 더 긴 체인이 생성되면서 기존 블록이 블록체인에서 제거되는 결과를 낳는다. 이는 서로 다른 채굴자들이 비슷한 난이도를 가진 거래 블록을 동시에 체인에 추가하는 작업을 하게 만든다.
이는 다음 블록을 추가하는 채굴자가 포크의 어느 쪽이 올바른, 즉 표준(canonical) 체인인지 결정해야 하기 때문에 발생한다. 채굴자 또는 검증자가 포크나 표준 체인을 선택하고 나면, 다른 체인은 소실된다.
재구성 공격(reorganization attack)이란 이전 체인이 계속 존재하는 상태에서 노드들이 새로운 체인의 블록을 받는 것을 말한다. 이 경우 체인이 분리되어 포크, 즉 블록체인의 중복 버전이 생성된다.
블록체인 리오그의 원인은 무엇인가?
블록체인 리오그는 두 블록이 동시에 게시될 때 발생한다. 12블록 정도의 짧은 리오그는 네트워크 지연으로 인해 자주 발생하지만, 리오그가 12블록 이상으로 길어지면 악의적인 공격이나 네트워크 장애로 이어질 수 있다.
체인 재구성의 결과는 무엇인가?
체인 재구성에는 네 가지 주요 결과가 있다: 지연 및 사용자 경험 저하, 노드 비용, 불확실성, 공격에 대한 취약성.
1. 지연 및 사용자 경험 저하
노드 비용 증가와 더불어, 리오그는 거래 지연 가능성을 높인다. 이는 거래소에게 중요한 문제인데, 입금 확인이 제때 이루어져야 하며 그렇지 않으면 입금을 더 오래 기다려야 하는 결과를 겪을 수 있기 때문이다.
2. 노드 비용
리오그는 시간이 지남에 따라 블록체인 내 노드 수를 늘려 사용자 경험을 저하시킬 수 있다. 새로운 포크로 전환할 때 상태 업데이트에는 더 많은 메모리와 디스크 비용이 든다.
3. 불확실성
리오그가 두드러지게 나타나면 사용자는 거래가 제때 실행될 것이라는 보장을 덜 받게 된다. 충분한 맥락이 없으면 DeFi 거래는 훨씬 나쁜 결과를 낳을 수 있으며, 해로운 MEV 추출로도 이어질 수 있다.
4. 공격에 대한 취약성
리오그가 더 흔해지면, 공격자는 (“최장 체인 규칙” 때문에) 정직한 채굴자 전체가 아니라 일부만 이기면 된다. 리오그가 많아질수록 공격자의 역할은 훨씬 쉬워진다.
표준 체인(canonical chain)이란 무엇인가?

표준 체인은 합의된 "메인 체인"이다. 따라서 이는 종료되는 사이드체인 중 하나로 간주되지 않는다.
이론적으로는 네트워크가 어느 체인이 표준 체인인지 100% 확신할 수 없다. 충분한 해시 파워로 사이드체인을 계속 이어간다면 1번 블록조차 되돌릴 수 있기 때문이다.
포크(fork)란 무엇인가?
포크는 커뮤니티가 블록체인의 프로토콜이나 기본 규칙 세트를 변경할 때 발생하며, 이는 사실상 체인을 새로운 규칙을 따르는 새 체인과 대부분 사용되지 않게 되는 이전 체인으로 분리(또는 "포크")한다.
Bitcoin과 Ethereum 같은 블록체인은 탈중앙화된 오픈소스 소프트웨어로 운영되고 네트워크에 이해관계가 있는 커뮤니티 구성원들에 의해 유지되기 때문에, 네트워크 참여자들은 소프트웨어 변경을 제안하고 투표할 수 있다.
포크 선택 규칙(fork choice rule)이란 무엇인가?
포크 선택 규칙은 지금까지 관측된 블록 및 기타 메시지 집합을 입력으로 받아 클라이언트에게 "표준 체인"이 무엇인지 출력하는 함수이다.
포크는 여러 게시된 블록이 동일한 이전 상태를 참조할 때 발생한다. 블록체인은 두 블록이 거의 동시에 게시될 경우 우연히 이런 상황에 직면할 수도 있고, 악의적인 행위자가 체인에서 결제를 "제거"하기 위해 의도적으로 포크를 만들려는 경우처럼 고의로 발생할 수도 있다.
어느 경우든, 사용자가 어느 포크가 올바른, 즉 "표준" 포크인지 판단할 수 있는 메커니즘이 필요하다. 이를 "포크 선택 규칙"이라고 한다.
포크 선택 규칙이 필요한 이유는 선택할 수 있는 유효한 체인이 여러 개 존재할 수 있기 때문이다. 이는 동일한 부모 체인을 가진 두 개의 경쟁 블록이 동시에 게시될 때 가능하다.
예를 들어, "가장 긴 유효 체인이 이긴다"는 규칙은 Proof-of-Work 메커니즘에 부합하는 간단한 포크 선택 규칙이 될 수 있다. 우리는 블록체인이 합의 알고리즘의 제안 메커니즘 역할을 할 수 있도록 하는 포크 선택 규칙을 정의할 수 있다. 이들은 Vitalik Buterin이 설명한 것과 같은 속성들을 보여준다.
아래 표에 세 가지 포크 선택 규칙이 나와 있다:
- Nakamoto
- GASPER
- Tendermint
파이널리티(finality)란 무엇인가?
파이널리티는 완료된 암호화폐 거래가 어떠한 방식으로도 변경, 되돌리기, 취소될 수 없다는 완전한 보장을 의미한다. 파이널리티는 블록체인 자체의 지연 시간에 의해 좌우된다. 파이널리티는 거래가 실행될 것이라는 보장을 위해 기다려야 하는 시간을 측정하는 데 흔히 사용된다.
Ethereum에서 리오그가 발생하면 어떻게 되는가?
Ethereum은 현재 Proof-of-Work 합의 메커니즘을 사용한다. Ethereum은 "최장 체인 규칙"이라는 포크 선택 규칙을 사용하는데, 이는 클라이언트에게 두 개의 블록체인이 주어지면 난이도가 가장 높은 체인을 선택한다는 의미이다. 이는 체인 내 모든 블록의 난이도 합을 비교하여 이루어진다.
Ethereum Beacon Chain은 최근 잠재적인 보안 위험으로 이어질 수 있는 리오그를 겪었다. The Beacon Chain은 네이티브 스테이킹을 도입하는데, 이는 Ethereum이 채택한 Proof-of-Stake 합의 모델의 핵심 요소이다. Ethereum 내 이 리오그는 7블록 동안 지속되었으며, 이는 몇 년 만에 가장 긴 리오그 중 하나였다.
Gnosis의 CEO 겸 공동창업자인 Martin Köppelmann은 이 7블록 리오그 안에서 관찰한 내용을 트윗한 사람 중 한 명이었다.
7블록 리오그는 포크가 발생하여 수백 건의 거래가 담긴 7개 블록이 삭제되었다는 것을 의미한다. 이는 사용자가 동일한 자산을 두 번 사용할 수 있는 위험으로 이어졌다. 2~3블록 정도의 리오그는 블록체인이 흔히 겪는 네트워크 지연으로 인한 단순한 불운의 징후일 수 있다. Beacon Chain의 경우도 마찬가지였을 수 있다.
5블록 이상의 리오그가 악의적인 공격의 잠재적 신호라는 점을 고려할 때, 개발자들에 따르면 최근 Ethereum 리오그는 악의적이지 않은, 발생 확률이 낮은 사건에 해당하는 것으로 보였다.
Vitalik Buterin은 시기적절한 대응으로 이는 오래된 버전의 마이닝 소프트웨어 때문일 수 있다고 말했다. Ethereum 핵심 개발자인 Preston Van Loon은 Beacon 블록체인의 리오그가 아직 네트워크 전체에 완전히 배포되지 않은 Proposer Boost 포크 결정의 배포로 인해 발생했다고 말했다.
Proposer boosting은 제때 수신된 제안 블록에 더 많은 가중치를 부여하기 위해 도입되었다. Proposer boosting은 사전(ex-ante) 리오그 문제를 해결하기 위해 도입되었다.

기본적으로, proposer boosting이 활성화된 검증자들은 하단 체인을 표준 체인으로 만들었지만, proposer boosting이 활성화되지 않은 검증자들은 대신 더 짧은 상단 체인을 선택했다. 이로 인해 각 체인은 각자의 검증자들로부터 계속 표를 축적하게 된다.
더 나아가, 이번 재구성은 업데이트된 클라이언트 소프트웨어와 구버전 클라이언트 소프트웨어 간의 사소하지 않은 분리 현상이다. 리오그 자체가 잘못된 포크 선택의 징후는 아니었다.
Ethereum Beacon Chain의 검증자들은 클라이언트 업데이트로 특정 클라이언트가 활성화된 이후 동기화가 어긋났다. 이 과정에서 블록체인 네트워크의 검증자들이 혼란을 겪고 클라이언트를 업데이트하지 않아, 7블록 리오그를 초래한 포크가 발생했다.
모든 검증자가 동일한 구성으로 실행되었다면 이 문제는 발생하지 않았을 것이다.
머지(merge) 이후 리오그는 어떻게 되는가?
리오그를 일으키는 난이도는 시간이 지남에 따라 계속 서서히 증가할 것이다. 그러나 Ethereum Beacon Chain이 Proof-of-Stake를 구현하면서 Gasper라는 포크 선택 규칙을 도입할 것이다.
Gasper 포크 선택 규칙은 증명자(attester) 투표와 증명(attestation)이 도입되어 블록에 "가중치"를 부여하기 때문에 Ethereum 블록체인을 공격하는 것을 매우 어렵게 만들 것이다.
증명자를 통제한다는 것은 포크 선택 규칙을 통제한다는 것을 의미한다. 이는 단일 블록 리오그를 더 어렵게 만드는데, 소수의 통제된 검증자에 대한 공격이 수천 명의 증명자와 경쟁해야 하기 때문이다.
제안자(proposer)와 증명자(attester)란 무엇인가?
제안자와 증명자는 Gasper 포크 선택 규칙에서 두 가지 중요한 역할이다: 제안자는 12초마다 "슬롯"에 새 블록을 제안하는 임무를 맡은 검증자이며, 증명자는 표준 체인의 헤드라고 생각하는 것에 투표하는 검증자이다.
일반적으로 하나의 제안자 검증자는 전체 검증자의 약 1/32로 구성된 위원회의 일부로서 무작위로 선정된다. 이 위원회 내에는 증명자들도 있다.
증명자들의 투표는 **증명(attestation)**이라고 불리며 블록에 "가중치"를 부여하는데, 이는 증명자를 통제하는 것이 곧 포크 선택 규칙을 통제할 수 있는 능력도 준다는 것을 의미한다.
제안자와 증명자로 구성된 위원회가 무작위로 선정되기 때문에, 공격자가 자신의 검증자를 특정 슬롯에 집중시킬 방법이 없다.
머지 이후의 문제?
전반적으로, 단독 또는 소규모 증명자 그룹이 블록을 리오그할 수 있는 능력이 점점 더 어려워짐에 따라 리오그는 덜 우려되는 문제가 될 것이다. 또한 Ethereum 개발자들은 포크 선택 규칙을 변경하여 리오그에 대한 요구 조건을 높이거나 단일 슬롯 파이널리티 합의로 나아가기 위한 해결책을 찾을 수 있다. 단일 슬롯 파이널리티 합의는 사용자 경험을 개선하고, MEV 리오그 저항성을 높이며, 프로토콜 복잡성과 버그를 줄일 것이다.
관련 개요
Ethereum2026년 7월 28일
Robinhood Chain에서 밈코인 출시하기
Foundry와 Alchemy RPC로 Robinhood Chain 메인넷에 고정 공급량 ERC20을 작성하고 배포하거나, Alchemy CLI를 사용해 코딩 에이전트에게 출시 전체를 맡기세요.
Ethereum2025년 11월 18일
Ethereum Fusaka 업그레이드란? 12개 EIP 개발자 가이드
Fusaka 업그레이드에 대한 실용적인 분석으로, 핵심 EIP 12개와 이들이 Ethereum 스택 전반의 데이터 가용성, 암호화, 가스 비용, 검증자 운영을 어떻게 변화시키는지 설명합니다.
Ethereum2025년 5월 19일
EIP-7702: Pectra 이후 Ethereum 개발자를 위한 빠른 통합 가이드
Ethereum이 EIP-7702라는 중요한 업그레이드를 앞두고 있습니다. 모든 개발자를 위한 통합 시 고려사항을 빠르게 정리한 가이드입니다.

블록체인 매직을 만드세요
Alchemy는 가장 강력한 Web3 개발자 제품 및 도구를 리소스, 커뮤니티, 그리고 전설적인 지원과 결합합니다.