Phân tích độ sâu công nghệ zk-SNARK: Tổng quan toàn diện từ thuật toán đến ứng dụng

Sự phát triển và ứng dụng của công nghệ zk-SNARK: Tổng quan về lĩnh vực Blockchain

Tóm tắt

zk-SNARK ( ZKP ) là một bước đột phá quan trọng trong lĩnh vực mật mã, đóng vai trò then chốt trong công nghệ Blockchain. Bài viết này cung cấp một tổng quan hệ thống về quá trình phát triển của ZKP trong gần bốn mươi năm qua và những nghiên cứu mới nhất.

Đầu tiên, giới thiệu về khái niệm cơ bản và bối cảnh lịch sử của ZKP. Tiếp theo, phân tích trọng tâm về công nghệ ZKP dựa trên mạch, bao gồm thiết kế, ứng dụng và phương pháp tối ưu hóa của các mô hình như zkSNARK, Ben-Sasson, Pinocchio, Bulletproofs và Ligero. Về môi trường tính toán, bài viết thảo luận về cách ZKVM và ZKEVM nâng cao khả năng xử lý giao dịch, bảo vệ quyền riêng tư và cải thiện hiệu quả xác minh. Cũng giới thiệu về cơ chế làm việc và phương pháp tối ưu hóa của Zero-Knowledge Rollup như một giải pháp mở rộng Layer 2, cùng với những tiến bộ mới nhất trong tăng tốc phần cứng, giải pháp hỗn hợp và ZK EVM chuyên dụng.

Cuối cùng, đã nhìn nhận các khái niệm mới nổi như ZKCoprocessor, ZKML, ZKThreads, ZK Sharding và ZK StateChannels, thảo luận về tiềm năng của chúng trong khả năng mở rộng, khả năng tương tác và bảo vệ quyền riêng tư của Blockchain.

Thông qua việc phân tích các xu hướng phát triển công nghệ này, bài viết cung cấp một cái nhìn toàn diện để hiểu và áp dụng công nghệ ZKP, cho thấy tiềm năng to lớn của nó trong việc nâng cao hiệu quả và an ninh của hệ thống Blockchain, cung cấp tham khảo quan trọng cho các quyết định đầu tư trong tương lai.

Mục lục

Lời mở đầu

Một, kiến thức cơ bản về zk-SNARK

  1. Tổng quan
  2. Ví dụ về zk-SNARK

Hai, zk-SNARK

  1. Bối cảnh
  2. Sự ra đời của NIZK
  3. Biến đổi Fiat-Shamir
  4. Jens Groth và nghiên cứu của ông
  5. Nghiên cứu khác

Ba, chứng minh không biết dựa trên mạch

  1. Bối cảnh
  2. Khái niệm và đặc điểm cơ bản của mô hình mạch
  3. Thiết kế và ứng dụng mạch trong zk-SNARK
  4. Những thiếu sót và thách thức tiềm ẩn

Bốn, mô hình zk-SNARK

  1. Bối cảnh
  2. Mô hình thuật toán phổ biến
  3. Giải pháp dựa trên PCP tuyến tính và bài toán logarit rời rạc
  4. Giải pháp dựa trên chứng minh của người bình thường
  5. Chứng minh có thể kiểm tra dựa trên xác suất ( PCP ) zk-SNARK
  6. Phân loại giai đoạn thiết lập cho cấu trúc chứng minh chung CPC( ).

Năm, Tổng quan và phát triển của máy ảo zk-SNARK

  1. Bối cảnh
  2. Phân loại ZKVM hiện có
  3. Mô hình phía trước và phía sau
  4. Ưu điểm và nhược điểm của mô hình ZKVM

Sáu, Tổng quan và phát triển của máy ảo Ethereum zk-SNARK

  1. Bối cảnh
  2. Cách hoạt động của ZKEVM
  3. Quy trình thực hiện ZKEVM
  4. Đặc điểm của ZKEVM

Bảy, Tổng quan và phát triển giải pháp mạng lớp hai zk-SNARK

  1. Bối cảnh
  2. Cơ chế hoạt động của ZK Rollup
  3. Nhược điểm và tối ưu hóa của ZK Rollup

