Hôm nay, LayerZero đã ra mắt chuỗi mới của họ là Zero, chuỗi này bao gồm nhiều tiến bộ công nghệ — trong đó có một phương pháp chứng minh không kiến thức hoàn toàn mới, tách rời việc thực thi giao dịch và xác minh. Tất cả nhờ vào “Jolt Inside”.
Jolt là gì? Jolt là một hệ thống zkVM mã nguồn mở dựa trên kiến trúc RISC-V (hoặc chính xác hơn là một “virtual machine” đơn giản), nhanh chóng, an toàn và dễ sử dụng. Nó đại diện cho một phương pháp thiết kế SNARK tiên tiến, hoàn toàn mới, dựa trên ba năm nghiên cứu của a16z crypto, và chúng tôi sẽ mở mã nguồn để bất kỳ ai cũng có thể sử dụng hoặc phát triển thêm. Tuy nhiên, sự ra đời của Jolt thực chất là kết quả của một câu chuyện đã ấp ủ nhiều thập kỷ.
Tại sao thiết kế zkVM và SNARK lại quan trọng đến vậy?
Trước khi đi sâu vào quá trình phát triển của thiết kế SNARK, chúng ta cần hiểu rõ zkVM là gì.
Loại máy ảo này thường được gọi là “zk virtual machine”, nhưng đặc điểm nổi bật hơn là tính đơn giản. Mặc dù “zero knowledge” (không kiến thức) rất quan trọng trong bảo vệ quyền riêng tư, nhưng “đơn giản” nghĩa là chứng minh ngắn gọn và dễ xác thực — hai đặc tính hữu ích nhưng khác nhau, thường bị nhầm lẫn với nhau. (Jolt đã có tính đơn giản và sắp tới sẽ tích hợp zero knowledge.)
Tại sao zkVM lại quan trọng? zkVM và SNARK (chứng minh kiến thức không tương tác, ngắn gọn) đóng vai trò then chốt trong khả năng mở rộng, quyền riêng tư và an toàn của blockchain. Các chứng minh, luận chứng và zero knowledge (gọi chung là công nghệ xác thực tính toán) này có vô số ứng dụng trong ngành mã hóa và các lĩnh vực khác.
Do cấu trúc thiết kế truyền thống và các lý do khác, ngành công nghiệp cho đến nay vẫn thường xây dựng zkVM theo cách phức tạp; phần sau sẽ trình bày chi tiết hơn. Tuy nhiên, Jolt từ đầu đã tập trung vào một phương pháp thiết kế SNARK hoàn toàn khác, nhằm đạt hiệu quả, khả dụng và hiệu suất cao hơn.
Nói ngắn gọn, zkVM là phương pháp chứng minh rằng bạn đã chạy đúng một chương trình máy tính. Ưu điểm của zkVM so với các SNARK khác là thân thiện với nhà phát triển. Nhờ tận dụng hạ tầng tính toán hiện có (ví dụ như hệ sinh thái compiler mã nguồn mở LLVM), nhà phát triển không cần dùng ngôn ngữ đặc thù (DSL) mà vẫn có thể khai thác sức mạnh của SNARK trong ngôn ngữ lập trình họ chọn.
Điều này khá giống với nhiều lĩnh vực mật mã hiện đại ngày nay — chúng ta có các tiêu chuẩn, thư viện tích hợp sẵn cho mã hóa và chữ ký số — các nhà phát triển bình thường hàng ngày vẫn dùng mà không cần hiểu rõ cách hoạt động bên trong. Jolt cung cấp cho nhà phát triển một lớp trừu tượng tương tự: chỉ cần dùng các chương trình đã viết sẵn và xác thực chúng, mà không cần lo lắng về cách hai phần này tương tác. Đây là điều kiện tiên quyết để phổ biến các ứng dụng mật mã mới.
Nhà phát triển có thể tập trung vào thao tác thực tế. Nhờ Jolt, họ không cần kiến thức chuyên sâu về SNARK, chỉ cần nhấn một nút để tạo ra chứng minh Jolt từ mã máy tính đã viết.
Tuy nhiên, dù Jolt đã đạt nhiều tiến bộ, việc chứng minh các phép tính trung bình (ví dụ như một lõi CPU thực hiện một giây hoạt động) vẫn đòi hỏi sức mạnh tính toán lớn. Để tạo ra các chứng minh phức tạp trong thời gian hợp lý, cần nhiều GPU. LayerZero đã chuyển Jolt sang CUDA và ra mắt Zero: kết hợp thuật toán phân luồng cao của Jolt với phần cứng GPU để mở rộng khả năng quy mô.
LayerZero hướng tới mục tiêu đưa Jolt trở thành hệ thống chứng minh GPU sản xuất, bao gồm hợp tác phát triển phiên bản GPU thân thiện, điều này cực kỳ quan trọng để nâng cao khả năng mở rộng của zkVM và chứng minh.
Nghiên cứu mã nguồn mở
Jolt là mã nguồn mở, ai cũng có thể dùng hoặc phát triển dựa trên công nghệ sáng tạo của nó. Mã nguồn mở là yếu tố thúc đẩy tối đa: chia sẻ kết quả công việc để hệ sinh thái có thể sử dụng, tái sử dụng, kiểm thử, rà soát, sửa lỗi và sáng tạo thêm.
Vốn đầu tư mạo hiểm đầu tư vào các dự án mã nguồn mở có vẻ khác thường, nhưng cấu trúc nghiên cứu phát triển hiện nay phần lớn diễn ra trong nội bộ các công ty — như các phòng thí nghiệm doanh nghiệp trước đây hoặc các phòng thí nghiệm của quỹ đầu tư ngày nay — hoặc trong giới học thuật. Mục đích của chúng tôi khi thành lập tổ chức nghiên cứu a16z crypto là xây dựng một phòng thí nghiệm nghiên cứu và đội ngũ kỹ thuật kết nối lý thuyết học thuật với thực tiễn công nghiệp. Là một quỹ đầu tư mạo hiểm, chúng tôi còn có thể tài trợ cho các dự án mà các tổ chức khác không thể, đặc biệt trong các trường hợp đầu tư ngược.
Hỗ trợ phương pháp thiết kế SNARK theo hướng ngược lại đặc biệt quan trọng đối với Jolt, vì nó đại diện cho một “cách tiếp cận theo mô hình mới” hoàn toàn khác so với các phương pháp thiết kế trước đây. Quá trình này đã diễn ra trong nhiều năm.
Câu chuyện đổi mới thường xoay quanh sự chuyển đổi về kiến trúc
Để hiểu rõ về cuộc cách mạng trong phương pháp thiết kế SNARK của Jolt, ta phải quay ngược về hơn hai nghìn năm trước: người Hy Lạp cổ đại đã mở đầu cho sự phát triển của hệ thống chứng minh toán học chính thức, sau đó các học giả Trung Đông, châu Á và các nơi khác cũng mở rộng lĩnh vực này.
Các chứng minh sơ khai — dựa trên các suy luận logic từng bước viết ra bằng ngôn ngữ hình thức hoặc công thức — được ghi lại để mọi người có thể xác minh. Ví dụ, một nhà toán học có thể viết chứng minh trong một “quyển sách”, rồi người khác đọc từng chữ để kiểm tra. Khái niệm chứng minh tĩnh này chính là biểu hiện của lớp NP trong độ phức tạp “P vs NP”.
Chú ý rằng, phương pháp chứng minh truyền thống này là tuần tự, cần có sự tham gia lần lượt của các bên: nó là tĩnh, không tương tác.
Nhưng nhanh chóng đến năm 1985* — Shafi Goldwasser, Silvio Micali và Charles Rackoff đã đề xuất khái niệm chứng minh tương tác (“IP”). [* Thực tế, bài báo của họ ra đời sớm hơn vài năm, nhưng bị từ chối nhiều lần trước khi được chấp nhận.] Phương pháp chứng minh tương tác này dựa trên ý tưởng: ví dụ, nếu hai nhà toán học trao đổi, họ không cần chờ một bên viết ra chứng minh rồi thuyết phục bên kia. Thay vào đó, họ có thể hỏi đáp trực tiếp; nói cách khác, thông qua tương tác để khám phá chân lý của chứng minh.
Sức mạnh của chứng minh tương tác — so với chứng minh tĩnh của người Hy Lạp cổ đại — chỉ được nhận thức rõ vào năm 1990. Khi đó, Carsten Lund, Lance Fortnow, Howard Karloff và Noam Nisan đã đề xuất giao thức kiểm tra tổng hợp (sum-check): một phương pháp đại số cho hệ thống chứng minh tương tác. Kết hợp với các công trình của Adi Shamir, nhanh chóng dẫn đến kết luận nền tảng “IP=PSPACE” — một cách nói kỹ thuật, tóm tắt ý nghĩa trực quan:
Nếu người chứng minh và người xác thực có thể tương tác — giống như hệ thống chứng minh truyền thống, qua thử thách và phản hồi — (với giả định rằng một chứng minh gian lận sẽ bị bắt khi gặp thử thách không thể trả lời), thì chúng ta có thể xác minh các tuyên bố phức tạp hơn một cách nhanh chóng, so với chứng minh tĩnh, viết sẵn.
Nói cách khác: tính tương tác mang lại lợi thế lớn cho hệ thống chứng minh. Giao thức kiểm tra tổng hợp (sum-check) chính là trung tâm chuyển đổi lợi thế này thành khả năng xác thực hiệu quả — cho phép xác thực viên kiểm tra kết quả của phép tính mà không cần phải tái tạo toàn bộ quá trình tính toán.
Vài năm sau, Joe Kilian đề xuất xây dựng chứng minh không kiến thức ngắn gọn dựa trên hệ thống chứng minh có thể xác thực ngẫu nhiên (PCP). Trong lý thuyết chứng minh PCP, người chứng minh (có thể coi như nhà toán học Hy Lạp cổ đại, chỉ khác là bằng máy tính) viết chứng minh trong một “quyển sách” có độ dư thừa cao. Đáng chú ý, chính độ dư thừa này giúp xác thực viên không cần đọc toàn bộ sách: chỉ cần lấy ngẫu nhiên một số vị trí cố định — ví dụ như ba “từ” trong sách — là có thể đánh giá cao độ chính xác của chứng minh.
Tuy nhiên, vấn đề là chứng minh PCP dài và tốn nhiều thời gian để xác thực.
Vì vậy, Kilian đã trình bày cách kết hợp PCP với mật mã học, cho phép người chứng minh “cam kết” về toàn bộ “quyển sách dài” này, rồi chỉ công bố một vài từ đã chọn và kèm theo chứng thực mật mã ngắn gọn. Trong giao thức của Kilian, chứng minh cuối cùng chính là các từ này (cộng với dữ liệu chứng thực mật mã) — đủ để người xác thực tin rằng toàn bộ sách là hợp lệ.
Lúc đó, các chứng minh này vẫn còn mang tính tương tác. Sau này, Micali đã trình bày cách dùng phép biến đổi Fiat-Shamir để chuyển đổi chứng minh dựa trên PCP thành chứng minh phi tương tác. Nói ngắn gọn, phép biến đổi Fiat-Shamir “loại bỏ” thử thách ngẫu nhiên của người xác thực, giúp người chứng minh tự sinh ra thử thách và xuất ra toàn bộ chứng minh trong một lần.
Ảnh hưởng lâu dài của kiến trúc cũ
Nhìn lại lịch sử và quá trình phát triển của hệ thống chứng minh, ta thấy rõ sự chuyển đổi từ tĩnh sang tương tác, rồi đến các dạng xác thực ngẫu nhiên và phi tương tác (PCP), rồi lại trở về tương tác (xem Kilian), rồi cuối cùng lại trở về phi tương tác (xem Micali). SNARK chính là kết quả của quá trình này: bằng cách áp dụng phép biến đổi Fiat-Shamir vào chứng minh tương tác của Kilian, Micali đã tạo ra SNARK đầu tiên như chúng ta biết ngày nay.
Tuy nhiên, trong các SNARK dựa trên PCP đầu tiên, công việc của người chứng minh rất nặng — tốn thời gian tính toán — khiến chúng khó ứng dụng thực tế.
Dù vậy, cách thiết kế SNARK đã duy trì trong nhiều thập kỷ. Ngay cả khi ngành cố gắng thoát khỏi các phương pháp dựa trên PCP, các nhà thiết kế vẫn dùng các khái niệm liên quan (ví dụ như “linear PCP”), vốn chỉ là các biến thể của các kỹ thuật dựa trên PCP. Dù các phương pháp này có thể tạo ra SNARK ngắn gọn, nhưng chưa bao giờ đạt tốc độ chứng minh nhanh nhất.
Các nhà thiết kế SNARK vẫn chưa quay trở lại nguồn gốc — các giao thức kiểm tra tổng hợp — để có thể tạo ra các chứng minh nhanh hơn, dễ dùng hơn dựa trên khả năng tính toán hiện đại.
Trong quá trình chuyển từ (a) sang (b), thách thức chính là làm thế nào để giữ tính đơn giản của xác thực trong khi loại bỏ tính tương tác khỏi hệ thống chứng minh. Điều này khiến các nhà thiết kế từ bỏ các giao thức kiểm tra tổng hợp (tức phần tương tác).
Tuy nhiên, nếu chúng ta muốn dùng phép biến đổi Fiat-Shamir để loại bỏ tương tác… thì nên bỏ qua luôn bước trung gian (b), tức là hệ thống chứng minh có thể xác thực ngẫu nhiên (PCP)! Bỏ qua bước này chính là ý tưởng cốt lõi của phương pháp Jolt, nó xây dựng SNARK trực tiếp từ chứng minh tương tác — đi thẳng vào kiểm tra tổng hợp.
Tại sao nhiều người chưa sớm chuyển sang thiết kế dựa trên kiểm tra tổng hợp? Có thể vì các nhà thiết kế SNARK ban đầu chưa nhận ra rằng PCP và SNARK về cơ bản đều hướng tới mục tiêu xác thực ngắn gọn. Thêm vào đó, các kiến trúc — và những hiểu lầm — vẫn còn tồn tại.
Đối với chúng tôi, việc đầu tư mạnh vào hệ thống zkVM Jolt dựa trên kiểm tra tổng hợp là một cược ngược lại, vì nó đi ngược lại các mô hình đã thống trị trong lĩnh vực SNARK suốt nhiều thập kỷ.
‘Jolt Inside’
Phương pháp thiết kế SNARK của Jolt (dựa trên các kỹ thuật như đánh giá theo lô và kiểm tra bộ nhớ, ví dụ Twist + Shout) dựa trên các nguyên lý của chứng minh tương tác và kiểm tra tổng hợp.
Sau vài năm xây dựng Jolt, các nhà khác cũng bắt đầu áp dụng phương pháp kiểm tra tổng hợp trong thiết kế của họ. Vậy, điểm nổi bật của Jolt trong các zkVM hiện nay là gì? Jolt tận dụng tối đa cấu trúc lặp lại trong quá trình thực thi của CPU. Bằng cách quan sát cách các bước “lấy lệnh — giải mã — thực thi” của từng nhân CPU phù hợp với cơ chế đánh giá theo lô, Jolt đạt hiệu quả vượt trội với độ phức tạp tối thiểu.
Trong khi đó, các zkVM khác thường dựa vào “tiền biên dịch” (tương tự như bộ tăng tốc ASIC dành riêng cho các đoạn mã đặc thù) để đạt hiệu năng hợp lý. Jolt loại bỏ các tiền biên dịch này vì chúng dễ dẫn đến các lỗi trong thiết kế SNARK, giống như các phương pháp cũ trước khi có SNARK: cần các chuyên gia thiết kế riêng, dễ gây lỗi và khó để nhà phát triển phổ biến. Mục tiêu của Jolt là phổ cập SNARK.
Xác thực tính đúng đắn của CPU chính là giá trị cốt lõi của zkVM — và cũng là bước đột phá trong trải nghiệm nhà phát triển — vì nó cho phép tái sử dụng hạ tầng tính toán phổ biến, đã được tối ưu hóa. Hạ tầng tính toán toàn cầu đều hướng tới hỗ trợ CPU, và Jolt tận dụng tối đa “cấu trúc” vốn có của CPU để nâng cao tính đơn giản và hiệu suất.
Jolt từ đầu đã đặt tính khả dụng và hiệu năng sản xuất lên hàng đầu: nhà phát triển có thể xác thực trực tiếp các chương trình hiện có; thậm chí để xác thực nhanh, không cần chỉnh sửa mã. Jolt không bắt buộc phải xây dựng lại ứng dụng dựa trên “tiền biên dịch” hoặc API đặc thù như các phương pháp khác, mà giữ nguyên mã gốc, dễ tiếp cận, dễ kiểm tra và chi phí phát triển thấp hơn.
Quan trọng hơn, Jolt không chỉ nhanh hơn mà còn đơn giản hơn. Các phương pháp khác yêu cầu nhà thiết kế zkVM phải tạo một mạch điện cho từng lệnh cơ bản — còn Jolt thì không. Trong Jolt, mỗi lệnh cơ bản chỉ cần khoảng mười dòng Rust để mô tả. Không cần mạch điện, chỉ cần mười dòng mã.
Tiếp theo của Jolt là gì?
Chúng tôi đã dẫn đầu về tốc độ. Với các tối ưu và tính năng bổ sung như đệ quy và chứng minh không kiến thức — đặc biệt là dự kiến chuyển đổi từ mật mã elliptic sang mật mã lattice — chúng tôi dự kiến sẽ nâng cao tốc độ thêm một cấp nữa trong cuối năm nay, chưa kể đến thời kỳ hậu lượng tử.
Jolt mở ra nhiều khả năng ứng dụng hơn nữa. Đối với blockchain, khả năng mở rộng và phi tập trung đã trở nên dễ triển khai hơn. Chứng minh không kiến thức có thể dùng ngay mà không cần tốn nhiều tháng hoặc năm để phát triển mật mã.
Và khi Jolt tiếp tục phát triển — ví dụ như xây dựng hệ thống chứng minh nhanh, dễ dùng cho điện thoại và laptop — các nhà phát triển sẽ có thể mở khóa nhiều ứng dụng mới trong xác thực tại chỗ và quyền riêng tư. Ví dụ, các ứng dụng bảo vệ quyền riêng tư trên điện thoại có thể dễ dàng duy trì và vận hành, dễ triển khai hơn.
Trong dài hạn, các hệ thống chứng minh này sẽ trở thành phần cốt lõi của hạ tầng số toàn cầu, tương tự như mã hóa và chữ ký số. Công nghệ nén mật mã phổ quát này — chỉ cần gửi một chứng minh dài 50 nghìn ký tự thay vì toàn bộ dữ liệu — có khả năng chứng minh rằng người dùng sở hữu hàng GB dữ liệu phù hợp với các thuộc tính nhất định, với sức mạnh vượt xa dự đoán. Tương lai của nó là vô hạn.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
A16z:Các yếu tố then chốt của nhà sáng tạo: ‘Jolt Inside’
Tác giả bài viết: a16z crypto
Bản dịch bài viết: Block unicorn
Mở đầu
Hôm nay, LayerZero đã ra mắt chuỗi mới của họ là Zero, chuỗi này bao gồm nhiều tiến bộ công nghệ — trong đó có một phương pháp chứng minh không kiến thức hoàn toàn mới, tách rời việc thực thi giao dịch và xác minh. Tất cả nhờ vào “Jolt Inside”.
Jolt là gì? Jolt là một hệ thống zkVM mã nguồn mở dựa trên kiến trúc RISC-V (hoặc chính xác hơn là một “virtual machine” đơn giản), nhanh chóng, an toàn và dễ sử dụng. Nó đại diện cho một phương pháp thiết kế SNARK tiên tiến, hoàn toàn mới, dựa trên ba năm nghiên cứu của a16z crypto, và chúng tôi sẽ mở mã nguồn để bất kỳ ai cũng có thể sử dụng hoặc phát triển thêm. Tuy nhiên, sự ra đời của Jolt thực chất là kết quả của một câu chuyện đã ấp ủ nhiều thập kỷ.
Tại sao thiết kế zkVM và SNARK lại quan trọng đến vậy?
Trước khi đi sâu vào quá trình phát triển của thiết kế SNARK, chúng ta cần hiểu rõ zkVM là gì.
Loại máy ảo này thường được gọi là “zk virtual machine”, nhưng đặc điểm nổi bật hơn là tính đơn giản. Mặc dù “zero knowledge” (không kiến thức) rất quan trọng trong bảo vệ quyền riêng tư, nhưng “đơn giản” nghĩa là chứng minh ngắn gọn và dễ xác thực — hai đặc tính hữu ích nhưng khác nhau, thường bị nhầm lẫn với nhau. (Jolt đã có tính đơn giản và sắp tới sẽ tích hợp zero knowledge.)
Tại sao zkVM lại quan trọng? zkVM và SNARK (chứng minh kiến thức không tương tác, ngắn gọn) đóng vai trò then chốt trong khả năng mở rộng, quyền riêng tư và an toàn của blockchain. Các chứng minh, luận chứng và zero knowledge (gọi chung là công nghệ xác thực tính toán) này có vô số ứng dụng trong ngành mã hóa và các lĩnh vực khác.
Do cấu trúc thiết kế truyền thống và các lý do khác, ngành công nghiệp cho đến nay vẫn thường xây dựng zkVM theo cách phức tạp; phần sau sẽ trình bày chi tiết hơn. Tuy nhiên, Jolt từ đầu đã tập trung vào một phương pháp thiết kế SNARK hoàn toàn khác, nhằm đạt hiệu quả, khả dụng và hiệu suất cao hơn.
Nói ngắn gọn, zkVM là phương pháp chứng minh rằng bạn đã chạy đúng một chương trình máy tính. Ưu điểm của zkVM so với các SNARK khác là thân thiện với nhà phát triển. Nhờ tận dụng hạ tầng tính toán hiện có (ví dụ như hệ sinh thái compiler mã nguồn mở LLVM), nhà phát triển không cần dùng ngôn ngữ đặc thù (DSL) mà vẫn có thể khai thác sức mạnh của SNARK trong ngôn ngữ lập trình họ chọn.
Điều này khá giống với nhiều lĩnh vực mật mã hiện đại ngày nay — chúng ta có các tiêu chuẩn, thư viện tích hợp sẵn cho mã hóa và chữ ký số — các nhà phát triển bình thường hàng ngày vẫn dùng mà không cần hiểu rõ cách hoạt động bên trong. Jolt cung cấp cho nhà phát triển một lớp trừu tượng tương tự: chỉ cần dùng các chương trình đã viết sẵn và xác thực chúng, mà không cần lo lắng về cách hai phần này tương tác. Đây là điều kiện tiên quyết để phổ biến các ứng dụng mật mã mới.
Nhà phát triển có thể tập trung vào thao tác thực tế. Nhờ Jolt, họ không cần kiến thức chuyên sâu về SNARK, chỉ cần nhấn một nút để tạo ra chứng minh Jolt từ mã máy tính đã viết.
Tuy nhiên, dù Jolt đã đạt nhiều tiến bộ, việc chứng minh các phép tính trung bình (ví dụ như một lõi CPU thực hiện một giây hoạt động) vẫn đòi hỏi sức mạnh tính toán lớn. Để tạo ra các chứng minh phức tạp trong thời gian hợp lý, cần nhiều GPU. LayerZero đã chuyển Jolt sang CUDA và ra mắt Zero: kết hợp thuật toán phân luồng cao của Jolt với phần cứng GPU để mở rộng khả năng quy mô.
LayerZero hướng tới mục tiêu đưa Jolt trở thành hệ thống chứng minh GPU sản xuất, bao gồm hợp tác phát triển phiên bản GPU thân thiện, điều này cực kỳ quan trọng để nâng cao khả năng mở rộng của zkVM và chứng minh.
Nghiên cứu mã nguồn mở
Jolt là mã nguồn mở, ai cũng có thể dùng hoặc phát triển dựa trên công nghệ sáng tạo của nó. Mã nguồn mở là yếu tố thúc đẩy tối đa: chia sẻ kết quả công việc để hệ sinh thái có thể sử dụng, tái sử dụng, kiểm thử, rà soát, sửa lỗi và sáng tạo thêm.
Vốn đầu tư mạo hiểm đầu tư vào các dự án mã nguồn mở có vẻ khác thường, nhưng cấu trúc nghiên cứu phát triển hiện nay phần lớn diễn ra trong nội bộ các công ty — như các phòng thí nghiệm doanh nghiệp trước đây hoặc các phòng thí nghiệm của quỹ đầu tư ngày nay — hoặc trong giới học thuật. Mục đích của chúng tôi khi thành lập tổ chức nghiên cứu a16z crypto là xây dựng một phòng thí nghiệm nghiên cứu và đội ngũ kỹ thuật kết nối lý thuyết học thuật với thực tiễn công nghiệp. Là một quỹ đầu tư mạo hiểm, chúng tôi còn có thể tài trợ cho các dự án mà các tổ chức khác không thể, đặc biệt trong các trường hợp đầu tư ngược.
Hỗ trợ phương pháp thiết kế SNARK theo hướng ngược lại đặc biệt quan trọng đối với Jolt, vì nó đại diện cho một “cách tiếp cận theo mô hình mới” hoàn toàn khác so với các phương pháp thiết kế trước đây. Quá trình này đã diễn ra trong nhiều năm.
Câu chuyện đổi mới thường xoay quanh sự chuyển đổi về kiến trúc
Để hiểu rõ về cuộc cách mạng trong phương pháp thiết kế SNARK của Jolt, ta phải quay ngược về hơn hai nghìn năm trước: người Hy Lạp cổ đại đã mở đầu cho sự phát triển của hệ thống chứng minh toán học chính thức, sau đó các học giả Trung Đông, châu Á và các nơi khác cũng mở rộng lĩnh vực này.
Các chứng minh sơ khai — dựa trên các suy luận logic từng bước viết ra bằng ngôn ngữ hình thức hoặc công thức — được ghi lại để mọi người có thể xác minh. Ví dụ, một nhà toán học có thể viết chứng minh trong một “quyển sách”, rồi người khác đọc từng chữ để kiểm tra. Khái niệm chứng minh tĩnh này chính là biểu hiện của lớp NP trong độ phức tạp “P vs NP”.
Chú ý rằng, phương pháp chứng minh truyền thống này là tuần tự, cần có sự tham gia lần lượt của các bên: nó là tĩnh, không tương tác.
Nhưng nhanh chóng đến năm 1985* — Shafi Goldwasser, Silvio Micali và Charles Rackoff đã đề xuất khái niệm chứng minh tương tác (“IP”). [* Thực tế, bài báo của họ ra đời sớm hơn vài năm, nhưng bị từ chối nhiều lần trước khi được chấp nhận.] Phương pháp chứng minh tương tác này dựa trên ý tưởng: ví dụ, nếu hai nhà toán học trao đổi, họ không cần chờ một bên viết ra chứng minh rồi thuyết phục bên kia. Thay vào đó, họ có thể hỏi đáp trực tiếp; nói cách khác, thông qua tương tác để khám phá chân lý của chứng minh.
Sức mạnh của chứng minh tương tác — so với chứng minh tĩnh của người Hy Lạp cổ đại — chỉ được nhận thức rõ vào năm 1990. Khi đó, Carsten Lund, Lance Fortnow, Howard Karloff và Noam Nisan đã đề xuất giao thức kiểm tra tổng hợp (sum-check): một phương pháp đại số cho hệ thống chứng minh tương tác. Kết hợp với các công trình của Adi Shamir, nhanh chóng dẫn đến kết luận nền tảng “IP=PSPACE” — một cách nói kỹ thuật, tóm tắt ý nghĩa trực quan:
Nếu người chứng minh và người xác thực có thể tương tác — giống như hệ thống chứng minh truyền thống, qua thử thách và phản hồi — (với giả định rằng một chứng minh gian lận sẽ bị bắt khi gặp thử thách không thể trả lời), thì chúng ta có thể xác minh các tuyên bố phức tạp hơn một cách nhanh chóng, so với chứng minh tĩnh, viết sẵn.
Nói cách khác: tính tương tác mang lại lợi thế lớn cho hệ thống chứng minh. Giao thức kiểm tra tổng hợp (sum-check) chính là trung tâm chuyển đổi lợi thế này thành khả năng xác thực hiệu quả — cho phép xác thực viên kiểm tra kết quả của phép tính mà không cần phải tái tạo toàn bộ quá trình tính toán.
Vài năm sau, Joe Kilian đề xuất xây dựng chứng minh không kiến thức ngắn gọn dựa trên hệ thống chứng minh có thể xác thực ngẫu nhiên (PCP). Trong lý thuyết chứng minh PCP, người chứng minh (có thể coi như nhà toán học Hy Lạp cổ đại, chỉ khác là bằng máy tính) viết chứng minh trong một “quyển sách” có độ dư thừa cao. Đáng chú ý, chính độ dư thừa này giúp xác thực viên không cần đọc toàn bộ sách: chỉ cần lấy ngẫu nhiên một số vị trí cố định — ví dụ như ba “từ” trong sách — là có thể đánh giá cao độ chính xác của chứng minh.
Tuy nhiên, vấn đề là chứng minh PCP dài và tốn nhiều thời gian để xác thực.
Vì vậy, Kilian đã trình bày cách kết hợp PCP với mật mã học, cho phép người chứng minh “cam kết” về toàn bộ “quyển sách dài” này, rồi chỉ công bố một vài từ đã chọn và kèm theo chứng thực mật mã ngắn gọn. Trong giao thức của Kilian, chứng minh cuối cùng chính là các từ này (cộng với dữ liệu chứng thực mật mã) — đủ để người xác thực tin rằng toàn bộ sách là hợp lệ.
Lúc đó, các chứng minh này vẫn còn mang tính tương tác. Sau này, Micali đã trình bày cách dùng phép biến đổi Fiat-Shamir để chuyển đổi chứng minh dựa trên PCP thành chứng minh phi tương tác. Nói ngắn gọn, phép biến đổi Fiat-Shamir “loại bỏ” thử thách ngẫu nhiên của người xác thực, giúp người chứng minh tự sinh ra thử thách và xuất ra toàn bộ chứng minh trong một lần.
Ảnh hưởng lâu dài của kiến trúc cũ
Nhìn lại lịch sử và quá trình phát triển của hệ thống chứng minh, ta thấy rõ sự chuyển đổi từ tĩnh sang tương tác, rồi đến các dạng xác thực ngẫu nhiên và phi tương tác (PCP), rồi lại trở về tương tác (xem Kilian), rồi cuối cùng lại trở về phi tương tác (xem Micali). SNARK chính là kết quả của quá trình này: bằng cách áp dụng phép biến đổi Fiat-Shamir vào chứng minh tương tác của Kilian, Micali đã tạo ra SNARK đầu tiên như chúng ta biết ngày nay.
Tuy nhiên, trong các SNARK dựa trên PCP đầu tiên, công việc của người chứng minh rất nặng — tốn thời gian tính toán — khiến chúng khó ứng dụng thực tế.
Dù vậy, cách thiết kế SNARK đã duy trì trong nhiều thập kỷ. Ngay cả khi ngành cố gắng thoát khỏi các phương pháp dựa trên PCP, các nhà thiết kế vẫn dùng các khái niệm liên quan (ví dụ như “linear PCP”), vốn chỉ là các biến thể của các kỹ thuật dựa trên PCP. Dù các phương pháp này có thể tạo ra SNARK ngắn gọn, nhưng chưa bao giờ đạt tốc độ chứng minh nhanh nhất.
Các nhà thiết kế SNARK vẫn chưa quay trở lại nguồn gốc — các giao thức kiểm tra tổng hợp — để có thể tạo ra các chứng minh nhanh hơn, dễ dùng hơn dựa trên khả năng tính toán hiện đại.
Nói cách khác, để sớm hơn áp dụng các giao thức kiểm tra tổng hợp, chúng ta cần xem xét lịch sử và quá trình phát triển của SNARK theo cách phi tuyến tính. Trong quá trình chuyển đổi từ (a) chứng minh tương tác → (b) PCP → © chứng minh tương tác ngắn gọn → (d) SNARK sơ khai, ngành đã trải qua các bước chuyển đổi sau:
Trong quá trình chuyển từ (a) sang (b), thách thức chính là làm thế nào để giữ tính đơn giản của xác thực trong khi loại bỏ tính tương tác khỏi hệ thống chứng minh. Điều này khiến các nhà thiết kế từ bỏ các giao thức kiểm tra tổng hợp (tức phần tương tác).
Nhưng khi chuyển từ (b) PCP sang © chứng minh ngắn gọn, tính tương tác lại xuất hiện… và cuối cùng, qua phép biến đổi Fiat-Shamir, nó lại bị loại bỏ, dẫn đến sự chuyển đổi từ © sang (d) — chứng minh sơ khai SNARK.
Xem xét theo chiều dài, từ (a) → (b) → © → (d), rõ ràng các nhà thiết kế SNARK đã bỏ qua tính tương tác hai lần — một lần từ (a) sang (b), lần nữa từ © sang (d).
Tuy nhiên, nếu chúng ta muốn dùng phép biến đổi Fiat-Shamir để loại bỏ tương tác… thì nên bỏ qua luôn bước trung gian (b), tức là hệ thống chứng minh có thể xác thực ngẫu nhiên (PCP)! Bỏ qua bước này chính là ý tưởng cốt lõi của phương pháp Jolt, nó xây dựng SNARK trực tiếp từ chứng minh tương tác — đi thẳng vào kiểm tra tổng hợp.
Tại sao nhiều người chưa sớm chuyển sang thiết kế dựa trên kiểm tra tổng hợp? Có thể vì các nhà thiết kế SNARK ban đầu chưa nhận ra rằng PCP và SNARK về cơ bản đều hướng tới mục tiêu xác thực ngắn gọn. Thêm vào đó, các kiến trúc — và những hiểu lầm — vẫn còn tồn tại.
Đối với chúng tôi, việc đầu tư mạnh vào hệ thống zkVM Jolt dựa trên kiểm tra tổng hợp là một cược ngược lại, vì nó đi ngược lại các mô hình đã thống trị trong lĩnh vực SNARK suốt nhiều thập kỷ.
‘Jolt Inside’
Phương pháp thiết kế SNARK của Jolt (dựa trên các kỹ thuật như đánh giá theo lô và kiểm tra bộ nhớ, ví dụ Twist + Shout) dựa trên các nguyên lý của chứng minh tương tác và kiểm tra tổng hợp.
Sau vài năm xây dựng Jolt, các nhà khác cũng bắt đầu áp dụng phương pháp kiểm tra tổng hợp trong thiết kế của họ. Vậy, điểm nổi bật của Jolt trong các zkVM hiện nay là gì? Jolt tận dụng tối đa cấu trúc lặp lại trong quá trình thực thi của CPU. Bằng cách quan sát cách các bước “lấy lệnh — giải mã — thực thi” của từng nhân CPU phù hợp với cơ chế đánh giá theo lô, Jolt đạt hiệu quả vượt trội với độ phức tạp tối thiểu.
Trong khi đó, các zkVM khác thường dựa vào “tiền biên dịch” (tương tự như bộ tăng tốc ASIC dành riêng cho các đoạn mã đặc thù) để đạt hiệu năng hợp lý. Jolt loại bỏ các tiền biên dịch này vì chúng dễ dẫn đến các lỗi trong thiết kế SNARK, giống như các phương pháp cũ trước khi có SNARK: cần các chuyên gia thiết kế riêng, dễ gây lỗi và khó để nhà phát triển phổ biến. Mục tiêu của Jolt là phổ cập SNARK.
Xác thực tính đúng đắn của CPU chính là giá trị cốt lõi của zkVM — và cũng là bước đột phá trong trải nghiệm nhà phát triển — vì nó cho phép tái sử dụng hạ tầng tính toán phổ biến, đã được tối ưu hóa. Hạ tầng tính toán toàn cầu đều hướng tới hỗ trợ CPU, và Jolt tận dụng tối đa “cấu trúc” vốn có của CPU để nâng cao tính đơn giản và hiệu suất.
Jolt từ đầu đã đặt tính khả dụng và hiệu năng sản xuất lên hàng đầu: nhà phát triển có thể xác thực trực tiếp các chương trình hiện có; thậm chí để xác thực nhanh, không cần chỉnh sửa mã. Jolt không bắt buộc phải xây dựng lại ứng dụng dựa trên “tiền biên dịch” hoặc API đặc thù như các phương pháp khác, mà giữ nguyên mã gốc, dễ tiếp cận, dễ kiểm tra và chi phí phát triển thấp hơn.
Quan trọng hơn, Jolt không chỉ nhanh hơn mà còn đơn giản hơn. Các phương pháp khác yêu cầu nhà thiết kế zkVM phải tạo một mạch điện cho từng lệnh cơ bản — còn Jolt thì không. Trong Jolt, mỗi lệnh cơ bản chỉ cần khoảng mười dòng Rust để mô tả. Không cần mạch điện, chỉ cần mười dòng mã.
Tiếp theo của Jolt là gì?
Chúng tôi đã dẫn đầu về tốc độ. Với các tối ưu và tính năng bổ sung như đệ quy và chứng minh không kiến thức — đặc biệt là dự kiến chuyển đổi từ mật mã elliptic sang mật mã lattice — chúng tôi dự kiến sẽ nâng cao tốc độ thêm một cấp nữa trong cuối năm nay, chưa kể đến thời kỳ hậu lượng tử.
Jolt mở ra nhiều khả năng ứng dụng hơn nữa. Đối với blockchain, khả năng mở rộng và phi tập trung đã trở nên dễ triển khai hơn. Chứng minh không kiến thức có thể dùng ngay mà không cần tốn nhiều tháng hoặc năm để phát triển mật mã.
Và khi Jolt tiếp tục phát triển — ví dụ như xây dựng hệ thống chứng minh nhanh, dễ dùng cho điện thoại và laptop — các nhà phát triển sẽ có thể mở khóa nhiều ứng dụng mới trong xác thực tại chỗ và quyền riêng tư. Ví dụ, các ứng dụng bảo vệ quyền riêng tư trên điện thoại có thể dễ dàng duy trì và vận hành, dễ triển khai hơn.
Trong dài hạn, các hệ thống chứng minh này sẽ trở thành phần cốt lõi của hạ tầng số toàn cầu, tương tự như mã hóa và chữ ký số. Công nghệ nén mật mã phổ quát này — chỉ cần gửi một chứng minh dài 50 nghìn ký tự thay vì toàn bộ dữ liệu — có khả năng chứng minh rằng người dùng sở hữu hàng GB dữ liệu phù hợp với các thuộc tính nhất định, với sức mạnh vượt xa dự đoán. Tương lai của nó là vô hạn.