저자: fuelchina; 출처: Fuel Network
네트워크 사용량이 증가하면서 이더넷 가상 머신(EVM)은 점차 성능의 한계를 드러내고 있습니다. . 현재 이더넷은 초당 약 15~30개의 트랜잭션만 처리할 수 있는데, 이는 피크 시간대에는 충분하지 않아 트랜잭션 비용이 급증하고 사용자 경험이 저하되는 결과를 초래합니다. 또한, 점점 더 많은 애플리케이션과 사용자가 참여함에 따라 이더의 상태 데이터가 급격히 증가하여 노드 전체의 운영 비용이 증가하고 유지 관리가 어려워집니다. 이러한 문제들은 대규모 탈중앙화 애플리케이션을 지원할 수 있는 이더의 잠재력을 제한합니다.
이러한 문제를 해결하기 위해 레이어 2 솔루션인 롤업은 많은 연산과 저장 작업을 오프체인으로 옮긴 다음 그 결과를 이더 메인체인에 제출함으로써 효율성을 높이고 비용을 절감할 수 있는 방법을 제공합니다. 롤업에는 챌린지 기간에 의존하여 트랜잭션의 유효성을 검증하는 낙관적 롤업과 영지식 증명을 통해 직접 검증하는 ZK 롤업의 두 가지 주요 유형이 있습니다. 이러한 솔루션은 확장성 측면에서 우수한 성능을 보이지만, 최종 결과는 여전히 메인 체인에서 처리되고 검증되어야 하며, 여전히 EVM의 아키텍처와 설계에 의해 제한을 받습니다.
기본 프로토콜이 처리할 수 있는 트랜잭션 수가 제한되어 있는 경우, EVM은 빠르지 않더라도 여전히 충분합니다. 그러나 이더넷은 칸쿤 업그레이드에서 EIP-4844를 도입하는 등 기술적 수단을 통해 기본 프로토콜의 확장성을 획기적으로 개선하고 있습니다. 이더넷 기반 계층이 더 많은 트랜잭션을 처리할 수 있게 되면서 EVM의 실행 속도가 새로운 병목 현상이 발생하고 있습니다. 따라서 EVM의 실행 효율을 개선하는 것이 향후 전체 시스템 성능 향상의 핵심이 될 것입니다.
이 새로운 병목 현상을 해결하기 위해 Fuel 팀은 효율적인 병렬 처리와 모듈식 실행을 위해 설계된 보다 효율적인 가상 머신 아키텍처인 FuelVM을 개발했으며, UTXO 모델을 통해 병렬 처리를 달성하여 트랜잭션 처리 속도를 크게 향상시켰습니다. 처리 속도를 크게 향상시킵니다.
FuelVM의 고유한 이점
Fuel은 이더 롤업을 위해 설계된 모듈식 실행 레이어입니다. Fuel은 이더 롤업을 위해 설계된 모듈형 실행 레이어로, 단일 체인의 일부로 작동하거나 정산, 합의, 데이터 가용성과 같은 다른 레이어와 분리된 독립 실행 환경으로 작동할 수 있으며, 높은 컴퓨팅 대역폭과 병렬 처리를 위해 설계된 Fuel 시스템의 핵심 가상 머신으로, UTXO 모델을 채택하여 병렬 처리를 가능하게 하고 액세스 목록을 활용하여 거래 충돌을 방지하며 내장된 기본 자산 시스템을 통해 거래 충돌을 피할 수 있습니다. FuelVM은 UTXO 모델을 사용하여 병렬 처리를 가능하게 하고, 액세스 목록을 사용하여 트랜잭션 충돌을 방지하며, 기본 자산 시스템을 내장하여 스마트 컨트랙트에 대한 의존도를 낮춥니다.
병렬 처리를 위한 UTXO 모델: UTXO 모델은 자산이 방향 비순환 그래프(DAG)로 표시되는 비트코인에서 파생된 모델입니다. 자산이 주소 사이에 저장되는 비순환 그래프(DAG)에서 파생되었습니다. 각 트랜잭션은 새로운 출력을 생성하기 위해 미사용 출력을 소비하며, Fuel은 UTXO 모델을 사용하여 트랜잭션의 병렬 처리를 구현합니다. UTXO 모델은 상태를 독립적인 요소로 나누기 때문에 각 트랜잭션은 어떤 UTXO를 사용할지 명시적으로 지정해야 하므로 충돌하지 않는 여러 트랜잭션이 동시에 실행될 수 있습니다. 또한, FuelVM은 스마트 컨트랙트의 튜링 완성도를 높이기 위해 술어와 스크립트 개념을 도입했습니다. 프리케이트는 UTXO를 사용할 수 있는 조건을 정의하고 스크립트는 여러 스마트 컨트랙트 호출을 실행하는 데 사용되는 절차이며, UTXO 모델의 상태는 원자적이며 각 UTXO는 한 번만 사용할 수 있고 이후 새로운 UTXO가 생성되므로 스크립트와 프리케이트는 데이터를 영구적으로 저장하지 않아 상태 증가를 줄입니다. 이는 블록체인의 상태 폭증 문제를 완화하고 노드 운영 비용을 줄이는 데 도움이 됩니다.
접근 목록으로 병렬 트랜잭션 간의 충돌 방지: FuelVM에서 각 트랜잭션은 접근할 UTXO를 명시적으로 지정해야 합니다. 이러한 지정에 대한 정보가 접근 목록을 구성합니다. 액세스 목록을 사용하면 각 트랜잭션이 영향을 미칠 상태를 미리 파악하여 트랜잭션 간의 충돌을 피할 수 있으므로 충돌하지 않는 트랜잭션이 여러 CPU 스레드에서 동시에 병렬로 실행될 수 있습니다.
네이티브 에셋 시스템: FuelVM은 가상 머신 수준에서 네이티브 에셋을 직접 처리합니다. 각 네이티브 자산은 자산 생성, 전송, 소멸 작업을 수행하는 특정 옵코드 집합으로 정의되므로 각 자산에 대해 스마트 컨트랙트를 작성하고 배포할 필요가 없습니다. 이 접근 방식은 스마트 컨트랙트 호출의 수와 복잡성을 줄여 트랜잭션의 가스 비용을 절감합니다. 이는 자산 전송이 빈번한 애플리케이션에 특히 중요합니다. 또한 복잡한 스마트 콘트랙트에 대한 의존도를 줄임으로써 잠재적인 스마트 콘트랙트 취약성의 위험도 감소합니다.
계정 추상화 지원: 개발자는 프로토콜에 미리 정의된 검증 규칙에 의존할 필요 없이 애플리케이션 계층에서 맞춤형 거래 검증 체계(예: 다중 서명, 다중 요소 인증 등)를 정의할 수 있습니다. 규칙. FuelVM에서 이러한 유연성은 술어를 통해 달성됩니다. 술어는 UTXO를 사용할 수 있는지 여부를 결정하도록 프로그래밍할 수 있는 유효성 검사 조건 역할을 합니다. 술어는 체인에 상태를 저장할 필요가 없고 트랜잭션 검증 중에만 평가되기 때문에, 술어와 UTXO 모델의 조합은 체인에서 상태의 증가를 줄여줍니다.
FuelVM의 과제: 기술에서 시장으로 이어지는 이중 테스트
Fuel 프로젝트 팀은 FuelVM의 아키텍처 기능을 최대한 활용하기 위해 Sway 언어와 개발자 도구체인 Forc를 개발했습니다. Sway는 Rust와 Solidity에서 영감을 받아 FuelVM을 위해 특별히 설계된 새로운 프로그래밍 언어로 구조체, 특성 기반 상속, 제네릭 타입 등 최신 프로그래밍 언어의 기능을 제공하며, Forc 도구체인은 Sway 코드를 개발, 배포 및 테스트할 수 있는 도구를 제공합니다, Forc 툴체인은 패키지 관리자, VSCode 플러그인, 테스트 인프라, 블록 탐색기 등 Sway 코드를 개발, 배포 및 테스트하기 위한 올인원 솔루션을 제공합니다. FuelVM은 새로운 프로그래밍 언어를 사용하기 때문에 개발자에게는 완전히 새로운 개발 환경이며, 초기 채택률에 영향을 미칠 수 있습니다. 따라서 Fuel 프로젝트 팀은 강력하고 활발한 개발자 커뮤니티를 구축하여 기술 채택을 지원하고 촉진해야 합니다.
또한 FuelVM은 EVM과 호환되지 않으므로 기존 EVM 앱을 FuelVM으로 직접 마이그레이션할 수 없습니다. 이로 인해 초기 사용자와 개발자가 FuelVM을 채택하는 데 제한이 있을 수 있습니다. 이 장벽을 극복하기 위해, Fuel 프로젝트는 개발자가 기존 애플리케이션을 FuelVM 플랫폼으로 마이그레이션하는 데 도움이 되는 마이그레이션 도구와 리소스를 제공해야 합니다. 이러한 도구와 리소스에는 코드 변환 도구, 호환성 레이어, 개발자가 새로운 플랫폼으로 원활하게 전환하는 데 도움이 되는 자세한 마이그레이션 가이드가 포함될 수 있습니다.
FuelVM은 또한 이미 비교적 성숙한 롤업 솔루션과 경쟁하여 고유한 기술적 장점과 시장 가치를 입증해야 할 것입니다. 예를 들어, 스테이트 인플레이션과 스마트 컨트랙트 공격의 위험이 낮지만 이 새로운 VM 아키텍처와 프로그래밍 언어는 성능과 안정성을 검증하는 데 시간이 필요할 것입니다.
미래 전망: 병렬 실행은 피할 수 없게 되었습니다
점점 더 많은 디앱이 등장하고 있습니다. 기존의 단일 스레드 실행 모델로는 더 이상 대규모 애플리케이션의 요구사항을 충족할 수 없습니다. 따라서 병렬 실행에 대한 탐색은 기술 개발의 피할 수 없는 흐름이 되었습니다. 올해 상반기에 병렬 실행은 뜨거운 논의의 대상이 되었고, 점점 더 많은 프로젝트가 그 잠재력에 주목하고 적극적으로 참여하면서 블록체인 기술 발전의 중요한 방향이 되었습니다. 병렬 실행은 멀티코어 CPU의 컴퓨팅 성능을 더 잘 활용함으로써 보안과 일관성을 희생하지 않고 트랜잭션 처리 속도와 시스템 성능을 크게 향상시킬 수 있으며, 병렬 실행의 혁신적인 사례인 FuelVM은 UTXO 모델과 결합하여 전체 네트워크 처리량과 성능을 개선함으로써 병렬 실행 기능을 달성합니다. 이 기능은 특히 파생상품 거래소나 올체인 게임과 같이 빈번한 거래와 짧은 지연 시간이 필요한 애플리케이션에 적합합니다. 상태 부풀림을 줄이고 리소스 효율성을 개선함으로써 FuelVM은 탈중앙화 애플리케이션에 보다 확장 가능하고 효율적인 실행 환경을 제공합니다.