Tám, phương hướng phát triển tương lai của zk-SNARK.

  1. Tăng tốc phát triển môi trường tính toán
  2. Sự xuất hiện và phát triển của ZKML
  3. Phát triển công nghệ mở rộng ZKP
  4. Sự phát triển của tính tương tác giữa các zk-SNARK

Chín, Kết luận

Lời giới thiệu

Internet đang bước vào kỷ nguyên Web3, ứng dụng Blockchain ( DApps ) phát triển nhanh chóng. Trong những năm gần đây, các nền tảng Blockchain hàng ngày tiếp nhận hàng triệu hoạt động của người dùng, xử lý hàng tỷ giao dịch. Khối lượng dữ liệu khổng lồ do các giao dịch này tạo ra thường bao gồm thông tin cá nhân nhạy cảm. Với đặc điểm mở và minh bạch của Blockchain, dữ liệu được lưu trữ này là công khai cho tất cả mọi người, do đó đã gây ra nhiều vấn đề về an ninh và quyền riêng tư.

Hiện tại, có một vài công nghệ mã hóa có thể đối phó với những thách thức này, bao gồm mã hóa đồng homomorphism, chữ ký vòng, tính toán an toàn nhiều bên và zk-SNARK. zk-SNARK là một giải pháp toàn diện hơn, giao thức xác minh này cho phép xác minh tính đúng đắn của một số tuyên bố mà không tiết lộ bất kỳ dữ liệu trung gian nào. Giao thức này không yêu cầu cơ sở hạ tầng khóa công khai phức tạp, và việc thực hiện lặp lại cũng không cung cấp cho người dùng độc hại cơ hội để có được thông tin hữu ích bổ sung. Thông qua ZKP, người xác minh có thể xác minh xem người chứng minh có đủ số tiền giao dịch mà không tiết lộ bất kỳ dữ liệu giao dịch riêng tư nào.

Tính năng ZKP này giúp nó đóng vai trò cốt lõi trong các giao dịch Blockchain và ứng dụng tiền điện tử, đặc biệt trong việc bảo vệ quyền riêng tư và mở rộng mạng lưới, khiến nó không chỉ trở thành tâm điểm nghiên cứu học thuật mà còn được coi là một trong những đổi mới công nghệ quan trọng nhất kể từ khi công nghệ sổ cái phân tán được triển khai thành công. Đồng thời cũng là một trong những lĩnh vực trọng điểm cho ứng dụng công nghiệp và đầu tư mạo hiểm.

Do đó, nhiều dự án mạng dựa trên ZKP đã lần lượt xuất hiện, như ZkSync, StarkNet, Mina, Filecoin và Aleo. Cùng với sự phát triển của các dự án này, những đổi mới thuật toán liên quan đến ZKP liên tục ra đời, theo báo cáo gần như mỗi tuần đều có thuật toán mới ra mắt. Hơn nữa, việc phát triển phần cứng liên quan đến công nghệ ZKP cũng đang tiến triển nhanh chóng, bao gồm các chip được tối ưu hóa đặc biệt cho ZKP. Ví dụ, các dự án như Ingonyama, Irreducible và Cysic đã hoàn tất việc huy động vốn quy mô lớn, những phát triển này không chỉ cho thấy sự tiến bộ nhanh chóng của công nghệ ZKP mà còn phản ánh sự chuyển mình từ phần cứng chung sang phần cứng chuyên dụng như GPU, FPGA và ASIC.

Những tiến bộ này cho thấy, công nghệ zk-SNARK không chỉ là một bước đột phá quan trọng trong lĩnh vực mật mã học, mà còn là động lực chính để thực hiện các ứng dụng công nghệ Blockchain rộng rãi hơn.

