Tóm tắt bài viết này
Tài liệu này thể hiện quan điểm của Offchain Labs. Tài liệu được viết bởi Mario Alvarez, Matteo Campanelli, Tsahi Zidenberg và Daniel Lumi. Chúng tôi cung cấp hướng dẫn này với cam kết vì sự thành công của cộng đồng Ethereum.
Bối cảnh
Gần đây đã có những thảo luận về việc thay thế Máy ảo Ethereum (EVM) bằng RISC-V làm Kiến trúc Tập lệnh (ISA) cho L1 Ethereum . Bài viết này của Vitalik trên Hội những người am hiểu Ethereum tóm tắt nhiều lập luận ủng hộ việc chuyển đổi sang RISC-V .
Vitalik lập luận rằng việc thay thế ISA hiện tại sẽ cải thiện đáng kể hai yếu tố hạn chế chính đối với khả năng mở rộng Ethereum L1, cụ thể là:
Duy trì sản xuất Block là một thị trường cạnh tranh
Hiệu suất chứng minh ZK-EVM
Tóm tắt trường hợp của chúng tôi
Chúng tôi ủng hộ những mục tiêu này nhưng đặt câu hỏi về giả định ngầm định của Vitalik rằng một ISA có thể phục vụ tối ưu cho cả việc chứng minh ZK và triển khai hợp đồng thông minh. Vì việc tích hợp ISA trên L1 chủ yếu ảnh hưởng đến cách thức triển khai hợp đồng thông minh lên chuỗi, chúng ta nên đánh giá ISA dựa trên tính phù hợp của chúng cho việc phân phối và lưu trữ chung trên chuỗi, chứ không chỉ riêng việc chứng minh.
Chúng tôi phân biệt một số vai trò khác nhau mà một ISA có thể đảm nhiệm trong bối cảnh blockchain. Cụ thể, chúng tôi thảo luận về khái niệm ISA phân phối (dISA) và các đặc tính giúp ISA hữu ích như một ISA phân phối. Dựa trên những đặc tính này, chúng tôi so sánh RISC-V và WASM về tính phù hợp của chúng với vai trò là một dISA cho Ethereum, và kết luận rằng WASM là lựa chọn tốt hơn.
RISC-V, với tư cách là một tiêu chuẩn mở cho phần cứng, là một công nghệ ấn tượng và có sức ảnh hưởng lớn. RISC-V được thiết kế để đơn giản hóa và dễ dàng triển khai trên phần cứng. Tuy nhiên, không có lý do gì để kỳ vọng rằng ZK-VM dựa trên RISC-V sẽ là điểm đến cuối cùng trong quá trình phát triển của ZK-VM; nhiều khả năng, chúng chỉ là một bước tiến nhỏ trên chặng đường này.
WASM được thiết kế như một lớp trừu tượng độc lập với phần cứng , có thể chạy nhanh gần bằng mã nguồn gốc trên tất cả các phần cứng phổ biến. Là một ISA, nó cung cấp các đặc tính như an toàn kiểu và thân thiện với công cụ, những yếu tố rất được ưa chuộng trong môi trường Ethereum. Việc lựa chọn WASM sẽ không ảnh hưởng đến khả năng mở rộng hiện tại và giúp Ethereum linh hoạt hơn trong tương lai.
Tổ chức: Phần còn lại của tài liệu này hoạt động như sau. Trước tiên, chúng tôi sẽ làm rõ ý nghĩa của "ISA L1" và xây dựng khuôn khổ để đánh giá các ISA khác nhau làm định dạng phân phối/thực thi/chứng minh cho hợp đồng thông minh. Sau đó, chúng tôi sẽ cung cấp một số thông tin cơ bản về RISC-V và WASM trước khi so sánh chúng một cách có hệ thống trên một số khía cạnh chính: khả năng chứng minh SNARK, khả năng thực thi, khả năng tương thích công cụ và—có lẽ quan trọng nhất—khả năng chống lỗi trong tương lai. Cuối cùng, chúng tôi sẽ kết thúc bằng cách tổng hợp những so sánh này và giải thích lý do tại sao chúng tôi tin rằng WASM là lựa chọn tốt hơn.
Giới thiệu
Chúng tôi muốn nói gì khi nhắc đến “L1 ISA”?
Khi nói về việc sử dụng WASM (hoặc RISC-V) như một "ISA cho Ethereum", chúng ta cần phải hiểu chính xác ý mình muốn nói. Một lớp thực thi blockchain sử dụng các tập lệnh theo nhiều cách khác nhau và có thể sử dụng các ISA khác nhau cho các mục đích khác nhau. Ví dụ:
Khi các nút thực thi hàm chuyển đổi trạng thái (STF) của lớp thực thi blockchain, thực chất chúng đang chạy một chuỗi các lệnh mã máy hoặc mã byte để triển khai STF đó. Chúng ta sẽ gọi ISA được sử dụng khi thực thi logic chuyển đổi trạng thái của chuỗi là ISA thực thi *,* hoặc eISA . (Đây là loại ISA ít liên quan nhất cho mục đích thảo luận này).
Đối với các blockchain hỗ trợ chứng minh SNARK bằng ZK-VM, ZK-VM đó sẽ hoạt động trên một ISA cụ thể. Chúng tôi sẽ gọi đây là ISA chứng minh hoặc pISA .
Các blockchain hỗ trợ hợp đồng thông minh do người dùng tải lên sẽ yêu cầu các hợp đồng đó phải được tải lên theo một định dạng cụ thể. Thông thường, định dạng này ở dạng mã bytecode cho một số loại máy ảo (ví dụ: Máy ảo Ethereum (EVM) hoặc MoveVM). Khi một blockchain sử dụng ISA theo cách này (như một định dạng để phân phối và triển khai mã hợp đồng thông minh), chúng ta sẽ gọi đây là ISA phân phối hoặc dISA .
Lưu ý rằng, trong bài đăng của Vitalik được liên kết ở trên, mặc dù hầu hết các lập luận xung quanh ưu điểm của RISC-V đều liên quan đến việc chứng minh ZK (tức là tính hữu ích của nó như một pISA), nhưng đề xuất thực tế là sử dụng RISC-V như một dISA (tức là hợp đồng thông minh sẽ được thể hiện bằng RISC-V). Chúng ta sẽ thảo luận chi tiết hơn về vấn đề này sau.
Trong tài liệu này, chúng tôi sẽ đưa ra lập luận cụ thể hơn rằng RISC-V không phải là lựa chọn tốt cho ISA phân phối cho Ethereum, và WASM phù hợp hơn nhiều cho mục đích này (tức là một ISA được sử dụng để triển khai hợp đồng thông minh). Trong phần còn lại của bài viết, khi sử dụng thuật ngữ ISA , chúng tôi sẽ cố gắng nêu rõ vai trò của ISA mà chúng tôi đang đề cập (tức là eISA so với pISA so với dISA).
Những phẩm chất mong muốn của một dISA L1
Để làm nền tảng cho cuộc thảo luận, chúng tôi sẽ trình bày một khuôn khổ để suy nghĩ về những phẩm chất mà chúng tôi mong muốn một dISA lý tưởng cho L1 Ethereum cần có. Sau đó, chúng tôi sẽ so sánh hiệu suất của RISC-V và WASM theo một số khía cạnh này; bằng cách này, chúng tôi hy vọng sẽ chứng minh cụ thể lý do tại sao WASM mang lại sự cân bằng tốt hơn so với RISC-V cho mục đích này.
Khả năng chứng minh SNARK hiệu quả
SNARK sẽ đóng vai trò quan trọng trong tương lai của Ethereum, vì vậy bất kỳ dISA L1 nào cũng phải hỗ trợ việc tạo bằng chứng hiệu quả. Tuy nhiên, điều này không có nghĩa là dISA đó phải giống với ISA được sử dụng bởi các máy ảo ZK. Bối cảnh chứng minh ZK đang thay đổi nhanh chóng—RISC-V hiện đang được sử dụng rộng rãi, nhưng không có gì đảm bảo nó sẽ vẫn là lựa chọn tốt nhất về lâu dài; trong khi đó, các ISA mới hơn dựa trên WASM và được tối ưu hóa cho ZK đã cho thấy nhiều triển vọng. Chiến lược tốt hơn là chọn một dISA có thể được biên dịch một cách đáng tin cậy và hiệu quả vào bất kỳ ISA chứng minh nào trở nên tối ưu trong tương lai.
Khả năng thực thi hiệu quả
Ngay cả trong tương lai, khi Máy ảo Ethereum (EVM) có thể được chứng minh bằng SNARK, nhiều nút, bao gồm cả các nút có tài nguyên phần cứng hạn chế, vẫn sẽ muốn thực thi toàn bộ blockchain hoặc một số phần cụ thể của hợp đồng. Do đó, bất kỳ dISA mới nào vẫn nên cho phép tốc độ thực thi tốt trên phần cứng phổ biến; tức là phần cứng không quá chuyên biệt hoặc đắt đỏ, vì mục đích phi tập trung.
Khả năng tương thích với các công cụ hiện có
Việc xây dựng một trình biên dịch tối ưu hóa hiệu quả là một nỗ lực đáng kể—đặc biệt là khi xây dựng một trình biên dịch mà chúng ta phải tin tưởng sẽ không đưa lỗi vào hợp đồng thông minh. Do đó, một lựa chọn dISA tốt cho L1 Ethereum sẽ cần một hệ sinh thái trình biên dịch và công cụ liên quan hiện có, đáng tin cậy mà nó có thể sử dụng.
Khả năng thích ứng lâu dài và bền vững trong tương lai
Việc thay thế (hoặc thậm chí thay đổi đáng kể!) dISA cho L1 Ethereum không phải là một nhiệm vụ dễ dàng. Đã có nhiều nỗ lực được thực hiện trước đây, bao gồm cả EOF gần đây nhất. Mặc dù những nỗ lực này không thành công, nhưng lượng thời gian và công sức đầu tư vào chúng cho thấy quy mô nỗ lực cần thiết để chuyển đổi từ Máy ảo Ethereum (EVM) sang bất kỳ dISA nào khác. Nếu cộng đồng sẽ dành nhiều công sức để chuyển đổi sang một dISA mới, chúng tôi muốn chắc chắn rằng mục tiêu mới sẽ không chỉ là một lựa chọn tốt hiện tại mà còn duy trì như vậy trong nhiều năm tới — nếu không, chi phí chuyển đổi khó có thể xứng đáng.
Một số đặc tính khác đáng được đề cập. Mặc dù chúng tôi sẽ không tập trung nhiều vào chúng trong tài liệu này, nhưng chúng cũng rất quan trọng và đại diện cho những lĩnh vực mà WASM có lợi thế hơn RISC-V:
Khả năng đọc
Khả năng đọc không phải là mối quan tâm của hầu hết các nhà thiết kế ISA. Tuy nhiên, nó nên là một vấn đề đối với một dISA blockchain. Các kỹ sư blockchain đọc và thao tác mã ISA đã biên dịch nhiều hơn hầu hết các kỹ sư phần mềm, cả về vấn đề bảo mật lẫn tối ưu hóa gas . Nhiều hợp đồng quan trọng hiện nay được viết hoặc xác minh trực tiếp trong Máy ảo Ethereum (EVM). Nhờ luồng điều khiển có cấu trúc và việc sử dụng các hàm cục bộ theo từng hàm, WASM dễ hiểu và dễ suy luận hơn so với các ISA dựa trên phần cứng.
An toàn và cách ly
Các L1 công khai là một môi trường có tính đối kháng cao. Nhìn chung, các tác giả hợp đồng thông minh không cần phải tin tưởng lẫn nhau, các nhà vận hành nút không cần phải tin tưởng các tác giả hợp đồng thông minh, và cả hai bên đều không cần phải tin tưởng dữ liệu đầu vào của nhau. Việc tách biệt giữa các hợp đồng và tránh nhiễu giữa dữ liệu và mã sẽ dễ dàng hơn nhiều khi làm việc với một dISA có tích hợp hỗ trợ cho phép cô lập. WASM có khả năng này theo thiết kế; RISC-V thì không. ( Trang này trong tài liệu WASM có thêm thông tin về cách WASM tích hợp hỗ trợ cho tính năng an toàn và cô lập.)
Một số thông tin cơ bản về RISC-V và WASM
RISC là viết tắt của Reduced Instruction Set Computer (Máy tính với tập lệnh rút gọn). RISC-V là một ISA (Tổ chức lập trình ứng dụng) được thiết kế cho các bộ vi xử lý phần cứng đơn giản. RISC-V rất tối giản, có số lượng mã lệnh thấp, miễn phí và mở. Nó được hỗ trợ bởi các trình biên dịch nhúng phổ biến (đáng chú ý nhất là: rust, llvm, gcc). Nhờ bản quyền mở của RISC-V, RISC-V là mục tiêu phổ biến cho các dự án nghiên cứu, bao gồm các phần mở rộng, biến thể và triển khai mới. Những đặc tính này đã giúp RISC-V trở thành ISA tiêu chuẩn thực tế được sử dụng cho việc chứng minh ZK đa năng ngày nay. Tuy nhiên, điều quan trọng cần nhớ là RISC-V chưa bao giờ được thiết kế để hiệu quả cho việc chứng minh ZK. Nó được thiết kế để được triển khai bởi các bộ vi xử lý phần cứng nhỏ.
WASM là viết tắt của Web ASseMbly. Ban đầu, nó được thiết kế để sử dụng như một máy ảo được triển khai bằng phần mềm bên trong trình duyệt web, như một giải pháp thay thế javascript hiệu suất cao. Mục tiêu thiết kế của WebAssembly là cho phép thực thi đa nền tảng với tốc độ gần như nguyên bản và trong một môi trường an toàn, được đóng gói. Nó ít đưa ra giả định về các đặc điểm cụ thể của phần cứng cơ bản.
Thông thường, mã WASM sẽ không được thực thi hoặc diễn giải nguyên trạng trên phần cứng. Thay vào đó, nó sẽ được biên dịch (transpiled) thêm sang ISA được phần cứng của máy đích hỗ trợ, và lần biên dịch thứ hai này sẽ đảm bảo nó sử dụng tài nguyên phần cứng của máy một cách hợp lý. Là một mục tiêu thiết kế WASM, chi phí phát sinh khi chuyển từ mã nguồn → WASM → mã nguồn gốc sang mã nguồn gốc trực tiếp hơn → mã nguồn gốc nên được giảm thiểu. WASM cố gắng duy trì tất cả các cơ hội tối ưu hóa dành riêng cho phần cứng cho các giai đoạn biên dịch tiếp theo, vốn nhận thức được các đặc điểm cụ thể của phần cứng hệ thống đích.
WASM sử dụng ngăn xếp để truyền giá trị vào và ra khỏi các phép toán và hàm, nhưng nó không thực sự là một máy tính dựa trên ngăn xếp. Điều này là do WASM cũng có thể truy cập các biến cục bộ, được sử dụng trong WASM để lưu trữ dữ liệu liên quan đến nhiều hơn một biểu thức. Biến cục bộ cho phép biên dịch dễ dàng sang các máy tính dựa trên thanh ghi, mà không cần cam kết các chi tiết phần cứng như số lượng thanh ghi.
Khả năng chứng minh SNARK hiệu quả
Như đã đề cập ở trên, lập luận của Vitalik về việc sử dụng RISC-V làm dISA cho L1 Ethereum chủ yếu dựa trên sự sẵn có của các máy ảo ZK hiệu quả sử dụng RISC-V làm ISA (ví dụ: Succinct SP1, RISC0, ETC). Việc sử dụng một dISA hỗ trợ trực tiếp các bằng chứng SNARK hiệu quả là một lợi thế tự nhiên, vì sự sẵn có của các bằng chứng như vậy cung cấp một con đường tự nhiên để chứng minh ZK cho các hợp đồng thông minh được triển khai trong dISA đó. Tuy nhiên, hiện tại, chúng ta sẽ tập trung vào hai điểm:
ZK-VM dựa trên RISC-V không được đảm bảo là lựa chọn tốt nhất trong thời gian dài
Bất kể giải pháp dài hạn cho pISA ZK-VM trông như thế nào, chúng ta không cần dISA của mình phải khớp với pISA, miễn là dISA có thể được biên dịch hiệu quả thành pISA cần thiết
RISC-V và Tương lai của ZK-VM
Mặc dù thế hệ ZK-VM dựa trên RISC-V hiện tại khá ấn tượng, nhưng vẫn chưa rõ ràng liệu RISC-V có tiếp tục là người chiến thắng trong dài hạn hay không. RISC-V mang lại một số lợi thế cho việc chứng minh ZK, chẳng hạn như bộ lệnh hạn chế, nhưng xét cho cùng, RISC-V được thiết kế để tối ưu hóa các số liệu liên quan đến phần cứng. Không có lý do gì để kỳ vọng rằng một kiến trúc được tối ưu hóa xung quanh những vấn đề này cũng sẽ là tốt nhất cho việc chứng minh SNARK—đặc biệt là về lâu dài.
Mặc dù RISC-V có vẻ như là người chiến thắng hiện nay, nhưng vẫn chưa rõ liệu các máy ảo ZK dựa trên RISC-V có đại diện cho "sự kết thúc của lịch sử" hay không khi nói đến các ISA hỗ trợ chứng minh ZK hiệu quả. Cần lưu ý rằng lĩnh vực ZK-VM còn khá non trẻ: RISC Zero chỉ mới phát hành máy ảo zkVM đầu tiên vào năm 2022 , và chứng minh Máy ảo Ethereum (EVM) trên mạng chính thời gian thực khả thi về mặt thương mại chỉ mới được Succinct đạt được vào đầu năm nay .
Lĩnh vực ZK-VM tiếp tục trải qua những thay đổi đáng kể. Ví dụ, gần đây một số ZK-VM đã chuyển từ phiên bản RISC-V 32 Bit sang phiên bản RISC-V 64 Bit . Giả sử chúng ta đã tích hợp RISC-V 32 Bit trên L1 một năm trước—chúng ta sẽ rơi vào tình huống hoặc cần phải thay đổi dISA cho Ethereum một lần nữa , hoặc (nhiều khả năng hơn) việc tích hợp biến thể 32 Bit sẽ cản trở sự phát triển và áp dụng ZK-VM dựa trên RISC-V 64 Bit , bất chấp những ưu điểm của chúng. Đây chỉ là một ví dụ về tầm quan trọng của việc duy trì khả năng tương thích ngược và cách WASM hỗ trợ tính di động.
Cũng có những lý do để xem xét nghiêm túc ý tưởng rằng các ISA không phải RISC-V được sử dụng làm pISA, chẳng hạn như WASM, có thể có những lợi thế cố hữu so với RISC-V khi nói đến việc chứng minh ZK. Ví dụ, Ligetron của Ligero (một máy ảo ZK dựa trên WASM) có thể tận dụng bản chất có cấu trúc của WASM để tăng hiệu quả bộ nhớ . Kiểu cấu trúc này bị mất đi trong quá trình biên dịch khi chuyển đổi sang một ISA cấp thấp hơn và được tối ưu hóa phần cứng như RISC-V; điều này cho thấy một máy ảo ZK dựa trên RISC-V có thể không tận dụng được lớp kỹ thuật đầy hứa hẹn này.
dISA có thể được biên dịch thành pISA
Điểm quan trọng hơn ở đây là, khi chọn dISA cho L1 Ethereum, chúng ta không nên quá quan tâm đến việc có máy ảo ZK nào hỗ trợ trực tiếp dISA hay không . Xét cho cùng, đây chỉ là một cách để đạt được bằng chứng SNARK cho các hợp đồng thông minh được thể hiện trong dISA đó. Một cách tiếp cận khác là biên dịch (hoặc dịch mã) dISA thành một ISA khác có hỗ trợ tạo bằng chứng SNARK hiệu quả (tức là một pISA khác biệt với dISA).
Đây không chỉ là một khả năng lý thuyết, mà là điều mà Offchain Labs đang tích cực xây dựng như một phần trong sự hợp tác của chúng tôi với Succinct. Bằng cách biên dịch mã WASM thành mã RISC-V, chúng tôi có thể chứng minh ZK không chỉ Arbitrum STF cốt lõi mà còn cả các hợp đồng thông minh Stylus do người dùng cung cấp được viết bằng WASM (dưới dạng dISA). Mặc dù điều này vẫn đang ở giai đoạn nguyên mẫu, chúng tôi đã giảm thiểu rủi ro đến mức chúng tôi biết rằng điều đó là khả thi (bao gồm cả việc chứng minh việc biên dịch hợp đồng từ dISA sang pISA và chứng minh việc thực thi trên pISA). Nhắc lại, chúng tôi có thể chứng minh ZK các khối trong thế giới thực ngay hôm nay trong một blockchain (Arbitrum) sử dụng WASM làm dISA, bằng cách sử dụng ZK-VM dựa trên RISC-V làm phần phụ trợ . Điều này cho thấy cụ thể sự khác biệt của chúng tôi giữa dISA và pISA, sự khẳng định của chúng tôi rằng chúng không nhất thiết phải là cùng một ISA và có ý nghĩa hữu hình đối với việc thiết kế các hệ thống chứng minh SNARK cho blockchain.
Ý tưởng chuẩn hóa xung quanh một lớp trừu tượng trung gian duy nhất, được sử dụng làm giao diện giữa nhiều phần cấp cao và cấp thấp khác nhau của một hệ thống đôi khi được gọi là *mô hình đồng hồ cát *. Có lẽ ví dụ điển hình nhất về kiến trúc này là ngăn xếp mạng Internet: nhiều ứng dụng được xây dựng trên nền tảng Internet, sử dụng các giao thức truyền tải khác nhau (TCP, UDP, ETC), tất cả đều được thể hiện cuối cùng dưới dạng các gói tin trong Giao thức Internet (IP). Đổi lại, các gói tin này được gửi qua nhiều giao thức LINK (Chainlink) vật lý khác nhau, chẳng hạn như Ethernet. Các ứng dụng không cần biết chi tiết về giao thức LINK (Chainlink) , và giao thức LINK (Chainlink) không cần biết chi tiết về ứng dụng: mối quan hệ này được trung gian bởi IP.
Chúng tôi tin rằng WASM có thể là một dạng Giao thức Internet cho hợp đồng thông minh, đóng vai trò là lớp trung gian lý tưởng giữa các ngôn ngữ nguồn đa dạng được sử dụng để viết hợp đồng thông minh và các nền tảng back-end đa dạng được sử dụng để thực thi và chứng minh hợp đồng thông minh. Bằng cách tách biệt những mối quan tâm này, WASM, với tư cách là một dISA, có thể cho phép lập trình, chứng minh và thực thi hợp đồng thông minh phát triển tự do, thay vì ràng buộc lẫn nhau.
Khả năng thực thi hiệu quả
Việc lựa chọn một dISA dựa trên những gì hiện tại là (hoặc được coi là) ISA tốt nhất để chứng minh ZK có thể là tối ưu hóa cho số liệu sai, vì một lý do khác: chứng minh không phải là tất cả. Các nút ngày nay thực thi chuỗi để theo kịp tất cả các trạng thái bắt buộc và các sự kiện on-chain . Ngay cả khi việc theo kịp chuỗi có thể đạt được theo một cách khác (ví dụ: sử dụng bằng chứng ZK và cập nhật trạng thái), người dùng chuỗi phát hành nhiều eth_call và ước tính gas hơn so với các giao dịch on-chain . Do đó, việc phản hồi các yêu cầu eth_call và ước tính gas từ người dùng là một phần quan trọng trong công việc của một nút RPC và (theo định nghĩa) yêu cầu thực thi các hợp đồng thông minh được thể hiện trong dISA của Ethereum. Mặc dù các quy trình làm việc này có thể mở rộng theo chiều ngang, chi phí phản hồi các yêu cầu này vẫn cần phải do ai đó chịu và nên được coi là một phần trong tổng chi phí vận hành Ethereum.
Hiệu suất chứng minh ZK tất nhiên là quan trọng. Tuy nhiên, chúng tôi không dự đoán chi phí chứng minh là nút thắt cổ chai trong Trung bình và dài hạn đối với Ethereum. Ở Gas Limit hiện tại, chứng minh thời gian thực hiện tại chỉ tốn trung bình khoảng 0,025 đô la cho mỗi Block . Ngay cả khi L1 yêu cầu nhiều bằng chứng ZK cho mỗi Block, chi phí này sẽ rất nhỏ so với phí gas và MEV mà người xây dựng có thể nhận được từ một Block. Chi phí tạo bằng chứng ZK đã giảm theo cấp số nhân trong một vài năm mà không có trở ngại lớn nào được dự đoán để tiếp tục cải thiện. Nói cách khác, việc tối ưu hóa chỉ để tăng hiệu quả của trình chứng minh có thể phản tác dụng. Thực hiện là một chi phí quan trọng khác để vận hành Ethereum và không nên bỏ qua.
RISC-V được thiết kế để thực thi hiệu quả trên phần cứng. Tuy nhiên, rất ít node Ethereum thực sự chạy trên CPU hỗ trợ RISC-V. Để các node không phải RISC-V này thực thi các hợp đồng thông minh được thể hiện bằng RISC-V, chúng sẽ cần phải mô phỏng nó, hoặc biên dịch nó sang eISA gốc của máy.
Việc tách biệt việc thực thi với việc chứng minh bằng một ISA di động như WASM sẽ mang lại lợi ích tốt nhất cho cả hai bên. Đây chính là điều được thực hiện trong Arbitrum, nơi WASM được triển khai được thực thi dưới dạng mã ARM hoặc AMD gốc, cho phép tính toán Stylus rất tiết kiệm chi phí mà không cần CPU thông số kỹ thuật cao để thực thi.
Khả năng tương thích với các công cụ hiện có
Một trong những điểm mạnh thực sự của RISC-V là sự hỗ trợ mạnh mẽ từ các chuỗi công cụ biên dịch chính thống. Các trình biên dịch lớn như LLVM và GCC có nền tảng RISC-V hoàn thiện, cho phép các nhà phát triển biên dịch mã được viết bằng các ngôn ngữ như C, C++ và Rust trực tiếp sang RISC-V. Sự hỗ trợ biên dịch toàn diện này là một yếu tố quan trọng giúp RISC-V nhanh chóng được các dự án ZK-VM áp dụng—các nhóm có thể tận dụng cơ sở hạ tầng biên dịch hiện có, đã được kiểm chứng thực tế thay vì phải xây dựng mọi thứ từ đầu.
Tuy nhiên, WASM cũng được hỗ trợ trình biên dịch mạnh mẽ không kém (nếu không muốn nói là mạnh hơn). Các chuỗi công cụ biên dịch chính hỗ trợ RISC-V cũng có các backend WASM hoàn thiện và được bảo trì tốt. Đặc biệt, LLVM có hỗ trợ WASM tuyệt vời, được bảo trì và tối ưu hóa tích cực. Ngoài cơ sở hạ tầng trình biên dịch truyền thống, WASM còn được hưởng lợi từ việc được hỗ trợ gốc trên hầu hết tất cả các trình duyệt web và môi trường chạy JavaScript hiện đại, đại diện cho hàng tỷ môi trường thực thi được triển khai. Sự phổ biến này đồng nghĩa với việc các công cụ WASM đã được thử nghiệm, củng cố và tối ưu hóa ở quy mô mà ít ISA nào khác có thể sánh kịp. Đối với các nhà phát triển blockchain, điều này đồng nghĩa với việc họ có thể tiếp cận một hệ sinh thái phong phú gồm các trình gỡ lỗi, trình phân tích, trình tối ưu hóa và các công cụ phát triển khác đã được tinh chỉnh qua nhiều năm sử dụng trong vô số ứng dụng.
Một hệ sinh thái trình biên dịch trưởng thành rõ ràng là một tính năng đáng mong đợi, nhưng có thể không phải là điều kiện tiên quyết. Có thể cộng đồng Ethereum sẽ sẵn sàng đánh đổi tính năng này với những tính năng khác—ví dụ như chọn một ISA tùy chỉnh được tối ưu hóa cho ZK, do đó mang lại hiệu suất chứng minh tốt hơn. Điều này sẽ không thay đổi chủ đề thảo luận cốt lõi: những phẩm chất cơ bản mà chúng tôi đã nêu ra cho một dISA tốt (khả năng chống chịu tương lai, an toàn, cô lập, khả năng tích hợp và khả năng thực thi hiệu quả trên nhiều phần cứng khác nhau) vẫn sẽ là những tiêu chí thiết yếu. WASM vẫn sẽ đạt điểm cao đặc biệt ở những khía cạnh này, đồng thời mang lại những lợi thế bổ sung của công cụ trưởng thành.
Tương lai và An toàn
Với nỗ lực đáng kể cần thiết để thay thế dISA của Ethereum, bất kỳ quá trình chuyển đổi nào cũng phải có tính bền vững trong tương lai, nghĩa là phải được thực hiện với mục tiêu bền vững lâu dài.
Cấp độ đầu tiên của việc bảo vệ tương lai đã được thảo luận trước đó, và đạt được bằng cách phân biệt giữa pISA và dISA. Chúng tôi hình dung một tương lai cho Ethereum, nơi nhiều trình chứng minh cạnh tranh sử dụng nhiều pISA cạnh tranh, mỗi trình chứng minh có các thuộc tính và lựa chọn thiết kế khác nhau, nhưng tất cả đều chứng minh cùng một dISA chuẩn mực duy nhất.
WASM cho phép hỗ trợ nhiều kịch bản trong tương lai hơn nữa, vì nó được cấu trúc và xác thực. Ví dụ, giả sử một pISA cung cấp một mạch đặc biệt cho hành động: "nhân uint64 với 5 ", và muốn sửa đổi bất kỳ vị trí nào trong mã mà "nhân với hằng số" đang sử dụng hằng số 5 để gọi mã lệnh cụ thể mới này.
Việc thực hiện điều gì đó tương tự bằng cách sử dụng một dISA như RISC-V (hoặc hầu hết các ISA hướng máy khác), cho mã tùy ý được triển khai dưới dạng hợp đồng thông minh, có thể khá khó khăn. Các bước nhảy trong RISC-V có thể là đích đến chính xác hoặc các điểm bù trong mã (so với bộ đếm chương trình hiện tại). Trong mọi trường hợp, chúng phụ thuộc vào mã hóa chính xác và kích thước mã của chương trình đang được thực thi. Nếu bất kỳ công cụ tĩnh nào muốn thay thế bất kỳ phần nào của hàm bằng một phần không có cùng độ dài mã hóa chính xác, nó sẽ yêu cầu tìm tất cả các bước nhảy liên quan trong mã và sửa đổi độ bù nhảy của chúng. Trên thực tế, tình hình thậm chí còn tệ hơn vì đích nhảy RISC-V có thể là kết quả của phép tính tùy ý.
Bây giờ hãy xem xét cùng một kịch bản trong WASM. Ở đây không có jump hay lệnh goto tùy ý; chỉ có các điều kiện, vòng lặp và hàm. Tất cả các lệnh nhảy đều gọi hàm theo chỉ mục, lựa chọn giữa các biến thể (if-else), lặp hoặc thoát khỏi vòng lặp. Lệnh nhảy không thay đổi khi thay đổi mã hóa hoặc kích thước mã.
Ngoài ra, mã WASM có thể được xác thực . WASM hợp lệ có một số đặc tính mong muốn:
Nó chỉ có thể đọc từ ngăn xếp các đối số tồn tại ở đầu ngăn xếp khi nó được gọi và chỉ số lượng đối số mà nó được cho là có.
Nó không thể truy cập các biến cục bộ hoặc toàn cục chưa được khai báo. Tương tự, nó không thể truy cập các biến cục bộ của bất kỳ hàm nào khác.
Nó an toàn về kiểu, đảm bảo rằng kiểu đầu vào và đầu ra cho mỗi hàm đều khớp với những gì mong đợi.
Điều quan trọng là việc xác thực (kiểm tra các thuộc tính này) có thể được thực hiện theo thời gian tuyến tính với độ dài của mã WASM đang được xác thực. Điều này chỉ khả thi nhờ thiết kế của WASM; việc kiểm tra các thuộc tính này trên mã máy RISCV (hoặc mã máy từ bất kỳ ISA thông thường nào khác) một cách tự động và hiệu quả sẽ rất khó khăn.
Sự kết hợp giữa cấu trúc và tính hợp lệ của mã WASM cho phép phân tích và thậm chí sửa đổi mã với nhiều mức độ tự do. Trong ví dụ trên, chúng ta có thể tìm thấy bất kỳ vị trí nào trong mã WASM mà mã lệnh i64.const 5 được theo sau bởi mã lệnh i64.mult , hãy xóa hai mã lệnh này và thay thế bằng một mã lệnh mới đặc biệt. Mã lệnh mới có thể ngắn hơn hoặc dài hơn hai mã lệnh trước đó, và thậm chí có thể gọi các hàm đặc biệt mà không ảnh hưởng đến bất kỳ mã lệnh nào xung quanh.
Để chứng minh giá trị của ISA có cấu trúc trong bối cảnh blockchain, chúng ta có thể xem xét một số cách mà Arbitrum tận dụng bản chất có cấu trúc của WASM:
Khung lạc quan của chúng tôi, Arbitrator, sử dụng WAVM làm pISA (vâng, ngay cả những người chứng minh lạc quan cũng có thể có pISA!). WAVM dựa chặt chẽ vào WASM (có một vài điểm khác biệt không thực sự quan trọng ở đây). Arbitrator chấp nhận mã WASM làm đầu vào và áp dụng một số phép biến đổi cho nó. WAVM mã hóa các lệnh khác với WASM, và một số lệnh WASM được triển khai bởi nhiều opcode WAVM. Tuy nhiên, vì WASM không phụ thuộc vào vị trí, mã hóa hoặc kích thước của bất kỳ đoạn mã nào, việc chuyển đổi từ WASM sang WAVM rất đơn giản, nhanh chóng và mang tính quyết định.
Bản chất có cấu trúc của WASM là một phần cốt lõi trong cách chúng tôi cung cấp công cụ an toàn cho các hợp đồng thông minh WASM do người dùng cung cấp (Stylus) với kế toán gas để cho phép chúng chạy an toàn on-chain (xem “khả năng tương thích với các công cụ hiện có”)
Các đặc tính giúp WASM trở thành giải pháp chống lỗi trong tương lai cũng giúp việc kiểm toán dễ dàng hơn, dù là người hay máy. Cấu trúc và tính hợp lệ của WASM đồng nghĩa với việc, ví dụ, không có dữ liệu đầu vào nào có thể được chuyển thành mã thực thi, và mã đọc biến cục bộ không bao giờ có thể được đọc từ bộ nhớ hoặc từ một hàm khác. Điều này sẽ tăng cường tính an toàn của cả hợp đồng thông minh và toàn bộ hệ thống, đồng thời vẫn cho phép chúng ta tận dụng những cải tiến trong tương lai về chứng minh ZK (như đã mô tả ở trên).
Phần kết luận
Trong tài liệu này, chúng tôi trình bày ý tưởng rằng một blockchain có thể sử dụng nhiều ISA khác nhau cho các mục đích khác nhau (chứng minh, phân phối, thực thi). Khi Vitalik và những người khác thảo luận về việc đưa RISC-V trở thành ISA mới cho L1 Ethereum, họ lập luận (theo cách hiểu của chúng tôi) rằng RISC-V, được sử dụng như một pISA chung, cũng là một ứng cử viên lý tưởng cho dISA. Tuy nhiên, như đã thảo luận ở trên, không có lý do gì pISA và dISA phải giống nhau . Chúng tôi đã thảo luận về việc điều này định hình lại cuộc trò chuyện một cách đáng kể như thế nào.
Đối với việc chứng minh ISA, không gian ZK-VM đang phát triển nhanh chóng, và rất có thể còn quá sớm để biết pISA nào phù hợp nhất để thực hiện chứng minh trong L1 Ethereum. Cộng đồng Ethereum nên chọn một dISA linh hoạt, tương thích với nhiều pISA. WASM là một ứng cử viên lý tưởng cho việc này.
Chúng tôi tin tưởng và đã lập luận ở trên rằng, xét trên nhiều khía cạnh liên quan, WASM phù hợp hơn RISC-V cho việc triển khai hợp đồng thông minh. WASM mang đến các tính năng an toàn, cô lập và đo lường mạnh mẽ; hỗ trợ trình biên dịch và chuỗi công cụ mạnh mẽ; thực thi ( và chứng minh) hiệu quả; và, có lẽ quan trọng nhất, nó đủ linh hoạt để sẵn sàng cho tương lai trong môi trường thực thi và chứng minh blockchain đầy bất ổn và thay đổi nhanh chóng. Nó sẽ không phải là một gánh nặng cho việc chứng minh SNARK.
Chúng tôi rất vui mừng khi cộng đồng quan tâm sâu sắc đến việc phát triển lớp thực thi L1. Cũng như những người ủng hộ RISC-V, chúng tôi tin rằng, nếu Ethereum muốn thực hiện lời hứa về việc tạo ra các loại quan hệ tin cậy mới và xây dựng một Substrate tài chính mới, dễ tiếp cận hơn, thì cần phải vượt ra khỏi Máy ảo Ethereum (EVM) với tư cách là ISA duy nhất được Ethereum hỗ trợ. Tại thời điểm quan trọng này trong quá trình phát triển của Ethereum, chúng tôi hy vọng rằng những lập luận chúng tôi đưa ra ở đây có thể giúp đưa ra những quyết định hướng đến tương lai nhiều hơn, và từ đó tạo ra một lớp thực thi L1 tốt hơn trong nhiều năm tới.




