RISC-V가 L1 전달 ISA에 적합한 선택이 아닌 이유와 WASM이 더 나은 이유

이 기사는 기계로 번역되었습니다
원문 표시

이 게시물의 요약

이 문서는 오프체인 랩스의 견해를 담고 있습니다. 마리오 알바레즈, 마테오 캄파넬리, 차히 지덴버그, 다니엘 루미가 작성했습니다. 이더리움 커뮤니티의 성공을 위한 저희의 헌신의 일환으로 이 지침을 제공합니다.

문맥

최근 이더리움의 L1 명령어 집합 아키텍처(ISA)로 이더리움 가상 머신(EVM) RISC-V로 대체하는 것에 대한 논의가 있었습니다. 이더리움 마법사 펠로우십(Fellowship of Ethereum Magicians)의 Vitalik이 작성한 이 글은 RISC-V로의 전환을 지지하는 여러 주장을 요약하고 있습니다.

Vitalik은 현재 ISA를 교체하면 Ethereum L1 확장의 두 가지 주요 제한 요소가 크게 개선될 것이라고 주장합니다.

  • 블록 생산을 경쟁 시장으로 유지하기

  • ZK-EVM의 성능 입증

우리 사례의 요약

우리는 이러한 목표를 지지하지만, 하나의 ISA가 ZK 증명과 스마트 계약 전달을 모두 최적으로 수행할 수 있다는 비탈릭의 암묵적인 가정에는 의문을 제기합니다. L1에 ISA를 구축하는 것은 스마트 계약이 체인에 전달되는 방식에 주로 영향을 미치므로, 증명만을 위한 것이 아니라 체인에서의 일반적인 전달 및 저장에 대한 적합성을 기준으로 ISA를 평가해야 합니다.

블록체인 환경에서 ISA가 수행할 수 있는 여러 가지 역할을 구분합니다. 특히, 전송 ISA(dISA) 의 개념과 ISA를 전송 ISA로 유용하게 만드는 속성에 대해 논의합니다. 이러한 속성을 기준으로 RISC-V와 WASM을 이더리움 dISA로서의 적합성 측면에서 비교하고, WASM이 더 나은 선택이라는 결론을 내립니다.

  • 하드웨어 개방형 표준인 RISC-V는 인상적이고 영향력 있는 기술입니다. RISC-V는 하드웨어 구현의 단순성과 편의성을 위해 설계되었습니다. 그러나 RISC-V 기반 ZK-VM이 ZK-VM 발전의 최종 단계가 될 것이라고 기대할 이유는 없습니다. 오히려 그 발전의 첫 단계일 가능성이 높습니다.

  • WASM은 모든 일반 하드웨어에서 네이티브 코드만큼 빠르게 실행될 수 있는 하드웨어 독립적인 추상화 계층으로 설계되었습니다. ISA로서 WASM은 이더리움 환경에서 매우 중요한 유형 안전성 및 계측 친화적인 특성을 제공합니다. WASM을 선택하더라도 현재의 확장성을 희생하지 않고도 이더리움의 유연성을 미래에도 유지할 수 있습니다.

구성: 이 문서의 나머지 부분은 다음과 같습니다. 먼저 "L1 ISA"의 의미를 명확히 하고 스마트 계약의 전달/실행/증명 형식으로서 다양한 ISA를 평가하기 위한 프레임워크를 제시합니다. 그런 다음 RISC-V와 WASM에 대한 배경 지식을 제공하고, SNARK 증명 가능성, 실행 가능성, 툴 호환성, 그리고 아마도 가장 중요한 미래 보장성이라는 몇 가지 핵심 측면에서 체계적으로 비교합니다. 마지막으로 이러한 비교 결과를 종합하고 WASM이 더 나은 선택이라고 생각하는 이유를 설명하며 마무리합니다.

소개

"L1 ISA"란 무엇을 의미합니까?