Do đó, chúng tôi quyết định hệ thống hóa các kiến thức liên quan đến zk-SNARK ( ZKP ) để hỗ trợ tốt hơn cho việc đưa ra quyết định đầu tư trong tương lai. Để làm điều này, chúng tôi đã tổng hợp và xem xét các tài liệu nghiên cứu cốt lõi liên quan đến ZKP; đồng thời, chúng tôi cũng đã phân tích chi tiết tài liệu và whitepaper của các dự án hàng đầu trong lĩnh vực này. Việc thu thập và phân tích tài liệu toàn diện này đã cung cấp một nền tảng vững chắc cho việc viết bài này.

Một, kiến thức cơ bản về zk-SNARK

1. Tổng quan

Năm 1985, các học giả Goldwasser, Micali và Rackoff lần đầu tiên đề xuất chứng minh không biết ( Zero-Knowledge Proof, ZKP ) và chứng minh kiến thức tương tác ( Interactive Zero-Knowledge, IZK ). Bài báo này là nền tảng của chứng minh không biết, định nghĩa nhiều khái niệm ảnh hưởng đến nghiên cứu học thuật sau này. Ví dụ, định nghĩa về kiến thức là "đầu ra không khả thi", tức là kiến thức phải là một đầu ra, và là một phép tính không khả thi, có nghĩa là nó không thể là một hàm đơn giản, mà cần phải là một hàm phức tạp. Phép tính không khả thi thường có thể hiểu là một bài toán NP, tức là bài toán có thể xác minh tính đúng đắn của giải pháp trong thời gian đa thức, thời gian đa thức có nghĩa là thời gian chạy của thuật toán có thể được biểu diễn bằng hàm đa thức của kích thước đầu vào. Đây là tiêu chuẩn quan trọng trong khoa học máy tính để đo lường hiệu quả và khả thi của thuật toán. Do quá trình giải quyết vấn đề NP phức tạp, nên nó được coi là phép tính không khả thi; nhưng quá trình xác minh của nó tương đối đơn giản, vì vậy rất phù hợp để sử dụng trong xác minh chứng minh không biết.

Một ví dụ cổ điển về bài toán NP là bài toán người bán hàng, trong đó cần tìm đường đi ngắn nhất để thăm một loạt các thành phố và trở về điểm khởi đầu. Mặc dù việc tìm đường đi ngắn nhất có thể rất khó khăn, nhưng việc xác minh một đường đi đã cho có phải là ngắn nhất hay không tương đối dễ dàng. Bởi vì việc xác minh tổng khoảng cách của một đường đi cụ thể có thể được thực hiện trong thời gian đa thức.

Goldwasser và các cộng sự đã giới thiệu khái niệm "độ phức tạp kiến thức" trong bài báo của họ, dùng để định lượng lượng kiến thức mà người chứng minh tiết lộ cho người xác minh trong hệ thống chứng minh tương tác. Họ cũng đề xuất hệ thống chứng minh tương tác (Interactive Proof Systems,IPS), trong đó người chứng minh (Prover) và người xác minh (Verifier) tương tác qua nhiều vòng để chứng minh tính xác thực của một câu lệnh.

Tóm lại, định nghĩa về zk-SNARK mà Goldwasser và các cộng sự đã tóm tắt là một loại chứng minh tương tác đặc biệt, trong đó người xác thực sẽ không nhận được thông tin bổ sung nào ngoài giá trị đúng của câu; và đã đưa ra ba đặc điểm cơ bản bao gồm:

  1. Tính hoàn chỉnh(completeness): Nếu chứng minh là đúng, những người chứng minh trung thực có thể thuyết phục những người xác minh trung thực về sự thật này;

  2. Độ tin cậy ( soundness ): Nếu người chứng minh không biết nội dung tuyên bố, anh ta chỉ có thể lừa dối người xác minh với xác suất không đáng kể;

  3. zk-SNARK ( zero-knowledge ): Trong quá trình chứng minh hoàn thành, người xác minh chỉ nhận được thông tin "người chứng minh có kiến thức này", mà không thể nhận được bất kỳ nội dung bổ sung nào.

2. Ví dụ về zk-SNARK

Để hiểu rõ hơn về zk-SNARK và các thuộc tính của nó, dưới đây là một ví dụ về việc xác minh người chứng minh có sở hữu một số thông tin riêng tư hay không, ví dụ này được chia thành ba giai đoạn: thiết lập, thách thức và phản hồi.

