JAM 체인: 탈중앙화된 글로벌 컴퓨터를 향한 폴카닷의 패러다임 전환
폴카닷의 JAM(Join-Accumulate Machine) 체인은 이더리움 출시 이후 가장 중요한 블록체인 아키텍처 혁신을 나타내며, 탈중앙화 컴퓨팅이 작동하는 방식을 근본적으로 재구상합니다. 2024년 4월 개빈 우드 박사가 JAM 그레이 페이퍼(Gray Paper)를 통해 소개한 JAM은 폴카닷을 파라체인(parachain) 전용 릴레이 체인(relay chain)에서 42배 더 높은 데이터 가용성(850 MB/s)과 340만 이상의 이론적 TPS(초당 트랜잭션 수) 용량을 갖춘 범용의 무허가 "대부분 일관된 무신뢰 슈퍼컴퓨터"로 변모시킵니다. 이 프로토콜은 350개 이상의 코어에서 병렬 실행을 유지하면서 동적 샤드(shard) 경계 내에서 동기식 구성 가능성을 가능하게 함으로써 현재 블록체인 시스템을 괴롭히는 지속적인 분할 문제를 해결합니다. 이더리움의 레이어2(L2) 중심 롤업(rollup) 전략이나 코스모스(Cosmos)의 독립 구역(sovereign zone) 모델과 달리, JAM은 새로운 RISC-V 기반 폴카닷 가상 머신(PVM)과 모든 컴퓨팅이 정제(Refine)→누적(Accumulate) 파이프라인을 통해 흐르는 트랜잭션 없는 아키텍처를 사용하여 일관된 상태를 가진 샤드 실행을 합의 계층(consensus layer)에 직접 구축합니다. 43개의 구현 팀이 1천만 DOT의 상금을 놓고 경쟁하고, 2025년 8월까지 여러 클라이언트가 100% 적합성을 달성하며, 2026년 초 메인넷(mainnet) 배포를 목표로 하는 JAM은 이더리움 2.0의 원래 비전이 약속했던 것, 즉 구성 가능성이나 보안을 희생하지 않는 기본 확장 가능한 실행을 제공할 준비가 되어 있습니다.
컴퓨팅 모델: JAM 프로세스가 대규모로 작동하는 방식
JAM은 블록체인 실행을 병렬화 및 효율성에 최적화된 개별 단계로 나누는 CoreJAM(Collect, Refine, Join, Accumulate)이라는 근본적으로 새로운 컴퓨팅 패러다임을 도입합니다. JAM이라는 이름은 온체인(on-chain) 부분인 Join과 Accumulate에서 파생되었으며, Collect와 Refine은 오프체인(off-chain)에서 발생합니다. 이 아키텍처는 무거운 병렬 컴퓨팅을 위한 인코어(in-core) 실행과 상태 통합을 위한 온체인 실행이라는 두 가지 주요 실행 환경을 함께 작동하도록 설정합니다.
정제(Refine) 단계(인코어 실행)에서는 작업 항목이 여러 검증인(validator) 코어에서 상태 비저장 병렬 처리를 거치며, 각 코어는 6초 타임슬롯당 최대 15 MB의 입력 데이터를 처리하고 최대 90 KB의 압축된 출력을 생성합니다. 이는 놀라운 166배의 압축률입니다. 이 단계는 코어당 6초의 PVM 실행 시간을 제공하여 현재 폴카닷 파라체인 검증 기능(PVF)의 2초 제한을 세 배로 늘립니다. 정제 기능은 프리이미지(preimage) 조회만을 상태 저장 작업으로 사용하여 컴퓨팅의 대부분을 전적으로 오프체인에서 수행하며, 상태 경합 없이 대규모 병렬화를 가능하게 합니다.
정제 후, 누적(Accumulate) 단계(온체인 실행)는 출력당 약 10밀리초로 제한된 상태 저장 작업을 통해 작업 결과를 체인 상태에 통합합니다. 이 기능은 모든 검증인에서 실행되며, 모든 서비스에서 스토리지를 읽고, 자체 키-값 저장소에 쓰고, 서비스 간에 자금을 전송하고, 새로운 서비스를 생성하고, 코드를 업그레이드하고, 프리이미지 가용성을 요청할 수 있습니다. 6초의 오프체인 실행 시간과 10밀리초의 온체인 실행 시간이라는 극명한 대조는 JAM의 근본적인 통찰력을 반영합니다. 즉, 값비싼 컴퓨팅을 오프체인으로 밀어내고 병렬화함으로써 시스템은 필수적인 상태 전환에만 귀중한 온체인 시간을 할애합니다.
JAM의 서비스는 비동기식 서비스 간 통신을 처리하는 onTransfer라는 세 번째 진입점을 정의합니다. 이 메시징 시스템은 서비스가 차단 없이 상호 작용할 수 있도록 하며, 메시지는 즉각적인 반환 값 없이 전송됩니다. 이 설계는 복잡한 서비스 간 상호 작용을 위해 보조 코어를 통해 추가 가스(gas)를 할당하는 것과 같은 향후 개선 사항을 예상합니다.
이 이중 실행 모델은 우드(Wood)가 **준 일관성(semi-coherence)**이라고 설명하는 것을 달성합니다. 즉, 동일한 블록의 동일 한 코어에 예약된 서비스는 동기적으로 상호 작용하는 반면(일관된 하위 집합), 다른 코어의 서비스는 비동기적으로 통신합니다(전반적으로 비일관성). 일관된 실행과 비일관된 실행 간의 경계는 프로토콜에 의해 강제되기보다는 유동적이고 경제적으로 주도되며, 자주 통신하는 서비스가 동기식 동작을 위해 코어에 함께 배치될 수 있도록 하면서 시스템 전반의 확장성을 유지합니다. 이는 이전 블록체인 아키텍처를 제약했던 크기-동기성 대립을 해결하는 데 있어 획기적인 발전을 나타냅니다.
릴레이 체인에서 서비스 기반 컴퓨팅으로의 아키텍처 전환
JAM은 폴카닷의 아키텍처를 근본적으로 재구상하여, 고도로 의견이 반영된 파라체인(parachain) 전용 설계에서 미니멀리스트적인 범용 컴퓨팅 기반으로 전환합니다. 현재 폴카닷 릴레이 체인(Relay Chain)은 약 50개의 슬롯이라는 엄격한 제한을 두고 파라체인을 프로토콜에 직접 포함하며, 수백만 DOT가 소요되는 경매 기반 액세스를 요구하고, 모든 파라체인 로직을 고정된 검증 경로를 통해 실행합니다. JAM은 이를 서비스로 대체합니다. 서비스는 거버넌스 승인이나 경매 없이 누구나 배포할 수 있는 무허가, 캡슐화된 실행 환경이며, 암호경제적 요인(DOT 예치금)에 의해서만 제한됩니다.
아키텍처 철학의 변화는 심오합니다. 즉, 업그레이드 가능한 릴레이 체인에서 업그레이드 가능한 서비스를 갖춘 고정 프로토콜로 전환됩니다. 폴카닷 1.0이 시간이 지남에 따라 복잡성이 누적되는 고도로 업그레이드 가능한 릴레이 체인을 유지했던 반면, JAM은 핵심 프로토콜 매개변수(블록 헤더 인코딩, 해싱 스킴, QUIC 네트워크 프로토콜, 타이밍 매개변수)를 고정하여 공격적인 최적화를 가능하게 하고 여러 구현을 단순화합니다. 스테이킹, 거버넌스, 코어타임(coretime) 할당을 포함한 애플리케이션 수준 기능은 핵심 프로토콜을 건드리지 않고 독립적으로 업그레이드할 수 있는 서비스에 존재합니다. 이 비업그레이드 가능한 체인 아키텍처는 가장 중요한 애플리케이션 계층에서 유연성을 유지하면서 복잡성을 극적으로 줄입니다.
JAM 모델에서 파라체인은 여러 서비스 유형 중 하나가 됩니다. 모든 폴카닷 1.1 파라체인 기능은 단일 "파라체인" 또는 "코어체인(CoreChains)" 서비스로 통합되어, 하드코딩된 보장을 통해 완전한 하위 호환성을 보장합니다. 기존 파라체인은 릴레이 체인이 업그레이드될 때 JAM 위에서 자동으로 실행되도록 전환되며, 코드 변경이 전혀 필요하지 않습니다. 서비스 모델은 파라체인이 수행할 수 있는 기능을 임의의 실행 패턴으로 일반화합니다. 즉, 코어에 직접 배포되는 스마트 컨트랙트, CorePlay와 같은 액터(actor) 기반 프레임워크, ZK 롤업, 데이터 가용성 서비스, 그리고 아직 구상되지 않은 완전히 새로운 실행 모델을 포함합니다.
상태 관리 모델 또한 크게 변화합니다. 현재 폴카닷은 블록 헤더에 **후행 상태 루트(posterior state roots)**를 사용합니다. 즉, 블록은 배포되기 전에 전체 계산이 완료될 때까지 기다립니다. JAM은 한 블록 뒤처지는 **선행 상태 루트(prior state roots)**를 사용하여 **파이프라이닝(pipelining)**을 가능하게 합니다. 즉, 경량 계산(워크로드의 약 5%)은 즉시 실행되고, 무거운 누적 작업이 완료되기 전에 블록이 배포되며, 현재 블록 실행이 완료되기 전에 다음 블록 처리가 시작됩니다. 이 아키텍처 선택은 JAM이 전체 6초 블록 시간을 계산에 활용하여, 현재 폴카닷의 2초 미만에 비해 블록당 3~3.5초의 효과적인 계산 시간을 달성함을 의미합니다.
JAM이 WebAssembly에서 RISC-V 기반 **폴카닷 가상 머신(PVM)**으로 전환하는 것은 또 다른 근본적인 변화를 나타냅니다. RISC-V는 47개의 기본 명령어만으로 우수한 결정론, 일반 하드웨어에서의 탁월한 실행 속도, x86/x64/ARM으로의 쉬운 트랜스파일(transpilation), 공식 LLVM 툴체인(toolchain) 지원, 그리고 메모리 내 스택을 통한 자연스러운 연속 처리 기능을 제공합니다. 결정적으로, PVM은 WebAssembly의 측정 오버헤드에 비해 **"무료 측정(free metering)"**을 제공하며, 레지스터 기반 아키텍처(WASM의 스택 기반 설계와 비교하여)는 NP-완전 레지스터 할당 문제를 피합니다. 이는 확장 가능한 멀티코어 코딩을 위한 새로운 표준을 확립하는 **RISC-V 지원 연속(continuations)**을 가능하게 하여, 프로그램이 블록 경계를 넘어 일시 중지하고 재개할 수 있도록 합니다. 이는 JAM의 비동기식 병렬 아키텍처에 필수적입니다.