WASM(또는 RISC-V)을 "이더리움용 ISA"로 사용한다고 말할 때, 실제로 무엇을 의미하는지 명확하게 설명해야 합니다. 블록체인 실행 계층은 다양한 방식으로 명령어 집합을 사용하며, 각기 다른 목적에 따라 서로 다른 ISA를 사용할 수 있습니다. 예를 들면 다음과 같습니다.

  • 노드가 블록체인 실행 계층의 상태 전이 함수(STF)를 실행할 때, 실제로 실행하는 것은 해당 STF를 구현하는 일련의 기계어 또는 바이트코드 명령어입니다. 체인의 상태 전이 로직을 실행할 때 사용되는 ISA를 실행 ISA *,* 또는 eISA 라고 부르겠습니다. (이 논의의 목적상 이는 가장 관련성이 낮은 유형의 ISA입니다.)

  • ZK-VM을 사용하여 SNARK 증명을 지원하는 블록체인의 경우, 해당 ZK-VM은 특정 ISA에서 작동합니다. 이를 증명 ISA 또는 pISA라고 부르겠습니다.

  • 사용자가 업로드한 스마트 계약을 지원하는 블록체인은 해당 계약을 특정 형식으로 업로드해야 합니다. 일반적으로 이는 일종의 가상 머신(예: 이더리움 가상 머신(EVM) 또는 MoveVM)용 바이트코드 형식을 취합니다. 블록체인이 이러한 방식으로 ISA를 사용하는 경우(스마트 계약 코드를 전달하고 배포하는 형식으로 사용), 이를 전달 ISA 또는 dISA 라고 합니다.

위에 링크된 Vitalik의 게시물에서 RISC-V의 장점에 대한 대부분의 주장은 ZK 증명(즉, pISA로서의 유용성)과 관련이 있지만, 실제 제안은 RISC-V를 dISA(즉, 스마트 계약이 RISC-V로 표현되는 것)로도 사용하는 것입니다. 이 부분은 나중에 더 자세히 다루겠습니다.

이 문서에서는 RISC-V가 이더리움용 전송 ISA 로 적합하지 않으며, WASM이 이러한 목적(즉, 스마트 계약 배포에 사용되는 ISA)에 훨씬 더 적합하다는 점을 보다 구체적으로 논증할 것입니다. 본문의 나머지 부분에서는 ISA 라는 용어를 사용할 때, 논의하는 ISA의 역할(즉, eISA, pISA, dISA)을 구체적으로 설명하려고 노력할 것입니다.

L1 dISA의 바람직한 자질

논의의 토대를 마련하기 위해, L1 이더리움에 적합한 dISA의 이상적인 선택이 어떤 특성을 가져야 하는지에 대한 프레임워크를 제시하겠습니다. 그런 다음 RISC-V와 WASM의 여러 측면에서 성능을 비교해 보겠습니다. 이를 통해 WASM이 이러한 목적에 있어 RISC-V보다 더 나은 절충안을 제공하는 이유를 구체적으로 제시하고자 합니다.

  1. 효율적인 SNARK-Provability

    SNARK는 이더리움의 미래에 중요한 역할을 할 것이므로 모든 L1 dISA는 효율적인 증명 생성을 지원해야 합니다. 하지만 이것이 dISA가 ZK-VM에서 사용하는 ISA와 동일해야 한다는 것을 의미하지는 않습니다. ZK 증명 환경은 빠르게 변화하고 있습니다. RISC-V는 현재 널리 사용되고 있지만, 장기적으로 최고의 옵션으로 남을 것이라는 보장은 없습니다. 한편, 새로운 WASM 기반 및 맞춤형 ZK 최적화 ISA는 이미 유망한 가능성을 보여주고 있습니다. 더 나은 전략은 미래에 최적의 증명 ISA로 안정적이고 효율적으로 컴파일될 수 있는 dISA를 선택하는 것입니다.

  2. 효율적인 실행 가능성

    이더리움 가상 머신(EVM) 이 SNARK로 검증 가능한 미래에도, 하드웨어 리소스가 제한된 노드를 포함한 많은 노드가 전체 블록체인 또는 계약의 특정 부분을 실행하고자 할 것입니다. 따라서 새로운 dISA는 탈중앙화를 위해 지나치게 특수화되거나 비싸지 않은 일반 하드웨어에서 우수한 실행 속도를 제공해야 합니다.

  3. 기존 툴링과의 호환성

    효율적인 최적화 컴파일러 스택을 구축하는 것은 상당한 노력이 필요합니다. 특히 스마트 컨트랙트에 버그가 발생하지 않을 것이라고 믿어야 하는 컴파일러를 구축하는 경우에는 더욱 그렇습니다. 따라서 L1 이더리움을 위한 dISA를 잘 선택하려면 기존에 구축된 신뢰할 수 있는 컴파일러 생태계와 관련 툴이 필요합니다.

  4. 미래 지향적 설계 및 장기적 적합성

    L1 이더리움의 dISA를 대체하거나 심지어 크게 변경하는 것은 결코 쉬운 일이 아닙니다. 이전에도 이를 위한 여러 시도가 있었으며, 가장 최근에는 EOF가 있었습니다. 이러한 시도는 실패로 끝났지만, 투자된 시간과 노력은 이더리움 가상 머신(EVM) 에서 다른 dISA로의 전환을 위해 얼마나 많은 노력이 필요한지 보여줍니다. 커뮤니티가 새로운 dISA로 마이그레이션하는 데 그토록 많은 노력을 기울인다면, 새로운 dISA가 현재 뿐만 아니라 앞으로도 수년간 좋은 선택이 될 것이라는 확신을 갖고 싶습니다. 그렇지 않으면 전환 비용이 그만한 가치가 없을 것입니다.

