Cảnh báo rủi ro: Đề phòng huy động vốn bất hợp pháp dưới danh nghĩa 'tiền điện tử' và 'blockchain'. — Năm cơ quan bao gồm Ủy ban Giám sát Ngân hàng và Bảo hiểm
Tìm kiếm
Đăng nhập
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
Xem thị trường
Giải thích chi tiết về hai công cụ SNARK mới được a16z crypto ra mắt
Jessica
读者
2023-08-11 08:34
Bài viết này có khoảng 4450 từ, đọc toàn bộ bài viết mất khoảng 7 phút
Giảm thiểu chi phí cam kết của người chứng minh và mở rộng lãnh thổ của dòng ZK L2 với hiệu suất và khả năng kiểm tra cao.

Bài viết này xuất phát từ a 16 z, tác giả gốc: Justin Thaler, do dịch giả Jessica của Odaily biên soạn.

Vào ngày 10 tháng 8, một loại tiền điện tử 16 z đã ra mắt các công cụ Lasso và Jolt mới dựa trên SNARK, cùng nhau thể hiện một cách tiếp cận mới đối với thiết kế SNARK có thể cải thiện hiệu suất của các chuỗi công cụ được triển khai rộng rãi theo cấp độ lớn trở lên; cung cấp tốt hơn, thuận tiện hơn kinh nghiệm của nhà phát triển và làm cho việc kiểm tra dễ dàng hơn.

SNARK (Luận cứ kiến ​​​​thức không tương tác ngắn gọn) là một giao thức mật mã, theo đó bất kỳ ai cũng có thể chứng minh với người xác minh không đáng tin cậy rằng họ biết một nhân chứng đáp ứng một số đặc tính nhất định.

  • Một trường hợp sử dụng nổi bật trong Web 3 là L2 chứng minh với L1 rằng họ biết chữ ký số cho phép một loạt giao dịch, do đó, chữ ký đó không cần phải được mạng L1 lưu trữ và xác minh, cải thiện khả năng mở rộng.

  • Các ứng dụng bên ngoài blockchain bao gồm: nhanh chóng chứng minh tính hợp lệ của tất cả các kết quả đầu ra được tạo ra bởi các thiết bị phần cứng không đáng tin cậy, đảm bảo người dùng có thể tin tưởng chúng. Các cá nhân có thể chứng minh một cách không cần biết rằng một cơ quan đáng tin cậy đã cấp cho họ thông tin xác thực chứng minh họ đủ tuổi để truy cập nội dung giới hạn độ tuổi mà không tiết lộ ngày sinh của họ. Bất kỳ ai gửi dữ liệu được mã hóa qua mạng đều có thể chứng minh với quản trị viên rằng dữ liệu đó tuân thủ chính sách mạng mà không tiết lộ thêm chi tiết.

Trong khi nhiều SNARK vẫn là một mức chi phí hấp dẫn đối với người xác minh, SNARK thường vẫn đưa ra khoảng sáu bậc chi phí lớn trong tính toán của người xác minh. Công việc bổ sung do người chứng minh thực hiện có tính song song cao, nhưng chi phí hàng triệu lần đã hạn chế nghiêm trọng phạm vi áp dụng SNARK.

SNARK có nhiều lợi thế hơn về hiệu suất sẽ tăng tốc L 2 và cũng có thể cho phép các nhà xây dựng mở khóa các ứng dụng chưa được hình dung.Đó là lý do tại sao chúng tôi giới thiệu hai công nghệ mới có liên quan: Lasso, một tham số tra cứu mới có thể làm tăng đáng kể chi phí của bộ chuẩn; Jolt, sử dụng Lasso để cung cấp một khung mới cho cái gọi là zkVM và hơn thế nữa. Thiết kế giao diện người dùng mở rộng SNARK . Cùng nhau, chúng cải thiện hiệu suất, trải nghiệm của nhà phát triển và khả năng kiểm tra của thiết kế SNARK, từ đó cải thiện các bản dựng trong web 3.

tiêu đề phụ

Tìm thông số, Lasso và Jolt

Giao diện người dùng SNARK là trình biên dịch chuyển đổi chương trình máy tính thành một mạch mà giao diện người dùng SNARK có thể sử dụng.(Lưu ý: Mạch là một mô hình tính toán cực kỳ hạn chế trong đó các phép toán nguyên thủy duy nhất có sẵn là phép cộng và phép nhân.)