Bước một: thiết lập (Setup)

Trong bước này, mục tiêu của người chứng minh là tạo ra một bằng chứng chứng minh rằng anh ta biết một số bí mật s, nhưng không trực tiếp hiển thị s. Giả sử số bí mật s;

Chọn hai số nguyên tố lớn p và q, tính tích của chúng n. Giả sử các số nguyên tố p và q, tính toán n nhận được;

Tính v=s^2 mod n, ở đây, v được gửi cho người xác thực như một phần của chứng minh, nhưng nó không đủ để người xác thực hoặc bất kỳ người quan sát nào suy ra s;

Chọn một số nguyên ngẫu nhiên r, tính x=r^2 mod n và gửi cho người xác thực. Giá trị x này được sử dụng cho quy trình xác thực tiếp theo, nhưng cũng không tiết lộ s. Giả sử số nguyên ngẫu nhiên r, tính toán được x.

Bước hai: Thách thức (Challenge)

Người xác thực ngẫu nhiên chọn một vị trí a( có thể là 0 hoặc 1), sau đó gửi cho người chứng minh. "Thách thức" này quyết định các bước tiếp theo mà người chứng minh cần thực hiện.

Bước ba: Phản hồi (Response)

Dựa trên giá trị a do người xác nhận gửi, người chứng minh sẽ phản hồi:

Nếu a=0, người chứng minh gửi g=r(, ở đây r là số ngẫu nhiên mà anh ta đã chọn trước đó ).

Nếu a=1, người chứng minh tính toán g=rs mod n và gửi đi. Giả sử người xác minh gửi bit ngẫu nhiên a, dựa trên giá trị của a, người chứng minh tính toán g;

Cuối cùng, người xác minh dựa trên g nhận được để xác minh x có bằng g^2 mod n hay không. Nếu phương trình đúng, người xác minh chấp nhận chứng minh này. Khi a=0, người xác minh tính x=g^2 mod n, bên phải xác minh g^2 mod n; Khi a=1, người xác minh tính x=g^2/v mod n, bên phải xác minh (rs)^2/s^2 mod n.

Ở đây, chúng ta thấy x=g^2 mod n được tính toán bởi người xác thực chứng tỏ rằng người chứng minh đã thành công trong quá trình xác thực mà không tiết lộ số bí mật s của mình. Ở đây, vì a chỉ có thể nhận giá trị 0 hoặc 1, chỉ có hai khả năng, xác suất mà người chứng minh thành công thông qua xác thực dựa vào may mắn là 1/2( khi a nhận giá trị 0. Nhưng người xác thực sau đó lại thách thức người chứng minh k lần, người chứng minh liên tục thay đổi các số liên quan, gửi cho người xác thực, và luôn thành công trong việc vượt qua quá trình xác thực, do đó xác suất mà người chứng minh thành công thông qua xác thực dựa vào may mắn trở thành ) 1/2(^k ) tiến gần đến 0 0(, kết luận rằng người chứng minh thực sự biết một số bí mật s đã được chứng minh. Ví dụ này chứng minh tính toàn vẹn, độ tin cậy và tính không tiết lộ của hệ thống chứng minh không kiến thức.

Hai, zk-SNARK không tương tác

) 1. Bối cảnh

zk-SNARK ### ZKP ( trong khái niệm truyền thống thường là hình thức giao thức tương tác và trực tuyến; chẳng hạn, giao thức Sigma thường yêu cầu từ ba đến năm vòng tương tác để hoàn tất xác thực. Tuy nhiên, trong các tình huống như giao dịch ngay lập tức hoặc bỏ phiếu, thường không có cơ hội thực hiện nhiều vòng tương tác, đặc biệt là trong ứng dụng công nghệ Blockchain, chức năng xác thực ngoại tuyến trở nên đặc biệt quan trọng.

) 2. Đề xuất NIZK