몇 가지 다른 속성도 언급할 가치가 있습니다. 이 문서에서는 이러한 속성에 대해 자세히 다루지는 않겠지만, 이 속성들 역시 중요하며 WASM이 RISC-V보다 우위를 점하는 영역을 나타냅니다.

  • 가독성

    가독성은 대부분의 ISA 설계자에게는 문제가 되지 않습니다. 하지만 블록체인 dISA에게는 중요한 문제입니다. 블록체인 엔지니어는 보안 문제와 가스 최적화를 위해 대부분의 소프트웨어 엔지니어보다 컴파일된 ISA 코드를 훨씬 더 많이 읽고 조작합니다. 오늘날 많은 중요한 계약들이 이더리움 가상 머신(EVM) 에서 직접 작성되거나 검증됩니다. 구조화된 제어 흐름과 함수별 로컬 변수 사용 덕분에 WASM은 하드웨어 기반 ISA보다 이해하고 추론하기가 더 쉽습니다.

  • 안전과 격리

    퍼블릭 L1은 매우 적대적인 환경입니다. 일반적으로 스마트 계약 작성자는 서로를 신뢰할 필요가 없고, 노드 운영자는 스마트 계약 작성자를 신뢰할 필요가 없으며, 둘 다 자신의 입력을 신뢰할 필요가 없습니다. 격리 기능을 내장한 dISA를 사용하면 계약 간 분리를 유지하고 데이터와 코드 간의 간섭을 피하는 것이 훨씬 쉽습니다. WASM은 이러한 기능을 기본적으로 제공하지만, RISC-V는 그렇지 않습니다. ( WASM 설명서의 이 페이지에서 WASM이 안전 및 격리 기능을 어떻게 지원하는지에 대한 자세한 정보를 확인할 수 있습니다.)

RISC-V 및 WASM에 대한 배경 정보

RISC는 Reduced Instruction Set Computer의 약자입니다. RISC-V는 간단한 하드웨어 마이크로프로세서를 위해 설계된 ISA입니다. RISC-V는 매우 작고, 명령어 코드(opcode) 수가 적으며, 무료이고 개방적입니다. 일반적인 임베디드 기반 컴파일러(특히 rust, llvm, gcc)에서 지원됩니다. RISC-V의 공개 라이선스 덕분에 RISC-V는 새로운 확장, 변형 및 구현을 포함한 연구 프로젝트의 인기 있는 대상입니다. 이러한 특성 덕분에 RISC-V는 오늘날 범용 ZK 증명에 사용되는 사실상의 표준 ISA가 되었습니다. 하지만 RISC-V는 ZK 증명에 효율적으로 설계되지 않았다는 점을 기억하는 것이 중요합니다. RISC-V는 소형 하드웨어 마이크로프로세서에서 구현되도록 설계되었습니다.

WASM은 Web Assembly의 약자입니다. 원래는 고성능 자바스크립트 대안으로 웹 브라우저 내에서 소프트웨어로 구현된 가상 머신으로 사용되도록 설계되었습니다. WebAssembly의 설계 목표는 네이티브에 가까운 속도와 안전하고 캡슐화된 환경에서 크로스 플랫폼 실행을 허용하는 것입니다. 기본 하드웨어의 세부 사항에 대한 가정은 거의 없습니다.

일반적으로 WASM 코드는 하드웨어에서 있는 그대로 실행되거나 해석되지 않습니다. 대신 대상 시스템의 하드웨어가 지원하는 ISA로 추가 컴파일(트랜스파일)되며, 이 두 번째 컴파일을 통해 해당 시스템의 하드웨어 리소스를 적절히 활용합니다. WASM 설계 목표는 소스 코드→WASM→네이티브로 이동하는 오버헤드를 소스 코드→네이티브로 직접 이동하는 오버헤드보다 최소화하는 것입니다. WASM은 대상 시스템 하드웨어의 세부 사항을 파악하는 다음 컴파일 단계에서 모든 하드웨어별 최적화 기회를 활용하려고 합니다.

