요약: 블록 공간에 대한 수요가 네트워크의 처리 용량을 초과하면 블록체인의 속도가 느려집니다. 가장 흔한 원인은 네트워크 정체(제한된 블록 용량을 놓고 너무 많은 거래가 경쟁하는 현상), 상태 부풀어오름(각 블록을 처리하는 데 드는 계산 비용을 증가시키는 저장 공간 요구량의 증가), 합의 오버헤드(검증자 수에 비례하여 증가하는 통신 비용), 그리고 인프라 제한(느린 노드, 높은 지연 시간을 보이는 RPC 엔드포인트, 비효율적인 데이터 파이프라인)입니다. 이러한 속도 저하는 확인 시간 증가, 수수료 상승, 애플리케이션 내 데이터 갱신 지연, 사용자 경험 저하 등의 형태로 나타납니다. 일부 원인은 블록체인 설계에 내재된 반면, 다른 원인은 더 나은 인프라를 통해 완화될 수 있습니다.
간단한 설명
"느림"이란 표현은 누가 묻느냐에 따라 그 의미가 달라집니다. 거래를 제출하는 최종 사용자에게 ‘느림’이란, 확인을 받는 데 몇 초가 아닌 몇 분 또는 몇 시간을 기다려야 한다는 것을 의미합니다. 데이터 파이프라인을 운영하는 개발자에게 ‘느림’이란, 체인 끝부분을 따라가지 못해 오래된 데이터를 제공하게 되는 것을 의미합니다. DeFi 트레이더에게 ‘느림’이란, 가격 업데이트를 늦게 받아 차익거래 기회를 놓치는 것을 의미합니다. 이러한 각 유형의 속도 저하에는 서로 다른 근본 원인과 해결책이 있습니다.
프로토콜 수준에서 블록체인은 합의 메커니즘, 블록 매개변수, 실행 환경에 의해 결정되는 명확한 성능 상한선이 존재합니다. 이러한 상한선은 우연이 아닌 설계상 존재하는 것입니다. 이는 탈중앙화와 보안을 위해 치러야 하는 대가입니다. 수요가 이러한 상한선에 도달하더라도 네트워크는 다운되지 않습니다. 대신 수수료를 인상하여(가치가 낮은 거래를 배제함으로써) 및 확인 시간을 연장하여(사용자가 더 오래 기다리게 함으로써) 점진적으로 성능이 저하됩니다. 하지만 사용자의 관점에서 볼 때, 이러한 “점진적인 성능 저하”는 여전히 느리게 느껴집니다.
인프라 수준에서 블록체인 자체는 정상적으로 작동하고 있을지 모르지만, 애플리케이션이 블록체인과 상호작용하는 데 사용하는 도구가 병목 현상을 일으킬 수 있습니다. 속도가 느리거나 과부하가 걸린 RPC endpoint 는 모든 요청에 지연 시간을 발생시킵니다. 폴링 방식의 데이터 파이프라인은 블록 생성 시점과 데이터 이용 가능 시점 사이에 지연을 초래합니다. 리소스가 부족하게 할당된 노드는 체인 끝부분에서 뒤처지게 됩니다. 이러한 인프라 수준의 성능 저하는 프로토콜 수준의 문제보다 종종 더 큰 영향을 미치며(그리고 해결하기 더 쉽습니다).
네트워크 정체는 블록체인 처리 속도가 느려지는 가장 흔하고도 눈에 띄는 원인입니다. 다음 블록에 담을 수 있는 양보다 더 많은 거래가 제출되면 멥풀에 대기열이 형성됩니다. 블록 생성자는 수수료가 가장 높은 거래를 먼저 선택하고, 수수료가 낮은 거래는 대기 상태로 남겨둡니다. 심각한 정체 상황에서는 멥풀에 수십만 건의 대기 중인 거래가 쌓일 수 있으며, 이 경우 확인 시간이 몇 초에서 몇 시간까지 길어질 수 있습니다.
네트워크 정체는 본질적으로 간헐적으로 발생합니다. 대부분의 경우, 인기 있는 블록체인은 용량 한도보다 훨씬 낮은 수준에서 원활하게 운영되며, 거래는 저렴한 비용으로 신속하게 확정됩니다. 하지만 특정 사건이 발생하면 수요가 급증하여 네트워크가 과부하 상태에 빠지기도 합니다. NFT 민트, 토큰 출시, 에어드랍 수령, 시장 붕괴, 그리고 입소문을 탄 밈 토큰 거래 등은 모두 평소 수준을 훨씬 뛰어넘는 거래량 급증을 유발합니다. 2022년 5월 유가 랩스(Yuga Labs)의 ‘오더사이드(Otherside)’ 민팅 기간 동안, 이더리움( Ethereum )의 가스 가격은 8,000 gwei를 넘어섰으며, 이는 평소 수준의 수백 배에 달하는 수치였습니다.
핵심적인 통찰점은, 혼잡이 개별 거래의 확인 속도를 늦추기는 하지만 네트워크의 처리량을 감소시키지는 않는다는 점입니다. 체인은 평소와 같은 속도( Ethereum 의 경우 12초마다, Solana 의 경우 400ms마다)로 블록을 계속 생성합니다. 달라지는 것은 거래가 블록에 포함되기까지 걸리는 대기 시간입니다. 네트워크는 초당 동일한 수의 거래를 처리하고 있으며, 단지 대기 중인 거래의 대기열이 늘어날 뿐입니다.
국가 비대화
상태 부풀어오름은 블록체인의 성능 저하를 초래하는 더 느리고 교묘한 형태입니다. 스마트 계약을 배포할 때마다, 새 계정이 생성될 때마다, 토큰 잔액이 기록될 때마다 블록체인의 상태(노드가 새로운 거래를 검증하기 위해 메모리나 디스크에 유지해야 하는 모든 현재 계정 잔액과 계약 저장소 값의 집합)가 증가합니다. 상태가 커질수록 거래 실행 중 상태를 읽고 쓰는 데 드는 계산 비용이 증가합니다.
Ethereum 에서 상태 트리는 출시 당시 거의 없던 수준에서 수백 기가바이트 규모로 커졌습니다. 상태를 읽거나 쓰는 모든 트랜잭션은 이 데이터 구조를 거쳐야 하며, 데이터 구조가 커질수록 각 작업에 필요한 디스크 I/O도 늘어납니다. 이는 RPC 제공자가 운영하는 노드를 포함해 모든 노드에 동등하게 영향을 미칩니다. 상태 부풀어오름은 혼잡과 달리 극적이고 갑작스러운 속도 저하를 유발하지 않습니다. 대신, 모든 블록을 처리하는 데 드는 기본 비용을 점진적으로 증가시키며, 이는 블록 처리 시간이 약간 길어지거나, 상태에 접근하는 작업에 필요한 최소 가스 비용이 상승하거나, 노드 운영에 필요한 하드웨어 사양이 높아지는 형태로 나타날 수 있습니다.
여러 체인이 상태 관리 솔루션을 도입하거나 제안한 바 있습니다. Ethereum 의 EIP-4444는 히스토리 만료(풀 노드에서 오래된 블록 데이터를 삭제하는 것)를 제안합니다. 상태 임대료 제안은 계약이 소비하는 저장 공간에 대해 요금을 부과함으로써 정리 작업을 장려합니다. Solana 의 계정 임대료 시스템은 이미 계정이 활성 상태를 유지하기 위해 최소 잔액을 요구하고 있습니다. 이러한 접근 방식들은 상태의 증가를 관리하려는 시도이지만, “블록체인은 모든 것을 기억한다”는 점과 “저장 공간은 무료가 아니다”라는 점 사이의 근본적인 상충 관계는 여전히 남아 있습니다.
합의 오버헤드
합의 메커니즘이란 검증자들이 다음 블록에 어떤 거래를 어떤 순서로 포함시킬지 합의하는 과정을 말합니다. 검증자들이 서로 통신해야 하고, 이 통신에는 시간이 소요되기 때문에 이 과정은 본질적으로 지연 시간을 초래합니다. 합의에 참여하는 검증자가 많을수록 교환해야 할 메시지도 늘어나며, 합의에 걸리는 시간도 길어집니다.
이는 블록체인 삼중 딜레마의 한 측면입니다. 검증자가 4명인 네트워크는 매우 빠르게 합의에 도달할 수 있지만(지연 시간 짧음), 중앙 집중화가 심합니다. 반면, 검증자가 40만 명인 네트워크( Ethereum 등)는 강력한 탈중앙화를 갖추고 있지만, 여러 차례의 통신 라운드, 인증 기간, 최종 확정 체크포인트 등이 포함된 정교한 합의 프로토콜이 필요하며, 이로 인해 블록 포함부터 최종 확정까지 수 분의 지연 시간이 발생합니다.
일부 블록체인은 리더 기반 합의 방식을 사용하는데, 이 방식에서는 단일 검증자가 블록을 제안하고 다른 검증자들이 이를 검증함으로써 통신 오버헤드를 줄이기는 하지만, 지연의 단일 지점(리더)이 발생하게 됩니다. 반면, 무작위로 선정된 검증자 하위 집합이 각 슬롯에 대한 합의 처리를 담당하는 위원회 기반 합의 방식을 사용하는 블록체인도 있는데, 이는 분산성과 속도의 균형을 맞춥니다. 합의 메커니즘의 선택은 네트워크의 기본 지연 시간 하한, 즉 기본 하드웨어가 아무리 빠르더라도 줄일 수 없는 트랜잭션 제출부터 최종 확정까지의 최소 시간을 직접 결정합니다.
인프라 병목 현상
대부분의 개발자에게 있어 일상적으로 겪는 성능 저하는 프로토콜 수준에서 발생하는 것이 전혀 아닙니다. 이는 인프라 수준에서 발생하는 문제입니다. 애플리케이션에서 체감하는 블록체인 속도는 데이터 경로에서 가장 취약한 부분, 즉 연결된 RPC endpoint , 데이터베이스로 데이터를 전달하는 데이터 파이프라인, 그리고 원시 블록체인 데이터를 애플리케이션 상태로 변환하는 처리 로직에 의해 결정됩니다.
수백 명의 다른 사용자와 용량을 놓고 경쟁해야 하는 공유형 공개 RPC endpoint 는 모든 요청에 예측 불가능한 지연 시간을 초래합니다. 사용량이 급증하는 피크 시간대, 즉 가장 필요한 순간에 속도 제한(Rate limiting)이 적용되어 요청량이 제한됩니다. 애플리케이션 서버와 가장 가까운 노드 간의 지리적 거리가 멀어질수록 모든 호출의 왕복 시간(Round-trip time)이 늘어납니다. 리소스가 부족하여 체인 끝부분에서 뒤처진 노드는 오래된 데이터를 제공하므로, 애플리케이션의 상태가 실제 상황보다 뒤처지게 됩니다.
폴링 기반 데이터 파이프라인은 폴링 간격과 동일한 인위적인 지연 시간을 발생시킵니다. 인덱서가 10초마다 새로운 블록을 확인한다면, 아무리 조건이 완벽하더라도 항상 체인 끝부분보다 0~10초 뒤처지게 됩니다. 혼잡이 발생하여 블록이 가득 차고 처리 시간이 늘어날 때, 폴링 간격은 애플리케이션이 최신 상태를 따라가지 못하게 하는 병목 현상이 됩니다.
이러한 인프라 병목 현상은 개발자가 직접 해결할 수 있는 문제이므로, 블록체인 성능 저하의 가장 실질적인 원인입니다. 전용 고성능 RPC 제공업체로 업그레이드하면 endpoint 의 지연 시간을 줄일 수 있습니다. 폴링 방식에서 스트리밍 방식으로 전환하면 인위적인 파이프라인 지연이 사라집니다. 지리적으로 분산된 인프라를 사용하면 왕복 시간을 단축할 수 있습니다. 격리된 노드 리소스를 전용으로 할당하면 노이즈 이웃 효과가 제거됩니다.
Quicknode 가 블록체인의 속도 저하 문제를 어떻게 해결하는가
Quicknode이 인프라스트럭처는 애플리케이션에서 블록체인 처리 속도 저하를 유발하는 인프라 수준의 병목 현상을 최소화하거나 제거하도록 설계되었습니다. Core API는 14개 이상의 지역과 5개 이상의 클라우드 공급업체에 걸쳐 전 세계적으로 분산된 네트워크에서 실행되며, 요청을 가장 가깝고 가장 빠른 가용 노드로 자동으로 라우팅합니다. 응답 시간은 경쟁사보다 평균 2.5배 빠르며, 99.99%의 가동 시간 SLA를 통해 네트워크 혼잡 상황에서도 일관된 가용성을 보장합니다. 전용 Clusters 는 ‘노이즈 이웃(noisy-neighbor)’ 효과를 제거하는 격리된 인프라를 제공하여, 다른 사용자의 활동과 관계없이 지연 시간에 민감한 애플리케이션에 예측 가능한 성능을 보장합니다.
Quicknode Streams Streams 는 최종 확정 순서대로 전송이 보장되는 푸시 기반 스트리밍을 통해 블록체인 데이터를 전달함으로써 폴링 병목 현상을 완전히 해소합니다. 폴링 간격도, 인위적인 지연도 없으며, 블록 누락 위험도 없습니다. 혼잡이 발생하여 블록 크기가 커지고 포함된 거래 수가 늘어날 때, 는 증가한 데이터 양에 맞춰 데이터 전송 규모를 확장합니다. 사용자 정의 가능한 배치 처리 및 압축 기능은 과거 데이터 보충 및 대용량 체인의 처리량을 최적화합니다. , 의 Solana QuicknodeYellowstone gRPC 는 JSON 대신 바이너리 프로토콜 버퍼(Protocol Buffers)를 사용하여, 1밀리초도 중요한 체인에서 직렬화 오버헤드를 최소화함으로써 가능한 최저 지연 시간의 데이터 액세스를 제공합니다.
느린 블록체인과 느린 DApp의 차이점은 무엇인가요?
사용자에게는 똑같이 느껴지지만, 그 원인은 서로 다릅니다. 블록체인이 느린 것은 프로토콜상의 문제입니다. 즉, 혼잡, 합의 타이밍, 또는 상태 크기 등이 네트워크가 거래를 확인하는 속도를 제한하고 있는 것입니다. 반면, dapp이 느린 것은 대개 인프라상의 문제입니다. 체인 자체는 정상적이지만, 멀리 떨어져 있거나 과부하 상태인 endpoint 가 추가적인 지연을 유발하고 있는 것입니다. 처리량과 지연 시간을 비교해 보는 것이, 실제로 어떤 문제를 겪고 있는지 파악하는 가장 명확한 방법입니다.
양상
프로토콜 수준
인프라 수준
출처
컨센서스, 블록 제한, 상태 크기
RPC endpoint, 데이터 파이프라인, 노드 위치
누가 이를 통제하는가
네트워크 및 핵심 개발자들
개발자 여러분
얼마나 고칠 수 있을까
어렵습니다. 프로토콜 업그레이드가 필요합니다.
간단해요, 제공업체나 요금제를 바꾸면 돼요
예시
NFT 민팅 중 가스 비용이 높게 발생하는 경우
느린 공개 endpoint 로 인해 지연 시간이 발생하고 있습니다
블록체인 혼잡도가 갑자기 급증하는 원인은 무엇인가요?
네트워크 정체는 지속적으로 발생하는 것이 아니라 간헐적으로 발생합니다. 토큰 출시, NFT 발행, 에어드랍 수령, 시장 폭락, 그리고 화제가 된 거래 등은 모두 짧은 시간 내에 네트워크에 거래량을 쏟아부으며, 사용자들이 제한된 블록 공간을 확보하기 위해 경쟁함에 따라 수수료가 치솟습니다. 블록체인 정체의 원인을 이해하면 이러한 상황에 당황하지 않고 미리 대비할 수 있습니다.
레이어 2와 확장성은 어떻게 속도 저하를 줄여주나요?
레이어 2 네트워크는 대부분의 거래를 베이스 체인에서 분리하여 일괄 처리함으로써, 처리량을 획기적으로 높이고 일상적인 활동에 드는 수수료를 낮춥니다. 레이어 2 블록체인에서 앱을 운영하는 것은 기반 네트워크의 보안을 유지하면서 베이스 레이어의 혼잡을 피할 수 있는 가장 효과적인 방법 중 하나입니다.
개발자들이 실제로 해결할 수 있는 성능 저하 문제는 무엇일까요?
프로토콜 수준의 제한은 대부분 사용자가 통제할 수 없는 부분이지만, 인프라의 속도 저하는 그렇지 않습니다. 더 빠른 서비스 제공업체로 전환하거나, 노드를 사용자와 더 가까운 곳에 배치하거나, 폴링 방식을 푸시 기반 전달 방식으로 대체할 수 있습니다. 폴링에서 스트리밍으로 전환하는 것만으로도, 간격 기반 파이프라인에 내재된 인위적인 지연 시간을 제거할 수 있습니다.
자주 묻는 질문
정체가 발생하면 블록체인이 처리하는 거래 건수가 줄어드는 것입니까?
아닙니다. 체인은 평소와 같은 속도로 블록을 생성하며 동일한 처리량을 유지합니다. 혼잡이 발생할 때 늘어나는 것은 대기 중인 거래의 대기열이며, 이것이 개별 거래의 확인 시간이 길어지고 수수료가 상승하는 이유입니다.
분산화 때문에 블록체인의 속도가 느려지나요?
그렇습니다. 검증자가 많아지면 합의에 도달하기 위해 필요한 통신량이 늘어나며, 이로 인해 기본 지연 시간이 증가합니다. 속도와 탈중앙화 간의 이러한 상충 관계는 ‘탈중앙화 대 성능’에서 자세히 다루고 있습니다.
더 빠른 RPC 제공자가 느린 애플리케이션의 문제를 해결할 수 있을까요?
대개 그렇습니다. 체인 상태는 양호한데도 DApp이 느리게 느껴진다면, 병목 현상의 원인은 대개 endpoint 입니다. 더 가까운 전용 제공자를 통해 RPC 지연 시간을 줄이면 사용자가 느끼는 지연의 대부분을 해소할 수 있습니다.
개발자로서 ‘시스템 비대화’ 문제를 해결할 수 있을까요?
직접적인 방법은 아닙니다. 스테이트 부풀어오름은 프로토콜 수준의 문제로, 기록 만료나 계정 임대와 같은 업그레이드를 통해 관리됩니다. 읽기 작업이 많은 데이터를 캐싱하고, 스마트 계약 내에서 불필요한 온체인 저장을 피함으로써 그 영향을 줄일 수 있습니다.
블록체인의 처리 속도가 느려지면 수수료는 왜 오르는 걸까요?
블록의 용량이 제한되어 있기 때문에, 수요가 급증하면 사용자들은 더 빨리 거래가 포함되도록 더 높은 수수료를 제시합니다. 더 높은 수수료는 어떤 거래가 다음 블록에 포함될지를 결정하는 시장 균형 조정 메커니즘입니다.