가상 머신 (EVM)

EVM의 물리적 인 사례는 구름이나 바다 파를 가리킬 수있는 방식으로 설명 할 수 없습니다.이더넷 클라이언트를 함께 실행하는 수천 개의 컴퓨터가 존재하고 유지 관리하는 실제 엔티티입니다.

폴리 마트 체인 프로토콜 자체는이 특정 상태 기계를 지속적으로, 중단없이 영구적으로 실행하기 위해서만 존재합니다.이것은 모든 polysmartchain 계정과 스마트 계약이 존재하는 환경입니다.PolySmartChain은 체인에 주어진 블록에 하나의 "표준"상태를 가지고 있으며 EVM은 새로운 유효한 상태를 한 블록에서 다음 블록으로 계산하는 규칙을 정의합니다.

원장에서 스테이트 머신까지

"분산 된 원장"의 유추는 분리 된 통화를 구현하기 위해 암호화의 기본 도구를 사용하는 Bitcoin과 같은 블록 체인과 같은 블록 체인을 설명하는 데 자주 사용됩니다.Cryptocurrencies는 사람들이 할 수 있고 원장을 수정하기 위해 할 수없는 규칙이 있기 때문에 "정상적인"통화처럼 행동합니다.예를 들어, 비트 코인 주소는 이전에 수신 된 것보다 더 많은 비트 코인을 쓸 수 없습니다.이 규칙은 Bitcoin 및 다른 많은 블록 체인의 모든 트랜잭션의 기초입니다.

Polysmartchain은 거의 동일한 직관적 인 규칙을 따르는 자체 기본 cryptocurrency (PSCETH)를 가지고 있지만 더 강력한 기능인 스마트 계약도 지원합니다.이보다 복잡한 기능을 위해서는보다 복잡한 비유가 필요합니다.PolySmartChain은 분산 원장이 아니라 분산 상태 머신입니다. PolySMartChain의 상태는 모든 계정과 잔액을 유지할뿐만 아니라 사전 정의 된 규칙 세트에 따라 블록간에 변경 될 수있는 기계 상태를 유지하는 큰 데이터 구조입니다.임의의 기계 코드.블록에서 상태를 변경하기위한 특정 규칙은 EVM에 의해 정의됩니다.

폴리 마트 체인 상태 전이 함수

EVM은 수학 함수처럼 작동합니다. 주어진 입력에 대해서는 결정 론적 출력을 생성합니다.그러므로 상태 전이 기능을 갖는 것으로서 더 공식적으로 에테르를 기술하는 것이 매우 도움이된다.

    Y(S, T)= S'

이전 유효한 상태 (s ars) 및 새로운 유효한 트랜잭션 세트 (t)가 주어지면 에테르 상태 전이 함수 y (s, t)는 새로운 유효한 출력 상태 s를 생성합니다.

상태

PolySmartchain의 맥락에서, 상태는 모든 계정을 HASH에 의해 연결할 수있게하고 블록 체인에 저장된 단일 루트 해시로 다시 추적 될 수있는 조정 된 Merkle Patricia Trie라는 거대한 데이터 구조입니다.

거래

거래는 계정의 암호화 적으로 서명 된 지침입니다.거래에는 두 가지 유형이 있습니다. 하나는 메시지 호출 트랜잭션이고 다른 하나는 계약을 작성하는 거래입니다.

계약 생성 거래는 컴파일 된 스마트 계약 바이트 코드를 포함하는 새로운 계약 계정을 만듭니다.다른 계정이 해당 계약으로 메시지 호출을 할 때마다 바이트 코드를 실행합니다.

EVM 설명

EVM은 1024 개 항목의 스택 깊이가있는 스택 기계로 작동합니다.각 항목은 256 비트 워드이며 사용하기 쉽도록 256 비트 암호화 (예 : KECCAK-256 해싱 또는 SECP256K1 서명)가 선택됩니다.

실행하는 동안 EVM은 트랜잭션간에 지속되지 않는 과도 메모리 (Word-addressable 바이트 배열)를 유지합니다.

그러나 계약에는 계정 및 전 세계 상태의 일부와 관련된 Merkle Patricia Storage Trie (단어 주소 단어 배열)가 포함됩니다.

컴파일 된 스마트 계약 바이트 코드는 XOR 、 및 、 add 、 subETC와 같은 표준 스택 작업을 수행하는 많은 EVM OPCODE를 실행합니다.EVM은 또한 주소 、 밸런스 、 블록 하쉬 등과 같은 일부 블록 체인 특정 스택 작업을 구현합니다.

EVM 구현

EVM의 모든 구현은 이더넷의 기여 덕분에 이더넷 옐로우 북에 설명 된 사양을 따릅니다.

Last updated