TL;DR
Công nghệ bằng chứng không kiến thức có thể đảm bảo tính toàn vẹn, chính xác và quyền riêng tư của các phép tính, đồng thời có các ứng dụng trong việc mở rộng chuỗi khối và quyền riêng tư.
Cả zk-SNARK và zk-STARK đều có những lợi thế riêng và sự kết hợp hợp lý của chúng sẽ có nhiều tiềm năng hơn.
zkVM có thể cung cấp cho các ứng dụng khả năng chứng minh kiến thức bằng không và zkVM có thể được chia thành các tập lệnh chính, EVM hoặc tập lệnh mới.
Sự thích ứng của EVM bao gồm khả năng tương thích, tương đương và thích ứng của EVM trên Đặc điểm kỹ thuật.
zkEVM là một môi trường thân thiện với bằng chứng tương thích với EVM và không có kiến thức, chủ yếu được chia thành các thể loại bản địa và được biên dịch.
Bản gốc zkEVM là tương lai của Ethereum và chuỗi khối.
Universal zkVM hỗ trợ hệ sinh thái Solidity là tương lai của Web3.
0. Bằng chứng không kiến thức Không khắt khe nhưng dễ hiểu để giới thiệu bằng chứng không kiến thức:
Bạn đang học tiểu học, giáo viên là người kiểm tra, còn bạn với tư cách là học sinh là người chứng nhận, làm thế nào để chứng minh rằng bạn đã nắm vững công thức giải phương trình bậc hai một biến?
Giáo viên sẽ chọn ngẫu nhiên 10 câu hỏi liên quan, bạn nào nắm vững thì có thể giải hết, trong quá trình này bạn không đọc thuộc lòng hay ghi nội dung cụ thể công thức giải nhưng giáo viên có thể dễ dàng kiểm chứng mức độ của bạn. nắm vững tri thức.

Trên thực tế, đây là phương pháp được sử dụng bởi Tartaglia và Cardano (vâng, đó là tên) để cạnh tranh xem ai là người tìm ra phương trình bậc ba. Họ không muốn nói cho nhau biết nội dung công thức của họ, nhưng bằng cách làm các câu hỏi, họ có thể dễ dàng xác minh và Không tiết lộ kiến thức trong quá trình này, đánh giá xem họ đã nắm vững kiến thức này chưa.
Việc sử dụng bằng chứng không kiến thức là gì?Việc sử dụng là toàn bộ quá trình có thể tiết kiệm sức mạnh tính toán và nén không gian trên chuỗi, đồng thời bảo vệ quyền riêng tư, điều này phù hợp với đặc điểm không tin cậy của chuỗi khối và gen của mật mã.
1. SNARK và STARK "zk" được sử dụng hoặc đề cập trong lĩnh vực blockchain thường không phải là bằng chứng không có kiến thức thực sự, mà thường là Bằng chứng xác thực. Do sự nhầm lẫn về từ vựng liên quan, một số chỗ trong bài viết này sẽ tiếp tục những "lạm dụng" này.

Trong bối cảnh chuỗi khối hiện tại, zk có thể nói là giải pháp tối ưu và tiên tiến nhất để mở rộng chuỗi khối (Bằng chứng hợp lệ không có zk) và công nghệ bảo mật (zk thực).Trong Tornado.cash, ZCash, zkSync, Nó được sử dụng trong các dự án như zk.money, Filecoin và Mina.
Các giải pháp kỹ thuật hiện tại chủ yếu được chia thành hai loại: SNARK và STARK. Chữ S trong STARK là viết tắt của khả năng mở rộng, có nghĩa là tuyên bố đã được chứng minh có cấu trúc lặp lại, trong khi SNARK hỗ trợ các mạch tùy ý, được xử lý trước để đạt được bằng chứng ngắn gọn. Trong số đó, thực hành kỹ thuật của SNARK chiếm vị trí thống trị và STARK chủ yếu được StarkWare áp dụng trong các sản phẩm đã được tung ra trên quy mô lớn. Sau đây là so sánh giữa chúng.

