Nervos는 샌프란시스코에서 "Say Hello to RISC-V"라는 주제로 이벤트를 개최합니다. 의외로 이벤트 자체가 블록체인 수석 블록체인 전문가이자 Cosmos 프로젝트 컨설턴트인 Zaki Mania의 관심을 끌었고 Twitter에서 매우 흥미로운 이벤트를 시작했습니다. .토론. 토론의 초점은 Zaki가 다른 블록체인 프로젝트와 비교하여 WebAssembly(WASM)를 선택했다고 믿었고, RISC-V 명령어 세트로 VM을 구현하려는 Nervos의 계획에 대해 의구심을 표명했다는 것입니다.
배경 지식
배경 지식
먼저 이 토론의 두 가지 주요 주제인 WebAssembly 및 RISC-V를 소개합니다.
WebAssembly(WASM)는 최신 웹 브라우저에서 실행될 수 있는 새로운 코딩 방식입니다.기본에 가까운 성능으로 실행될 수 있는 압축 바이너리 형식의 저수준 어셈블리 유사 언어이며 C와 같은 언어에 적합합니다. / C++/Rust와 같은 언어는 웹에서 실행할 수 있도록 컴파일 대상을 제공합니다. WebAssembly의 개발 팀은 Mozilla, Google, Microsoft, Apple 및 기타 회사에서 왔으며 표준은 W3C에서 공식화되었으며 현재 WebAssembly는 EWASM(Ethereum Next Generation Virtual Machine), EOS 및 Dfinity 프로젝트에서 사용됩니다.
RISC-V 명령어 세트는 축소 명령어 세트 컴퓨팅(RISC) 원리에 기반한 개방형 ISA(Instruction Set Architecture)로, 2010년에 시작된 이 프로젝트는 버클리 캘리포니아 대학의 데이비드 패터슨 교수가 주도했다. 커뮤니티로부터 강력한 지원을 받았습니다.RISC-V는 명령어 세트의 지속적인 개발과 성숙도를 기반으로 하는 새로운 명령어입니다. RISC-V 명령어 세트는 완전히 오픈 소스이고 설계가 단순하며 Unix 시스템으로 이식하기 쉽고 모듈식 설계, 완전한 도구 체인이며 수많은 오픈 소스 구현 및 테이프 아웃 사례가 있습니다.
x86과 ARM이 독점하고 있는 지금, RISC-V는 신흥 시장에 빛을 가져왔고, 많은 국가의 칩 설계 및 제조 회사들이 그 기반에 합류하여 관련 생태 구축에 참여했습니다. RISC-V는 CPU에서 검증된 명령어 집합 아키텍처로서 블록체인 프로젝트에서 프로세서 하드웨어 대신 가상 머신을 구축하기 때문에 블록체인 분야에서 참으로 대담한 시도입니다.
블록체인 공간의 초기 투자자인 Zaki Mania가 게시했습니다. 그 자신은 Trusted IoT Alliance(PoS 보안 연구를 전담하는 조직)의 전무이사이자 Cosmos의 프로젝트 컨설턴트이자 Restore The 4th!의 이사회 멤버입니다!
토론에 참여@defmacro, Nervos 프로젝트의 핵심 엔지니어인 Xiao Xuejie는 CKB-VM의 주요 구현자이기도 합니다. 그가 구현한 Nervos 가상 머신에 대한 소개는 "An Introduction to Nervos CKB-VM"[1] 기사를 참조하십시오. .
토론에 참여한 다른 사람들은 Loom 수석 조사관, 플라즈마 연구원이었습니다.Georgios Konstantopoulos, 솔라나랩스 CEO Anatoly Yakovenko, Qtum 개발자Jordan Earls, Nervos 프로젝트 공동 설립자시에 한지안보조 제목
보조 제목
추상적인
Zaki Mania는 먼저 다음과 같은 질문을 했습니다.RISC-V가 가상 머신에 대해 WASM보다 낫다는 것을 심각하게 의심합니다.
Loom 수석 조사자가 뒤따름Georgios Konstantopoulos 후속 조치, 두 사람의 장단점을 자세히 평가해 주셨으면합니다.
Zaki Mania가 추가했습니다.RISC-V는 실리콘(칩을 의미)/FPGA 설계를 위한 사양입니다. x86, ARM, PowerPC에서의 효율적인 에뮬레이션은 목표가 아닙니다. WASM은 ISA(Open Instruction Set Architecture)와 독립적인 사양으로 다양한 CPU에서 효율적으로 구현할 수 있습니다. WASM 자체는 컴파일을 위해 특별히 설계되었으므로 x86 또는 ARM 머신 코드를 컴파일할 때 결과는 네이티브 컴파일과 거의 동일합니다. 그러나 RISC-V는 x86 및 ARM으로 컴파일하도록 설계되지 않았습니다.
Xiao Xuejie는 이에 대해 다른 견해를 제시했습니다.그는 WASM의 어떤 기능이 RISC-V보다 구현하기 쉬운지 질문했습니다. WASM은 JS보다 구현하기 쉽지만 RISC-V와 비교할 때 이점이 없습니다. 효과적인 구현을 구축하는 것과는 아무 관련이 없기 때문에 생태계입니다. WASM에 대한 LLVM의 지원이 더 좋다는 데 동의하지만 두 가지 지적할 사항이 있습니다. (1) RISC-V는 GCC를 지원하고 (2) RISC-V용 LLVM은 몇 가지 패치만 더 필요합니다.
RISC-V 에뮬레이션은 WASM이 추상 가상 머신으로 실행되는 것과 동일한 방식으로 실행됩니다.
상대방이 WASM이 이 목표를 처리하기 위해 "특별히 설계"되었다고 어떻게 말했습니까? 그는 사양에서 RISC-V 구현이 WASM처럼 구현될 수 있음을 보았습니다. JIT는 WASM만을 위한 것이 아닙니다.
후속 작업: "rv8: RISC-V에서 x86으로의 고성능 이진 변환기" [2].
몇 차례의 열띤 토론 끝에 많은 사람들이 토론에 참여했습니다. Tarun Chitra는 두 사람이 토론의 범위를 벗어났다고 느꼈습니다.RISC-V 소프트웨어는 WASM 개발 리소스와 절대 경쟁하지 않습니다.
SolanaLabs CEO Anatoly Yakovenko가 Zaki Mania에게 다음과 같이 질문했습니다.블록체인이 웹사이트를 운영하는 것을 상상할 수 있습니까? 아니면 동시에 실행되는 백만 개의 독립 노드입니까? 큰 추진을 한 Nervos에게 찬사를 보냅니다. 그들은 무리를 따르지 않았습니다.
Qtum 개발자 Jordan Earls가 댓글을 달았습니다.: RISC-V가 매우 모호하기 때문에 WASM의 모든 이점(임의의 CPU 아키텍처보다)이 부족하고 x86의 생태계 이점도 얻지 못하는 것 같습니다. 네이티브 스마트 계약 하드웨어를 보는 것은 흥미로웠습니다.
Nervos의 공동 창립자 Xie Hanjian은 다음과 같이 말했습니다.타겟팅 하드웨어(RISC-V)는 제 생각에 큰 이점입니다. 레이어 1 블록체인은 업그레이드하기 어려운 하드웨어와 같은 소프트웨어입니다. 하드웨어용으로 설계된 명령어 세트는 동일한 속성을 갖습니다.
Zaki Mania는 다음과 같이 요약합니다.나는 합의 계층이 실행하는 코드 때문이 아니라 RISC-V의 열렬한 팬입니다. 컴파일러 도구 체인은 최고 수준이 될 것이며 하드웨어(RISC-V 아키텍처로 구현됨)가 널리 보급될 것이지만 고성능 및 안정적인 x86/ARM JIT에 의존하는 다른 사용 사례는 없을 것입니다.
Xiao Xuejie는 마침내 다음과 같이 결론을 내렸습니다.RISC-V 구현과 WASM 구현의 차이는 훨씬 작으며 RISC-V에서 보다 효율적으로 구현하는 것이 더 쉽다고 생각합니다. 사실, 여기서 한 가지 기술(WASM 또는 RISC-V)은 다른 기술(RISC-V 또는 WASM)보다 한두 가지 세부 사항에서 구현하기가 더 쉬울 수 있지만 (일반적으로) 어려움에 눈에 띄는 차이는 없습니다. , 구현될 때 실제로 그렇게 다르지는 않습니다.
동시에 블록체인 가상 머신을 선택할 때 고려해야 할 사항은 고성능 구현의 어려움만이 아닙니다. RISC-V를 사용하면 다음과 같은 이점을 얻을 수 있습니다(WASM은 일치시키기 어렵습니다).
1. 안정적인 구현을 보장하기 위해 실제 하드웨어를 사용하며 브라우저 공급업체에서 합의한 버전 비트 보장이 아닙니다.
2. 인력이 부족한 Emscripten 대신 지속적인 LLVM 지원을 제공하는 안정적인 업스트림 GNU 도구 체인
3. V 확장과 같은 현재 JS 엔진 아키텍처에 국한되지 않는 최첨단 기술 사양
4. 합리적인 런타임 모델, 보다 자연스럽고 미래 지향적인 런타임 오버헤드 모델
5. 보조 프로세서를 사용하여 트랜잭션 확인 속도를 크게 높일 수 있는 가능성.
앞으로도 이와 같은 멋진 지식 충돌을 더 많이 볼 수 있기를 기대합니다!
[1]https://medium.com/nervosnetwork/an-introduction-to-ckb-vm-9d95678a7757
[2]https://carrv.github.io/2017/papers/clark-rv8-carrv2017.pdf