WASM은 연산 및 함수에 값을 전달하기 위해 스택을 사용하지만, 실제로는 스택 기반 머신이 아닙니다. WASM은 여러 표현식과 관련된 데이터를 저장하는 데 사용되는 로컬 변수에도 접근할 수 있기 때문입니다. 로컬 변수를 사용하면 레지스터 수와 같은 하드웨어 세부 정보를 변경하지 않고도 레지스터 기반 머신으로 쉽게 컴파일할 수 있습니다.

효율적인 SNARK-Provability

위에서 언급했듯이, Vitalik이 L1 이더리움의 dISA로 RISC-V를 사용해야 한다고 주장하는 이유는 RISC-V를 ISA로 사용하는 효율적인 ZK-VM(예: Succinct SP1, RISC0 이더리움 클래식(ETC))의 가용성에 주로 기인합니다. 효율적인 SNARK 증명을 직접 지원하는 dISA를 사용하는 것은 자연스러운 매력입니다. 이러한 증명을 사용할 수 있다면 해당 dISA에 구현된 스마트 계약을 ZK 증명하는 자연스러운 경로가 제공되기 때문입니다. 하지만 지금은 두 가지 점에 집중하겠습니다.

  1. RISC-V 기반 ZK-VM은 장기적으로 최고의 선택이 될 수 있다는 보장이 없습니다.

  2. ZK-VM pISA에 대한 장기적 솔루션이 어떤 모습인지에 관계없이 dISA가 필요한 pISA로 효율적으로 컴파일될 수 있는 한 dISA가 pISA와 일치할 필요는 없습니다.

RISC-V와 ZK-VM의 미래

현세대 RISC-V 기반 ZK-VM은 상당히 인상적이지만, RISC-V가 장기적으로도 계속 승자가 될지는 불확실합니다. RISC-V는 제한된 명령어 집합과 같은 ZK 증명에 여러 장점을 제공하지만, 결국 RISC-V는 하드웨어 관련 지표를 최적화하도록 설계되었습니다. 이러한 문제를 중심으로 최적화된 아키텍처가 SNARK 증명에도 최선 이라고 기대할 이유는 없습니다. 특히 장기적으로는 더욱 그렇습니다.

RISC-V가 오늘날 승자처럼 보일 수 있지만, 효율적인 ZK 증명을 지원하는 ISA 측면에서 RISC-V 기반 ZK-VM이 "역사의 종말"을 의미하는지는 불분명합니다. ZK-VM 분야가 얼마나 젊은지 염두에 두어야 합니다. RISC Zero는 2022년에야 첫 번째 프로덕션 등급 zkVM을 출시했고 , 상업적으로 실행 가능한 실시간 메인넷 이더리움 가상 머신(EVM) 증명은 올해 초에야 Succinct에서 달성되었습니다 .

ZK-VM 분야는 계속해서 상당한 변화를 겪고 있습니다. 예를 들어, 최근 여러 ZK-VM이 32 비트(Bit) 버전의 RISC-V에서 64 비트(Bit) 버전의 RISC-V로 전환되었습니다. 1년 전에 32 비트(Bit) RISC-V를 L1에 포함시켰다고 가정해 보겠습니다. 이 경우 이더리움의 dISA를 다시 변경해야 하거나, (더 가능성이 높은) 32 비트(Bit) 버전의 포함으로 인해 장점에도 불구하고 64 비트(Bit) RISC-V 기반 ZK-VM의 개발 및 도입이 저해될 것입니다. 이는 상위 호환성을 유지하는 것이 얼마나 중요한지, 그리고 WASM이 이식성을 어떻게 지원할 것인지를 보여주는 한 예일 뿐입니다.

WASM과 같이 RISC-V가 아닌 ISA를 pISA로 사용하면 ZK 검증 측면에서 RISC-V보다 고유한 이점을 가질 수 있다는 점을 진지하게 받아들여야 할 이유도 있습니다. 예를 들어, Ligero의 Ligetron(WASM 기반 ZK-VM) 은 WASM의 구조적 특성을 활용하여 메모리 효율성을 높일 수 있습니다 . 하지만 이러한 구조는 RISC-V와 같은 저수준 하드웨어 최적화 ISA로 변환할 때 변환 과정에서 손실됩니다. 이는 RISC-V 기반 ZK-VM이 이러한 유망한 기술을 활용하지 못할 수 있음을 시사합니다.