Từ góc độ Meme, STARK tốt hơn SNARK (?, Chiến tranh giữa các vì sao, Star Trek).
Nếu SNARK là tương lai của Ethereum 2.0, thì STARK sẽ là tương lai của Ethereum 3. Nói một cách nghiêm túc, lợi thế của STARK là
Khí thấp hơn (có thể mở rộng hơn)
Kích thước lô lớn hơn (có thể mở rộng hơn * 2)
Bằng chứng nhanh hơn (tỷ lệ lớn hơn * 3)
Không thiết lập đáng tin cậy (các tham số được tạo chỉ có giá trị cho ứng dụng hiện tại, nếu có thay đổi, bạn cần thiết lập lại)
an ninh hậu lượng tử
Tuy nhiên, khối lượng bằng chứng do STARK tạo ra lớn hơn và nó khá lớn.Ví dụ: do một số hạn chế của WASM, các hoạt động bổ sung có thể được yêu cầu trong quá trình xây dựng (ở đây là SNARK).Mir đã đưa ra một thực tiễn dựa trên AIR của STARK là một phần của Plonky2 (mối quan hệ giữa Plonky2 và Starky phức tạp hơn...) Cá nhân tôi nghĩ rằng kích thước lớn có thể được tối ưu hóa bằng nhiều phương pháp khác nhau, nhưng bản thân độ phức tạp về thời gian của thuật toán rất khó để nén thêm.
Các công nghệ bằng chứng không kiến thức này có thể được kết hợp một cách hợp lý để xây dựng các ứng dụng mạnh mẽ hơn.Ví dụ: Polygon Hermez sử dụng SNARK để xác minh tính chính xác của STARK, do đó giảm phí xăng khi bằng chứng cuối cùng được công bố.
Tóm lại, cả SNARK và STARK đều là những công nghệ chứng minh không có kiến thức tuyệt vời, mỗi công nghệ đều có những ưu điểm và nhược điểm riêng và sự kết hợp hợp lý của chúng sẽ có nhiều tiềm năng hơn.
2. zkVM Tornado.cash và zk.money đã nói ở trên đều là những ứng dụng bằng chứng không có kiến thức, chỉ hỗ trợ các hoạt động chuyển tiền và không hỗ trợ các tính toán cho mục đích chung.Tương tự, các ứng dụng này chỉ có các chức năng của Bitcoin , kém hơn nhiều so với Ethereum Turing đã hoàn thành, chưa kể đến việc xây dựng một hệ sinh thái (các hợp đồng thông minh trên Bitcoin chưa bao giờ được xây dựng thành một hệ sinh thái).
zkVM là một máy ảo đảm bảo tính bảo mật, các tính năng có thể xác minh và đáng tin cậy bằng bằng chứng không kiến thức. Nói một cách đơn giản, nó nhập các trạng thái và chương trình cũ và trả về trạng thái mới. Nó cho phép tất cả các ứng dụng được cung cấp siêu năng lực của bằng chứng không kiến thức.
Bài nói chuyện của Miden tại ETH Amsterdam đã đưa ra một cái nhìn tổng quan về zkVM thực sự là gì.

Ưu điểm của zkVM:
Dễ sử dụng: Các nhà phát triển có thể sử dụng zkVM để chạy các chương trình mà không cần học mật mã hoặc phát triển không có kiến thức để đảm bảo an ninh máy tính (không có nghĩa là không có ngưỡng nào cả)
Tổng quát: zkVM có thể tạo bằng chứng cho bất kỳ chương trình và tính toán nào.
Conciseness: Một số lượng tương đối nhỏ các ràng buộc có thể mô tả toàn bộ VM (không lặp lại mạch của toàn bộ VM).
Đệ quy: Tính năng đệ quy miễn phí.Giống như tính phổ biến, việc xác minh VM có thể được thực hiện thông qua VM. Điều này rất thú vị.Ví dụ: bạn có thể đặt một zkVM trong zkVM, tương tự như khái niệm L3 được đề cập bởi StarkWare.
Nhược điểm của zkVM:
Kiến trúc điện toán đặc biệt: Không phải tất cả các hệ thống bằng chứng không kiến thức đều có thể được sử dụng làm zkVM.
Các vấn đề về hiệu suất: Mạch cần được tối ưu hóa và nó có thể được tối ưu hóa cho các tính toán cụ thể.
Hiện tại, có ba loại zkVM chính thống và các tập lệnh của chúng nằm trong ngoặc đơn: chính thống (WASM, RISC-V), EVM (mã byte EVM), ZK-Optimized (tập lệnh mới, được tối ưu hóa cho bằng chứng không kiến thức, chẳng hạn như Cairo và zkSync ). Sau đây là biểu đồ so sánh loại được tổng hợp theo bài phát biểu của Miden tại ETH Amsterdam:

