본문 바로가기

CryptoCurrency

EVM, VM(가상 머신) 및 EVM 체인 이해_part.1

 

EVM은 모든 Ethereum 스마트 계약이 실행되는 샌드 박스입니다. Avalanche 및 Polygon과 같은 많은 블록체인은 EVM을 지원하므로 Ethereum dApps를 쉽게 마이그레이션 할 수 있습니다. NEAR, Solana 및 Cosmos와 같은 비 EVM 호환 생태계도 Aurora 및 Evmos와 같은 EVM 구현을 얻고 있습니다. 그러나 Move VM 또는 WASM과 같은 보다 안전하고 효율적인 설루션과 경쟁할 수 있을까 하는 의문이 남습니다.

VM(가상 머신)은 컴퓨터를 에뮬레이트하는 프로그램입니다. 종종 가상 머신의 추상적인 정의를 '시스템', '메커니즘'또는 '소프트웨어 플랫폼'으로 읽지만 기본적으로 설치하고 실행하는 프로그램입니다.

VM이 수행하는 작업은 다른 컴퓨터인 컴퓨터를 에뮬레이트하는 것입니다. 자체 메모리, 저장 공간 및 CPU가 있습니다. 다른 프로그램을 실행하고 파일을 만드는 등의 작업을 수행할 수 있습니다. 이 '컴퓨터'만 물리적으로 존재하지 않습니다.

Ethereum Virtual Machine에 대한 모든 이야기 때문에 많은 사람들은 블록 체인에 특유한 기술이라고 생각하지만 그렇지 않습니다. 실제로 Mac 사용자인 경우 생각보다 VM에 더 익숙할 가능성이 있습니다. Parallels, VMWare 또는 다른 소프트웨어를 사용하여 Mac에서 Windows 프로그램을 실행해 본 적이 있습니까? 이들은 실제로 가상 머신입니다.

한 컴퓨터에서 VM의 여러 복사본을 실행하고 이러한 '가짜 컴퓨터'의 가상 네트워크를 만들 수도 있습니다. 그러나 많은 리소스가 필요하므로 전문가 수준의 서버에서 더 잘 수행됩니다.

샌드 박스는 테스트중인 것이 작동하지 않더라도 시스템의 나머지 부분을 손상시킬 위험 없이 새로운 코드, 앱 등을 테스트할 수 있는 가상 환경입니다.

노트북에 새 프로그램을 설치하고 시작한다고 상상해보십시오. 그리고 어떻게 든 다른 모든 것을 엉망으로 만들어 다른 프로그램이 제대로 실행되지 않고 컴퓨터가 정지되고 운영 체제를 다시 설치해야 한다고 상상해보십시오. 그러나 샌드 박스를 사용하면 '나쁜' 프로그램이 샌드 박스 외부의 어떤 것도 손상시키지 않습니다.

샌드 박스에서 실행중인 모든 것이 바이러스 및 DDoS 공격과 같은 시스템의 나머지 부분에 영향을 줄 수 있는 다양한 부정적인 이벤트로부터 보호됩니다. 이것은 우리가 보게 될 블록체인 가상 머신에서 매우 중요합니다.

또 다른 장점은 매우 다른 장치 및 운영 체제에 동일한 코드를 배포하고 테스트할 수 있다는 것입니다. 따라서 개발자 간의 공동 작업이 더 쉬워집니다.

기술적 용어: VM은 물리적 서버와 소프트웨어 사이에 추가 계층을 생성하기 때문에 추상화 계층이라고도 할 수 있습니다. VM은 프로그램을 실행하는 데 사용되기 때문에 종종 '런타임 환경'이라고합니다. 다른 많은 이름이 사용됩니다 : 처리 기계, 컨테이너 등.

요약하자면: VM은 별도의 컴퓨터/서버처럼 작동하는 격리된 환경을 만듭니다. 가상 머신의 주요 용도는 다음과 같습니다.

일반적으로 해당 소프트웨어를 지원하지 않는 컴퓨터에서 다른 또는 이전 OS 용으로 생성 된 소프트웨어를 실행합니다.
새 코드를 테스트하기 위해;
시스템의 나머지 부분에 영향을 줄 수 있는 외부 위협으로부터 보호해야 하는 중요한 앱을 실행합니다..

EVM 또는 Ethereum Virtual Machine은 블록 체인 업계를 위해 개발된 최초의 가상 머신이었습니다. 물리적 머신 (노드)을 스마트 계약 코드와 분리하는 추상화 계층입니다. 모든 이더리움 노드는 EVM의 인스턴스를 실행하며, 함께 일종의 웹 또는 일종의 글로벌 분산 컴퓨터를 형성합니다. Vitalik Buterin은 Ethereum을 '세계 컴퓨터'라고 부릅니다.

EVM은 단순한 샌드 박싱을 훨씬 뛰어 넘는 몇 가지 중요한 역할을 합니다. 상황이 매우 기술적으로 바뀔 수 있으므로 매우 기본적인 설명을 제공하려고 노력할 것입니다.

우선, EVM은 dApp을 머신 (노드)과 분리합니다. 기계가 DDoS 공격이나 바이러스에 의해 타격을 받으면 앱과 블록체인이 안전합니다. 둘째, dApp을 서로 분리하여 유지합니다 : 하나가 오작동하거나 악의적인 것으로 판명되면 다른 하나는 여전히 제대로 작동합니다.

즉, EVM은 Solidity와 같은 언어로 사람이 읽을 수있는 복잡한 명령을 기계가 읽고 실행할 수 있는 바이트 크기의 명령으로 변환합니다.

Ethereum 스마트 계약은 Solidity, Vyper 및 FE (흥미롭고 쉬운 새로운 언어, 2021 년 1 월에 출시됨)와 같은 언어로 작성되었습니다. 이들은 높은 수준의 프로그래밍 언어로, 자격을 갖춘 인간 (즉, 프로그래머) 이이를 읽을 수는 있지만 기계는 읽을 수 없습니다. 기계가 읽을 수 있는 낮은 수준의 언어로 번역해야 합니다.

그것이 EVM이 들어오는 곳입니다 : Solidity, Vyper 등을 EVM 바이트 코드라는 더 간단한 언어로 컴파일 (변환) 한 다음 가상 머신에 의해 실행됩니다. 이 개념은 Ethereum에만 국한된 것이 아닙니다: 예를 들어, Java Virtual Machine에는 자체 바이트 코드가 있습니다.

바이트 코드는 사람이 읽을 수있는 많은 짧고 사람이 읽을 수 있는 명령어 또는 opcode로 구성됩니다. Ethereum에는 'STOP', 'ADD', 'NUMBER', 'GASPRICE' 등을 포함한 140 개의 opcode가 있습니다. 모든 opcode는 기록할 정확히 1 바이트의 공간 (따라서 '바이트 코드')을 필요로 합니다.