dISA는 pISA로 컴파일될 수 있습니다

여기서 더 중요한 점은 L1 이더리움용 dISA를 선택할 때 dISA를 직접 지원하는 ZK-VM이 있는지 여부는 크게 신경 쓸 필요가 없다는 것 입니다. 결국 이는 해당 dISA에 표현된 스마트 계약에 대한 SNARK 증명을 얻는 유일한 방법이기 때문입니다. 또 다른 방법은 dISA를 효율적인 SNARK 증명 생성을 지원 하는 다른 ISA(즉, dISA와 다른 pISA)로 컴파일(또는 트랜스파일)하는 것입니다.

이는 단지 이론적인 가능성이 아니라 Offchain Labs가 Succinct와의 협업의 일환으로 적극적으로 구축하고 있는 것입니다.WASM 코드를 RISC-V 코드로 컴파일함으로써 핵심 아비트럼(Arbitrum) STF뿐만 아니라 WASM으로 작성된 사용자 제공 Stylus 스마트 계약(dISA)도 ZK 증명할 수 있습니다.아직 프로토타입 단계이지만, dISA에서 pISA로 계약 컴파일을 증명하고 pISA에서 실행을 증명하는 것을 포함하여 가능하다는 것을 알 수 있을 정도로 위험을 줄였습니다.다시 말해서, RISC-V 기반 ZK-VM을 백엔드로 사용하여 WASM을 dISA로 사용하는 블록체인(아비트럼(Arbitrum))에서 오늘 실제 블록을 ZK 증명할 수 있습니다 . 이는 dISA와 pISA를 구분하는 우리의 입장, 이들이 동일한 ISA일 필요는 없다는 우리의 주장을 구체적으로 보여주며, 블록체인을 위한 SNARK 증명 시스템 설계에 실질적인 영향을 미칩니다.

시스템의 다양한 상위 및 하위 레벨 부분 사이의 인터페이스로 사용되는 단일 중간 추상화 계층을 중심으로 표준화한다는 아이디어는 때때로 *모래시계 모델* 이라고 합니다.아마도 이러한 아키텍처의 가장 좋은 예는 인터넷 네트워킹 스택일 것입니다.다양한 애플리케이션이 인터넷 위에 구축되어 다양한 전송 프로토콜(TCP, UDP 이더리움 클래식(ETC))을 사용하며, 이 모든 것은 궁극적으로 인터넷 프로토콜(IP)의 패킷으로 표현됩니다.그러면 이러한 패킷은 이더넷과 같은 다양한 물리적 링크(Chainlink) 프로토콜을 통해 전송됩니다.애플리케이션은 링크(Chainlink) 프로토콜의 세부 사항을 알 필요가 없고, 링크(Chainlink) 프로토콜은 애플리케이션의 세부 사항을 알 필요가 없습니다.이 관계는 IP에 의해 중개됩니다.

WASM은 스마트 컨트랙트를 위한 일종의 인터넷 프로토콜(IP)이 될 수 있다고 생각합니다. 스마트 컨트랙트가 작성되는 다양한 소스 언어와 스마트 컨트랙트를 실행하고 증명하는 데 사용되는 다양한 백엔드 사이의 이상적인 중간 계층 역할을 할 수 있습니다. dISA로서 WASM은 이러한 문제를 분리함으로써 스마트 컨트랙트 프로그래밍, 증명, 그리고 실행이 서로를 제약하는 것이 아니라 자유롭게 발전할 수 있도록 지원합니다.

효율적인 실행 가능성

현재 ZK 증명에 가장 적합한 ISA(혹은 그렇게 여겨지는 ISA)를 기준으로 dISA를 선택하는 것은 잘못된 지표를 최적화하는 것일 수 있습니다. 증명이 전부는 아니기 때문입니다. 오늘날 노드는 모든 필수 상태 및 온체인 이벤트를 처리하기 위해 체인을 실행합니다. 다른 방식(예: ZK 증명 및 상태 업데이트)으로 체인을 처리할 수 있다고 하더라도, 체인 사용자는 온체인 트랜잭션보다 훨씬 많은 eth_call 및 gas 추정값을 발행합니다. 따라서 사용자의 eth_call 및 gas 추정 요청에 응답하는 것은 RPC 노드의 작업에서 중요한 부분을 차지하며, (정의상) 이더리움의 dISA에 표현된 스마트 계약을 실행하는 것을 요구합니다. 이러한 워크플로는 수평적으로 확장 가능하지만, 이러한 요청에 응답하는 비용은 여전히 ​​누군가 부담해야 하며, 이는 이더리움 운영의 전체 비용의 일부로 간주되어야 합니다.