Hầu hết những điều mà hệ sinh thái phát triển bằng chứng không kiến thức thực hiện là cho phép các nhà phát triển sử dụng thư viện Circcom (và snarkyjs) hoặc các ngôn ngữ mới được tạo khác (các ngôn ngữ như Leo hoặc Cairo có những hạn chế kỳ lạ) để thực hiện mục đích chung zk việc phát triển DApp không đơn giản và dễ học như Solidity trên Ethereum.
Ngoài ra, có nhiều dự án, chẳng hạn như zkSync, Scroll hoặc nhiều công ty thuộc Polygon đang cố gắng tạo zkEVM hoặc zkVM khác.
3. EVM EVM là máy ảo của Ethereum, cũng có thể hiểu là môi trường thực thi để chạy các hợp đồng thông minh.
Trong những năm qua, nhiều chuỗi công khai khác nhau đã cố gắng tương thích với EVM để được kết nối với hệ sinh thái phát triển của Ethereum.
Khả năng tương thích EVM: Thích ứng ở cấp độ ngôn ngữ như Solidity.
Tương đương EVM: Thích ứng ở cấp mã byte EVM.
Điều chỉnh đặc điểm kỹ thuật EVM: Cái gọi là zkEVM thực, trong hầu hết các trường hợp, thậm chí là một tập hợp siêu tương thích ngược được tối ưu hóa, có thể cung cấp tính trừu tượng của tài khoản (nghĩa là mỗi tài khoản là một hợp đồng thông minh) và những thứ khác mà EVM không cung cấp đặc điểm.
4. zkEVM Hãy giải thích lại zkEVM. Theo định nghĩa, zkEVM là một máy ảo tương thích với EVM và thân thiện với các bằng chứng không có kiến thức, đồng thời có thể đảm bảo tính chính xác hoàn toàn của các chương trình, hoạt động cũng như đầu vào và đầu ra.
Để hiện thực hóa điện toán nói chung, để thực hiện zkEVM chủ yếu cần giải quyết hai khó khăn:
a) Mạch phức tạp Các hợp đồng khác nhau cần tạo ra các mạch khác nhau và các mạch này rất "phức tạp".
Khía cạnh này chủ yếu phụ thuộc vào các tối ưu hóa khác nhau, chẳng hạn như Aleo (nhưng nó không phải là một loại ZK trực tiếp... chỉ để minh họa tối ưu hóa) thông qua Cụm phân tán để tính toán Bằng chứng đồng thời hoặc thông qua các tối ưu hóa phần cứng khác nhau để tăng tốc .
b) Khó thiết kế zkEVM không chỉ cần tái cấu trúc EVM mà còn tái tạo lại quá trình chuyển đổi trạng thái tổng thể của Ethereum bằng công nghệ bằng chứng không kiến thức.
Khi thiết kế EVM, tôi không ngờ sau này sẽ làm zkEVM, điều này gây ra khó khăn lớn, dẫn đến lộ trình của hai phái, tất cả đều có trong hình.

Hoặc theo kiến trúc của VM thì nó như thế này (nhờ Scroll Tech tóm tắt hình gốc!) Opcode ám chỉ EVM Opcode. Phần StarkWare dùng Warp để chuyển Solidity thành hợp đồng Cairo, hoặc viết trực tiếp vào hợp đồng Cairo , bạn cũng có thể có được trải nghiệm phát triển tốt và bộ công cụ đầy đủ.