Một công cụ quan trọng trong các thiết kế SNARK hiện đại là một giao thức được gọi là tham số tra cứu, cho phép người chứng minh không đáng tin cậy gửi một vectơ lớn bằng mật mã và sau đó chứng minh rằng mỗi mục nhập của vectơ đó được chứa ở giữa bảng được xác định trước. Các tham số tra cứu có thể giúp duy trì các mạch nhỏ bằng cách xử lý hiệu quả các hoạt động không được tính toán một cách tự nhiên bằng các phép cộng và nhân nhỏ.

Tuy nhiên, như Barry Whitehat của Ethereum Foundation đã nói vào năm ngoái, “nếu chúng ta có thể xác định các mạch một cách hiệu quả chỉ bằng cách sử dụng các tham số tra cứu, nó sẽ tạo ra các công cụ và mạch đơn giản hơn”. Mạch chúng tôi thiết kế chỉ thực hiện tra cứu. Theo thời gian, các tham số tra cứu sẽ trở nên hiệu quả hơn các ràng buộc đa thức đối với hầu hết mọi thứ.

Tầm nhìn này hoàn toàn trái ngược với cách mọi thứ hoạt động ngày nay, nơi các nhà phát triển triển khai SNARK bằng cách viết chương trình bằng các ngôn ngữ dành riêng cho miền đặc biệt để biên dịch chương trình thành các ràng buộc đa thức hoặc bằng cách mã hóa trực tiếp các ràng buộc bằng tay. Chuỗi công cụ này thực hiện rất nhiều công việc và cung cấp nhiều diện tích bề mặt cho các lỗi nghiêm trọng về an toàn xâm nhập. Ngay cả với các công cụ và mạch phức tạp, hiệu suất của SNARK vẫn chậm, điều này hạn chế khả năng ứng dụng của chúng.

Lasso và Jolt giải quyết cả ba mối quan tâm chính: hiệu suất, trải nghiệm của nhà phát triển và khả năng kiểm toán,Cùng nhau, tầm nhìn tìm kiếm điểm kỳ dị được hiện thực hóa. Lasso và Jolt cũng buộc phải suy nghĩ lại phần lớn những kiến ​​thức đã được thừa nhận trong thiết kế SNARK.

tiêu đề phụ

Nền thiết kế SNARK: tại sao lại chậm như vậy?

Hầu hết các chương trình phụ trợ SNARK đều có trình chứng minh cam kết bằng mật mã với giá trị của từng cổng trong mạch bằng sơ đồ cam kết đa thức. Sau đó, người chứng minh chứng minh rằng giá trị được gửi thực sự tương ứng với việc thực thi chính xác của người kiểm tra nhân chứng.

tôi sẽCông việc chứng minh từ sơ đồ cam kết đa thức được gọi là chi phí cam kết.SNARK có thêm chi phí chứng minh từ các chương trình cam kết đa thức. NhưngChi phí cam kết thường là điểm nghẽn.Điều tương tự cũng xảy ra với Lasso và Jolt. Nếu SNARK được thiết kế trong đó chi phí cam kết không phải là chi phí chứng minh chính thì điều đó không có nghĩa là sơ đồ cam kết đa thức rẻ. Đúng hơn, điều đó có nghĩa là các chi phí khác cao hơn mức cần thiết.

Về mặt trực quan, mục đích của các cam kết là nhằm tăng cường tính đơn giản của các hệ thống chứng minh một cách an toàn về mặt mật mã. Khi người chứng minh gửi một vectơ giá trị lớn, điều đó gần giống như thể người chứng minh đang gửi toàn bộ vectơ đến người xác minh, giống như các hệ thống chứng minh thông thường gửi toàn bộ nhân chứng đến người xác minh. Các kế hoạch cam kết có thể đạt được điều này mà không buộc người xác thực phải thực sự nhận được toàn bộ nhân chứng—có nghĩa là mục đích của kế hoạch cam kết trong thiết kế SNARK là kiểm soát chi phí của người xác nhận.

Nhưng các phương pháp mã hóa này rất tốn kém đối với người chứng minh, đặc biệt là so với các phương pháp lý thuyết thông tin mà SNARK sử dụng bên ngoài các sơ đồ cam kết đa thức. Các phương pháp lý thuyết thông tin chỉ dựa vào các phép toán trường hữu hạn. Và một hoạt động tại hiện trường có cường độ nhanh hơn nhiều so với thời gian cần thiết để gửi một phần tử trường tùy ý.