물론 ZK 증명의 성능은 중요합니다. 그러나 이더리움의 미디엄(Medium) 적인 병목 현상으로 증명 비용이 발생할 것으로 예상하지 않습니다. 현재 가스 한도에서 실시간 증명 비용은 블록 당 중간값 약 $0.025에 불과합니다. L1이 블록 당 여러 ZK 증명을 요구하더라도 이 비용은 빌더가 블록 에서 받을 수 있는 가스 요금 및 MEV에 비하면 미미할 것입니다. ZK 증명을 생성하는 비용은 몇 년 동안 엄청나게 감소했으며 지속적인 개선을 위한 주요 장애물은 예상되지 않습니다. 다시 말해, 증명자 효율성만을 위해 최적화하는 것은 역효과를 낳을 가능성이 높습니다. 실행은 이더리움 운영에 있어 또 다른 중요한 비용이며 무시해서는 안 됩니다.

RISC-V는 하드웨어에서 효율적으로 실행되도록 설계되었습니다. 그러나 실제로 RISC-V를 지원하는 CPU에서 실행되는 이더리움 노드는 매우 드뭅니다. 이러한 비RISC-V 노드가 RISC-V로 표현된 스마트 계약을 실행하려면 RISC-V를 에뮬레이션하거나, 해당 노드의 네이티브 eISA로 컴파일해야 합니다.

WASM과 같은 휴대용 ISA를 사용하여 실행과 검증을 분리하면 두 가지 장점을 모두 얻을 수 있습니다. 아비트럼(Arbitrum) 에서 제공하는 방식이 바로 그것입니다. 배포된 WASM은 네이티브 ARM 또는 AMD 코드로 실행되므로, Stylus 컴퓨팅은 실행에 고사양 CPU가 필요 없이 매우 저렴하게 구현될 수 있습니다.

기존 툴링과의 호환성

RISC-V의 진정한 강점 중 하나는 주류 컴파일러 툴체인의 강력한 지원입니다. LLVM 및 GCC와 같은 주요 컴파일러는 성숙한 RISC-V 백엔드를 갖추고 있어 개발자는 C, C++, Rust와 같은 언어로 작성된 코드를 RISC-V로 직접 컴파일할 수 있습니다. 이러한 광범위한 컴파일러 지원은 ZK-VM 프로젝트에서 RISC-V를 빠르게 도입하는 데 중요한 요인이었습니다. 모든 것을 처음부터 구축하는 대신, 기존의 검증된 컴파일 인프라를 활용할 수 있었기 때문입니다.

하지만 WASM은 WASM 못지않게 강력한(혹은 더 강력할 수도 있는) 컴파일러 지원을 제공합니다. RISC-V를 지원하는 주요 컴파일러 툴체인 역시 성숙하고 잘 관리된 WASM 백엔드를 갖추고 있습니다. 특히 LLVM은 활발하게 유지 관리 및 최적화되는 탁월한 WASM 지원을 제공합니다. 기존 컴파일러 인프라 외에도 WASM은 거의 모든 최신 웹 브라우저와 JavaScript 런타임에서 기본적으로 지원되며, 수십억 개의 배포된 실행 환경을 지원합니다. 이러한 보편성은 WASM 툴링이 다른 ISA와는 비교할 수 없을 정도로 대규모로 테스트, 강화 및 최적화되었음을 의미합니다. 블록체인 개발자에게는 이는 수많은 애플리케이션에서 수년간의 프로덕션 사용을 통해 개선된 디버거, 프로파일러, 옵티마이저 및 기타 개발 도구로 구성된 풍부한 생태계에 대한 액세스를 의미합니다.

