ZK-VM là gì?

Trung cấp6/3/2024, 1:43:54 PM
ZK là cầu nối cho việc áp dụng rộng rãi mật mã. Cho dù trong Web2 hay Web3, bất cứ điều gì liên quan đến Zero-Knowledge Proofs (ZKP) sẽ tạo ra giá trị to lớn. Nhóm Lita đã viết các bài báo khoa học cơ bản, giới thiệu những điều cơ bản về ZK và zkVM, đưa ra cái nhìn tổng quan cấp cao về quy trình trong zkVM và cuối cùng đề xuất một bộ tiêu chuẩn để đánh giá zkVM.

Chuyển tiếp tiêu đề ban đầu 'A Zero Knowledge Paradigm: Part 1 - Zk-VM là gì?'

1. Bằng chứng kiến thức bằng không: Mồi

Bằng chứng kiến thức bằng không (ZKP) là gì?

Nếu bạn không có kiến thức trước về bằng chứng kiến thức bằng không (ZKP), video này từ Wired giải thích khái niệm ở năm cấp độ khó theo cách tương tác với các ví dụ và minh chứng dễ hiểu. Rất khuyến khích.

Nói một cách đơn giản nhất, ZKP cho phép một bên (tục ngữ) chứng minh với một bên khác (người xác minh) rằng họ biết điều gì đó mà không tiết lộ thứ đó là gì hoặc bất kỳ thông tin bổ sung nào. Cụ thể hơn, ZKP chứng minh kiến thức về một phần dữ liệu hoặc kiến thức về kết quả tính toán, mà không tiết lộ dữ liệu hoặc đầu vào. Quá trình tạo ra một bằng chứng không có kiến thức liên quan đến một loạt các mô hình toán học để chuyển đổi kết quả tính toán thành một phần thông tin vô nghĩa khác chứng minh việc thực thi mã thành công, sau này có thể được xác minh.

Trong một số trường hợp, phải mất ít công sức hơn để xác minh bằng chứng, được xây dựng sau nhiều vòng chuyển đổi đại số và mật mã, hơn là cần thiết để chạy tính toán. Sự kết hợp độc đáo giữa bảo mật và khả năng mở rộng này là điều khiến mật mã không có kiến thức trở thành một công cụ mạnh mẽ như vậy.

zkSNARKs: Zero Knowledge Succinct Non-Interactive Argument of Knowledge

  • Dựa vào quy trình thiết lập ban đầu (đáng tin cậy hoặc không đáng tin cậy) để thiết lập các tham số để xác minh
  • Yêu cầu ít nhất một tương tác giữa người chứng minh và người xác minh
  • Kích thước bằng chứng nhỏ và dễ xác minh
  • Bằng chứng dựa trên NARK được sử dụng bởi các bản tổng hợp như zkSync, Scroll và Linea

zkSTARKs: Zero Knowledge Scalable Transparent Argument of Knowledge

  • Không cần thiết lập đáng tin cậy
  • Cung cấp tính minh bạch cao bằng cách sử dụng tính ngẫu nhiên có thể xác minh công khai để tạo ra các hệ thống có thể xác minh không tin cậy, tức là tạo ra các tham số ngẫu nhiên có thể chứng minh để chứng minh và xác minh
  • Khả năng mở rộng cao vì chúng có thể tạo và xác minh bằng chứng nhanh chóng (không phải lúc nào cũng vậy), ngay cả khi kích thước của nhân chứng cơ bản (dữ liệu) lớn
  • Không yêu cầu tương tác giữa người chứng minh và người xác minh
  • Đi kèm với chi phí mà STARKs tạo ra bằng chứng lớn hơn, có thể khó xác minh hơn SNARK
  • Bằng chứng khó xác minh hơn một số bằng chứng zkSNARK nhưng không khó như một số bằng chứng khác để xác minh
  • STARK được sử dụng bởi Starknet, cũng như các zkVM như Lita, Risc Zero và Succinct Labs

(Lưu ý: Cầu nối của Succinct sử dụng SNARK nhưng SP1 là giao thức dựa trên STARK)

Điều đáng chú ý là tất cả các STARK đều là SNARK, nhưng không phải tất cả SNARK đều là STARK.

Để hiểu rõ hơn về SNARK và STARKs, chúng tôi khuyên bạn nên đọc @krzhang/privacy-in-cryptocurrencies-zero-knowledge-and-zk-snarks-1-2-68ce1838fd9c"> bài viết được viết bởi Yan ZhangYi Sun của Axiom, và bộ sưu tập các bài viết này trong github của Ventali Tan.

2. ZKVM là gì?

Máy ảo (VM) là một chương trình chạy các chương trình. Trong ngữ cảnh, zkVM là một máy tính ảo được triển khai như một hệ thống để tạo ra các bằng chứng kiến thức bằng không, hoặc một mạch hoặc công cụ phổ quát, để tạo ZKP cho bất kỳ chương trình hoặc tính toán nào.

zkVM loại bỏ nhu cầu học toán học và mật mã phức tạp để thiết kế và mã hóa ZK, đồng thời cho phép bất kỳ nhà phát triển nào thực thi các chương trình được viết bằng ngôn ngữ ưa thích của họ và tạo ZKP, giúp tích hợp và tương tác dễ dàng hơn với kiến thức bằng không. Nói chung, hầu hết các tham chiếu đến zkVM ngầm bao gồm các chuỗi công cụ trình biên dịch và hệ thống chứng minh được gắn vào máy ảo thực thi các chương trình chứ không chỉ riêng máy ảo. Dưới đây, chúng tôi tóm tắt các thành phần chính của zkVM và chức năng của chúng:

Các thành phần chính của zkVM

Việc thiết kế và thực hiện từng thành phần được điều chỉnh bởi sự lựa chọn bằng chứng (SNARK hoặc STARK) và kiến trúc tập lệnh (ISA) của zkVM. Theo truyền thống, ISA chỉ định những gì CPU có khả năng (kiểu dữ liệu, thanh ghi, bộ nhớ, v.v.) và chuỗi hành động mà CPU thực hiện khi nó thực thi một chương trình. Trong ngữ cảnh, ISA xác định mã máy có thể diễn giải và thực thi bởi máy ảo. Chọn ISA có thể mang lại sự khác biệt căn bản về khả năng tiếp cận và khả năng sử dụng của zkVM, cũng như tốc độ và hiệu quả của các quy trình tạo bằng chứng và củng cố việc xây dựng bất kỳ zkVM nào.

Dưới đây là một số ví dụ về zkVM và các thành phần của chúng để bạn tham khảo.


zkVM và các thành phần của chúng

Hiện tại, chúng tôi sẽ tập trung vào các tương tác giữa từng thành phần ở mức cao để cung cấp một khuôn khổ để hiểu các quy trình đại số và mật mã cũng như sự đánh đổi thiết kế của zkVM trong bài viết sau.

3. Tóm tắt quy trình zkVM