tiêu đề phụ

Tại sao Lasso và Jolt lại quan trọng

Lasso là một tham số tra cứu mới trong đó người chứng minh hứa hẹn các giá trị ngày càng ít hơn so với công việc trước đó.Đây có thể là tốc độ tăng gấp 20 lần hoặc hơn, trong đó tốc độ tăng gấp 2 đến 4 lần đến từ ít giá trị được gửi hơn và một mức tăng tốc gấp 10 lần khác đến từ thực tế là tất cả các giá trị được gửi trong Lasso đều nhỏ. Không giống như nhiều tham số tra cứu trước đó, Lasso (và Jolt) cũng tránh FFT, vốn tốn nhiều dung lượng và có thể gây tắc nghẽn cho các phiên bản lớn.

Hơn nữa, Lasso hoạt động ngay cả với những bảng lớn, miễn là những bảng đó có cấu trúc (theo nghĩa kỹ thuật chính xác). Những bảng này quá lớn nên không ai có thể triển khai một cách rõ ràng, nhưng Lasso chỉ trả tiền cho những thành phần bảng mà nó thực sự truy cập. Đặc biệt—so với các tham số tra cứu trước đó—nếu bảng có cấu trúc thì không bên nào cần phải cam kết tất cả các giá trị trong bảng ở dạng được mã hóa.

Lasso khai thác hai khái niệm cấu trúc khác nhau: khả năng phân hủy và cấu trúc LDE.(LDE là từ viết tắt của một khái niệm kỹ thuật được gọi là Đa thức mở rộng bậc thấp.)tiêu đề phụ

Jolt

Jolt (Chỉ một bảng tra cứu) là một giao diện người dùng mới được mở khóa nhờ khả năng sử dụng các bảng tra cứu khổng lồ của Lasso.Jolt nhắm đến sự trừu tượng hóa máy ảo/CPU, còn được gọi là kiến ​​trúc tập lệnh (ISA)SNARK hỗ trợ sự trừu tượng hóa này được gọi là zkVM. Ví dụ: hãy xem xét tập lệnh RISC-V (bao gồm phần mở rộng nhân) mà dự án RISC-Zero cũng nhắm tới. Đây là một ISA mã nguồn mở phổ biến được phát triển bởi cộng đồng kiến ​​trúc máy tính mà không quan tâm đến SNARK.

tiêu đề phụ

Xem xét lại sự khôn ngoan đã được chấp nhận trong thiết kế SNARK

Lasso và Jolt cũng phá bỏ một số kiến ​​thức được thừa nhận trong thiết kế SNARK.

#1. SNARK lớn là lãng phí. Mọi người nên sử dụng FRI, Ligero, Brakedown hoặc các biến thể vì chúng tránh các kỹ thuật đường cong elip thường áp dụng cho quy mô lớn.

Kích thước trường ở đây gần tương ứng với kích thước của các số xuất hiện trong bằng chứng SNARK. Vì phép cộng và phép nhân các số rất lớn rất tốn kém nên ý tưởng rằng SNARK trên các trường lớn là lãng phí có nghĩa là chúng ta nên cố gắng thiết kế các giao thức không bao giờ có số lượng lớn. Các cam kết dựa trên MSM sử dụng các đường cong elip, thường được xác định trên các trường lớn (có kích thước ~2 256), vì vậy những lời hứa này mang tiếng là có hiệu suất kém.

Việc sử dụng các trường nhỏ có hợp lý hay không (ngay cả khi chúng là một tùy chọn) phần lớn phụ thuộc vào ứng dụng. Lasso và Jolt còn tiến xa hơn nữa. Họ cho thấy rằng ngay cả với sơ đồ cam kết dựa trên MSM, công việc của người chứng minh có thể gần như độc lập với quy mô trường. Điều này là do, đối với các cam kết dựa trên MSM, kích thước của các giá trị được cam kết quan trọng hơn kích thước của các trường chứa các giá trị đó.

SNARK hiện tại làm cho người chứng minh cam kết với nhiều phần tử trường ngẫu nhiên. Ví dụ: bộ chuẩn trong chương trình phụ trợ SNARK phổ biến có tên Plonk cam kết khoảng 7 phần tử trường ngẫu nhiên (và các phần tử trường không ngẫu nhiên khác) trên mỗi cổng mạch. Các phần tử trường ngẫu nhiên này có thể lớn ngay cả khi tất cả các giá trị xuất hiện trong các phép tính đã được chứng minh đều nhỏ.

