Nguồn: Vaish Puri @TheTieLabs
"Tôi chỉ biết một điều, đó là tôi không biết gì cả" - Socrates
Gần đây, có rất nhiều sự nhiệt tình có thể cảm nhận được xung quanh các giải pháp mở rộng quy mô L2 và đúng như vậy. Với việc phát hành mã thông báo quản trị của Optimism, nhu cầu về phí gas thấp hơn trên mạng chính ETH và một loạt ý tưởng mới được tạo ra trong các cuộc thi hackathon liên tiếp, có thể nói rằng L2 sẽ phát triển mạnh mẽ vào năm 2022.
Trong bài đăng ngày hôm nay, tôi sẽ mổ xẻ một trong những công cụ mã hóa mạnh mẽ nhất nhưng thường bị hiểu lầm nhất từng được tạo ra: bằng chứng không kiến thức. Ngoài ra, tôi sẽ nêu bật các trường hợp sử dụng và đề xuất cho các triển khai trong tương lai và chỉ ra lý do tại sao bằng chứng không kiến thức lại là chìa khóa cho tương lai của tiền điện tử.
Tại sao bằng chứng không kiến thức lại quan trọng
Nói một cách đơn giản, bằng chứng không có kiến thức là một cách để người chứng minh thuyết phục người xác minh rằng điều gì đó là đúng mà không thực sự tiết lộ bất kỳ thông tin nào. Hãy minh họa điều này bằng một phép loại suy: Giả sử chúng ta có hai người, Alice và Bob. Alice có một bộ bài kín gồm 52 quân bài. Alice lén rút thẻ đỏ, cố gắng chứng minh với Bob rằng cô ấy có thẻ đỏ, nhưng thực tế lại không đưa ra. Để làm được điều này, Alice cần tách tất cả các thẻ đen ra khỏi chồng và đưa chúng cho Bob. Bob đếm tất cả 26 thẻ đen, xác minh sự tồn tại của chúng và xác định rằng thẻ thuộc sở hữu của Alice phải có màu đỏ. Do đó, Alice có thể chứng minh với Bob rằng cô ấy có một thẻ đỏ mà không thực sự đưa ra. Phép ẩn dụ này rất đơn giản và không vẽ nên bức tranh toàn cảnh, nhưng ý tưởng cốt lõi đằng sau công nghệ vẫn giữ nguyên.
Bằng chứng không kiến thức không phải là mới trong thập kỷ này hoặc thậm chí hàng thiên niên kỷ. Trên thực tế, ý tưởng này lần đầu tiên được đề xuất bởi các nhà nghiên cứu toán học trừu tượng vào những năm 1980. Giải pháp nhằm giải quyết một vấn đề lúc bấy giờ gắn liền với hệ thống lý thuyết giữa người chứng minh và người kiểm chứng - chứng minh tương tác.
Nhưng nếu trình xác minh hóa ra là độc hại thì sao? Prover đã tiết lộ bao nhiêu thông tin bổ sung ngoài việc xác minh tính xác thực của tuyên bố? Hãy xem cách băm mật khẩu được lưu trữ trên các máy chủ tập trung. Theo truyền thống, khi tương tác với máy chủ, máy chủ sẽ nhận được mật khẩu ở dạng văn bản rõ ràng. Đó là một cách kém để thực hiện "bằng chứng nhận dạng", vì vậy các nhà nghiên cứu đã chuyển sang một hệ thống có thể chứng minh các yêu cầu mà không tiết lộ bất kỳ thông tin không liên quan nào.
Cụ thể hơn, giả sử chúng ta có một hàm C nào đó với hai đầu vào C(x,y). Đặt x là đầu vào công khai, y là nhân chứng bí mật và đặt đầu ra của hàm là đúng hoặc sai. Với một đầu vào công khai cụ thể x, người chứng minh phải chứng minh rằng họ biết một nhân chứng bí mật y sao cho C(x,y) == true. Từ quan điểm của người tục ngữ, việc đạt được kiến thức bằng không đòi hỏi sự ngẫu nhiên. Về phía người xác minh, tính ngẫu nhiên là cần thiết để tạo các truy vấn cho người xác minh. Ứng dụng được chứng minh rộng rãi đầu tiên là trong NP - hoàn thành một lớp phức tạp được gọi là bài toán ba màu của đồ thị. Đây là một bước đột phá lớn vì ứng dụng này có thể áp dụng cho mọi bài toán thuộc lớp NP. Điều này có thể phục vụ nhiều mục đích.
Trong không gian chuỗi khối, có nhiều triển khai bằng chứng không kiến thức do khả năng cung cấp khả năng mở rộng cũng như tiện ích của chúng trong các mô hình quyền riêng tư. Cụ thể, người xác minh thực hiện công việc tính toán ít hơn theo cấp số nhân so với trường hợp không có hệ thống bằng chứng không có kiến thức. Mặt khác, người chứng minh yêu cầu chi phí tính toán đáng kể để thực hiện bằng chứng. Tôi sẽ thảo luận điều này chi tiết hơn sau.
giao thức ZK
Mặc dù hiện có rất nhiều giao thức zk, nhưng đối với bài đăng này, tôi sẽ tập trung vào SNARK và STARK, đồng thời tìm hiểu các giao thức khác trong các bài đăng sau.
Đối số tri thức không tương tác ngắn gọn (SNARK) là một cơ chế chứng minh phổ biến kết hợp các bằng chứng không có kiến thức được giới thiệu lần đầu tiên vào năm 2011. Về cơ bản, zk-SNARK sử dụng các đường cong elip để bảo mật và dựa vào các cài đặt đáng tin cậy. Ban đầu, các khóa được tạo ra để phát triển các bằng chứng cần thiết cho các giao dịch và để xác minh các bằng chứng nói trên. Các khóa này chứa một chuỗi tham chiếu liên kết khóa xác thực và khóa để gửi tin nhắn riêng tư. Để làm điều này, phương pháp tạo khóa phải được loại bỏ và người tạo khóa được tin cậy (do đó có tên là thiết lập đáng tin cậy). Sự phụ thuộc vào niềm tin này trong giai đoạn sáng tạo vẫn là một chỉ trích lớn đối với zk-SNARK. Ngoài ra, các chuỗi tham chiếu không thể nâng cấp được, điều đó có nghĩa là nếu chương trình cần được cập nhật, giai đoạn thiết lập đáng tin cậy cần được chạy lại.
Tuy nhiên, trong thực tế, zk-SNARK rất khó tự triển khai. Có nhiều bước để kiểm tra trong một phép tính, nhưng không thể kiểm tra thời gian dành cho công việc của từng bước riêng lẻ. Giải pháp có dạng đa thức. Mã hóa các phép tính dưới dạng đa thức có thể tiết kiệm rất nhiều thông tin và thời gian. Thay vì có vô số đẳng thức giữa các số, chúng ta có thể thay thế chúng bằng các biểu thức đa thức "thay thế" chúng.
Nhưng xin chờ chút nữa! Thông thường, các đa thức được sử dụng để xác minh các phương trình bằng cách kiểm tra từng hệ số, nhưng một lần nữa, điều này mất quá nhiều thời gian. Các cam kết đa thức có tác dụng ở đây. Các cam kết đa thức có thể được coi là một cách duy nhất để "băm" đa thức. Điều này cho phép xác minh trong thời gian ngắn hơn, bất kể đa thức lớn đến mức nào. Hơn nữa, các cam kết đa thức vốn đã bảo vệ quyền riêng tư vì bằng chứng nhỏ hơn nhiều so với chính đa thức. Mặc dù tính ngẫu nhiên có thể được thêm vào, lời hứa đa thức không tiết lộ một lượng nhỏ thông tin về đa thức.
Các cam kết đa thức sử dụng một trong ba giao thức chính: chống đạn, KZG và FRI (Bằng chứng về sự gần gũi của Oracle tương tác với Fast Reed-Solomon). Việc so sánh và đối chiếu chúng nằm ngoài phạm vi của bài viết này, vì mỗi thứ đều xứng đáng được nghiên cứu chuyên sâu.
Vào năm 2018, một nhóm các nhà nghiên cứu đã cố gắng tăng tính minh bạch cho các hệ thống zk. Tính minh bạch có nghĩa là không phải dựa vào các bên đáng tin cậy để thiết lập ban đầu, loại bỏ mối đe dọa mở cửa hậu. Điều này dẫn đến việc tạo ra các đối số kiến thức minh bạch có thể mở rộng, hoặc STARK. STARK sử dụng hàm băm làm nguồn bảo mật, khác với cách triển khai song tuyến tính mà SNARK sử dụng. Khía cạnh khả năng mở rộng đề cập đến hai điều:
1. So với SNARK, thời gian chạy của câu tục ngữ nhỏ hơn nhiều về độ phức tạp.
2. Kích thước của thời gian xác minh là đa logarit. STARK sử dụng FRI để cải thiện hiệu suất và khả năng lưu trữ thông tin.
ứng dụng hiện tại
Trong khi những người tiên phong zk-SNARK như Zcash đã xuất hiện được một thời gian, thì việc tạo ra zk-STARK đã bùng nổ. Hoạt động trong giao thức zk không giới hạn ở Rollup. Trên thực tế, một số L1 đã được xây dựng dựa trên bằng chứng zk, cũng như các dự án trò chơi mới chớm nở.
StarkWare là công ty tiên phong của zk-STARK, phát triển hai sản phẩm cốt lõi: StarkNet, một bản tổng hợp zk phi tập trung không được phép và StarkEx, một SaaS tổng hợp zk độc lập. Ngoài ra, StarkWare đã phát triển một máy ảo zk cấp sản xuất (zkVM) có tên là Cairo. Cairo tuyên bố thực hiện cấu trúc Turing-đầy đủ von Neumann. Mỗi chương trình nằm trong bộ nhớ của VM cùng với dữ liệu mà nó xử lý. Bất kỳ ai cũng có thể truy cập Cairo ngay hôm nay và hiện đang được sử dụng bởi các ứng dụng khách nổi bật của StarkEx như dydx, Immutable và DeversiFi. Các ứng dụng mới khác sử dụng các phiên bản zkVM của riêng chúng bao gồm Polygon Miden và RiscZero, đang cố gắng xây dựng một zkVM chung.
Đối lập với hệ tư tưởng zkVM là zkEVM. zkVM bắt đầu từ đầu dưới dạng máy ảo blockchain mới được tối ưu hóa cho zk hoặc đơn giản là được điều chỉnh cho công cụ và khả năng tương thích của Solidity. Mặt khác, zkEVM triển khai một bộ hoàn chỉnh các opcode EVM. Có một số lợi ích khi sử dụng opcodes EVM:
Đạt được khả năng tương thích hoàn toàn với các công cụ và hệ sinh thái EVM
Kế thừa Mô hình Bảo mật Ethereum
Hiệu quả có thể tương tự như cách tiếp cận dựa trên trình biên dịch
Không có gì ngạc nhiên khi dường như có sự khác biệt lớn giữa phe zkVM và zkEVM.
Ưu điểm lớn nhất của zkEVM so với zkVM là tính tương đương của EVM. Nhắm mục tiêu vào cộng đồng dApp lớn hiện có với các ưu đãi phí gas thấp và trải nghiệm phát triển dễ dàng cho các nhà phát triển đã được chứng minh là có hiệu quả, đó là điều mà các nhà xây dựng zkEVM đang trông đợi.
Dự án zkEVM phổ biến nhất hiện nay là zkSync, sử dụng zk-SNARK làm giải pháp lớp 2 để xác minh và mở rộng quy mô. Ngoài ra, zkSync đã chọn duy trì tính khả dụng của dữ liệu ngoài chuỗi, được bảo mật bởi những người đặt cược mã thông báo zkSync bằng Proof of Stake (zkPorter) (có nghĩa là một đợt airdrop có thể sắp xảy ra). Thiết kế của triển khai này dựa trên một giải pháp được phát triển bởi StarkWare có tên là Volition.
Cuối cùng, một người chơi khá mới, Scroll đang phát triển L2 zkEVM đa năng. Scroll thực hiện một cách tiếp cận mới để sử dụng sức mạnh GPU để tạo bằng chứng zk ngoài chuỗi. Những bước đột phá gần đây trong bằng chứng zk như hàm băm Poseidon, Plookup và PLONK đã giảm chi phí đủ để biến zkEVM thành hiện thực. Ngoài ra, những tiến bộ trong GPU và bộ tăng tốc ASIC/FPGA đang cải thiện điều kiện phần cứng và tiếp tục giảm chi phí. Scroll vẫn đang được phát triển và có kế hoạch ra mắt mạng thử nghiệm zkEVM của họ trong những tháng tới.
ứng dụng trong tương lai
Zk Proof ban đầu được phát triển để duy trì quyền riêng tư. Mặc dù các phương tiện phổ biến có thể tập trung vào các trường hợp sử dụng hiện tại vào "cho phép TPS lớn hơn", nhưng thực tế là zk Proof có phạm vi ứng dụng rộng hơn.
Một ứng dụng như vậy là công cụ zk-ID, xác minh danh tính của người dùng bằng cách kiểm tra ẩn danh tài sản trong ví hoặc giao dịch trực tuyến thông qua mạch zk.
Danh tính Zk có tiềm năng cực kỳ mạnh mẽ và các trường hợp sử dụng ngay lập tức trong thế giới thực. Ví dụ: giả sử tôi là một con nợ đang cố gắng chứng minh khả năng trả nợ của mình trong khi vẫn giữ kín thông tin và hoạt động ngân hàng của mình. Tôi sẽ xác nhận rằng tôi đã hoàn trả các khoản vay lớn từ nhiều ngân hàng đáng tin cậy khác nhau, nhưng sẽ không tiết lộ các ngân hàng hoặc thông số kỹ thuật của các khoản vay này.
Bốn thành phần chính để hỗ trợ zk-identity trong tương lai
Một bước phát triển lớn khác trong không gian zk là sự ủy quyền riêng tư hiệu quả của các chứng minh zk-SNARK. Như đã đề cập trước đó, thời gian chứng minh khá chậm. Sử dụng SHA2 để băm 10kb mất 140 giây, không phải mili giây cần thiết. Giải pháp cho vấn đề này là thuê ngoài bằng chứng. Thật không may, điều này dẫn đến một vấn đề nan giải khác: bí mật luôn được tiết lộ. Điều cần thiết: bằng chứng về quyền riêng tư thuê ngoài. Với việc triển khai cẩn thận, bằng chứng có thể được ủy quyền cho các thiết bị như điện thoại di động nhanh hơn tới 26 lần so với tính toán cục bộ. Khung mới lạ này được Pratyush Mishra trình bày lần đầu tiên tại zkSummit vào tháng 4 năm 2022.
phần kết
Chúng tôi đang ở giai đoạn đầu phát triển bằng chứng zk dựa trên ứng dụng. Tuy nhiên, tốc độ tiến bộ là nhanh chóng. Vẫn còn rất nhiều xung đột giữa các cộng đồng khi các trại đang hình thành và các quan điểm đang bị chính trị hóa. Chỉ có thời gian mới cho biết bên nào đúng. Chắc chắn rằng, khi các nhà sử học nhìn lại, họ sẽ thấy giai đoạn triển khai zk này là một phần quan trọng trong lịch sử ngoạn mục của tiền điện tử.