Sơ đồ sau đây là một sơ đồ quy trình trừu tượng, tổng quát của zkVM, được phân tách và phân loại giữa định dạng (đầu vào / đầu ra) của một chương trình khi nó di chuyển qua các thành phần của zkVM. Chúng tôi sẽ xem xét từng quy trình chuyên sâu trong các bài viết tiếp theo.


Luồng chung cho zkVM

Luồng xử lý của zkVM thường như sau:

  • Giai đoạn biên dịch
  1. Trình biên dịch đầu tiên biên dịch các chương trình được viết bằng các ngôn ngữ thông thường (C, C ++, Rust, Solidity) thành mã máy. Định dạng của mã máy được quyết định bởi sự lựa chọn của ISA.
  • Sân khấu VM
  1. VM thực thi mã máy và tạo ra một dấu vết thực thi, đó là một loạt các bước của chương trình cơ bản. Định dạng của điều này được xác định trước bởi sự lựa chọn số học, cũng như tập hợp các ràng buộc đa thức. Các sơ đồ số học phổ biến bao gồm R1CS như trong Groth16, số học PLONKish như trong halo2 và AIR như trong plonky2plonky3.
  • Giai đoạn Prover
  1. Người chứng minh nhận được dấu vết và biểu diễn nó dưới dạng một tập hợp các đa thức bị ràng buộc bởi một tập hợp các ràng buộc, về cơ bản dịch phép tính thành đại số bằng cách lập bản đồ các sự kiện bằng toán học.

  2. Người chứng minh cam kết với các đa thức này bằng cách sử dụng Lược đồ cam kết đa thức (PCS). Lược đồ cam kết là một giao thức cho phép người chứng minh tạo dấu vân tay của một số dữ liệu X, được gọi là cam kết với X và sau đó chứng minh sự thật về X mà không tiết lộ X, sử dụng cam kết với X. PCS là dấu vân tay; Một phiên bản ngắn gọn "được xử lý trước" của các ràng buộc đối với tính toán. Điều này cho phép người chứng minh sự thật về tính toán, hiện được biểu thị bằng phương trình đa thức, sử dụng các giá trị ngẫu nhiên do người xác minh đề xuất trong các bước sau.

  3. Người chứng minh chạy Bằng chứng Oracle tương tác đa thức (PIOP) để chỉ ra rằng các đa thức đã cam kết đại diện cho một dấu vết thực thi thỏa mãn các ràng buộc đã cho. PIOP là một giao thức chứng minh tương tác bao gồm một loạt các vòng trong đó người chứng minh gửi cam kết đến đa thức, người xác minh trả lời bằng các giá trị trường ngẫu nhiên và người chứng minh cung cấp các đánh giá về đa thức tại các giá trị ngẫu nhiên này, giống như "giải" phương trình đa thức bằng cách sử dụng các giá trị ngẫu nhiên để thuyết phục người xác minh.

  4. Áp dụng heuristic Fiat-Shamir; người chứng minh chạy PIOP ở chế độ không tương tác, trong đó hành vi của người xác minh bị giới hạn trong việc gửi điểm thử thách giả ngẫu nhiên. Trong mật mã học, heuristic Fiat-Shamir chuyển đổi bằng chứng kiến thức tương tác thành chữ ký số để xác minh. Bước này mã hóa bằng chứng và làm cho nó không có kiến thức.

  5. Người chứng minh phải thuyết phục người xác minh rằng các đánh giá đa thức được yêu cầu là chính xác, liên quan đến các cam kết đa thức mà họ đã gửi cho người xác minh. Để làm điều này, người chứng minh tạo ra một bằng chứng "đánh giá" hoặc "mở", được cung cấp bởi sơ đồ cam kết đa thức (dấu vân tay).

  • Giai đoạn xác minh
  1. Người xác minh kiểm tra bằng chứng bằng cách tuân theo giao thức xác minh của hệ thống chứng minh, sử dụng các ràng buộc hoặc cam kết. Người xác minh chấp nhận hoặc từ chối kết quả theo tính hợp lệ của bằng chứng.

Tóm lại, một bằng chứng zkVM chứng minh, đối với một chương trình nhất định, một kết quả nhất định và đưa ra các điều kiện ban đầu, rằng có một số đầu vào khiến chương trình tạo ra kết quả đã cho khi được thực thi từ các điều kiện ban đầu nhất định. Chúng ta có thể kết hợp câu lệnh này với luồng quy trình để đi đến mô tả sau đây về zkVM.

Một bằng chứng zkVM chứng minh, đối với một chương trình VM nhất định và một đầu ra nhất định, rằng có một số đầu vào khiến chương trình nhất định tạo ra đầu ra nhất định khi được thực thi trên máy ảo.

4. Đánh giá zkVM

Các tiêu chí mà chúng ta nên đánh giá zkVM là gì? Nói cách khác, khi nào chúng ta nên nói rằng zkVM này tốt hơn zkVM khác? Thành thật mà nói, câu trả lời phụ thuộc vào trường hợp sử dụng.

Nghiên cứu thị trường của Lita cho thấy rằng đối với hầu hết các trường hợp sử dụng thương mại, các thuộc tính quan trọng nhất, ngoài tốc độ, hiệu quả và ngắn gọn, là tốc độ hoặc hiệu quả thời gian lõi, tùy thuộc vào ứng dụng. Một số ứng dụng nhạy cảm về giá và muốn tối ưu hóa cho mức tiêu thụ năng lượng thấp và sử dụng vốn thấp trong việc chứng minh; Đối với những điều này, hiệu quả thời gian cốt lõi có lẽ là số liệu quan trọng nhất để tối ưu hóa. Các ứng dụng khác, đặc biệt là các ứng dụng liên quan đến tài chính hoặc giao dịch, nhạy cảm với độ trễ và muốn tối ưu hóa tốc độ.

Hầu hết các so sánh công khai về hiệu suất chỉ tập trung vào tốc độ, điều này rất quan trọng nhưng không phải là thước đo toàn diện về hiệu suất. Ngoài ra còn có một vài thuộc tính quan trọng đo lường độ tin cậy của zkVM; Hầu hết trong số đó không đạt tiêu chuẩn sẵn sàng sản xuất, ngay cả đối với những người đương nhiệm dẫn đầu thị trường.

Chúng tôi đề xuất rằng zkVM nên được đánh giá theo các tiêu chí sau, được tách thành hai tập hợp con:


Tiêu chí chính để đánh giá zk-VM

Đường cơ sở: Đo độ tin cậy của zkVM

  • Đúng đắn
  • An ninh
  • Giả định tin cậy

Hiệu suất: Đo lường khả năng của zkVM

  • Hiệu quả
  • Tốc độ
  • Ngắn gọn

4.1 Đường cơ sở: Giả định về tính đúng đắn, bảo mật và tin cậy

Khi đánh giá zkVM cho các ứng dụng quan trọng, tính đúng đắn và bảo mật nên được coi là đường cơ sở. Cần phải có đủ lý do để tự tin về tính đúng đắn và bảo mật được tuyên bố đủ mạnh. Ngoài ra, các giả định tin cậy cần phải đủ yếu cho ứng dụng.