Năm 1988, Blum, Feldman và Micali lần đầu tiên đề xuất khái niệm chứng minh không tương tác bằng cách sử dụng chứng minh không kiến thức ###NIZK(, chứng minh khả năng hoàn thành quá trình xác thực giữa người chứng minh )Prover( và người xác thực )Verifier( mà không cần nhiều vòng tương tác. Bước đột phá này đã làm cho việc thực hiện giao dịch ngay lập tức, bỏ phiếu và các ứng dụng blockchain trở nên khả thi.

Họ đề xuất chứng minh không tương tác zk-SNARK ) NIZK ( có thể được chia thành ba giai đoạn:

  1. Cài đặt
  2. Tính toán
  3. Xác minh

Giai đoạn thiết lập sử dụng hàm tính toán, chuyển đổi tham số an toàn thành kiến thức công cộng ) cả người chứng và người xác minh đều có thể truy cập (, thường được mã hóa trong một chuỗi tham chiếu chung ) CRS (. Đây là cách tính toán chứng minh và sử dụng các tham số cũng như thuật toán đúng để xác minh.

Giai đoạn tính toán sử dụng hàm tính toán, khóa đầu vào và khóa chứng minh, xuất kết quả tính toán và chứng minh.

Trong giai đoạn xác minh, xác minh tính hợp lệ của bằng chứng thông qua khóa xác minh.

Mô hình chuỗi tham chiếu công khai mà họ đưa ra )CRS(, tức là dựa trên việc tất cả các người tham gia chia sẻ một chuỗi để thực hiện chứng minh không tương tác về kiến thức không tiết lộ (zk-SNARK) cho các vấn đề NP. Việc vận hành của mô hình này phụ thuộc vào việc tạo ra CRS một cách đáng tin cậy, tất cả các người tham gia phải có thể truy cập vào cùng một chuỗi. Chỉ khi CRS được tạo ra một cách đúng đắn và an toàn, thì các giải pháp thực hiện theo mô hình này mới có thể đảm bảo an toàn. Đối với một số lượng lớn người tham gia, quá trình tạo ra CRS có thể vừa phức tạp vừa tốn thời gian, do đó mặc dù các giải pháp như vậy thường dễ vận hành và kích thước chứng minh nhỏ, nhưng quá trình thiết lập lại khá thách thức.

Sau đó, công nghệ NIZK đã trải qua sự phát triển nhanh chóng, xuất hiện nhiều phương pháp chuyển đổi chứng minh zero-knowledge tương tác thành chứng minh phi tương tác. Những phương pháp này trong việc xây dựng hệ thống

ZK1.24%
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.
  • Phần thưởng
  • 8
  • Đăng lại
  • Chia sẻ
Bình luận
0/400
JustHereForAirdropsvip
· 08-13 20:37
zknhập một vị thế tốc độ nhanh...bắt đầu thật sự không hiểu
Xem bản gốcTrả lời0
LiquidityWitchvip
· 08-13 04:43
nấu chế kỳ diệu zk... những vùng nước tối của những chân lý toán học, nơi mật mã cổ đại gặp gỡ thuật giả kim blockchain
Xem bản gốcTrả lời0
SigmaBrainvip
· 08-11 01:18
zk có phải là giải pháp tối ưu cho L2 không?
Xem bản gốcTrả lời0
NotSatoshivip
· 08-11 01:16
Nhiều năm trước đã nghiên cứu về zk, mà còn chưa hiểu rõ.
Xem bản gốcTrả lời0
WagmiWarriorvip
· 08-11 01:15
Lại thấy有人 nói về zk, hãy làm nghiên cứu cơ bản trước đã.
Xem bản gốcTrả lời0
UnluckyValidatorvip
· 08-11 01:12
Gà thu phí còn không nhanh chóng nâng cấp lên
Xem bản gốcTrả lời0
MetaLord420vip
· 08-11 01:11
Lại là bùa hộ mệnh zkrollup rồi...
Xem bản gốcTrả lời0
BearMarketMonkvip
· 08-11 01:02
Sống chết không quan trọng zkp thật tuyệt
Xem bản gốcTrả lời0
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)