검수요청.png검수요청.png

이와즘

위키원
이동: 둘러보기, 검색
이와즘(eWASM) 로고
이와즘(eWASM) 로고와 글자

이와즘(eWASM)은 이더리움스마트 계약에 사용되는 프로그래밍 언어이다. 이와즘은 이더리움 웹어셈블리(Ethereum WebAssembly)의 약자로서, 웹어셈블리 언어인 와즘(WASM)의 제한된 부분 집합이다.[1] 기존 코드 작동환경인 이더리움 가상머신 EVM 1.0을 개선하기 위한 이더리움 2.0 차세대 가상머신 프로젝트인 이와즘은 웹어셈블리(WebAssembly; WASM)를 지원한다. 와즘(WASM)은 성능, 확장성, 개발도구, 커뮤니티 모든 면에서 장점을 가지고 있는 프로그래밍 언어이다.[2]

웹어셈블리[편집]

개요[편집]

웹어셈블리(WebAssembly)는 에서 고성능을 요구하는 애플리케이션이 빠르게 실행될 수 있도록 만들어주는 프로그래밍 언어이다. 와즘(WASM)이라고도 한다. 웹어셈블리는 웹 개발 환경을 크게 혁신하고 있다는 평가를 받는 기술이다. 웹어셈블리는 웹을 거의 '네이티브 애플리케이션'처럼 빠르게 실행할 수 있도록 만들어주는 차세대 런타임이자 바이너리 포맷 표준이다. CC++, 러스트로 짠 코드를 asm.js라는 특수한 자바스크립트로 바꿔 웹에서 가볍게 실행할 수 있게 해준다.[3]

  • wasm은 stack-based 가상 머신에서 작동 수 있는 일종의 이진법 명령어 포맷으로, 성능을 최우선으로 설계해 블록체인 프로젝트에 사용하기에 적합하다.
  • 웹어셈블리 이진법 코드(wasm 포맷)는 일종의 중간표시, 일종의 읽기가 가능한 AST(Abstract Syntax Tree, 추상 문법 트리, wast 포맷)로 변환할 수 있으며 읽기가 가능한 중간표시는 편집과 디버깅을 용이하게 했다.
  • 확장성에 대한 개선: wasm은 module import/export 기능을 지원하므로 확장된 부분을 모듈(module)로 만들어 프로젝트에서 도입했다.[2]

장점[편집]

  • 확장성이 우수하다.
  • 32/64 비트의 오퍼레이터
  • 더 많은 고급 언어 지원(C, Rust, Go 등)
  • W3C가 리더하며 Google, Apple, MicroSoft와 같은 큰 회사들이 지원함으로 넓은 커뮤니티를 가지고 있다.
  • 주류 브라우저 지원, 기존 프로젝트 비브라우저 환경에서 지원 및 실행(wabt, wavm 등).[2]

웹어셈블리 채택 중요성[편집]

이더리움 2.0은 여러 가지 기술 개선 프로젝트가 동시다발적으로 진행되는 대형 업데이트라는 설명이다. 합의 알고리즘을 지분증명방식(PoS)으로 변경하는 '캐스퍼', 데이터를 소그룹(샤드)으로 나눠 처리하는 '샤딩', 프로그램 작동 환경을 웹어셈블리 기반으로 변경하는 '이와즘'까지 이더리움 2.0에서 진행되는 개선 사항은 모두 근본적이고 구조적인 변화를 불러올 것들이다. 이중 캐스퍼와 샤딩은 블록체인 업계에서 상당히 알려진 기술이다. 각각 블록체인이 지나치게 에너지 소모적이고 일부 채굴업자가 네트워크를 독점하고 있다는 문제와 갑자기 많은 트래픽이 발생했을 때 원활하게 처리를 못한다는 성능문제를 풀기 위해 나온 솔루션이다. 지난해 블록체인 기술 한계에 대한 관심이 높아지면서 이런 해결책에 대한 이해도도 함께 높아졌다. 이와즘은 캐스퍼나 샤딩에 비해 덜 알려진 기술이다. 하지만 블록체인 산업 밖에 있는 수많은 일반 개발자들을 이더리움 생태계로 유인할 결정적인 변화가 될 수 있는 만큼 주목할 필요가 있다. 이더리움은 지난 2015년 애플리케이션을 구동할 수 있는 최초의 블록체인으로 등장했다. 스마트컨트랙트(자동계약) 실행 환경인 EVM을 블록체인에 구현하면서 단순 송금을 넘어 복잡한 프로그램 작동도 가능해 진 것이다. 이더리움 진영이 기존 EVM을 대체할 웹어셈블리 기반 이와즘을 개발 중이다. 하지만, EVM이란 게 처음 등장한 것이다 보니, 한계가 많을 수 밖에 없었다. 개발 언어는 솔리디티 밖에 지원하지 않고, 스마트컨트랙트 실행도 병렬처리가 되지 않아 느리다는 문제가 존재한다. 이런 한계를 개선하기 위해 등장한 게 이와즘이다. EVM을 웹어셈블리 기반 실행 환경으로 대체해, 개발자들에게 보다 보편적인 개발환경을 제공하겠다는 게 목표다.[3] 2022년 1월 이더리움 공동설립자 비탈릭 부테린은 이더리움2.0의 개발이 대략 50%의 진척도를 보이고 있다고 밝혔다.[4]

각주[편집]

  1. jalateras, 〈[uhttps://www.helplib.com/GitHub/article_137099 design, eWASM设计概述和规范]〉, 《帮酷》, 2018-04-20
  2. 2.0 2.1 2.2 Scott_Song, 〈ewasm项目初探〉, 《简书》, 2018-11-09
  3. 3.0 3.1 임유경 기자, 〈개발자여, 웹어셈블리 품은 이더리움에 주목하라〉, 《지디넷코리아》, 2019-03-26
  4. 추현우 기자, 〈비탈릭 부테린 "이더리움 2.0 개발, 절반까지 왔다"〉, 《디지털투데이》, 2022-01-05

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 이와즘 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.