Nếu không có các thuộc tính này, zkVM có khả năng tồi tệ hơn là vô dụng đối với ứng dụng, vì nó có thể không hoạt động như được chỉ định và khiến người dùng bị hack và khai thác.

i. Tính đúng đắn

  • Máy ảo phải thực hiện tính toán như dự định
  • Hệ thống chứng minh phải đáp ứng các đặc tính bảo mật được yêu cầu của nó

Tính chính xác bao gồm ba thuộc tính:

  • Tính hợp lý: Hệ thống chứng minh là trung thực và do đó mọi thứ nó chứng minh là đúng. Người xác minh bác bỏ bằng chứng về việc khai báo gian dối; Nó chỉ chấp nhận kết quả tính toán nếu đầu vào thực sự tạo ra kết quả đó.
  • Tính đầy đủ: Hệ thống chứng minh hoàn chỉnh và có thể chứng minh tất cả các tuyên bố đúng. Nếu người chứng minh tuyên bố nó có thể chứng minh kết quả tính toán, nó phải có khả năng đưa ra bằng chứng mà người xác minh chấp nhận.
  • Không có kiến thức: Sở hữu một bằng chứng không tiết lộ nhiều hơn về đầu vào của tính toán hơn là biết chính kết quả

Bạn có thể có sự trọn vẹn mà không có sự lành mạnh; Nếu hệ thống chứng minh tất cả mọi thứ bao gồm cả sự giả dối, rõ ràng nó là hoàn chỉnh nhưng không phải là âm thanh. Ngược lại, bạn có thể có âm thanh mà không có sự hoàn chỉnh; Nếu hệ thống chứng minh một chương trình tồn tại nhưng không thể chứng minh các tính toán, rõ ràng đó là âm thanh (sau tất cả, nó không bao giờ chứng minh bất kỳ sự giả dối nào), nhưng không hoàn chỉnh.

ii. Bảo mật

  • Liên quan đến dung sai của tính hợp lý, tính đầy đủ và kiến thức bằng không

Trong thực tế, cả ba thuộc tính chính xác đều có dung sai khác không. Điều này ngụ ý tất cả các bằng chứng là xác suất thống kê về tính chính xác, và không phải là sự chắc chắn tuyệt đối. Dung sai đề cập đến xác suất tối đa có thể chấp nhận được rằng một thuộc tính sẽ thất bại. Không dung sai tất nhiên là lý tưởng, nhưng zkVM không đạt được dung sai bằng không trên tất cả các thuộc tính này trong thực tế. Âm thanh và tính đầy đủ hoàn hảo dường như không tương thích với sự cô đọng, và không có phương pháp nào được biết đến để đạt được kiến thức hoàn hảo bằng không. Một cách phổ biến để đo lường bảo mật là trong bit bảo mật, trong đó dung sai 1 / (2 ^ n) được gọi là n bit bảo mật. Nhiều bit bảo mật hơn là tốt hơn.

Nếu một zkVM là hoàn toàn chính xác, điều đó không nhất thiết có nghĩa là nó đáng tin cậy. Tính chính xác chỉ ngụ ý rằng zkVM đáp ứng các thuộc tính bảo mật của nó lên đến dung sai được yêu cầu. Nó không ngụ ý rằng dung sai được tuyên bố là đủ thấp để sẵn sàng cho thị trường. Ngoài ra, nếu một zkVM đủ an toàn, điều đó không có nghĩa là nó đúng; Bảo mật đề cập đến dung sai được tuyên bố, không phải dung sai thực sự đạt được. Chỉ khi zkVM vừa hoàn toàn chính xác vừa đủ an toàn, mới có thể nói rằng zkVM đáng tin cậy đến dung sai được yêu cầu.

iii. Giả định tin cậy

  • Các giả định về tính trung thực của người chứng minh và người xác minh để đi đến kết luận zkVM hoạt động đáng tin cậy

Khi zkVM có giả định tin cậy, điều này thường ở dạng quy trình thiết lập đáng tin cậy. Quá trình thiết lập cho hệ thống chứng minh ZK chạy một lần, trước khi bằng chứng đầu tiên được tạo bằng hệ thống bằng chứng, để tạo ra một số thông tin được gọi là "dữ liệu thiết lập". Trong một quy trình thiết lập đáng tin cậy, một hoặc nhiều cá nhân tạo ra một số tính ngẫu nhiên được tích hợp vào dữ liệu thiết lập và cần giả định rằng ít nhất một trong số những cá nhân đó đã xóa tính ngẫu nhiên mà họ kết hợp vào dữ liệu thiết lập.

Có hai mô hình giả định niềm tin phổ biến trong thực tế.

Một giả định tin tưởng đa số trung thực nói rằng trong số một số tập hợp N cá nhân, hơn N / 2 trong số những cá nhân đó thể hiện tính toàn vẹn trong một số tương tác cụ thể với hệ thống, thường được sử dụng bởi các blockchain

Giả định tin cậy "1 trên N" nói rằng trong số một số tập hợp N cá nhân, ít nhất một trong số những cá nhân đó thể hiện tính toàn vẹn trong một số tương tác cụ thể với hệ thống, thường được sử dụng bởi các công cụ và ứng dụng dựa trên MPC.

Người ta thường đồng ý rằng tất cả những thứ khác đều bình đẳng, zkVM không có giả định tin cậy an toàn hơn zkVM yêu cầu giả định tin cậy.

4.2 Bộ ba zkVM: Cân bằng tốc độ, hiệu quả và sự ngắn gọn trong zkVM


Bộ ba zkVM: tốc độ, hiệu quả và ngắn gọn

Tốc độ, hiệu quả và sự ngắn gọn là tất cả các thuộc tính quy mô trượt. Tất cả những yếu tố này góp phần vào chi phí người dùng cuối của zkVM. Làm thế nào chúng nên được cân nhắc trong một đánh giá phụ thuộc vào ứng dụng. Thông thường, giải pháp nhanh nhất không phải là hiệu quả nhất hoặc ngắn gọn nhất; giải pháp ngắn gọn nhất không phải là nhanh nhất hoặc hiệu quả nhất; vân vân và vân vân. Trước tiên, hãy xác định từng thuộc tính trước khi giải thích mối quan hệ của chúng

i. Tốc độ

  • Làm thế nào nhanh chóng người chứng minh có thể tạo ra bằng chứng
  • Được đo bằng thời gian đồng hồ treo tường, là thời gian trôi qua từ đầu đến cuối tính toán

Tốc độ nên được xác định và đo lường liên quan đến các chương trình thử nghiệm, đầu vào và hệ thống cụ thể để đảm bảo nó có thể được đánh giá định lượng. Chỉ số này rất quan trọng đối với các ứng dụng nhạy cảm với độ trễ, trong đó cần có sẵn bằng chứng nhanh chóng, nhưng đi kèm với chi phí cao hơn và kích thước bằng chứng lớn hơn