Ở cấp độ nhà phát triển và người dùng, tôi nghĩ về cơ bản không có sự khác biệt giữa các giải pháp này, nhưng về cơ sở hạ tầng, càng xa bên phải thì khả năng tương thích EVM càng tốt và có thể kết nối liền mạch với cơ sở hạ tầng như Geth, nhưng tiến độ phát triển Về cơ bản chậm hơn.
5. zkEVM và zkVM Tôi nghĩ rằng sự tồn tại của zkEVM là để cải tạo và vá lỗi hệ sinh thái Ethereum, điều này có thể góp phần vào sự thịnh vượng của Ethereum và hệ sinh thái của nó, nhưng sự tồn tại của zkVM không nhất thiết phải củng cố Ethereum mà còn có trí tưởng tượng lớn hơn.
Mặc dù Cairo VM của StarkNet có thể không phải là zkVM hoàn hảo trong trí tưởng tượng của tôi, nhưng nó có thể làm được nhiều việc hơn EVM hoặc zkEVM và đây không chỉ là những mở rộng chức năng ở cấp độ EIP. cũng là một nền tảng mô hình học máy đang được xây dựng trên StarkNet.
So với zkEVM, zkVM sẽ dễ xây dựng hơn (không cần lo lắng về nợ kỹ thuật của EVM), linh hoạt hơn (không cần lo lắng về việc cập nhật EVM), dễ tối ưu hóa hơn (tối ưu hóa phần cứng và phần mềm của các mạch và bộ chứng minh là đơn giản và rẻ hơn nhiều so với xây dựng zkEVM ).
Tất nhiên, một trong những thiếu sót nhỏ nhất nhưng chí mạng của zkVM là nếu zkVM không thể hỗ trợ tương thích EVM (cấp độ ngôn ngữ Solidity) thì zkVM khó có được hệ sinh thái phát triển Web3 hoàn thiện và trưởng thành nhất như EVM.
ZkVM có thể là một xu hướng lớn hơn, có thể biến việc tối ưu hóa theo chiều dọc của EVM thành sự mở rộng theo chiều ngang của hệ sinh thái EVM, thoát ra khỏi giới hạn của EVM.
6. Tương lai của zkVM Điều gì sẽ xảy ra nếu có một zkVM đa năng cho phép các hợp đồng thông minh trong tất cả các ngôn ngữ lập trình, không chỉ Solidity, không chỉ Cairo, mà cả Rust, C++, Go, chạy an toàn với sự hỗ trợ của bằng chứng không kiến thức? (Stellar đã thử, nhưng thất bại.)
Như @kelvinfichter đã nói: Tại sao lại là zkEVM nếu là zkMIPS? Như @KyleSamani đã nói: EVM là một lỗi không phải là một tính năng. Tại sao lại là zkEVM nếu là zkVM?
zkVM chẳng hạn như Winterfall hoặc Distaff hoặc Miden VM không thân thiện lắm với việc phát triển Nervos có RISC-V VM, nhưng Nervos không sử dụng công nghệ bằng chứng không kiến thức.
Giải pháp tối ưu trong tình hình hiện tại là xây dựng zkVM WASM hoặc RISC-V, tốt nhất là hỗ trợ các ngôn ngữ như Rust, Go, C++ và thậm chí cả Solidity (zkSync dường như có thể đóng góp rất nhiều). một zkVM chung, thì đối với zkEVM, nó sẽ là một đòn giảm kích thước.
Số lượng nhà phát triển Web3 chiếm khoảng 0,07% tổng số nhà phát triển và có thể suy ra rằng số lượng nhà phát triển Solidity thực sự sẽ ít hơn 0,07% và thậm chí còn ít hơn sẽ sử dụng Cairo để viết hợp đồng hoặc sử dụng Leo để viết mạch. theo cách này ZkVM hoàn hảo nhắm đến gần như 100% nhà phát triển và bất kỳ nhà phát triển nào cũng có thể có được một môi trường vận hành hoàn hảo không có kiến thức với hầu hết mọi ngôn ngữ.

Nếu Web3 và Crypto có ngày thống trị thế giới, tôi nghĩ chắc chắn sẽ không phải hệ sinh thái EVM chiếm 100% tất cả các nhà phát triển, mà tất cả các nhà phát triển sẽ dần dần chuyển đổi thành nhà phát triển Web3 và Crypto. địa điểm.
Bản địa zkEVM là tương lai của blockchain.
Universal zkVM là tương lai của Web3.
Tác giả: Suning Yao @ Foresight Ventures