<aside> 💡
스타일러스 개발과정
Arb-Stylus 환경설정
</aside>
아비트럼 스타일러스는 니트로의 업그레이드 버전이자 아비트럼이 더욱 많은 생태계의 개발자들을 유입시키기 위한 기술적인 진화에 해당한다. 우선, 아비트럼 스타일러스를 도입하여 아비트럼 원과 노바에 EVM, WASM VM을 추가하여 솔리디티, C, C++ 등 다양한 언어로 개발한 컨트랙트를 아비트럼 체인에서 실행할 수 있게 되었다.
스타일러스의 도입으로 예상되는 주요 이점은 두 가지로 요약할 수 있다.(출처:아비트럼-레이어2 선두를 유지하기 위한 노력 )
첫째, 개발자 생태계의 대폭적인 확장이다. 스타일러스는 솔리디티 외에도 러스트, C++과 같이 훨씬 더 광범위하게 사용되는 프로그래밍 언어를 지원한다. Statista의 2023년 데이터에 따르면, 솔리디티 사용자는 전체 개발자의 1.33%에 불과한 반면, 러스트는 13.05%, C언어는 19.34%, C++은 22.42%의 개발자가 사용하고 있다. 이는 스타일러스가 블록체인 개발에 참여할 수 있는 개발자 풀을 크게 확대할 수 있음을 시사한다.
둘째, 성능과 효율성의 현저한 개선이다. 스타일러스는 WASM(Web Assembly)을 활용하여 가스비를 대폭 절감하고 트랜잭션 처리 속도를 획기적으로 향상시킬 수 있다. 아비트럼 팀은 자체 개발한 니트로의 독특한 사기 방지 메커니즘과 결합하여, WASM 기반 트랜잭션의 처리 속도가 기존 대비 10배 이상 빨라지고, 비용은 100배에서 심지어 500배까지 절감될 수 있다고 주장한다. 이러한 두 가지 핵심 이점은 스타일러스가 블록체인 기술의 접근성을 높이고, 동시에 그 효율성을 대폭 개선할 수 있는 잠재력을 지니고 있음을 보여준다.
아래에선 이렇듯 아비트럼의 개발 환경을 더욱 확장시켜줄 수 있는 스타일러스 SDK의 정의와 구동원리에 대해 설명하려고 한다.
스타일러스 SDK는 개발자들에게 유연한 스마트 컨트랙트 개발 환경을 제공한다. 이 SDK의 핵심 특징과 구동원리를 이해하기 위해서는 아비트럼의 전체적인 구조와 각 구성 요소의 역할을 살펴볼 필요가 있다.
아비트럼의 기본 구조
먼저, 아비트럼의 기본 구조는 ‘실행’과 ‘증명’을 분리하는 방식으로 설계되어 있다. 이는 마치 일을 먼저 빠르게 처리하고(실행), 나중에 필요할 때만 그 일이 제대로 수행되었는지 확인(증명)하는 것과 비슷하다. 이러한 구조 덕분에 개발자들은 빠른 트랜잭션 처리 속도를 경험할 수 있다. 예를 들어, 개발자가 스마트 컨트랙트를 배포하거나 사용자가 dApp을 통해 트랜잭션을 발생시킬 때, 이 트랜잭션은 즉시 처리되어 빠른 응답을 받을 수 있다. 이는 사용자 경험을 크게 향상시키며, 개발자들이 메인넷에 가까운 속도로 dApp을 운영할 수 있게 해준다. 증명 과정은 백그라운드에서 이루어지며, 실제로 분쟁이 발생할 때만 활성화된다. 이를 통해 L2의 높은 보안성도 함께 유지할 수 있다.
Geth와 WAVM
스타일러스 SDK의 구동 원리를 이해하기 위해서는 Arbitrum 시스템의 핵심 구성 요소인 Geth와 WAVM의 역할을 파악하는 것이 중요하다. Geth(go-ethereum)는 Arbitrum Nitro 시스템의 기반이 되는 이더리움의 핵심 노드 소프트웨어로, Nitro는 이를 중심으로 “Geth 샌드위치” 구조를 형성하고 있다. 이 구조는 세 개의 주요 레이어로 구성되는데, 가장 아래에 위치한 Geth Core 레이어는 EVM 계약 실행과 상태 데이터 구조 유지를 담당한다. 중간에 위치한 ArbOS 레이어는 Layer 2에 특화된 기능을 제공하며, Sequencer 데이터 처리, 가스 비용 계산, 수수료 수집, 크로스체인 브릿지 등을 지원한다. 최상위에 있는 Node Functionality 레이어는 클라이언트 연결과 RPC 요청 처리 등 이더리움 호환 블록체인 노드 운영에 필요한 고수준 기능을 제공한다. 이러한 구조를 통해 Arbitrum은 이더리움의 안정성과 호환성을 유지하면서도 Layer 2의 특화된 기능을 제공할 수 있게 된다.
한편, WAVM(WebAssembly Virtual Machine)은 Arbitrum의 요구사항에 맞게 수정된 특수한 가상 머신으로, 실행과 증명을 분리하는 Arbitrum의 접근법을 구현하기 위해 도입되었다. WAVM은 WebAssembly를 기반으로 하지만 일부 기능을 제거하거나 제한하고, 부동 소수점 연산을 소프트웨어 라이브러리로 대체하며, 제어 흐름 구조를 단순화하는 등의 특징을 가지고 있다. 또한 블록체인 환경과의 상호작용을 위한 특별한 opcode를 추가하고, 실행 시간을 예측 가능하게 만들며, 효율적인 증명 생성과 검증에 최적화되어 있다.
스타일러스 SDK는 이 Geth와 WAVM 구조 위에서 작동한다. 스타일러스에서는 Rust 언어에 대한 지원이 가장 풍부해서 Rust용 스타일러스 SDK를 통해 스마트 컨트랙트 개발에 필요한 모든 기능을 가짐과 동시에 Rust로 스마트 컨트랙트를 작성하는 과정을 최대한 쉽고 효율적으로 만들 수 있다. 또한 C와 C++ 언어도 지원되어, 기존에 이 언어들로 작성된 코드를 최소한의 수정으로 블록체인에 올릴 수 있다.
개발자가 Rust나 C++로 작성한 코드는 WASM으로 컴파일되고, 이 WASM 코드는 WAVM에서 실행된다. 이 과정에서 Geth의 EVM 호환성과 WAVM의 효율적인 증명 시스템이 결합되어 높은 성능과 보안성을 제공한다. 구체적으로, 스타일러스 SDK를 통해 작성된 스마트 컨트랙트는 개발자가 코드를 작성하고, 이를 WASM으로 컴파일하여 블록체인에 배포하는 과정을 거친다. 배포된 코드는 ‘ArbWasm’이라는 새로운 프리컴파일을 통해 노드의 네이티브 머신 코드로 변환되며, 이 과정에서 가스 계측, 깊이 검사, 메모리 과금 등 안전성을 위한 절차가 진행된다. 실행은 Geth 기반의 시스템에서 이루어지고, 증명이 필요한 경우 WAVM을 통해 효율적으로 처리된다.