ii. Hiệu quả

  • Các tài nguyên được tiêu thụ bởi câu tục ngữ, với ít hơn là thích hợp hơn
  • Có thể được ước tính theo thời gian người dùng, đó là lượng thời gian máy tính dành cho mã chương trình

Người chứng minh tiêu thụ hai loại tài nguyên: lõi-thời gian và không gian. Do đó, hiệu quả có thể được chia thành hiệu suất thời gian lõi và hiệu quả không gian.

Hiệu quả thời gian lõi: Lượng thời gian trung bình mà prover hoạt động trên tất cả các lõi nhân với số lõi chạy prover. Đối với một câu tục ngữ lõi đơn, mức tiêu thụ thời gian lõi và tốc độ là như nhau. Đối với một prover có khả năng đa lõi chạy ở chế độ đa lõi trên hệ thống đa lõi, mức tiêu thụ thời gian lõi và tốc độ không giống nhau. Nếu một chương trình sử dụng đầy đủ 5 lõi hoặc luồng trong 5 giây, đó sẽ là 25 giây thời gian người dùng và 5 giây thời gian đồng hồ treo tường.

Hiệu quả không gian: Đề cập đến dung lượng lưu trữ được sử dụng, chẳng hạn như RAM

Thời gian của người dùng rất thú vị như một proxy cho năng lượng tiêu thụ bằng cách chạy tính toán. Trong tình huống tất cả các lõi được sử dụng đầy đủ gần như mọi lúc, mức tiêu thụ năng lượng của CPU sẽ tương đối ổn định. Trong tình huống này, thời gian người dùng dành cho việc thực thi mã ở chế độ người dùng, chủ yếu bị ràng buộc bởi CPU phải tỷ lệ thuận tuyến tính với số watt-giờ (tức là năng lượng) được tiêu thụ bởi việc thực thi mã đó.

Tiết kiệm về tiêu thụ năng lượng, hoặc sử dụng tài nguyên máy tính, nên thú vị từ quan điểm của bất kỳ hoạt động chứng minh nào có đủ quy mô mà hóa đơn năng lượng của họ (hoặc hóa đơn điện toán đám mây của họ) để chứng minh là một chi phí hoạt động đáng kể. Vì những lý do này, thời gian của người dùng là một số liệu thú vị. Chi phí chứng minh thấp hơn cho phép các nhà cung cấp dịch vụ chuyển giá chứng minh thấp hơn cho khách hàng nhạy cảm về chi phí.

Cả hai loại hiệu quả đều liên quan đến mức tiêu thụ năng lượng của quá trình chứng minh và lượng vốn được sử dụng bởi quá trình chứng minh, liên quan đến chi phí tài chính để chứng minh. Để vận hành định nghĩa về hiệu quả để đo lường, định nghĩa phải được thực hiện liên quan đến một hoặc nhiều chương trình thử nghiệm, một hoặc nhiều đầu vào thử nghiệm cho mỗi chương trình đó và một hoặc nhiều hệ thống thử nghiệm.

iii. Sự ngắn gọn

  • Kích thước của bằng chứng được tạo ra và mức độ phức tạp của việc xác minh chúng

Tính ngắn gọn là tổng hợp của ba số liệu riêng biệt, với sự phức tạp của việc xác minh bằng chứng được chia nhỏ hơn nữa:

  • Kích thước bằng chứng: Kích thước vật lý của các bằng chứng, thường được đo bằng kilobyte
  • Thời gian xác minh bằng chứng: Khoảng thời gian cần thiết để xác minh bằng chứng.
  • Không gian xác minh bằng chứng: Sử dụng bộ nhớ trong quá trình xác minh bằng chứng

Xác minh thường là một hoạt động cốt lõi duy nhất, do đó tốc độ và hiệu quả thời gian lõi thường tương đương trong bối cảnh này. Cũng như tốc độ và hiệu quả, việc vận hành định nghĩa về tính cô đọng đòi hỏi phải chỉ định các bộ chương trình kiểm tra, đầu vào thử nghiệm và hệ thống kiểm tra.

Với mỗi thuộc tính hiệu suất được xác định, bây giờ chúng tôi minh họa các tác động mờ của việc tối ưu hóa một thuộc tính so với các thuộc tính khác.

  • Tốc độ: Tạo bằng chứng nhanh dẫn đến kích thước bằng chứng lớn hơn, nhưng xác minh bằng chứng chậm. Nhiều tài nguyên hơn được tiêu thụ để tạo ra các bằng chứng, làm giảm hiệu quả
  • Ngắn gọn: Prover cần thêm thời gian để nén bằng chứng. Nhưng xác minh bằng chứng là nhanh chóng. Bằng chứng càng ngắn gọn, chi phí tính toán càng cao
  • Hiệu quả: Giảm thiểu việc sử dụng tài nguyên làm giảm tốc độ tạo bằng chứng và tính ngắn gọn của bằng chứng

Nói chung, tối ưu hóa cho một chất lượng có nghĩa là không tối ưu hóa cho chất lượng khác, và do đó cần có phân tích đa chiều để chọn giải pháp tối ưu theo từng trường hợp.

Một cách tốt để cân nhắc các thuộc tính này trong đánh giá có thể là xác định mức chấp nhận được cho mỗi thuộc tính và sau đó xác định thuộc tính nào là quan trọng nhất. Các thuộc tính quan trọng nhất nên được tối ưu hóa, tùy thuộc vào việc duy trì mức đủ tốt trên tất cả các thuộc tính khác.

Dưới đây chúng tôi tóm tắt từng tài sản và những cân nhắc chính của chúng:


Tính chất đánh giá của zkVM

5. Tiếp theo là gì?

Với bảng trên, chúng tôi xin kết thúc bài viết đầu tiên của loạt bài của chúng tôi. Trong các bài viết tiếp theo, chúng tôi sẽ xây dựng trên sơ đồ dòng chảy được hiển thị ở trên để giải thích các quy trình số học và mật mã phổ biến trong zkVM.

Nếu bạn thấy điều này hữu ích, hãy truy cập trang webgitbook của chúng tôi để tìm hiểu thêm về những gì chúng tôi đang xây dựng tại Lita.

Ngoài ra, hãy theo dõi chúng tôi trên XDiscord để luôn cập nhật để bạn không bỏ lỡ phần còn lại của loạt phim

Disclaimer:

  1. Bài viết này được in lại từ [lita]. Chuyển tiếp tiêu đề gốc'A Zero Knowledge Paradigm: Part 1 - Zk-VM là gì?'. Tất cả bản quyền thuộc về tác giả gốc [Lita Team]. Nếu có ý kiến phản đối việc in lại này, vui lòng liên hệ với nhóm Gate Learn và họ sẽ xử lý kịp thời.
  2. Tuyên bố từ chối trách nhiệm: Các quan điểm và ý kiến được trình bày trong bài viết này chỉ là của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Bản dịch bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài báo đã dịch đều bị cấm.