성숙한 컴파일러 생태계는 분명 바람직한 기능이지만, 필수적인 것은 아닐 수 있습니다. 이더리움 커뮤니티가 이 기능을 다른 기능과 맞바꿀 의향이 있을 수 있습니다. 예를 들어, ZK에 최적화된 맞춤형 ISA를 선택하여 검증 시 더욱 향상된 성능을 제공할 수 있습니다. 하지만 이것이 핵심 논의의 핵심을 바꾸지는 않습니다. 좋은 dISA에 대해 우리가 제시한 기본적인 특성(미래 지향적, 안전성, 격리성, 계측 ​​가능성, 다양한 하드웨어에서의 효율적인 실행 가능성)은 여전히 ​​필수 기준입니다. WASM은 이러한 측면에서 여전히 매우 높은 점수를 받을 뿐만 아니라, 성숙한 툴링의 추가적인 이점을 제공할 것입니다.

미래 지향적 설계 및 안전

이더리움의 dISA를 대체하는 데 필요한 상당한 노력을 감안할 때, 모든 전환은 미래를 대비해야 합니다. 즉, 장기적인 지속 가능성을 염두에 두고 이루어져야 합니다.

미래 보장의 첫 번째 단계는 앞서 논의되었으며, pISA와 dISA를 구분함으로써 달성됩니다. 우리는 여러 경쟁 증명자가 서로 다른 속성과 설계 옵션을 가진 여러 개의 경쟁 pISA를 사용하지만, 모두 동일한 단일 표준 dISA를 증명하는 이더리움의 미래를 구상합니다.

WASM은 구조화되고 검증되었기 때문에 훨씬 더 다양한 미래 시나리오를 지원합니다. 예를 들어, 한 pISA가 " uint645 곱하기"라는 동작을 위한 특수 회로를 제공하고, "상수에 곱하기"가 상수 5 사용하는 코드의 모든 부분을 수정하여 이 새로운 특정 명령어를 호출하려고 한다고 가정해 보겠습니다.

RISC-V(또는 대부분의 다른 머신 지향 ISA)와 같은 dISA를 사용하여 스마트 계약으로 배포된 임의 코드에 대해 이와 같은 작업을 수행하는 것은 상당히 어려울 수 있습니다. RISC-V에서 점프는 정확한 목적지 또는 코드 내 오프셋(현재 프로그램 카운터 기준)으로 이루어집니다. 어떤 경우든 점프는 실행 중인 프로그램의 정확한 인코딩과 코드 크기에 따라 달라집니다. 정적 도구가 함수의 어떤 부분을 인코딩 길이가 정확히 같지 않은 것으로 대체하려면 코드에서 모든 관련 점프를 찾아 점프 오프셋을 수정해야 합니다. 실제로 RISC-V 점프 목적지가 임의 계산의 결과일 수 있기 때문에 상황은 더욱 심각합니다.

이제 WASM에서 동일한 시나리오를 고려해 보겠습니다. 여기에는 임의의 jump 이나 goto 문이 없고, 조건문, 루프, 함수만 있습니다. 모든 jump는 인덱스로 함수를 호출하거나, if-else와 같은 변형을 선택하거나, 루프를 돌거나, 루프에서 빠져나오는 것입니다. 인코딩이나 코드 크기가 변경되어도 jump는 변경되지 않습니다.

또한 WASM 코드는 검증 될 수 있습니다. 유효한 WASM은 다음과 같은 여러 가지 바람직한 특성을 갖습니다.

  • 호출될 때 스택 맨 위에 있는 인수만 스택에서 읽을 수 있으며, 필요한 인수의 개수만큼만 읽을 수 있습니다.

  • 선언되지 않은 지역 변수나 전역 변수에는 접근할 수 없습니다. 마찬가지로 다른 함수의 지역 변수에도 접근할 수 없습니다.

  • 이는 유형이 안전하므로 각 함수의 입력 및 출력 유형이 예상과 일치합니다.

결정적으로, 검증(이러한 속성 확인)은 검증 대상 WASM 코드의 길이에 비례하는 시간 내에 수행될 수 있습니다. 이는 WASM의 설계 덕분에 가능한데, RISCV 머신 코드(또는 다른 기존 ISA의 머신 코드)에서 이러한 속성을 자동화되고 효율적인 방식으로 확인하는 것은 매우 어려울 것입니다.

WASM 코드의 구조와 유효성을 결합하면 코드 분석 및 수정이 자유도가 매우 높습니다. 위 예에서 WASM 코드에서 i64.const 5 명령어 다음에 i64.mult 명령어가 나오는 부분을 찾아 두 명령어를 삭제하고 대신 새로운 특수 명령어를 사용할 수 있습니다. 새 명령어는 이전 두 명령어보다 짧거나 길 수 있으며, 주변 코드에 영향을 주지 않고 특수 함수를 호출할 수도 있습니다.

