서문
Qtum-x86 가상 머신의 설계 및 개발이 계속 발전함에 따라 더 많은 개발 세부 사항이 등장하고 있습니다. 블록 체인 세계에서 가상 머신은 얼마나 중요합니까? 이 분야에서 Qtum-x86 가상 머신의 특별한 기능과 장점은 무엇입니까?
테마에 들어가기 전에 잠시 블록 체인의 역사를 검토해 봅시다. 2009 년에 시작된 비트 코인은 opcode를 사용하여 맨 아래에서 UTXO를 조작하여 사용자가 상위 레벨에서 "전송"기능을 인식 할 수 있도록합니다. 실제로 Bitcoin 세계에는 계정 개념이 없으며 각 사용자 지갑의 잔액은 모든 UTXO의 합계입니다. 실제로 소유 한 지갑과 마찬가지로 지갑의 잔액은 내부 지폐의 합과 같습니다.
얼마 지나지 않아 "password punk"는 Bitcoin 프로토콜에서 개인 상품을 운송하기 시작했고 OP_RETUN을 사용하여 옴니 레이어와 일련의 컬러 코인을 발명하여 정보를 기록했으며 비트 체인 코드를 변형하여 새로운 체인을 발행하기 시작했습니다. 이 배포 방법이 너무 복잡합니다. 그 결과, 사용자가 체인에서 자산을 발행 할 수있는 블록 체인이있었습니다. 이 유형의 블록 체인은 사용자에게 인터페이스를 제공하며 순환, 최소 단위 등과 같은 일부 통화 매개 변수를 입력 할 수있어 송금 비용을 크게 단순화합니다. 그러나이 방법은 사용하기 쉽고 기능적인 이더 리움 인 퍼블릭 체인이 있기 때문에 실제로 인기를 얻지 못했습니다. 이더 리움은 블록 체인에서 스마트 계약을 구현하며, 사용자는 이더 리움 고유의 Solidity 언어로 코드를 작성하고이를 바이트 코드로 컴파일하여 노드의 이더 리움 가상 머신 EVM에서 실행할 수 있습니다.
블록 체인 가상 머신의 진화 역사
가상 머신에서 블록 체인 가상 머신으로
가상 머신 또는 가상화 기술은 블록 체인보다 훨씬 긴 역사를 가지고 있습니다. 메인 프레임 시간 공유 시스템의 시작부터 운영 체제 가상 머신, 프로그래밍 언어 가상 머신, 서버 가상화, 컨테이너화 및 기타 기술에 이르기까지 수십 년의 개발 끝에 이러한 기술은 비교적 성숙하고 적용되었습니다 많은 장면. 핵심은 응용 프로그램의 실행 환경을 실제 운영 체제 및 하드웨어와 격리하고 응용 프로그램이 하드웨어 또는 운영 체제 환경으로 제한되지 않도록 컴퓨팅 리소스를 추상화하는 것입니다.
블록 체인 도메인으로 돌아가서 블록 체인에서 가상 머신을 사용하는 것은 검증 성과 보안이라는 두 가지 주요 목적을 제공합니다.
검증은 합의로 이어질 수 있으며 합의는 블록 체인이 신뢰를 얻는 이유입니다. 일반적인 응용 프로그램은 검증 가능성이 거의 없으며 실행 환경의 하드웨어와 소프트웨어의 차이로 인해 다른 클라이언트에서 실행되는 동일한 프로그램의 결과가 정확히 같지 않을 수 있습니다. 데이터를 동기화하는 서버가 있기 때문에 중앙 집중식 응용 프로그램에는 문제가 아니지만 분산 된 블록 체인의 경우이 차이를 합의 할 수 없으므로 수용 할 수 없으므로 통합 가상 환경이 필요합니다. 스마트 계약 실행 결과를 확인할 수 있는지 확인하십시오.
블록 체인의 높은 보안 요구 사항은 분산되어 돌이킬 수없는 특성 때문입니다. 가상화 된 운영 환경은 계약이 다른 계약 및 블록 체인 플랫폼에 미치는 영향을 줄이고 시스템의 보안을 향상시킬 수 있습니다.
이러한 고유 한 요구 사항을 위해 Ethereum은 생성 초기에 Solidity 언어와 해당 Ethereum 가상 머신을 설계했습니다. Qtum Quantum Chain은 비트 코인과 이더 리움의 장점을 결합하고 현재 플랫폼 가상 머신으로 EVM을 사용합니다. 현재 블록 체인 도메인의 가상 머신은 두 가지 주요 장르로 나눌 수 있습니다.
Solidity를 실행하는 EVM의 가상 머신
WASM (WebAssembly) 가상 머신 실행
두 경우 모두 EVM 클래스 가상 머신이 더 널리 사용되며 Qtum을 포함한 많은 공개 체인이 EVM과 호환됩니다. Solidity의 개발은 일반적인 프로그래밍 언어의 디자인과 크게 다르지만, 수년간의 개발 및 첫 번째 이점은 비교적 광범위한 개발자 커뮤니티와 블록 체인, 개발 환경, 툴 체인, 표준 프레임 워크와 같은 리소스도 가장 성숙하고 풍부합니다.
Solidity는 JavaScript, Go, C ++ 및 기타 여러 언어의 기능을 결합하며 전체 구문은 JavaScript와 유사합니다. 고급 언어로 코드를 작성한 후에는 컴파일러가 코드를 EVM 바이트 코드로 컴파일하고 실행을 위해 바이트 코드가 EVM에 제공됩니다. EVM은 스택 기반 가상 머신으로, 대부분의 컴퓨터의 레지스터 모델과는 다르므로 가상 머신이 바이트 코드를 실행할 때 머신 코드로 더 해석되어 실제 머신에서 실행되어야합니다.
EVM은 이더 리움 블록 체인에 맞춰져 있지만 가상 머신과 체인간에 긴밀한 연결을 생성합니다 기존 EVM은 Solidity 이외의 언어와 호환되지 않습니다. EVM 및 Solidity의 설계는 다소 급격히 진행되어 일련의 비판적인 문제가 발생합니다 (예 : 모든 키와 값은 256 비트 임) 실제 머신에서 실행할 때 많은 추가 최적화가 필요합니다. 프로그래밍 언어는 Turing 완전성을 구현합니다. 그러나 높은 수준의 언어 기능이 부족합니다. 생성 된 바이트 코드가 크고 블록 공간이 낭비됩니다. 가스 모델이 불합리하고 가스 소비를 예측하기 어렵고 모델 수정이 기존 계약에 영향을 미치므로 계약을 업그레이드 할 수 없습니다. EVM의 업그레이드는 멈추지 않았지만 매우 어렵습니다. 완전히 해결되지 않은 콘스탄티노플의 하드 포크 지연을 직접 유발하는 공격 문제를 다시 입력하기 위해서는 많은 노력이 필요합니다. 이더 리움 팀은 몇 년 전에 WASM을 연구하기 시작했으며 ETH 2.0에 새로운 가상 머신 WASM을 적용 할 준비를하고 있습니다.
Qtum-x86 가상 머신이 제안되는 이유는 무엇입니까?
Qtum-x86 가상 머신은 어디에서 제공됩니까?
EVM의 고유 한 결함으로 인해 블록 체인 가상 머신의 두 번째 주요 범주 인 WASM 가상 머신이 도입되었습니다. 이 유형의 가상 머신은 연구 개발중인 많은 새로운 프로젝트와 프로젝트에서 사용됩니다. WASM은 고급 언어가 아니라 컴파일 중에 생성되는 바이트 코드 사양입니다. WASM은 Google 및 Microsoft와 같은 주요 회사의 개발 지원으로 뒷받침되며 원래 웹 응용 프로그램을보다 효율적으로 지원하기 위해 웹 사이트 JavaScript를 보완하기위한 것입니다. WASM은 비교적 빠른 기술로 개발되고 있으며, 코드 크기가 작으며, 일부 장면은 JavaScript보다 빠르게 실행되며, C / C + + / Rust와 같은 다양한 일반 고급 언어를 지원할 수 있습니다.
WASM 가상 머신은 EVM과 유사하며 스택 구조이기도합니다 블록 체인 가상 머신 분야에서 QT Quantum Chain은 QTUM Technology Lab에서 설계되었습니다. 왜 x86 가상 머신을 설계합니까? 설명은 매우 포괄적입니다. Qtum은 Bitcoin의 UTXO를 기반으로 AAL을 사용하여 EVM의 프로그래밍 기능과 Bitcoin의 보안 및 개인 정보를 결합합니다. 처음부터 Qtum은 여러 가상 머신과 호환 가능하고 기본 계층에서 EVM을 분리하고 x86 가상 머신의 개발을 계획했습니다.
EOS와 같은 작은 DPoS 퍼블릭 체인과 달리 Qtum은보다 분산 된 MPoS 합의 메커니즘을 사용하며 수퍼 노드가 없으며 아웃 바운드 노드의 하드웨어 요구 사항이 매우 적으며 전세계에 수천 개의 노드가 흩어져 있습니다. 따라서 PC 시장 점유율이 90 % 이상인 x86의 CPU 아키텍처는 현재 노드의 하드웨어 조건에 최적으로 맞출 수 있습니다. EVM 또는 WASM과 달리 x86은 40 년이 넘는 역사를 가진 ISA (명령 세트 아키텍처, CPU 용으로 설계된 기본 언어)이며, 많은 연구와 도구가 있으며, 가상화 및 시뮬레이션에 대한 많은 경험이 있습니다. 레지스터 구조를 사용하여 시뮬레이션 할 수 있으며 실제 머신 조건에 더 가깝게 실행되며 실행 효율성과 비용을 더욱 최적화 할 수 있습니다 x86 효율적인 명령어 세트와 가상 머신의 von Neumann 아키텍처를 통해 기존의 많은 가상 머신을 구현할 수 있습니다. 특징.
Qtum-x86 기술 장점
7 가지 주요 장점 종합 해석
여러 언어에 대한 지원은 무엇보다도 Rust를 지원합니다. Rust는 블록 체인 분야에서 매우 인기있는 프로그래밍 언어이며, 디자인은 더 가볍고 효율적이며 보안에 중점을 둡니다. Libra가 Rust를 사용하기로 결정한 이후, Rust는 점점 더 많은 개발자들의 관심을 끌었습니다. Qtum 공동 창립자 Jordan Earls는 Rust를 2017 년에 가상 머신에 대한 우선 지원 언어로두고 2018이 Rust 스마트 계약의 시작이 될 것으로 예측했습니다. 개발자는 Rust를 사용하여 적은 비용으로 학습하고 사용할 도구가 많으며 적은 노력으로 기존 컴파일러의 적합한 컴파일러를 조정할 수 있습니다. Qtum은 C # 및 Go와 같은 널리 사용되는 언어에 대한 지원도 추가 할 계획입니다.
API를 사용하여 가상 머신을 사용하여 블록 체인과 통신하면 여러 가상 머신을 병렬로 지원할 수 있습니다. 이는 Solidity 개발자가 계속해서 Solidity를 사용하여 Qtum에서 개발하고 심지어 서로 혼합하고 개발 및 호출 할 수 있음을 의미합니다. 이를 통해 개발자 마이그레이션 비용을 줄이고 개발 임계 값을 낮출 수 있습니다.
DGP와 결합하여 개발 및 비용을 낮추기 위해 가스 모델을 최적화하면 모델을 계속 최적화 할 수 있습니다. x86 아키텍처에서 EVM에 대한 많은 고가의 작업은 strlen과 같이 매우 저렴할 수 있습니다. 동시에, Qtum DGP의 존재로 인해, 모델이 노드에 의해 수정되어 설계가 정확하지 않은 가스 모델을 실제 적용에서 더욱 최적화되도록 만들 수 있습니다.
스토리지 임대 모델을 통한 상태 팽창 및 스토리지 풋 프린트 문제 해결 : 시간이 지남에 따라 전체 Bitcoin 노드의 크기가 100G를 초과했으며 빠른 블록 체인과 같은 EOS가 몇 년 안에 1T를 돌파 할 수 있습니다. 이는 일반 사용자가 네트워크에 참여하여 트랜잭션을 확인하지 못하도록하여 동기화, 검색, 확인 등을보다 어렵게 만듭니다. Qtum은 계약에 사용 된 스토리지를 기준으로 요금 청구를 제안합니다. 자세한 내용은 다음을 참조하십시오 : Qtum-x86 가상 머신은 스토리지 영역 임대를 실현하여 가상 머신 메모리를 효율적으로 절약합니다.
스마트 컨트랙트 업그레이드 가능 : Ethereum의 현재 컨트랙트는 업그레이드 할 수 없으며, 개발자는 업그레이드가 필요할 때 상태를 로직에서 분리하고 계약을 다시 업로드 할 수 있습니다. 이것은 개발의 객관적인 요구 사항을 충족시키지 못하며 블록 체인의 수정 불가능한 특성을 달성하는 더 나은 솔루션이 있습니다. X86의 스마트 계약은 계약 보안과 신뢰를 손상시키지 않으면 서 업그레이드되어 개발 요구에보다 현실적입니다.
보다 표준적인 라이브러리 : 개발자는 각 계약이 시작될 때 안전 수칙을 작성할 필요가 없습니다. 이는 개발자의 시간을 절약 할뿐만 아니라 블록 체인의 공간을 절약하고 계약 비용을 줄입니다. 일부 공통 표준 라이브러리는 사전 컴파일 된 계약과 비슷한 방식으로 사용되므로 특별한 지원없이 계약을 호출 할 수 있습니다.
AAL 잠금 해제를위한 추가 기능 : 현재 AAL의 잠재력 중 상당수가 Segwit, P2SH 등과 같은 EVM에 의해 제한됩니다. x86 가상 머신은 Qtum 기능의 잠재력을 더욱 향상시킵니다.
이것들은 x86 가상 머신의 빙산의 일각에 불과하며 새로운 가상 머신은 계약 호출, 데이터 스토리지 및 계약 기능에서 더 많은 혁신을 가져올 것입니다.
소수의 사람들의 길은 항상 더 어렵지만 더 많은 놀라움을 줄 것입니다. Qtum은 Qtum-x86 가상 머신 개발을 처음부터 장기적인 개발 목표로 설정했으며 관련 GitHub 코드는 계속 활발하게 운영되고 있습니다. R & D 및 구현의 점진적인 발전과 개선으로 Qtum-x86 가상 머신은 고유 한 장점을 가진 블록 체인 스마트 계약 분야에서 고유 한 위치를 차지하여 블록 체인을 더 넓은 단계로 이끌 것입니다.