ZK-VM là gì?

Trung cấp6/3/2024, 1:43:54 PM
ZK là cầu nối cho việc áp dụng rộng rãi mật mã. Cho dù trong Web2 hay Web3, bất cứ điều gì liên quan đến Zero-Knowledge Proofs (ZKP) sẽ tạo ra giá trị to lớn. Nhóm Lita đã viết các bài báo khoa học cơ bản, giới thiệu những điều cơ bản về ZK và zkVM, đưa ra cái nhìn tổng quan cấp cao về quy trình trong zkVM và cuối cùng đề xuất một bộ tiêu chuẩn để đánh giá zkVM.

Chuyển tiếp tiêu đề ban đầu 'A Zero Knowledge Paradigm: Part 1 - Zk-VM là gì?'

1. Bằng chứng kiến thức bằng không: Mồi

Bằng chứng kiến thức bằng không (ZKP) là gì?

Nếu bạn không có kiến thức trước về bằng chứng kiến thức bằng không (ZKP), video này từ Wired giải thích khái niệm ở năm cấp độ khó theo cách tương tác với các ví dụ và minh chứng dễ hiểu. Rất khuyến khích.

Nói một cách đơn giản nhất, ZKP cho phép một bên (tục ngữ) chứng minh với một bên khác (người xác minh) rằng họ biết điều gì đó mà không tiết lộ thứ đó là gì hoặc bất kỳ thông tin bổ sung nào. Cụ thể hơn, ZKP chứng minh kiến thức về một phần dữ liệu hoặc kiến thức về kết quả tính toán, mà không tiết lộ dữ liệu hoặc đầu vào. Quá trình tạo ra một bằng chứng không có kiến thức liên quan đến một loạt các mô hình toán học để chuyển đổi kết quả tính toán thành một phần thông tin vô nghĩa khác chứng minh việc thực thi mã thành công, sau này có thể được xác minh.

Trong một số trường hợp, phải mất ít công sức hơn để xác minh bằng chứng, được xây dựng sau nhiều vòng chuyển đổi đại số và mật mã, hơn là cần thiết để chạy tính toán. Sự kết hợp độc đáo giữa bảo mật và khả năng mở rộng này là điều khiến mật mã không có kiến thức trở thành một công cụ mạnh mẽ như vậy.

zkSNARKs: Zero Knowledge Succinct Non-Interactive Argument of Knowledge

  • Dựa vào quy trình thiết lập ban đầu (đáng tin cậy hoặc không đáng tin cậy) để thiết lập các tham số để xác minh
  • Yêu cầu ít nhất một tương tác giữa người chứng minh và người xác minh
  • Kích thước bằng chứng nhỏ và dễ xác minh
  • Bằng chứng dựa trên NARK được sử dụng bởi các bản tổng hợp như zkSync, Scroll và Linea

zkSTARKs: Zero Knowledge Scalable Transparent Argument of Knowledge

  • Không cần thiết lập đáng tin cậy
  • Cung cấp tính minh bạch cao bằng cách sử dụng tính ngẫu nhiên có thể xác minh công khai để tạo ra các hệ thống có thể xác minh không tin cậy, tức là tạo ra các tham số ngẫu nhiên có thể chứng minh để chứng minh và xác minh
  • Khả năng mở rộng cao vì chúng có thể tạo và xác minh bằng chứng nhanh chóng (không phải lúc nào cũng vậy), ngay cả khi kích thước của nhân chứng cơ bản (dữ liệu) lớn
  • Không yêu cầu tương tác giữa người chứng minh và người xác minh
  • Đi kèm với chi phí mà STARKs tạo ra bằng chứng lớn hơn, có thể khó xác minh hơn SNARK
  • Bằng chứng khó xác minh hơn một số bằng chứng zkSNARK nhưng không khó như một số bằng chứng khác để xác minh
  • STARK được sử dụng bởi Starknet, cũng như các zkVM như Lita, Risc Zero và Succinct Labs

(Lưu ý: Cầu nối của Succinct sử dụng SNARK nhưng SP1 là giao thức dựa trên STARK)

Điều đáng chú ý là tất cả các STARK đều là SNARK, nhưng không phải tất cả SNARK đều là STARK.

Để hiểu rõ hơn về SNARK và STARKs, chúng tôi khuyên bạn nên đọc @krzhang/privacy-in-cryptocurrencies-zero-knowledge-and-zk-snarks-1-2-68ce1838fd9c"> bài viết được viết bởi Yan ZhangYi Sun của Axiom, và bộ sưu tập các bài viết này trong github của Ventali Tan.

2. ZKVM là gì?

Máy ảo (VM) là một chương trình chạy các chương trình. Trong ngữ cảnh, zkVM là một máy tính ảo được triển khai như một hệ thống để tạo ra các bằng chứng kiến thức bằng không, hoặc một mạch hoặc công cụ phổ quát, để tạo ZKP cho bất kỳ chương trình hoặc tính toán nào.

zkVM loại bỏ nhu cầu học toán học và mật mã phức tạp để thiết kế và mã hóa ZK, đồng thời cho phép bất kỳ nhà phát triển nào thực thi các chương trình được viết bằng ngôn ngữ ưa thích của họ và tạo ZKP, giúp tích hợp và tương tác dễ dàng hơn với kiến thức bằng không. Nói chung, hầu hết các tham chiếu đến zkVM ngầm bao gồm các chuỗi công cụ trình biên dịch và hệ thống chứng minh được gắn vào máy ảo thực thi các chương trình chứ không chỉ riêng máy ảo. Dưới đây, chúng tôi tóm tắt các thành phần chính của zkVM và chức năng của chúng:

Các thành phần chính của zkVM

Việc thiết kế và thực hiện từng thành phần được điều chỉnh bởi sự lựa chọn bằng chứng (SNARK hoặc STARK) và kiến trúc tập lệnh (ISA) của zkVM. Theo truyền thống, ISA chỉ định những gì CPU có khả năng (kiểu dữ liệu, thanh ghi, bộ nhớ, v.v.) và chuỗi hành động mà CPU thực hiện khi nó thực thi một chương trình. Trong ngữ cảnh, ISA xác định mã máy có thể diễn giải và thực thi bởi máy ảo. Chọn ISA có thể mang lại sự khác biệt căn bản về khả năng tiếp cận và khả năng sử dụng của zkVM, cũng như tốc độ và hiệu quả của các quy trình tạo bằng chứng và củng cố việc xây dựng bất kỳ zkVM nào.

Dưới đây là một số ví dụ về zkVM và các thành phần của chúng để bạn tham khảo.


zkVM và các thành phần của chúng

Hiện tại, chúng tôi sẽ tập trung vào các tương tác giữa từng thành phần ở mức cao để cung cấp một khuôn khổ để hiểu các quy trình đại số và mật mã cũng như sự đánh đổi thiết kế của zkVM trong bài viết sau.

3. Tóm tắt quy trình zkVM

