블록체인 실행 레이어, 스토리지 레이어, 합의 레이어 확장 방식
Last updated
Last updated
신뢰 최소화는 귀중한 보안 속성이며 블록체인 기술은 이 속성을 가능하게 하는 고유한 위치에 있습니다. 블록체인은 컴퓨터 코드, 암호화 및 보안을 위한 분산형 합의를 기반으로 하며 악수, 브랜드 평판 및 종이 계약과 같은 기존 프로토콜 메커니즘을 대체합니다. 보안 보장은 또한 암호화 사실에 대한 토대를 마련합니다.
현재 블록체인은 통화 정책(예: 비트코인) 및 디지털 자산 거래(예: DEX)를 포함한 다양한 혁신적인 응용 시나리오에 대한 신뢰 최소화를 구현했습니다. 그러나 블록체인은 항상 많은 애플리케이션 시나리오의 속도와 비용 요구 사항을 충족하기가 어려웠으며 이러한 두 가지 차원에서 기존 컴퓨팅 시스템과 비교할 수 없습니다. 블록체인의 확장성 제한은 또한 사용자가 높은 거래 수수료를 지불하게 하므로 개발자는 블록체인이 실제로 고부가가치 애플리케이션 시나리오를 지원하고 실시간 데이터 처리를 실현할 수 있는지 궁금해합니다.
블록체인의 궁극적인 목표는 모든 사용자와 애플리케이션 시나리오를 포괄하는 것이므로 확장성은 연구 개발의 초점이며 스마트 계약을 촉진하여 금융, 공급망 및 게임. 다음은 블록체인과 기존 컴퓨팅 시스템의 차이점을 중심으로 블록체인의 확장성 문제를 요약하고 실행 계층, 저장 계층 및 합의 계층에서 서로 다른 블록체인 확장 방식의 장단점을 열거합니다.
참고: 이 기사는 모든 블록체인 확장 계획을 완전히 나열하지는 않습니다. 블록체인의 첨단 연구 개발로 인해 다양한 솔루션이 아직 연구 개발, 테스트, 배포 및 업데이트 단계에 있습니다.
블록체인을 확장하는 방법을 논의하기 전에 블록체인 컴퓨팅과 기존 컴퓨팅의 근본적인 차이점을 이해하는 것이 중요합니다. 일반적으로 블록체인에는 다음과 같은 핵심 가치가 있습니다.
계산은 매우 결정적입니다 — 사전 정의된 코드 논리에 따라 매우 높은 수준의 결정론으로 엄격하게 실행됩니다.
신뢰할 수 있고 중립적인 — 블록체인에는 중앙 집중식 관리자나 특별한 네트워크 권한이 없으므로 누구나 통제나 차별적 대우에 대한 두려움 없이 거래를 제출할 수 있습니다.
최종 사용자에 의한 검증 — 전 세계 모든 사람이 블록체인 원장의 기록과 현재 상태 및 클라이언트 소프트웨어의 기본 코드를 감사할 수 있습니다.
보다 구체적으로 말하면, 블록체인의 임무는 자산 소유권, 계약 상태 또는 원시 데이터를 기록할 수 있는 내부 원장을 관리하는 것입니다. 대부분의 블록체인 네트워크는 "블록 생산자"와 "전체 노드"에 의해 관리됩니다. 이 두 가지 유형의 액터는 다른 기능을 수행하지만 때로는 겹칩니다.
블록 생산자는 사용자가 제출한 확인되지 않은 트랜잭션을 수집하고 트랜잭션의 유효성을 확인하고 트랜잭션을 "블록"이라고 하는 데이터 구조에 배치합니다. 블록 생산자는 작업 증명(PoW) 블록체인에서 "채굴자"로, 지분 증명(PoS) 블록체인에서 "노드 검증"이라고 합니다. PoW와 PoS는 모두 안티 시빌 공격 메커니즘으로 블록체인 원장의 견고성을 항상 유지하고 원장 제어를 방지할 수 있습니다.
블록 생산자가 블록을 제출한 후 전체 노드에서 블록을 수락하거나 거부합니다. 풀 노드는 블록체인 원장의 완전한 사본을 독립적으로 저장하고 새로운 블록을 지속적으로 검증하지만 풀 노드는 블록 생산 프로세스에 참여할 필요가 없습니다. 대부분의 풀 노드는 블록 생산자에 의해 운영되지만 거래소, RPC 프로토콜 제공자, 스테이블코인 발행자와 같은 주요 경제 주체와 최종 사용자도 풀 노드를 운영할 수 있습니다. 전체 노드는 유효하지 않은 블록을 거부할 수 있는 권한이 있으므로 블록 생성자의 동작을 모니터링할 수 있으므로 대부분의 블록 생성자가 악의적일지라도 네트워크 보안을 보장할 수 있습니다. 이 메커니즘에서 네트워크에 정직한 전체 노드가 일정 수 있는 경우 잘못된 블록을 만드는 것은 감사할 수 없는 작업이 됩니다.
또한 풀 노드와 블록 생성자를 분리하면 채굴자나 검증자가 프로토콜 규칙을 임의로 변경하여 블록을 조작하는 것을 방지할 수 있습니다. 이는 파워 체크 앤 밸런스 메커니즘으로 블록 생산자는 거래를 주문할 수 있는 권한만 가질 뿐 블록체인의 규칙을 결정할 수는 없습니다. 규칙은 풀노드 커뮤니티에서 관리하며 이론적으로는 누구나 풀노드 커뮤니티에 쉽게 가입할 수 있습니다. 블록체인의 기본 아키텍처에 대해 자세히 알아보려면 "암호화 사실 이해: 신뢰 최소화를 위한 계산 및 기록" 기사를 확인하십시오.
하드웨어 요구 사항을 줄이는 것은 항상 블록체인에서 분산 수준을 유지하는 열쇠이자 신뢰 최소화를 달성하는 열쇠인 전체 노드 운영의 임계값을 낮추는 데 중요합니다. 그러나 네트워크의 속도는 네트워크에서 가장 느린 노드에 따라 달라지기 때문에 분산화로 인해 블록체인이 매우 느려지는 경우가 많습니다. 이 문제는 "블록체인의 불가능한 삼각형" 또는 "확장성 수수께끼"로도 알려져 있습니다. 즉, 기존 블록체인은 한 차원에서 확장성, 분산화 및 보안 개선의 세 가지 차원 중 두 가지 차원에서만 작동할 수 있습니다.
기존 블록체인 모델에는 병목 현상이 있습니다. 즉, 확장성을 달성하려면 탈중앙화 또는 보안 수준을 희생하거나 두 차원 모두에서 약간의 희생을 감수해야 합니다. 예를 들어, 확장성과 탈중앙화를 달성하는 네트워크는 보안을 보장하기 위해 많은 수의 활성 참여자에게 경제적 인센티브를 제공해야 합니다. 확장성과 보안을 달성하는 네트워크는 종종 탈중앙화를 희생하면서 노드 운영 비용을 증가시켜야 합니다. 또한 탈중앙화와 보안을 달성하는 네트워크는 일반적으로 낮은 노드 요구 사항과 높은 공격 비용을 유지해야 하지만 결국 확장성에서 병목 현상이 발생합니다.
블록체인과 달리 기존 컴퓨팅 환경은 신뢰 최소화를 최대화하는 것이 주요 목적이 아니기 때문에 탈중앙화에 대해 걱정할 필요가 없습니다. 따라서 전통적인 컴퓨팅 네트워크는 종종 중앙 집중화되어 영리 기업에 의해 운영됩니다. 네트워크는 단일 엔터티에 의해 관리되며 최종 사용자가 해당 계산 결과를 독립적으로 확인할 필요가 없으므로 저렴한 비용과 높은 운영 속도를 달성할 수 있습니다.
이 때문에 기존 컴퓨팅 환경의 신뢰 모델은 브랜드 보증 및 법적 계약을 기반으로 합니다. 이에 반해 블록체인의 신뢰모델은 암호화와 게임이론에 기반을 두고 있어 참여자가 독립적으로 검증하고 네트워크에 직접 참여할 수 있다. 기존 컴퓨팅 환경은 외부 영향을 받기 때문에 단일 실패 지점과 단일 제어 위험 지점이 있으며 사용자는 프로세스를 감사할 수 없으며 블록체인 네트워크와 호환되지 않습니다.
이러한 질문은 블록체인 확장에 대한 근본적인 문제를 제기합니다. 블록체인은 신뢰 최소화 및 분산화 측면에서 원래의 강력한 기능을 유지하면서 속도와 비용 측면에서 기존 컴퓨팅 환경을 따라잡을 수 있습니까?
블록체인 확장은 크게 실행 계층, 저장 계층 및 합의 계층 확장의 세 가지 범주로 나눌 수 있습니다. 아래에서 각 범주를 자세히 정의하고 해당 범주가 해결하도록 설계된 핵심 문제를 논의합니다. 사실, 각 레이어의 스케일링은 다른 레이어나 두 레이어의 스케일링도 됩니다.
블록체인 실행 계층은 트랜잭션 및 상태 변경을 실행하는 계산 계층을 나타냅니다. 트랜잭션 실행에는 트랜잭션의 유효성 확인(예: 서명 및 토큰 잔액 확인), 온체인 로직 실행 및 상태 변경 계산이 포함됩니다. 상태 변경은 새로운 토큰 전송, 스마트 계약 코드 업데이트 및 데이터 저장을 반영하기 위해 원장의 복사본을 업데이트하는 전체 노드를 나타냅니다.
블록체인 실행 계층 스케일링은 일반적으로 초당 트랜잭션(TPS)을 참조하지만 더 거시적인 수준에서는 각 트랜잭션의 복잡성과 비용이 다르기 때문에 초당 처리되는 계산의 양을 나타냅니다. 네트워크에서 처리되는 트랜잭션의 수가 많을수록 특정 시점에서 수행해야 하는 계산의 양이 많아집니다.
실행 계층을 확장할 때 주요 문제는 블록체인 트랜잭션을 확인하기 위해 전체 노드에 대한 하드웨어 요구 사항을 크게 늘리지 않고 초당 더 많은 계산을 처리하는 방법입니다.
블록체인 스토리지 계층은 전체 노드가 원장의 사본을 유지 및 저장하는 스토리지 계층을 나타냅니다. 블록체인의 저장 기능은 일반적으로 두 가지 범주로 나뉩니다.
과거 데이터 — 모든 원시 트랜잭션 및 블록 데이터를 포함합니다. 거래 데이터에는 출발지 및 목적지 주소, 보낸 금액, 각 거래의 서명이 포함됩니다. 블록 데이터에는 루트 해시, nonce 및 이전 블록의 해시와 같은 블록의 트랜잭션 및 메타데이터 목록이 포함됩니다. 과거 데이터는 일반적으로 빠른 액세스가 필요하지 않으며 다운로드하는 데 최소한 하나의 정직한 노드만 있으면 됩니다.
전역 상태 — 모든 스마트 계약에 대한 계정 잔액 및 변수와 같이 스마트 계약이 읽고 쓸 수 있는 모든 데이터의 스냅샷입니다. 글로벌 상태는 블록체인의 데이터베이스로 볼 수 있으며 들어오는 트랜잭션을 확인해야 합니다. 상태는 일반적으로 전체 노드가 쉽고 빠르게 액세스하고 변경할 수 있는 트리 데이터 구조(예: Merkle 트리)에 저장됩니다.
전체 노드는 처음으로 블록체인과 동기화하기 위해 과거 데이터에 액세스해야 하고, 새로운 블록을 검증하고 새로운 상태 변경을 수행하기 위해 전역 상태에 액세스해야 합니다. 원장 및 관련 저장된 데이터의 양이 계속 증가함에 따라 노드가 상태를 읽고 쓰기 위해 더 많은 시간을 소비하고 더 많은 계산을 수행해야 하므로 상태 계산이 느려지고 비용이 많이 듭니다. 노드의 메모리가 가득 차면 디스크 저장 공간이 필요하며 노드가 실행 중에 서로 다른 저장 환경 간에 전환해야 하므로 계산 속도가 더 느려집니다.
블록체인의 스토리지 요구 사항이 증가함에 따라 종종 상태 팽창이 발생합니다. 상태가 팽창하는 경우 전체 노드는 종종 하드웨어를 업그레이드해야 합니다. 그렇지 않으면 현재 버전의 원장을 따라잡기가 어렵고 사용자가 새로운 전체 노드를 동기화하기 어려울 것입니다. 원장의 기록 데이터 양, 새 블록이 추가되는 빈도, 각 블록의 최대 크기, 블록체인에 저장해야 하는 데이터 양과 같은 여러 요인이 블록체인에서 상태 팽창을 유발할 수 있습니다. 트랜잭션을 확인하고 상태 변경을 적용합니다.
스토리지 계층을 확장할 때 주요 문제는 전체 노드에 대한 스토리지 요구 사항을 늘리지 않고 블록체인 프로세스를 만들고 더 많은 데이터를 검증하는 방법입니다. 즉, 블록체인의 신뢰 가정을 무너뜨리지 않고 데이터를 장기적으로 어디에 저장할 수 있습니까?
블록체인 합의 계층은 분산 네트워크의 노드가 블록체인의 현재 상태에 대해 합의에 도달하는 위치를 나타냅니다. 합의의 핵심은 대부분의 노드가 정직하고 궁극적으로 최종성을 달성하는 것입니다. 즉, 트랜잭션을 정확하게 처리하고 트랜잭션이 최대한 철회되지 않도록 하는 것입니다. 블록체인 컨센서스 레이어의 설계 원칙은 일반적으로 통신 비용을 최소화하여 분산 수준의 상한을 높이고 더 강력한 비잔틴 내결함성 메커니즘을 달성하며 최종 시간을 단축하는 것입니다.
합의 계층을 확장할 때 주요 문제는 최종 속도를 개선하고 비용을 줄이며 신뢰를 더욱 최소화하는 방법입니다. 그리고 이 모든 것의 전제는 예측 가능성, 안정성 및 정확성을 보장하는 것입니다.
다음은 블록체인의 실행 계층에 대한 현재 5가지 확장 방식과 각 방식의 장단점입니다. 실제로 성능을 향상시키기 위해 일부 구성표가 결합됩니다.
블록체인 실행 계층은 블록 생산자의 하드웨어 요구 사항을 증가시켜 확장할 수 있습니다. 더 높은 하드웨어 요구 사항은 각 유효성 검사기가 초당 더 많은 계산을 수행할 수 있음을 의미합니다.
장점: 모든 노드가 강력한 컴퓨팅 성능을 갖는 분산 네트워크를 구축합니다. 이러한 방식으로 블록체인은 블록 공간을 확장하고 블록 생성을 가속화하며 거래 비용을 줄이면서 블록체인 및 스마트 계약의 핵심 이점, 즉 기존 컴퓨팅 환경보다 우수한 신뢰 최소화 수준을 유지할 수 있습니다. 이러한 블록체인은 고주파 거래, 게임 및 기타 지연 시간에 민감한 애플리케이션 시나리오에 특히 적합합니다.
단점: 검증인의 수직 확장은 검증인 또는 전체 노드를 실행하는 비용이 높아짐에 따라 네트워크의 분산 수준을 제한합니다. 노드 비용은 일반적으로 시간이 지남에 따라 높아져 대부분의 사용자에게 엄두도 못 냅니다. 분산 수준을 유지하는 것은 칩의 트랜지스터 수가 2년마다 두 배로 늘어나는 반면 컴퓨팅 비용은 절반이라는 무어의 법칙에 따라 달라집니다. 전체 노드 비용이 상승하면 온체인 활동을 직접 확인하는 최종 사용자의 비용이 높아져 신뢰 최소화가 약화됩니다.
수직적 확장 외에도 여러 개의 독립적인 블록체인 또는 블록체인 생태계의 사이드 체인을 사용하여 수평적 확장을 수행할 수도 있습니다. 수평적 확장은 특정 생태계의 거래 계산량을 여러 개의 독립적인 블록체인으로 분산시킬 수 있으며, 각 블록체인에는 자체 블록 생성자 및 실행 기능이 있습니다.
장점: 다중 체인 생태계는 노드 하드웨어 요구 사항, 개인 정보 보호 기능, 가스 요금, 가상 머신 및 권한 설정과 같은 각 체인의 실행 계층을 완전히 사용자 지정할 수 있습니다. 이 때문에 멀티체인 생태계는 때때로 dApp 전용 블록체인을 생성하고, 특정 블록체인은 dApp 또는 소규모 dApp 그룹을 구체적으로 지원합니다. 자체 주권 블록체인은 보안 위험을 격리할 수도 있습니다. 즉, 한 체인의 보안이 생태계의 다른 체인으로 반드시 확산되는 것은 아닙니다.
단점: 다중 체인 생태계에서는 각 블록체인이 인플레이션 네이티브 토큰을 지속적으로 발행하여 자체 보안 메커니즘을 구축해야 합니다. 이 모델은 초기 블록체인의 경우 정상적이지만, 종종 다른 블록체인에 분산되어 규모의 경제를 달성하기 어렵게 만드는 온체인 사용자 수수료로 보다 지속 가능한 경제 모델로 전환하는 것도 어렵습니다. 그리고 상호작용하는 dApp과 토큰이 반드시 같은 체인에 있지 않기 때문에 호환성 문제도 있습니다.
또 다른 유사한 확장 솔루션은 블록체인을 여러 조각으로 나누어 병렬로 실행하는 것입니다. 각 샤드는 실제로 블록체인이며, 이는 많은 블록체인이 병렬로 실행될 수 있음을 의미합니다. 또한 모든 샤드를 동기화 상태로 유지하는 것이 유일한 작업인 메인 체인이 있을 것입니다.
샤드를 실행할 때 유효성 검사기 풀도 각 샤드에 배포되어 트랜잭션을 실행합니다. 노드는 주기적으로 무작위로 순환되므로 동일한 샤드의 트랜잭션이 항상 실행/검증되지는 않습니다. 또한 샤드의 수는 공격을 받는 샤드의 확률이 0에 가깝도록 구성됩니다.
장점: 실행 계층의 모든 샤드는 동일한 노드 풀에서 노드를 가져오므로 새 샤드에 보안 메커니즘을 설정할 필요가 없습니다. 노드 풀이 충분히 크면 각 실행 환경이 동일한 수준의 보안을 달성할 수 있습니다. 노드는 한 번에 하나의 샤드에서만 계산 작업을 수행하면 되므로 계층 샤딩을 수행하기 위해 노드의 하드웨어 요구 사항을 늘릴 필요도 없습니다. 샤드는 특별한 사용 사례의 요구 사항을 충족하기 위해 동일한 가상 머신에서 또는 다른 구성 매개변수로 실행할 수 있습니다.
단점: 모든 노드가 각 샤드에서 계산을 지원할 수 있어야 하므로 샤딩은 유연성이 제한됩니다. 또한 메인 체인에 대한 컴퓨팅 수요가 증가하고 각 샤드에 할당된 노드 수가 충분하지 않을 수 있으므로 블록체인이 지원할 수 있는 샤드 수에도 상한이 있습니다. 또한 공유 보안 모델로 인해 모든 샤드가 동일한 보안 취약성을 가질 수 있으므로 로드 밸런싱 및 구현 위험에 특정 문제가 있습니다.
멀티체인 생태계에서 서로 다른 블록체인은 일반적으로 동일한 보안 메커니즘을 공유하지 않지만 서로 다른 샤드는 동일한 노드 풀을 공유하므로 동일한 보안 메커니즘을 공유합니다.
또 다른 수평적 확장 솔루션은 모듈식 블록체인입니다. 이 방식은 블록체인의 인프라를 실행 계층, 데이터 가용성 계층(DA) 및 합의 계층으로 나눕니다. 가장 주류를 이루는 블록체인 모듈화 메커니즘은 롤업입니다. 이 메커니즘은 계산과 상태를 오프체인 네트워크로 전송하고 트랜잭션 데이터를 온체인에 저장합니다. 오프체인에서 계산된 상태 변경 결과는 영지식 증명(zk-rollup) 또는 사기 증명(낙관적 롤업)을 사용하여 온체인에서 검증됩니다.
장점: 모듈식 블록체인은 기본 블록체인의 보안 속성을 유지하면서 트랜잭션 실행 및 상태를 더 저렴하고 더 가볍고 처리량이 높은 컴퓨팅 환경으로 이동합니다. 이는 실행 계층 오프체인 계산을 검증할 때 합의 계층이 여전히 원래의 탈중앙화 기반 블록체인(즉, L1)을 기반으로 하기 때문입니다. 즉, 풀 노드가 더 이상 모든 트랜잭션을 실행할 필요가 없기 때문에 기본 블록체인의 컴퓨팅 대역폭을 보다 효율적으로 활용할 수 있습니다. 풀 노드는 간결한 증명을 검증하고 소량의 트랜잭션 데이터를 저장하기만 하면 됩니다.
롤업은 신뢰 최소화를 위해 회로 차단기를 설정할 수도 있습니다. 롤업 네트워크가 무기한 실행 중인 경우 사용자는 암호화 자산을 인출하고 기본 블록체인에 제출할 수 있습니다. 많은 모듈식 네트워크는 사용자 비용도 공유합니다. 기본 블록체인에서 zk-rollup의 증거를 확인하는 데는 고정 비용이 있습니다. 사용량이 증가함에 따라 이 비용을 더 많은 사용자가 공유할 수 있으므로 사용자당 합의 비용이 그에 따라 감소합니다. 또한 롤업은 1/n 신뢰 모델도 가지고 있습니다. 즉, 정직한 노드가 하나만 있어도 계산의 정확성과 견고성을 보장할 수 있습니다.
단점: 대부분의 모듈식 솔루션은 기본 블록체인을 보안으로 사용하지만 기본 블록체인은 일반적으로 블록 공간이 제한적이고 비용이 높기 때문에 이 솔루션은 사이드체인이나 독립형 블록체인보다 느리거나 더 비쌀 수 있습니다. 현재 모듈식 솔루션은 일반적으로 업그레이드 위험이 있고 롤업 외부에서 거버넌스 개입이 필요하므로 불변성을 보장할 수 없습니다. 마지막으로, 롤업 또는 기타 모듈식 블록체인을 실행하는 것은 별도의 블록체인을 실행하는 것보다 더 혁신적이고 복잡합니다.
실행, 데이터 가용성 및 합의 계층으로 모듈화하여 Ethereum을 확장하도록 제안되었습니다(출처).
지불 및 상태 채널은 블록체인 확장을 가능하게 합니다. 사용자는 다중 서명 스마트 계약에서 암호화폐를 잠근 다음 자산 소유권 이전 또는 상태 변경을 나타내는 서명된 메시지를 오프체인에서 교환합니다. 전체 프로세스 동안 온체인 트랜잭션을 시작할 필요가 없습니다. 사용자는 채널을 만들고 닫을 때만 온체인 트랜잭션을 시작하면 됩니다.
사용자는 다중 서명 계약을 통해 각 거래를 암호화하고 서명하여 채널의 결제가 올바른지 확인할 수 있습니다. 각 서명에는 nonce가 있으며 스마트 계약은 nonce를 사용하여 트랜잭션 순서가 올바른지 확인할 수 있습니다.
장점: 지불 및 상태 채널을 통해 대기 시간이 거의 없이 실시간으로 비용이 들지 않는 암호화폐 전송이 가능합니다. 지불 채널은 기본 블록체인에서 일반적으로 사용할 수 없는 기능인 소액 지불을 활성화할 수 있습니다. 또한, 결제 채널도 해당 채널에 암호화폐를 잠글 수 있으며, 양 당사자가 원활하게 협력하면 체인에서 신속하게 정산할 수 있습니다.
단점: 상태/지불 채널은 상대방이 오래된 메시지로 온체인에 정착하지 않도록 모든 참가자가 연결된 상태를 유지하도록 요구합니다. 즉, 망루는 지속적으로 채널을 모니터링하고 사용자 자금의 보안을 보호해야 합니다. 결제 채널도 미리 충전해야 하기 때문에 많은 금액의 결제가 번거롭고 자본 효율이 낮습니다.
또한 다양한 채널 간의 지불 작업을 효율적으로 예약하기가 어렵기 때문에 전송 실패로 이어질 수 있으며 사용자가 충분한 유동성이나 효율적인 라우팅을 얻을 수 있도록 보다 중앙 집중식 모델을 만들 수 있습니다. 대체로 상태/지불 채널은 알려진 고정 참가자 집합에서 가장 잘 작동하지만 제한되지 않은 동적 참가자 집합에서는 작동하지 않습니다. 소유권 문제도 있습니다. 채널은 종종 명확한 소유자가 없는 항목(예: DEX의 유동성 풀)을 나타내기 어렵거나 불가능합니다.
다음은 현재 블록체인 스토리지 계층을 확장하기 위한 6가지 옵션입니다. 실제로 저장 용량을 더 잘 향상시키기 위해 일부 구성표가 결합됩니다.
블록체인 실행 계층의 수직적 확장과 마찬가지로 블록체인 스토리지 계층의 수직적 확장도 전체 노드의 하드웨어를 업그레이드해야 합니다.
장점: 블록체인은 전체 노드의 저장 상한을 증가시켜 저장 비용을 크게 줄일 수 있습니다. 전체 노드는 더 많은 기록 데이터와 상태를 저장할 수 있습니다. 추가 스토리지 계층이나 외부 스토리지 시스템에 의존하지 않고 전체 노드에 직접 데이터를 저장하므로 온체인 데이터에 액세스하는 것이 더 편리합니다.
단점: 시간이 지남에 따라 점점 더 많은 데이터가 체인에 저장됩니다. 그 결과 풀 노드의 운영 비용이 계속 상승하여 블록체인의 탈중앙화 수준을 위협하게 됩니다. 탈중앙화 수준이 낮아지면 사용자는 더 낮은 신뢰 최소화 보장을 받게 되며 데이터의 가용성과 정확성을 완전히 보장할 수 없습니다. 상태 팽창은 또한 블록 실행을 느리게 하여 네트워크에 더 많은 압력을 가합니다.
또 다른 블록체인 데이터 스토리지 확장 솔루션은 데이터 샤딩입니다. 데이터 샤딩은 원장 데이터 또는 원장을 다른 샤드로 재구축하는 데 사용되는 데이터를 분할하여 각 노드의 스토리지 요구 사항을 줄입니다.
장점: 데이터 샤딩은 노드에 대한 하드웨어 요구 사항을 늘리지 않고도 블록체인의 저장 용량을 늘리고 저장 비용을 줄일 수 있습니다. 이 솔루션은 사용자가 노드를 실행하는 임계값을 낮출 수 있으므로 분산 수준을 유지할 수 있습니다. 데이터 샤딩은 또한 롤업 상태를 재구축하기 위해 기본 블록체인에 트랜잭션 데이터를 저장하는 롤업의 저장 용량을 향상시킬 수 있습니다. 또는 Darksharding과 같은 계획은 데이터 로드 볼륨과 데이터 입력의 균형을 더 잘 맞추기 위해 통합 수수료 시장을 만들 수 있습니다.
단점: 더 많은 샤드가 메인 체인에 더 많은 압력을 가하기 때문에 블록체인이 운반할 수 있는 샤드의 수에 상한이 있습니다. 또한 노드가 모든 데이터를 자체적으로 다운로드할 필요 없이 블록 생성 시 원장의 일부를 재구성하는 데 사용된 이력 데이터의 가용성을 확인하기 위해 데이터 가용성 샘플링(DAS)을 구현해야 합니다. 또한, 데이터 샤딩은 통신 비용을 발생시키므로 노드가 다른 샤드로 회전할 때 서로 데이터를 교환하고 저장해야 합니다. 또한 높은 보안성을 유지하기 위해서는 많은 수의 노드가 필요하기 때문에 각 샤드가 일정 수준의 탈중앙화를 유지해야 하므로 전체 노드 풀의 규모가 매우 커야 합니다.
모듈식 블록체인은 오프체인에서 계산 작업을 수행한 다음 트랜잭션 데이터와 상태 변경을 온체인 또는 오프체인에 저장합니다. 다른 노드 또는 사용자는 이 데이터를 사용하여 원장의 현재 또는 과거 상태를 재구성할 수 있습니다. 롤업은 데이터를 온체인에 저장하기 전에 오프체인으로 압축합니다.
장점: 압축된 데이터를 온체인에 저장하는 것은 네트워크의 모든 노드가 데이터를 저장하기 때문에 모듈식 블록체인을 위한 가장 안전한 데이터 저장 솔루션입니다. 또한 이렇게 하면 기본 블록체인의 데이터 저장 비용이 절감됩니다. 롤업이 데이터 샤딩을 구현한 후에는 체인에 트랜잭션 데이터를 더 효율적이고 더 저렴한 비용으로 저장할 수 있으며 사용량이 증가함에 따라 확장성을 더 잘 달성할 수 있습니다.
단점: 온체인 스토리지는 오프체인 스토리지보다 훨씬 비싸기 때문에 모듈식 블록체인이 중앙 집중식 스토리지 솔루션보다 확장성이 떨어질 수 있습니다. 데이터를 압축하면 검증에 중요하지 않은 일부 데이터가 손실될 수 있으므로 사용자는 나머지 데이터를 기반으로 온체인 활동에 대한 보다 세부적인 분석을 수행하지 못할 수 있습니다.
모듈식 블록체인은 트랜잭션 데이터를 오프체인에 저장하여 온체인 스토리지 요구 사항을 더욱 줄일 수 있습니다. 예를 들어 "validiums"는 영지식 증명을 온체인에 게시하고 데이터를 오프체인에 저장합니다. 현재 모듈식 블록체인은 주로 4가지 오프체인 데이터 저장 방식을 채택합니다.
중앙 집중식 저장소 —오프체인 중앙 집중식 플랫폼에 데이터를 저장합니다. 이 솔루션은 데이터 저장 비용이 가장 저렴하지만 데이터 투명성이나 보안이 부족할 수도 있습니다.예를 들어 중앙 집중식 저장 플랫폼은 데이터를 수정하거나 직접 오프라인 상태가 될 수 있습니다.
허가된 DAC — 데이터를 오프체인에 저장하고, 온체인에서 정확성을 인증하며, DAC(데이터 가용성 위원회)라고 하는 신뢰할 수 있는 노드로 구성된 소규모 위원회에서 승인합니다. 이 방식의 장단점은 중앙 집중식 저장 방식과 유사하지만 데이터 가용성 측면에서 신뢰 가정이 더 우수합니다.
무허가 DAC — 데이터를 오프체인에 저장하고, 무허가 DAC를 사용하여 온체인 증명을 제공하고, 암호화폐 경제 인센티브를 사용하여 정직한 행동을 장려합니다. 무허가 DAC의 비용은 온체인 스토리지 솔루션보다 낮고 보안은 다른 오프체인 스토리지 솔루션보다 높습니다. 단점은 보안이 여전히 온체인 스토리지 솔루션만큼 좋지 않고 대규모 응용 프로그램과 지속 가능한 경제 모델을 아직 달성하지 못했다는 것입니다.
Volition — 사용자는 거래 데이터를 온체인 또는 오프체인에 저장하도록 선택할 수 있습니다. Volition은 트랜잭션 수준에서 데이터 가용성 솔루션을 제공하는 동시에 모든 트랜잭션이 동일한 상태의 루트를 공유하고 합의 비용을 상각할 수 있도록 하기 때문에 혁신적입니다. 그러나 이 솔루션은 위에서 언급한 다른 솔루션보다 복잡하며 아직 구현되지 않았습니다.
데이터 프루닝 기술은 블록체인 전체 노드가 특정 블록 높이 이전에 과거 데이터를 삭제할 수 있도록 합니다. 데이터 정리는 일반적으로 PoS 체크포인트와 함께 사용되며 특정 체크포인트를 초과하는 블록의 트랜잭션은 최종적인 것으로 간주됩니다. 이는 주요 사회적 합의나 하드포크가 발생하지 않는 한 이러한 거래를 철회할 수 없음을 의미합니다.
장점: 데이터 정리는 노드가 합의에 참여할 때 저장하거나 참조해야 하는 데이터의 양을 줄입니다. 과거 데이터가 검증되었으므로 원장 크기를 줄이기 위해 정리할 수 있습니다. 미래 블록을 확인하기 위해 전체 노드를 실행하고 과거 블록을 추적하지 않는다면 과거 데이터를 저장할 필요가 없습니다.
단점: 데이터 프루닝은 과거 데이터를 제네시스 블록까지 영구적으로 저장하기 위해 거래 플랫폼이나 블록 탐색기와 같은 제3자에 의존해야 합니다. 그러나 이것은 1/n 신뢰 모델이므로 데이터를 정직하게 저장하고 전체 노드가 모든 과거 상태를 재구성하는 데 도움이 되는 제3자만 있으면 됩니다. PoS는 체크포인트와 약한 주관성을 제공하기 때문에 이 가정은 거의 의미가 없습니다. 그러나 이 데이터는 여전히 온체인 분석 및 블록 탐색기에 어느 정도 가치가 있습니다.
전체 노드가 저장할 수 있는 상태의 양을 제한하는 데 중점을 둔 솔루션도 있습니다. 특히 상태 만료, 무국적자 또는 상태 임대료를 설정하여 그렇습니다.
상태 만료 — 노드는 일정 기간 이상 방문하지 않은 상태를 정리할 수 있으며 필요할 때 만료된 상태를 복원하기 위해 일종의 머클 증명("증인"이라고도 함)을 사용할 수 있습니다.
Stateless — 전체 노드는 상태를 저장할 필요가 없습니다. 전체 노드는 증인을 통해 새 블록을 확인하기만 하면 됩니다. 약한 상태 비저장은 블록을 생성하는 노드만 전역 상태를 저장하면 되며 다른 모든 노드는 상태를 저장하지 않고 블록을 확인할 수 있음을 의미합니다.
주정부 임대료 — 사용자는 제한된 주정부 저장 공간에 대한 임대료를 지불합니다. 임대료를 지불하지 않는 국가는 회수되어 새로운 사용자에게 임대됩니다.
장점: 이러한 체계는 상태 저장소 요구 사항에 제한을 두어 궁극적으로 노드가 저장할 수 있는 상태 저장소의 양을 제한하는 데 도움이 됩니다. 이것은 상태 팽창을 완화하고 확장되는 원장 또는 체인에서 증가하는 트랜잭션 수를 효과적으로 처리할 수 있습니다. 제한 상태 저장소는 낮은 하드웨어 요구 사항을 유지하면서 장기적으로 최종 사용자 인증에 적합합니다.
단점: 상태 저장을 제한하는 것은 어느 정도 혁신적입니다.사용자가 단일 요금을 지불할 필요가 없으므로 네트워크의 각 노드가 자체 상태 정보를 영구적으로 저장하므로 현재 블록체인의 작동 모드와 매우 다릅니다. 또한 블록체인을 기존의 상태 저장 모델에서 보다 제한적인 상태 저장 모델로 업그레이드하는 것이 쉽지 않습니다. 일부 상태는 쉽게 액세스할 수 없으므로 개발 중 일부 응용 프로그램의 특정 가정에 영향을 미칠 수 있습니다. 새로운 상태 저장 모델은 또한 일부 애플리케이션의 비용을 증가시킬 수 있습니다.
다음은 블록 생산 속도, 최종 속도, 노드 오프라인 또는 악의적인 공격에 대한 견고성과 관련된 블록체인 합의 계층 확장을 위한 4가지 주요 목표입니다. 여기서 합의 계층을 확장하는 것은 속도를 향상시킬 뿐만 아니라 정확성, 안정성 및 보안을 향상시키기 위한 것임을 유의해야 합니다.
블록체인 합의 메커니즘을 업그레이드하는 기본 요소 중 하나는 기본적으로 전체 노드에 대한 하드웨어 요구 사항을 유지하면서 컴퓨팅 및 저장 기능을 개선하는 것입니다. 그렇게 하면 원장이 성장함에 따라 더 많은 노드가 합의에 참여하거나 최소한 기존 노드가 네트워크를 떠나는 것을 방지하여 런타임, 조작 저항, 정확성 및 보안에 대한 더 나은 합의를 효과적으로 달성할 수 있습니다. 전체 노드에 너무 많은 영향을 미치지 않으면서 실행 및 저장 용량이 크게 향상될 수 있다면 블록체인은 핵심 중앙 집중식 특성을 희생하지 않고도 더 높은 블록 속도와 더 큰 블록 공간을 안정적으로 달성할 수 있습니다.
블록체인 합의 메커니즘을 확장하는 또 다른 방법은 네트워크 대역폭 사용을 줄이는 것입니다. 즉, 모든 노드가 합의에 도달하는 데 필요한 통신 비용(및 메시지 송수신 비용)을 줄이는 것입니다. 노드는 합의에 도달하기 위해 다른 모든 노드와 통신할 필요가 없으며(예: 전면 투표), 언제든지 소수의 노드와만 통신하면 됩니다(예: 반복 샘플링 투표). 일부 합의 메커니즘은 여러 차례의 투표 또는 통신을 사용하지 않지만 블록이 전파될 때만 통신이 필요하지만 이는 종종 비결정적 최종 게임으로 이어집니다.
합의 중 네트워크 대기 시간을 줄이는 데 중점을 두는 솔루션이 있습니다. 특히 최종 게임의 속도가 빨라집니다. 일부 블록체인 합의 메커니즘은 반복적인 샘플링 또는 전면 투표를 통해 즉각적인 최종성을 달성합니다. 다른 블록체인에는 체크포인트가 있으며 일정 기간 후에 합의에 도달하는 검증인에 의해 보호됩니다. 즉, 블록이 체크포인트를 통과하면 최종 블록으로 간주되고 프로토콜 내에서 블록 재구성을 더 이상 수행할 수 없습니다. 네트워크 대기 시간과 네트워크 대역폭 사이에는 균형이 있어야 하지만 둘 다 최적화하는 하이브리드 솔루션이 있습니다.
또한 보안 예산을 늘려 신뢰가 최소화된 합의 계층을 확장하여 합의에 참여하는 노드에게 인센티브를 제공하는 것도 가능합니다. 일반적인 방법은 유동성을 제공하거나 토큰 보상을 발행하거나 블록 공간이 부족하여 거래 수수료 수입을 늘리는 것입니다. 보안 예산을 늘리면 참가자에게 더 많은 잠재적 수익이 발생하고, 더 많은 노드가 네트워크에 참여하도록 경제적으로 인센티브를 받을 수 있으므로 네트워크의 분산 수준도 높아집니다. 블록체인은 또한 노드가 더 많은 토큰을 보유하거나 합의 메커니즘에 참여하기 위해 더 많은 컴퓨팅 성능을 제공하도록 요구할 수 있습니다. 그러나 임계값을 너무 높게 설정하면 네트워크의 분산 수준이 낮아질 수 있습니다.
블록체인 확장은 현재 개발의 중요한 단계에 있으며 풍부한 솔루션 세트가 개발, 테스트 및 출시되고 있습니다. 블록체인의 현재 개발 초점은 신뢰의 최소화를 전제로 확장을 달성하는 것이며 다양한 산업 및 응용 시나리오에서 선호하는 백엔드 인프라가 될 수밖에 없습니다.
성장하는 멀티체인 생태계를 지원하기 위해 Chainlink는 사용자가 맞춤형 로직으로 다양한 블록체인에서 데이터와 토큰을 안전하게 전송할 수 있도록 CCIP(Cross-Chain Interoperability Protocol)를 적극적으로 개발하고 있습니다. CCIP는 보안에 중점을 두고 블록체인의 원래 신뢰 가정을 유지하면서 교차 체인 스마트 계약 및 보안 토큰 브리지를 가능하게 하는 사기 방지 네트워크를 만듭니다. CCIP에 대한 자세한 내용은 "CCIP가 크로스체인 스마트 계약 혁신을 잠금 해제합니다"를 참조하십시오.