Ngược lại, Lasso và Jolt chỉ yêu cầu Prover gửi một giá trị nhỏ (Prover của Lasso cũng submit ít giá trị hơn tham số tra cứu trước đó). Điều này cải thiện đáng kể hiệu suất của các chương trình dựa trên MSM. Ở mức tối thiểu, Lasso và Jolt nên xóa bỏ quan điểm cho rằng cộng đồng nên từ bỏ các cam kết dựa trên MSM trong trường hợp hiệu suất của người chứng minh có vấn đề.

#2 Tập lệnh đơn giản hơn dẫn đến zkVM nhanh hơn.

Độ phức tạp của Jolt (mỗi lệnh) chỉ phụ thuộc vào kích thước đầu vào của lệnh, miễn là bảng đánh giá cho mỗi lệnh có thể phân tách được. Jolt đã chứng minh rằng các lệnh phức tạp đáng ngạc nhiên đều có thể phân tách được, đặc biệt là tất cả RISC-V.

Điều này trái ngược với niềm tin thường thấy rằng các máy ảo đơn giản hơn (zkVM) nhất thiết phải dẫn đến các mạch nhỏ hơn và các bộ chứng minh nhanh hơn liên quan (mỗi bước của VM). Đây là động lực hướng dẫn đằng sau các zkVM đặc biệt đơn giản như Cairo VM, được thiết kế đặc biệt để thân thiện với SNARK.

Trên thực tế, đối với các máy ảo đơn giản hơn, Jolt đạt được chi phí cam kết cho bộ chuẩn thấp hơn so với các SNARK trước đây. Ví dụ: để thực thi máy ảo Cairo, trình chứng minh SNARK gửi 51 phần tử trường ở mỗi bước của máy ảo. SNARK do Cairo triển khai hiện hoạt động trên các trường 251 bit (63 bit là giới hạn dưới cứng của kích thước trường mà SNARK có thể sử dụng). Trình chứng minh của Jolt hoạt động trên ~60 phần tử trường mỗi bước (xác định nhiều loại dữ liệu 64 bit) cho CPU RISC-V. Sau khi tính đến thực tế là các phần tử trường được gửi là nhỏ, chi phí của bộ chuẩn Jolt gần tương đương với chi phí gửi 6 phần tử trường 256-bit ngẫu nhiên.

#3 Không có hình phạt nào về hiệu suất khi chia các phép tính lớn thành các phần nhỏ.

Dựa trên quan điểm này, các dự án ngày nay phân tách bất kỳ mạch lớn nào thành các khối nhỏ, chứng minh từng khối riêng biệt và tổng hợp đệ quy các kết quả thông qua SNARK. Các hoạt động triển khai này sử dụng phương pháp này để giảm bớt tắc nghẽn về hiệu suất trong các SNARK phổ biến. Ví dụ: SNARK dựa trên FRI yêu cầu gần 100 GB dung lượng thử nghiệm, ngay cả đối với các mạch nhỏ. Chúng cũng yêu cầu FFT, một hoạt động siêu tuyến tính có thể trở thành nút thắt cổ chai nếu SNARK được áp dụng “đồng thời” cho các mạch lớn.

Thực tế là một số SNARK (chẳng hạn như Lasso và Jolt) thể hiện tính kinh tế theo quy mô (chứ không phải tính kinh tế theo quy mô như trong các SNARK hiện được triển khai). Điều này có nghĩa là tuyên bố được chứng minh càng lớn thì chi phí của người chứng minh càng nhỏ so với việc kiểm tra nhân chứng trực tiếp (tức là công việc cần thiết để đánh giá mạch nhân chứng mà không đảm bảo tính chính xác). Ở cấp độ kỹ thuật, tính kinh tế nhờ quy mô đến từ hai nơi.

Tăng tốc Pippenger cho MSM có kích thước n: log( n ) cải thiện hệ số so với thuật toán đơn giản. N càng lớn thì mức độ cải thiện càng lớn.

Trong các tham số tra cứu như Lasso, Prover trả chi phí một lần phụ thuộc vào kích thước của bảng tra cứu nhưng không liên quan gì đến số lượng giá trị tra cứu. Chi phí chứng minh một lần được khấu hao trên tất cả các lần tra cứu vào bảng. Khối lớn hơn có nghĩa là tra cứu nhiều hơn, nghĩa là khấu hao tốt hơn.