Sơ đồ sau đây là một sơ đồ quy trình trừu tượng, tổng quát của zkVM, được phân tách và phân loại giữa định dạng (đầu vào / đầu ra) của một chương trình khi nó di chuyển qua các thành phần của zkVM. Chúng tôi sẽ xem xét từng quy trình chuyên sâu trong các bài viết tiếp theo.


Luồng chung cho zkVM

Luồng xử lý của zkVM thường như sau:

  • Giai đoạn biên dịch
  1. Trình biên dịch đầu tiên biên dịch các chương trình được viết bằng các ngôn ngữ thông thường (C, C ++, Rust, Solidity) thành mã máy. Định dạng của mã máy được quyết định bởi sự lựa chọn của ISA.
  • Sân khấu VM
  1. VM thực thi mã máy và tạo ra một dấu vết thực thi, đó là một loạt các bước của chương trình cơ bản. Định dạng của điều này được xác định trước bởi sự lựa chọn số học, cũng như tập hợp các ràng buộc đa thức. Các sơ đồ số học phổ biến bao gồm R1CS như trong Groth16, số học PLONKish như trong halo2 và AIR như trong plonky2plonky3.
  • Giai đoạn Prover
  1. Người chứng minh nhận được dấu vết và biểu diễn nó dưới dạng một tập hợp các đa thức bị ràng buộc bởi một tập hợp các ràng buộc, về cơ bản dịch phép tính thành đại số bằng cách lập bản đồ các sự kiện bằng toán học.

  2. Người chứng minh cam kết với các đa thức này bằng cách sử dụng Lược đồ cam kết đa thức (PCS). Lược đồ cam kết là một giao thức cho phép người chứng minh tạo dấu vân tay của một số dữ liệu X, được gọi là cam kết với X và sau đó chứng minh sự thật về X mà không tiết lộ X, sử dụng cam kết với X. PCS là dấu vân tay; Một phiên bản ngắn gọn "được xử lý trước" của các ràng buộc đối với tính toán. Điều này cho phép người chứng minh sự thật về tính toán, hiện được biểu thị bằng phương trình đa thức, sử dụng các giá trị ngẫu nhiên do người xác minh đề xuất trong các bước sau.

  3. Người chứng minh chạy Bằng chứng Oracle tương tác đa thức (PIOP) để chỉ ra rằng các đa thức đã cam kết đại diện cho một dấu vết thực thi thỏa mãn các ràng buộc đã cho. PIOP là một giao thức chứng minh tương tác bao gồm một loạt các vòng trong đó người chứng minh gửi cam kết đến đa thức, người xác minh trả lời bằng các giá trị trường ngẫu nhiên và người chứng minh cung cấp các đánh giá về đa thức tại các giá trị ngẫu nhiên này, giống như "giải" phương trình đa thức bằng cách sử dụng các giá trị ngẫu nhiên để thuyết phục người xác minh.

  4. Áp dụng heuristic Fiat-Shamir; người chứng minh chạy PIOP ở chế độ không tương tác, trong đó hành vi của người xác minh bị giới hạn trong việc gửi điểm thử thách giả ngẫu nhiên. Trong mật mã học, heuristic Fiat-Shamir chuyển đổi bằng chứng kiến thức tương tác thành chữ ký số để xác minh. Bước này mã hóa bằng chứng và làm cho nó không có kiến thức.

  5. Người chứng minh phải thuyết phục người xác minh rằng các đánh giá đa thức được yêu cầu là chính xác, liên quan đến các cam kết đa thức mà họ đã gửi cho người xác minh. Để làm điều này, người chứng minh tạo ra một bằng chứng "đánh giá" hoặc "mở", được cung cấp bởi sơ đồ cam kết đa thức (dấu vân tay).

  • Giai đoạn xác minh
  1. Người xác minh kiểm tra bằng chứng bằng cách tuân theo giao thức xác minh của hệ thống chứng minh, sử dụng các ràng buộc hoặc cam kết. Người xác minh chấp nhận hoặc từ chối kết quả theo tính hợp lệ của bằng chứng.

Tóm lại, một bằng chứng zkVM chứng minh, đối với một chương trình nhất định, một kết quả nhất định và đưa ra các điều kiện ban đầu, rằng có một số đầu vào khiến chương trình tạo ra kết quả đã cho khi được thực thi từ các điều kiện ban đầu nhất định. Chúng ta có thể kết hợp câu lệnh này với luồng quy trình để đi đến mô tả sau đây về zkVM.

Một bằng chứng zkVM chứng minh, đối với một chương trình VM nhất định và một đầu ra nhất định, rằng có một số đầu vào khiến chương trình nhất định tạo ra đầu ra nhất định khi được thực thi trên máy ảo.

4. Đánh giá zkVM

Các tiêu chí mà chúng ta nên đánh giá zkVM là gì? Nói cách khác, khi nào chúng ta nên nói rằng zkVM này tốt hơn zkVM khác? Thành thật mà nói, câu trả lời phụ thuộc vào trường hợp sử dụng.

Nghiên cứu thị trường của Lita cho thấy rằng đối với hầu hết các trường hợp sử dụng thương mại, các thuộc tính quan trọng nhất, ngoài tốc độ, hiệu quả và ngắn gọn, là tốc độ hoặc hiệu quả thời gian lõi, tùy thuộc vào ứng dụng. Một số ứng dụng nhạy cảm về giá và muốn tối ưu hóa cho mức tiêu thụ năng lượng thấp và sử dụng vốn thấp trong việc chứng minh; Đối với những điều này, hiệu quả thời gian cốt lõi có lẽ là số liệu quan trọng nhất để tối ưu hóa. Các ứng dụng khác, đặc biệt là các ứng dụng liên quan đến tài chính hoặc giao dịch, nhạy cảm với độ trễ và muốn tối ưu hóa tốc độ.

Hầu hết các so sánh công khai về hiệu suất chỉ tập trung vào tốc độ, điều này rất quan trọng nhưng không phải là thước đo toàn diện về hiệu suất. Ngoài ra còn có một vài thuộc tính quan trọng đo lường độ tin cậy của zkVM; Hầu hết trong số đó không đạt tiêu chuẩn sẵn sàng sản xuất, ngay cả đối với những người đương nhiệm dẫn đầu thị trường.

Chúng tôi đề xuất rằng zkVM nên được đánh giá theo các tiêu chí sau, được tách thành hai tập hợp con:


Tiêu chí chính để đánh giá zk-VM

Đường cơ sở: Đo độ tin cậy của zkVM

  • Đúng đắn
  • An ninh
  • Giả định tin cậy

Hiệu suất: Đo lường khả năng của zkVM

  • Hiệu quả
  • Tốc độ
  • Ngắn gọn

4.1 Đường cơ sở: Giả định về tính đúng đắn, bảo mật và tin cậy

Khi đánh giá zkVM cho các ứng dụng quan trọng, tính đúng đắn và bảo mật nên được coi là đường cơ sở. Cần phải có đủ lý do để tự tin về tính đúng đắn và bảo mật được tuyên bố đủ mạnh. Ngoài ra, các giả định tin cậy cần phải đủ yếu cho ứng dụng.