블록체인 환경에서 구조화된 ISA의 가치를 보여주기 위해 아비트럼(Arbitrum) WASM의 구조화된 특성을 활용하는 몇 가지 방법을 살펴보겠습니다.

  • 낙관적 프레임워크인 Arbitrator는 WAVM을 pISA로 사용합니다(네, 낙관적 증명자도 pISA를 가질 수 있습니다!). WAVM은 WASM에 매우 기반을 두고 있습니다(여기서는 크게 중요하지 않은 몇 가지 차이점이 있습니다). Arbitrator는 WASM 코드를 입력으로 받고 여러 변환을 적용합니다. WAVM은 WASM과 다르게 명령어를 인코딩하며, 일부 WASM 명령어는 여러 WAVM 연산 코드로 구현됩니다. 그러나 WASM은 코드의 위치, 인코딩 또는 크기에 의존하지 않기 때문에 WASM에서 WAVM으로의 변환은 간단하고 빠르며 결정적입니다.

  • WASM의 구조화된 특성은 가스 회계를 통해 사용자가 제공한 WASM 스마트 계약(Stylus)을 안전하게 계측하여 체인에서 안전하게 실행할 수 있도록 하는 방법의 핵심 부분입니다(기존 툴과의 호환성 참조).

WASM의 미래 경쟁력을 강화하는 동일한 속성은 사람이든 기계든 감사를 더 쉽게 만들어줍니다. WASM의 구조와 유효성 덕분에 예를 들어 어떤 입력도 실행 가능한 코드로 변환될 수 없으며, 로컬 변수를 읽는 코드는 메모리나 다른 함수에서 읽도록 만들 수 없습니다. 이를 통해 스마트 계약과 시스템 전체의 안전성을 높이는 동시에 위에서 설명한 ZK(지식 증명) 분야의 미래 혁신을 활용할 수 있습니다.

결론

이 문서에서는 블록체인이 다양한 목적(증명, 전달, 실행)을 위해 여러 ISA를 사용할 수 있다는 개념을 제시합니다. Vitalik과 다른 사람들이 RISC-V를 L1 Ethereum의 새로운 ISA로 공식화하는 것에 대해 논의할 때, 그들은 (저희의 표현을 빌리자면) 공통 pISA로 사용되는 RISC-V가 dISA에도 이상적인 후보라고 주장합니다. 그러나 앞서 논의했듯이 pISA와 dISA가 반드시 동일해야 할 이유는 없습니다 . 우리는 이것이 논의의 틀을 어떻게 크게 바꿔놓을지 논의했습니다.

ISA 증명을 위해 ZK-VM의 영역은 빠르게 발전하고 있으며, L1 이더리움에서 증명을 수행하는 데 어떤 pISA가 가장 적합한지 판단하기에는 아직 이르다고 할 수 있습니다. 이더리움 커뮤니티는 여러 pISA와 호환되는 유연한 dISA를 선택해야 하며, WASM은 이에 적합한 후보입니다.

우리는 위에서 다양한 측면에서 WASM이 스마트 계약 제공에 RISC-V보다 더 적합하다고 믿고 주장해 왔습니다. WASM은 강력한 안전성, 격리성 및 계측 기능, 강력한 컴파일러 및 툴체인 지원, 효율적인 실행( 검증)을 제공합니다. 그리고 무엇보다도, 불확실하고 빠르게 변화하는 블록체인 실행 및 검증 환경에서 미래를 대비할 수 있을 만큼 유연합니다. WASM은 SNARK 검증에 결코 걸림돌이 되지 않을 것입니다.

커뮤니티가 L1 실행 계층의 발전에 열정적으로 관심을 가져주셔서 매우 기쁩니다. RISC-V 지지자들과 마찬가지로, 이더리움이 새로운 종류의 신뢰 관계를 구축하고 더욱 접근하기 쉬운 새로운 금융 서브 스트레이트(Substrate) 구축한다는 약속을 지키려면, 이더리움의 유일한 지원 ISA인 이더리움 가상 머신(EVM) 넘어서야 한다고 생각합니다. 이더리움 발전의 이 중요한 시점에, 여기에서 제시된 주장들이 더욱 미래 지향적인 의사 결정으로 이어지고, 나아가 향후 수년간 더 나은 L1 실행 계층을 구축하는 데 도움이 되기를 바랍니다.


출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
즐겨찾기에 추가
코멘트