Cách phổ biến để giải quyết các mạch điện lớn ngày nay là chia mọi thứ thành những phần nhỏ nhất có thể. Hạn chế chính về kích thước của mỗi phần là chúng không thể nhỏ đến mức việc chứng minh tập hợp đệ quy trở thành nút thắt cổ chai đối với người chứng minh.

Lasso và Jolt đề xuất một cách tiếp cận hoàn toàn trái ngược nhau. Mọi người nên sử dụng SNARK có quy mô kinh tế. Sau đó chia nhỏ phép tính lớn thành những phần lớn nhất có thể và lặp lại kết quả. Giới hạn chính về kích thước của mỗi mảnh là không gian chứng minh, nó sẽ tăng lên khi mảnh lớn hơn.

#4 Cần có những hạn chế về chiều cao để SNARK hiệu quả.

Jolt sử dụng R 1 CS làm đại diện trung gian. Không có lợi ích gì khi sử dụng các ràng buộc về Chiều cao hoặc Tùy chỉnh trong Jolt. Phần lớn chi phí của người chứng minh trong Jolt nằm ở việc tra cứu tham số Lasso, thay vì chứng minh tính thỏa mãn của hệ thống ràng buộc kết quả coi việc tra cứu là điều hiển nhiên.

Jolt là phổ quát, vì vậy nó không mất đi tính linh hoạt. Do đó, nó cản trở sự tập trung cao độ của các nhà phát triển vào các hạn chế về chiều cao thiết kế (thường được chỉ định thủ công) trong nỗ lực cải thiện hiệu suất của các SNARK phổ biến hiện nay.

Tất nhiên, một số ngữ cảnh vẫn có thể được hưởng lợi từ các ràng buộc về chiều cao hoặc tùy chỉnh. Một ví dụ quan trọng là Minroot VDF, có giới hạn 5 độ có thể giảm chi phí cam kết khoảng 3 lần.

#5 Các kế hoạch cam kết đa thức thưa thớt rất tốn kém và nên tránh bất cứ khi nào có thể.

Đây là lời chỉ trích chính đối với hệ thống hạn chế được giới thiệu gần đây có tên CCS và SNARK hỗ trợ nó - Spartan và Marlin, CCS là sự khái quát rõ ràng về tất cả các hệ thống hạn chế phổ biến trong thực tế ngày nay.

Lời chỉ trích này là vô căn cứ. Trên thực tế, cốt lõi kỹ thuật của Lasso và Jolt là sơ đồ cam kết đa thức thưa thớt trong Spartan - Spark. Bản thân Spark là một sự chuyển đổi chung của bất kỳ sơ đồ cam kết đa thức (không thưa thớt) nào sang một sơ đồ hỗ trợ đa thức thưa thớt.

Lasso tối ưu hóa và mở rộng Spark để đảm bảo rằng người chứng minh chỉ cam kết các giá trị nhỏ, nhưng ngay cả khi không có những tối ưu hóa này thì những lời chỉ trích cũng không có cơ sở. Trên thực tế, bộ chứng minh của Spartan hứa hẹn sẽ có ít phần tử trường (ngẫu nhiên) hơn SNARK (chẳng hạn như Plonk giúp tránh các cam kết đa thức thưa thớt).

Cách tiếp cận của Spartan có thêm lợi thế về hiệu suất, đặc biệt đối với các mạch có cấu trúc lặp đi lặp lại. Đối với các mạch này, các cổng bổ sung không bổ sung thêm công việc mật mã của bộ chứng minh Spartan. Công việc này chỉ phát triển theo số lượng biến trong một hệ ràng buộc nhất định chứ không phát triển theo số lượng ràng buộc. Không giống như Plonk, người chứng minh Spartan không cần gửi nhiều bản sao khác nhau của cùng một biến.

Chúng tôi lạc quan rằng Lasso và Jolt sẽ thay đổi đáng kể cách thiết kế SNARK, cải thiện hiệu suất và khả năng kiểm tra. Đây là một công cụ quan trọng với khả năng kỳ lạ giúp giảm thiểu chi phí cam kết của người chứng minh.

a16z
công nghệ
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký
https://t.me/Odaily_News
Tài khoản chính thức
https://twitter.com/OdailyChina