Nếu không có các thuộc tính này, zkVM có khả năng tồi tệ hơn là vô dụng đối với ứng dụng, vì nó có thể không hoạt động như được chỉ định và khiến người dùng bị hack và khai thác.

i. Tính đúng đắn

  • Máy ảo phải thực hiện tính toán như dự định
  • Hệ thống chứng minh phải đáp ứng các đặc tính bảo mật được yêu cầu của nó

Tính chính xác bao gồm ba thuộc tính:

  • Tính hợp lý: Hệ thống chứng minh là trung thực và do đó mọi thứ nó chứng minh là đúng. Người xác minh bác bỏ bằng chứng về việc khai báo gian dối; Nó chỉ chấp nhận kết quả tính toán nếu đầu vào thực sự tạo ra kết quả đó.
  • Tính đầy đủ: Hệ thống chứng minh hoàn chỉnh và có thể chứng minh tất cả các tuyên bố đúng. Nếu người chứng minh tuyên bố nó có thể chứng minh kết quả tính toán, nó phải có khả năng đưa ra bằng chứng mà người xác minh chấp nhận.
  • Không có kiến thức: Sở hữu một bằng chứng không tiết lộ nhiều hơn về đầu vào của tính toán hơn là biết chính kết quả

Bạn có thể có sự trọn vẹn mà không có sự lành mạnh; Nếu hệ thống chứng minh tất cả mọi thứ bao gồm cả sự giả dối, rõ ràng nó là hoàn chỉnh nhưng không phải là âm thanh. Ngược lại, bạn có thể có âm thanh mà không có sự hoàn chỉnh; Nếu hệ thống chứng minh một chương trình tồn tại nhưng không thể chứng minh các tính toán, rõ ràng đó là âm thanh (sau tất cả, nó không bao giờ chứng minh bất kỳ sự giả dối nào), nhưng không hoàn chỉnh.

ii. Bảo mật

  • Liên quan đến dung sai của tính hợp lý, tính đầy đủ và kiến thức bằng không

Trong thực tế, cả ba thuộc tính chính xác đều có dung sai khác không. Điều này ngụ ý tất cả các bằng chứng là xác suất thống kê về tính chính xác, và không phải là sự chắc chắn tuyệt đối. Dung sai đề cập đến xác suất tối đa có thể chấp nhận được rằng một thuộc tính sẽ thất bại. Không dung sai tất nhiên là lý tưởng, nhưng zkVM không đạt được dung sai bằng không trên tất cả các thuộc tính này trong thực tế. Âm thanh và tính đầy đủ hoàn hảo dường như không tương thích với sự cô đọng, và không có phương pháp nào được biết đến để đạt được kiến thức hoàn hảo bằng không. Một cách phổ biến để đo lường bảo mật là trong bit bảo mật, trong đó dung sai 1 / (2 ^ n) được gọi là n bit bảo mật. Nhiều bit bảo mật hơn là tốt hơn.

Nếu một zkVM là hoàn toàn chính xác, điều đó không nhất thiết có nghĩa là nó đáng tin cậy. Tính chính xác chỉ ngụ ý rằng zkVM đáp ứng các thuộc tính bảo mật của nó lên đến dung sai được yêu cầu. Nó không ngụ ý rằng dung sai được tuyên bố là đủ thấp để sẵn sàng cho thị trường. Ngoài ra, nếu một zkVM đủ an toàn, điều đó không có nghĩa là nó đúng; Bảo mật đề cập đến dung sai được tuyên bố, không phải dung sai thực sự đạt được. Chỉ khi zkVM vừa hoàn toàn chính xác vừa đủ an toàn, mới có thể nói rằng zkVM đáng tin cậy đến dung sai được yêu cầu.

iii. Giả định tin cậy

  • Các giả định về tính trung thực của người chứng minh và người xác minh để đi đến kết luận zkVM hoạt động đáng tin cậy

Khi zkVM có giả định tin cậy, điều này thường ở dạng quy trình thiết lập đáng tin cậy. Quá trình thiết lập cho hệ thống chứng minh ZK chạy một lần, trước khi bằng chứng đầu tiên được tạo bằng hệ thống bằng chứng, để tạo ra một số thông tin được gọi là "dữ liệu thiết lập". Trong một quy trình thiết lập đáng tin cậy, một hoặc nhiều cá nhân tạo ra một số tính ngẫu nhiên được tích hợp vào dữ liệu thiết lập và cần giả định rằng ít nhất một trong số những cá nhân đó đã xóa tính ngẫu nhiên mà họ kết hợp vào dữ liệu thiết lập.

Có hai mô hình giả định niềm tin phổ biến trong thực tế.

Một giả định tin tưởng đa số trung thực nói rằng trong số một số tập hợp N cá nhân, hơn N / 2 trong số những cá nhân đó thể hiện tính toàn vẹn trong một số tương tác cụ thể với hệ thống, thường được sử dụng bởi các blockchain

Giả định tin cậy "1 trên N" nói rằng trong số một số tập hợp N cá nhân, ít nhất một trong số những cá nhân đó thể hiện tính toàn vẹn trong một số tương tác cụ thể với hệ thống, thường được sử dụng bởi các công cụ và ứng dụng dựa trên MPC.

Người ta thường đồng ý rằng tất cả những thứ khác đều bình đẳng, zkVM không có giả định tin cậy an toàn hơn zkVM yêu cầu giả định tin cậy.

4.2 Bộ ba zkVM: Cân bằng tốc độ, hiệu quả và sự ngắn gọn trong zkVM


Bộ ba zkVM: tốc độ, hiệu quả và ngắn gọn

Tốc độ, hiệu quả và sự ngắn gọn là tất cả các thuộc tính quy mô trượt. Tất cả những yếu tố này góp phần vào chi phí người dùng cuối của zkVM. Làm thế nào chúng nên được cân nhắc trong một đánh giá phụ thuộc vào ứng dụng. Thông thường, giải pháp nhanh nhất không phải là hiệu quả nhất hoặc ngắn gọn nhất; giải pháp ngắn gọn nhất không phải là nhanh nhất hoặc hiệu quả nhất; vân vân và vân vân. Trước tiên, hãy xác định từng thuộc tính trước khi giải thích mối quan hệ của chúng

i. Tốc độ

  • Làm thế nào nhanh chóng người chứng minh có thể tạo ra bằng chứng
  • Được đo bằng thời gian đồng hồ treo tường, là thời gian trôi qua từ đầu đến cuối tính toán

Tốc độ nên được xác định và đo lường liên quan đến các chương trình thử nghiệm, đầu vào và hệ thống cụ thể để đảm bảo nó có thể được đánh giá định lượng. Chỉ số này rất quan trọng đối với các ứng dụng nhạy cảm với độ trễ, trong đó cần có sẵn bằng chứng nhanh chóng, nhưng đi kèm với chi phí cao hơn và kích thước bằng chứng lớn hơn

