애플리케이션 롤업 기술 상세 해설: 높은 처리량 APP의 주류 채택을 위한 핵심
작성자:Mohamed Fouda
원문 제목:《How to Scale App-Rollups》
편집:심조 TechFlow
애플리케이션 롤업은 특정 이더리움 애플리케이션 집합을 확장하는 데 명백한 승자가 되고 있습니다. 이러한 애플리케이션은 허가가 필요 없고 강력한 소유권 보장을 받지만, 모든 애플리케이션 사용자 간의 동시 상호작용은 필요하지 않습니다. 완전 체인상의 게임이 가장 좋은 예입니다. 체인상 게임은 게임 자산의 강력한 소유권으로 혜택을 받으며, 이는 익명으로 게임에 참여하고 익명으로 게임을 수정할 수 있게 합니다. 그럼에도 불구하고 대부분의 게임은 모든 플레이어가 동시에 상호작용할 필요가 없습니다. 애플리케이션 롤업 확장 전략의 혜택을 받을 수 있는 다른 애플리케이션으로는 NFT 마켓플레이스, 영구 스왑 및 체인상 AI 추론이 있습니다.
애플리케이션 롤업은 이러한 많은 사용 사례의 선호 구현이 되었습니다. 그러나 표준 롤업 구현인 EVMRollup은 여전히 중요한 확장성 제한이 있습니다. 이들은 초당 약 100건의 거래 처리량에 도달할 수 있습니다. 특정 체인상 게임의 경우, 이 처리량이 충분할 수 있지만, 대부분의 게임은 1000명 이상의 동시 플레이어를 지원하기 위해 더 높은 처리량이 필요합니다. 본문에서는 수십만 명의 동시 참여자를 포괄하기 위한 애플리케이션 롤업 확장 방법에 대해 설명합니다. 각 방법에 대해 적합한 애플리케이션/게임 유형과 그들이 직면한 도전에 대해 논의할 것입니다.
수평 확장
수평 확장성은 애플리케이션 롤업을 확장하는 가장 간단한 방법입니다. 그러나 이러한 단순성은 조합성을 희생하는 대가를 치르며, 이는 단일 플레이어 게임과 같은 소수의 애플리케이션에만 적합합니다.
수평 확장성은 단순히 여러 애플리케이션 롤업(Optimistic 또는 ZK)을 배포하고 모든 롤업에 동일한 스마트 계약을 배포하는 것을 의미합니다. 애플리케이션의 프론트엔드는 용량, 위치 또는 특정 애플리케이션 옵션에 따라 사용자들을 원활하게 하나의 롤업으로 안내합니다. Alt Layer는 최근 확장 가능한 2048 FOCG 게임을 시작하여 이 개념을 시연했습니다. 게임의 프론트엔드에서 사용자는 자신의 지리적 위치에 따라 어떤 롤업에 참여할지를 선택할 수 있습니다. 이러한 단순성과 Caldera와 같은 롤업 서비스 제공업체의 가용성 덕분에 이러한 방법은 게임 개발자들이 쉽게 채택할 수 있습니다.
그럼에도 불구하고 다중 롤업 확장 방법에는 몇 가지 문제가 있습니다. 첫 번째 문제는 롤업 네트워크 전환입니다. 현재 지갑, 예를 들어 Metamask는 새로운 네트워크, 즉 롤업 인스턴스에 연결하기 위해 수동으로 승인해야 합니다. 이는 플레이어가 동일한 게임을 플레이하기 위해 여러 "네트워크"에 수동으로 연결해야 하므로 어려움과 혼란스러운 사용자 경험을 초래합니다. 다행히도, 계정 추상화(AA) 솔루션을 통해 이러한 복잡성을 없앨 수 있습니다. 예를 들어 EIP 4337 및 Privy, 0xPass와 같은 내장 지갑이 있습니다.
또 다른 도전 과제는 롤업 간 전환 중 플레이어의 상태를 관리하는 것입니다. 특정 경우, 예를 들어 용량 감소 시, 애플리케이션은 여러 롤업 인스턴스를 단일 인스턴스로 병합하여 자원을 절약해야 할 수 있습니다. 이 경우 모든 활동 플레이어의 상태를 새로운 인스턴스로 마이그레이션해야 합니다. 현재의 브릿지 솔루션, 특히 zk 브릿지는 이 문제를 해결하는 데 중요한 역할을 할 수 있습니다. 이러한 솔루션을 사용하면 플레이어의 게임 상태를 새로운 롤업 인스턴스로 브릿지하면서 해당 상태의 유효성을 증명할 수 있습니다. 그러나 기존 브릿지 솔루션의 지연은 게임 사용 사례에 최적이 아닐 수 있습니다.
ZK 상태 채널
다중 플레이어 게임(예: 포커)에 더 적합한 애플리케이션 롤업 확장 방법은 ZK 상태 채널입니다. 이러한 게임에서 플레이어 간의 상호작용은 소수의 플레이어(예: 2-10명) 사이에서 발생합니다. 이러한 플레이어 간의 게임 플레이는 게임이 진행되는 동안만 중요합니다. 그러나 게임의 최종 결과는 더 중요합니다. 왜냐하면 그것이 각 플레이어의 자산 잔액에 영향을 미치기 때문입니다. 따라서 결과를 공유된 지속적 레이어에 저장하는 것이 중요합니다.
이 경우 애플리케이션 롤업은 공유 정보 레이어를 나타내며, 게임 결과와 게임 자산이 여기에 저장됩니다. 롤업에서 각 게임에 대해 이 게임을 서비스하기 위해 ZK 상태 채널을 시작할 수 있습니다. 게임 플레이 중에 각 플레이어는 거래를 생성하고 ZKP를 생성하여 게임 규칙을 준수했음을 증명합니다. 다른 플레이어의 상호작용 증명은 재귀 증명을 사용하여 이전 증명을 집계합니다. 게임이 끝나면 최종 ZKP가 애플리케이션 롤업에 제출되어 게임 플레이와 최종 결과의 유효성을 증명합니다. 게임에서 발생한 상태 변화는 애플리케이션 롤업의 플레이어 상태를 변경합니다.
ZK 상태 채널은 게임 상호작용을 체인 밖으로 이동시킵니다. 따라서 게임 내 활동과 거래는 애플리케이션 롤업의 처리량에 포함되지 않습니다. 이러한 방법을 사용하면 애플리케이션 롤업은 대규모로 확장할 수 있으며 수천 명의 동시 플레이어를 지원할 수 있습니다. 애플리케이션 롤업의 거래는 생성된 ZKP와 상태 업데이트 거래를 검증하는 것뿐이며, 확장 계수는 100-1000배입니다. Ontropy를 포함한 여러 팀이 이 기술을 개발하고 있습니다.
이 방법의 단점 중 하나는 플레이어가 자신의 장치에서 게임 로직을 실행하고 ZKP를 생성해야 한다는 것입니다. 일반적으로 이러한 증명은 경량이며 Halo2와 같은 최첨단 증명 시스템을 통해 몇 초 만에 증명이 완료될 수 있습니다. 그러나 이는 여전히 자원이 제한된 장치의 플레이어 경험 저하를 초래할 수 있습니다.
이 문제를 완화하는 방법 중 하나는 zk 상태 채널 참여자 중 한 명을 임시 정렬자로 지정하는 것입니다. 이 정렬자는 각 플레이어의 거래를 수신하고 해당 ZKP를 생성하여 모든 채널 참여자와 공유합니다. 이 수정은 애플리케이션 롤업에 대한 결제를 위한 일시적인 ZK L3로 간주될 수 있습니다. Cartridge 팀은 Katana라는 전용 정렬기를 설계하여 이러한 아키텍처를 구현했습니다.
zk 상태 채널 방법은 큰 잠재력을 가지고 있습니다. 그러나 zk 상태 채널 내의 실행 환경 및 재귀 증명을 최적화하는 방법과 관련된 몇 가지 개방형 문제가 있습니다. 현재의 zkEVM 환경은 효율성이 낮고, 대부분은 증명 재귀를 지원하지 않습니다. 대안으로는 경량 zkVM 또는 플레이어의 가능한 행동 수가 제한된 경우 전용 zk 회로를 사용하여 플레이어 상호작용을 처리하는 방법이 있습니다.
실행 환경 변경
애플리케이션 롤업을 확장하는 세 번째 방법은 롤업의 실행 환경을 변경하는 것입니다. EVM 개발 도구의 성숙함과 풍부함에도 불구하고, 이들은 게임과 같은 고성능 애플리케이션에 적합하지 않습니다. 또한 EVM의 단일 스레드 실행 및 저장 모델은 처리량 저하를 초래하며, 이는 개선을 통해 향상될 수 있습니다.
이 방법의 주요 장점은 롤업 처리량을 높이는 데 조합성을 희생하거나 사용 사례 수를 제한할 필요가 없다는 것입니다. 실행 환경이 애플리케이션에 필요한 처리량을 달성할 수 있는 한, 이 방법은 모든 Web 3 애플리케이션에 사용할 수 있습니다. 이는 공유 상태에 접근해야 하는 애플리케이션에 대한 유일한 실행 가능한 솔루션이 됩니다. 예를 들어 AMM, 대출 프로토콜 및 기타 DeFi 애플리케이션이 있습니다.
EVM 기능을 사전 컴파일로 확장하기
우선, 롤업은 EVM 호환성을 유지하며 사전 컴파일 주소를 통해 처리량의 일부 제한을 해결합니다. 여기서의 아이디어는 간단합니다. 사전 컴파일은 계산 집약적인 EVM 작업을 노드 수준으로 내리는 것입니다. 수백 또는 수천 개의 EVM 작업 코드가 필요하고 10만 이상의 Gas를 소모하는 작업은 하나의 작업으로 단순화될 수 있으며, Gas 비용은 100배 줄어듭니다. 롤업 환경을 확장하는 사전 컴파일은 일반적으로 EVM+라고 불립니다. 이 방법의 예로는 체인상 프라이버시 지원 및 더 효율적인 서명 스킴 지원(예: BLS 서명)이 있습니다. 예를 들어, zkHoldem 포커 게임은 전용 FHE 및 zk 작업을 사용하여 개인 포커 카드 배포 및 표시를 구현합니다. 이러한 전용 사전 컴파일의 개발은 일반적으로 애플리케이션 롤업 개발자와 애플리케이션 롤업 인프라 배포 및 유지 관리를 관리하는 Raas 제공업체 간의 공동 노력입니다.
비 EVM 실행 환경 사용
롤업 실행 환경을 개선하는 또 다른 방법은 EVM에서 벗어나는 것입니다. 이 방법은 이더리움 생태계의 새로운 개발자들 사이에서 점점 더 인기를 얻고 있으며, Solidity가 복잡한 애플리케이션 개발을 위한 최상의 언어가 아니라고 생각하는 개발자들 사이에서도 인기를 얻고 있습니다.
오늘날 우리는 WASM, SVM, Cairo 및 심지어 Linux 런타임에서 실행되는 롤업 애플리케이션을 보유하고 있습니다. 이러한 방법 중 대부분은 개발자가 Rust 또는 C와 같은 고급 언어로 스마트 계약을 작성할 수 있도록 허용합니다. 단점은 기존 Solidity 계약과의 상호 운용성이 종종 손실된다는 것입니다. 그러나 여전히 EVM과의 호환성을 생성할 수 있습니다. 예를 들어, Arbitrum의 stylus는 협력 프로세서를 사용하여 Stylus 계약을 EVM과 호환되도록 합니다. 이러한 설계는 Stylus를 비 EVM보다 EVM+ 아키텍처에 더 가깝게 만듭니다.
혼합 실행 환경
세 번째 방법은 특히 FOG에서 환영받는 방법으로, 앞의 두 가지 방법의 최상의 특성을 결합하는 것입니다. 이 방법은 EVM 호환성을 전용 비 EVM 실행 환경과 결합합니다. 비 EVM 환경은 핵심 게임 원시의 고성능 실행에 집중합니다. 게임 자산 관리, 예를 들어 게임 내 NFT 거래는 표준 Solidity 계약으로 처리할 수 있습니다.
이 방법의 장점은 EVM 호환성이 더 큰 개발자 생태계 및 기존 제품과의 일관성을 보장한다는 것입니다. 또한 허가 없는 조합성을 허용합니다. 개발자는 EVM/Solidity 스마트 계약을 추가하여 게임 로직을 수정하고 확장할 수 있습니다. 동시에 전용 비 EVM 게임 엔진은 EVM이 충족할 수 없는 높은 처리량을 구현합니다.
이 방법의 예로는 Argus의 World Engine과 Curio의 Keystone이 있습니다. World Engine은 게임 로직의 실행을 Game Shard라는 별도의 레이어로 분리하여 EVM 호환 레이어 위에서 실행됩니다. Game Shard는 또한 수요에 따라 총 롤업 처리량을 조정하기 위해 수평 확장을 허용하도록 설계되었습니다. 유사하게, Curio의 Keystone 아키텍처는 높은 처리량 게임 엔진을 EVM과 결합하여 롤업 실행 환경으로 제공합니다. 여기서의 도전 과제는 EVM 엔진과 게임 엔진 간의 원활한 상호 운용성을 구현하는 것입니다.
데이터 가용성 고려 사항
앞서 논의한 내용에서 롤업 거래 처리량 증가에 중점을 두었으며, 이는 애플리케이션 롤업 확장의 주요 측면입니다. 이러한 증가된 처리량과 관련된 다른 주제에는 데이터 가용성(DA), 정렬자 탈중앙화 및 결제 속도가 포함됩니다. 높은 처리량의 애플리케이션 롤업에 대해 데이터 가용성은 이러한 문제 중 가장 긴급한 문제입니다.
단일 애플리케이션 롤업의 처리량은 초당 1만 건을 초과할 수 있습니다. 이러한 거래의 데이터 가용 레이어로 이더리움을 사용하는 것은 불가능합니다. 첫째, L1에서 간단한 L2 ETH 전송 데이터 게시의 평균 비용은 0.1달러를 초과할 수 있습니다. 이러한 비용은 대부분의 애플리케이션 롤업에 너무 높습니다. 더 중요한 것은, 이더리움의 L1은 현재 L1을 통해 데이터 가용성을 활용하기 위해 초당 약 8000건의 거래를 초과할 수 없습니다.
애플리케이션 롤업은 주로 외부 DA 솔루션에 의존할 것입니다. Celestia와 EigenDA는 현재 애플리케이션 롤업의 가장 실행 가능한 선택으로 자리 잡고 있습니다. 예를 들어, Eclipse는 Celestia를 고처리량 SVM 기반 롤업의 데이터 가용 레이어로 사용할 계획입니다. Argus와 고처리량 게임 엔진도 처음에 Celestia를 사용할 계획입니다. 유사하게, EigenDA가 약속한 데이터 처리량은 초당 10MB에 달하며, 여러 애플리케이션 롤업에 실행 가능한 솔루션을 제공할 수 있습니다.
그러나 Celestia 또는 EigenDA를 통합하는 주요 단점은 경제적 가치 유출입니다. 애플리케이션 롤업은 DA 레이어에 대한 비용과 이더리움 L1에서의 결제 비용을 지불해야 합니다. 결제 비용은 애플리케이션 롤업에 매우 중요합니다. 왜냐하면 그것이 롤업의 보안을 이더리움의 보안과 연결하기 때문입니다. DA 보장은 FOG 배경에서 거래 가치가 이러한 네트워크보다 훨씬 낮을 경우 그리 중요하지 않습니다. 또한 Celestia와 EigenDA는 낮은 비용을 약속하고 있으며, 이러한 네트워크는 이제 막 시작되었고 초기 이용률이 매우 낮습니다. 이러한 DA 네트워크가 높은 이용률을 달성하면 DA 비용이 과도해질 수 있습니다. 제 생각에는 애플리케이션 롤업이 롤업 데이터의 가용성을 증명하기 위해 간단한 데이터 가용성 위원회(DAC)를 사용하는 것이 좋습니다.
결론적으로, 애플리케이션 롤업은 고처리량 애플리케이션(특히 완전 체인상 게임)을 확장하는 데 가장 좋은 기존 솔루션이라고 생각합니다. 이러한 애플리케이션 롤업을 확장하는 것은 본질적인 암호화 사용자 이상의 주류 채택을 달성하는 데 핵심입니다.