이더리움의 EVM체제에서 eWASM체계로 전환한다고 하는데 이게 무슨 뜻을 말하는건가요?
이더리움 창시자 비탈릭은 현 EVM 체제를 폐기하고, 점진적으로 Ethereum 플랫폼을 위해 일부 개조된 WebAssembly 규격인 eWASM (Ethereum flavored WebAssembly)로 전환한다는 소식이 있었습니다.
비탈릭은 무엇때문에 eWASM로 시스템을 전환하려고 하는것인지, 이에 기존 내부개발자들이 반발을 하는 이유가 무엇인지 궁굼합니다.
간단하게 설명 부탁드리겠습니다.
안녕하세요
eWASM 에 대하여 질문을 하셨는데요
국내 자료로는 자세히 설명이 된게
거의 없어서
해외 자료 번역해서 올려 드립니다.
도움이 되셨으면 합니다.
아래내용은 아래 사이트를 번역한 내용입니다.
출처 : https://www.mycryptopedia.com/ewasm/
EWASM (Ethereum Flavored WebAssembly) 설명최종 업데이트 : 3 월 12 일 2019
Serenity라고도 알려진 Ethereum 2.0은 Ethereum 플랫폼에서 발생할 것으로 예상되는 일련의 계획된 업그레이드입니다. 이러한 변경 사항은 향후 몇 년 동안 점진적으로 발표 될 것이며 구현되면 이러한 업그레이드를 통해 초당 수천 건의 트랜잭션을 처리 할 수있는보다 효율적이고 확장 성이 뛰어난 Ethereum 플랫폼이 생성되기를 기대합니다.
위 이미지에서 볼 수 있듯이 Ethereum에서 구현할 핵심 업그레이드는 다음과 같습니다.
단계 0 : 신호 체인
1 단계 : 샤드 체인
2 단계 : 실행 엔진
2 단계에서는 Ethereum 플랫폼에서 새로운 실행 엔진을 구현할 것으로 예상되며, 실행 엔진이 거의 작동하지 않을 것이라는 대략적인 견해가 있습니다.
가상 머신블록 체인 노드는 수신 한 트랜잭션을 처리해야합니다. 이를 위해이 트랜잭션에서 인코딩 된 명령어를 실행할 수 있는 가상 시스템 을 실행합니다. 비트 코인 가상 머신은 비교적 간단하지만 튜링 완전히 지원할 수있는 범용 blockchain위한 가상 머신 스마트 계약은 ,보다 복잡한 명령어 세트를 필요로한다.
에테 리움 가상 머신 (EVM)은 에테 리움의 부록에 지정된 노란 종이 . EVM은 범용 스마트 계약을 실행하기위한 런타임을 구성합니다. 사전 정의 된 여러 opcode 를 사용하여 다양한 기능을 구현할 수 있습니다. EVM의 opcode는 프로세서 코어의 명령어 세트와 동일합니다. 보통 Solidity로 작성된 스마트 계약는 높은 수준의 프로그래밍 언어가 하드웨어 명령어로 컴파일되는 것과 같은 방식으로 일련의 opcode로 구성된 EVM 코드로 컴파일됩니다. 각 연산 코드는 숫자 코드로 표현되며 사양에서 사람이 읽을 수있는 이름이 지정됩니다. 예를 들어 opcode ADD (코드 번호 0x01로 식별 됨)는 EVM에서 EVM의 스택에있는 두 개의 256 비트 숫자 합계를 계산하기 위해 해석됩니다.
현재의 EVM은 변화가 거의없는 초기 사양에서 발전해 왔으며 성능과 유연성면에서 한계가 있습니다. EVM의 초기 opcode 사양은 여러 하드웨어 플랫폼에서 속도에 최적화되어 있지 않으며 이식성을 목표로하지도 않으므로 현명한 계약 작성을위한 도구 및 언어 지원이 제한됩니다. 이제 Ethereum 2.0이 다가 오면서 WebAssembly를 기반으로 한 새로운 EVM 사양이 작성되고 있습니다.
WebAssembly (WASM)WebAssembly는 가상 시스템을 위해 최적화 된 바이너리 형식입니다. W3C ( World Wide Web Consortium) 에서 공개 표준으로 정의한 바이너리 명령어 형식은 여러 JavaScript 엔진 및 기타 런타임 환경에서 기본적으로 지원되므로 대부분의 최신 웹 브라우저에서 WebAssembly를 실행할 수 있습니다. 현재 채택률 및 도구 지원은 Go , Rust 및 C / C ++를 포함하여 다양한 언어가 WebAssembly로 직접 컴파일 될 수 있음을 의미합니다 .
WebAssembly는 스택 기반 가상 시스템 사양으로, 낮은 수준의 대상 아키텍처 및 고성능에 쉽게 적응할 수있는 기능과 같은 몇 가지 이점을 제공합니다. 표준에는 명령 세트, 중간 소스 형식 (바이트 코드와 유사) 및 인코딩 형식이 포함됩니다. 이 명령어 세트는 대부분의 현대 하드웨어 아키텍처에 공통적 인 기능을 활용하도록 특별히 설계되었습니다. 따라서 WebAssembly는 대부분의 플랫폼에서 기본 속도에 가깝게 실행할 수 있습니다.
EWASMEVM을 WebAssemly로 재 지정 및 마이그레이션하려는 현재의 제안은 위에서 언급 한 장점에 의해 동기 부여됩니다. 주로 Wasm 기반 EVM은 향상된 하드웨어 기능을 활용할 수 있으며 다양한 도구 및 언어 지원 에코 시스템을 구축 할 수 있습니다. 이러한 EVM을 사용하면 이론적으로 WebAssembly로 컴파일되는 모든 언어로 스마트 계약을 작성할 수 있습니다.
그러나 몇 가지주의 사항이 있습니다. 가장 중요한 점은 각 노드에서 코드를 똑같이 실행해야하므로 블록 체인 가상 시스템이 실행시 결정적이어야한다는 것입니다. 그렇지 않으면 거래 확인 및 확인이 불가능합니다. 따라서 비 결정 성의 소스를 도입 할 수있는 WebAssembly 기능은 모두 제외해야합니다. 또한 W3C WebAssembly 사양은 Ethereum에서 요구하지 않는 측면을 다루는 매우 광범위합니다.
Ethereum의 특정 요구 사항을 준수하기 위해 Ethereum 2.0의 Wasm 기반 EVM에 대한 제안은 Ethereum 맛 WebAssembly (ewasm) 의 개념을 도입합니다 . ewasm 사양은 Ethereum의 요구에 적합한 WebAssembly 구성 요소의 하위 집합, 즉 결정론 및 관련 기능으로 구성됩니다. 또한 Ethereum 플랫폼 기능에 대한 액세스를 제공하는 다양한 시스템 스마트 계약이 포함됩니다.
새로운 계약은 고급 언어로 작성 될 수 있지만 ewasm 프로젝트는 현재 opcode 명령어 세트를 지원하고 사양에 맞게 변환 옵션을 포함시킴으로써 하위 호환성을 목표로합니다.
결론eWasm의 장점은 빠른 실행 속도, 개선 된 하드웨어 지원, 대규모 기존 도구 지원, 언어 이식성 및 대규모 WebAssembly 커뮤니티 및 에코 시스템에 대한 액세스입니다. 그러나 Ethereum 2.0 사양의 대부분을 차지하고 있는 ewasm 프로젝트 는 아직 진행 중이며 변경 될 수 있습니다.