ii. Hiệu quả

  • Các tài nguyên được tiêu thụ bởi câu tục ngữ, với ít hơn là thích hợp hơn
  • Có thể được ước tính theo thời gian người dùng, đó là lượng thời gian máy tính dành cho mã chương trình

Người chứng minh tiêu thụ hai loại tài nguyên: lõi-thời gian và không gian. Do đó, hiệu quả có thể được chia thành hiệu suất thời gian lõi và hiệu quả không gian.

Hiệu quả thời gian lõi: Lượng thời gian trung bình mà prover hoạt động trên tất cả các lõi nhân với số lõi chạy prover. Đối với một câu tục ngữ lõi đơn, mức tiêu thụ thời gian lõi và tốc độ là như nhau. Đối với một prover có khả năng đa lõi chạy ở chế độ đa lõi trên hệ thống đa lõi, mức tiêu thụ thời gian lõi và tốc độ không giống nhau. Nếu một chương trình sử dụng đầy đủ 5 lõi hoặc luồng trong 5 giây, đó sẽ là 25 giây thời gian người dùng và 5 giây thời gian đồng hồ treo tường.

Hiệu quả không gian: Đề cập đến dung lượng lưu trữ được sử dụng, chẳng hạn như RAM

Thời gian của người dùng rất thú vị như một proxy cho năng lượng tiêu thụ bằng cách chạy tính toán. Trong tình huống tất cả các lõi được sử dụng đầy đủ gần như mọi lúc, mức tiêu thụ năng lượng của CPU sẽ tương đối ổn định. Trong tình huống này, thời gian người dùng dành cho việc thực thi mã ở chế độ người dùng, chủ yếu bị ràng buộc bởi CPU phải tỷ lệ thuận tuyến tính với số watt-giờ (tức là năng lượng) được tiêu thụ bởi việc thực thi mã đó.

Tiết kiệm về tiêu thụ năng lượng, hoặc sử dụng tài nguyên máy tính, nên thú vị từ quan điểm của bất kỳ hoạt động chứng minh nào có đủ quy mô mà hóa đơn năng lượng của họ (hoặc hóa đơn điện toán đám mây của họ) để chứng minh là một chi phí hoạt động đáng kể. Vì những lý do này, thời gian của người dùng là một số liệu thú vị. Chi phí chứng minh thấp hơn cho phép các nhà cung cấp dịch vụ chuyển giá chứng minh thấp hơn cho khách hàng nhạy cảm về chi phí.

Cả hai loại hiệu quả đều liên quan đến mức tiêu thụ năng lượng của quá trình chứng minh và lượng vốn được sử dụng bởi quá trình chứng minh, liên quan đến chi phí tài chính để chứng minh. Để vận hành định nghĩa về hiệu quả để đo lường, định nghĩa phải được thực hiện liên quan đến một hoặc nhiều chương trình thử nghiệm, một hoặc nhiều đầu vào thử nghiệm cho mỗi chương trình đó và một hoặc nhiều hệ thống thử nghiệm.

iii. Sự ngắn gọn

  • Kích thước của bằng chứng được tạo ra và mức độ phức tạp của việc xác minh chúng

Tính ngắn gọn là tổng hợp của ba số liệu riêng biệt, với sự phức tạp của việc xác minh bằng chứng được chia nhỏ hơn nữa:

  • Kích thước bằng chứng: Kích thước vật lý của các bằng chứng, thường được đo bằng kilobyte
  • Thời gian xác minh bằng chứng: Khoảng thời gian cần thiết để xác minh bằng chứng.
  • Không gian xác minh bằng chứng: Sử dụng bộ nhớ trong quá trình xác minh bằng chứng

Xác minh thường là một hoạt động cốt lõi duy nhất, do đó tốc độ và hiệu quả thời gian lõi thường tương đương trong bối cảnh này. Cũng như tốc độ và hiệu quả, việc vận hành định nghĩa về tính cô đọng đòi hỏi phải chỉ định các bộ chương trình kiểm tra, đầu vào thử nghiệm và hệ thống kiểm tra.

Với mỗi thuộc tính hiệu suất được xác định, bây giờ chúng tôi minh họa các tác động mờ của việc tối ưu hóa một thuộc tính so với các thuộc tính khác.

  • Tốc độ: Tạo bằng chứng nhanh dẫn đến kích thước bằng chứng lớn hơn, nhưng xác minh bằng chứng chậm. Nhiều tài nguyên hơn được tiêu thụ để tạo ra các bằng chứng, làm giảm hiệu quả
  • Ngắn gọn: Prover cần thêm thời gian để nén bằng chứng. Nhưng xác minh bằng chứng là nhanh chóng. Bằng chứng càng ngắn gọn, chi phí tính toán càng cao
  • Hiệu quả: Giảm thiểu việc sử dụng tài nguyên làm giảm tốc độ tạo bằng chứng và tính ngắn gọn của bằng chứng

Nói chung, tối ưu hóa cho một chất lượng có nghĩa là không tối ưu hóa cho chất lượng khác, và do đó cần có phân tích đa chiều để chọn giải pháp tối ưu theo từng trường hợp.

Một cách tốt để cân nhắc các thuộc tính này trong đánh giá có thể là xác định mức chấp nhận được cho mỗi thuộc tính và sau đó xác định thuộc tính nào là quan trọng nhất. Các thuộc tính quan trọng nhất nên được tối ưu hóa, tùy thuộc vào việc duy trì mức đủ tốt trên tất cả các thuộc tính khác.

Dưới đây chúng tôi tóm tắt từng tài sản và những cân nhắc chính của chúng:


Tính chất đánh giá của zkVM

5. Tiếp theo là gì?

Với bảng trên, chúng tôi xin kết thúc bài viết đầu tiên của loạt bài của chúng tôi. Trong các bài viết tiếp theo, chúng tôi sẽ xây dựng trên sơ đồ dòng chảy được hiển thị ở trên để giải thích các quy trình số học và mật mã phổ biến trong zkVM.

Nếu bạn thấy điều này hữu ích, hãy truy cập trang webgitbook của chúng tôi để tìm hiểu thêm về những gì chúng tôi đang xây dựng tại Lita.

Ngoài ra, hãy theo dõi chúng tôi trên XDiscord để luôn cập nhật để bạn không bỏ lỡ phần còn lại của loạt phim

Disclaimer:

  1. Bài viết này được in lại từ [lita]. Chuyển tiếp tiêu đề gốc'A Zero Knowledge Paradigm: Part 1 - Zk-VM là gì?'. Tất cả bản quyền thuộc về tác giả gốc [Lita Team]. Nếu có ý kiến phản đối việc in lại này, vui lòng liên hệ với nhóm Gate Learn và họ sẽ xử lý kịp thời.
  2. Tuyên bố từ chối trách nhiệm: Các quan điểm và ý kiến được trình bày trong bài viết này chỉ là của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Bản dịch bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài báo đã dịch đều bị cấm.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!