Sức mạnh của bằng chứng không có kiến thức: Đi sâu vào zk-SNARK

12/28/2023, 4:28:45 AM
Bài viết này cung cấp những hiểu biết kỹ thuật chuyên sâu về zk-SNARK.

Bài viết này sẽ giải mã công nghệ này bằng toán học, minh họa cách nó có thể chứng minh sự thật của kiến thức mà không tiết lộ bất kỳ thông tin nào.

Biên soạn bởi: DODO Research

Tác giả: Đồng sáng lập 0xAlpha @DeriProtocol

Giới thiệu loại coin

Zk-SNARK, hay lập luận kiến thức ngắn gọn không tương tác không có kiến thức, cho phép người xác minh xác nhận rằng người chứng minh sở hữu một số kiến thức nhất định (được gọi là nhân chứng) đáp ứng các mối quan hệ cụ thể mà không tiết lộ bất kỳ thông tin nào về chính kiến thức đó.

Tạo zk-SNARK cho một vấn đề cụ thể bao gồm bốn giai đoạn sau:

  • Chuyển đổi một bài toán (hoặc hàm) thành một mạch số học.
  • Mạch này sau đó được dịch thành một phương trình ma trận.
  • Phương trình ma trận này tiếp tục được chuyển đổi thành một đa thức có thể chia hết cho một đa thức tối thiểu cụ thể.
  • Cuối cùng, khả năng chia hết này được thể hiện bằng các điểm của đường cong elip trên một trường hữu hạn, nơi việc chứng minh diễn ra.

Ba bước đầu tiên chỉ đơn thuần biến đổi cách trình bày của câu lệnh ban đầu. Bước cuối cùng chiếu tuyên bố từ bước thứ ba vào một không gian được mã hóa bằng cách sử dụng mã hóa đồng hình, cho phép người chứng minh xác minh các tuyên bố được phản chiếu trong đó. Vì phép chiếu này sử dụng mã hóa bất đối xứng nên việc quay ngược từ câu lệnh ở bước 3 về câu lệnh ban đầu là không khả thi, đảm bảo không có kiến thức.

Nền tảng toán học cần thiết để đọc bài viết này có thể so sánh với trình độ đại số mong đợi của sinh viên đại học STEM năm thứ nhất. Khái niệm duy nhất có thể gặp thách thức có thể là mật mã đường cong elip. Đối với những người không quen với điều này, bạn có thể coi nó như một hàm số mũ có cơ số đặc biệt, hãy nhớ rằng nghịch đảo của nó vẫn chưa được giải.

Bài viết này sẽ tuân theo các quy tắc ký hiệu sau:

Ma trận: Chữ in hoa đậm, ví dụ MỘT; được viết dưới dạng tường minh \
Vectơ: Chữ thường có mũi tên, được viết ở dạng tường minh [ ]; tất cả các vectơ đều là vectơ cột theo mặc định \
Vô hướng: Được biểu thị bằng các chữ cái thông thường

Hãy lấy câu hỏi sau đây làm ví dụ:

f(x)=x^3+x^2+5 (1)

Giả sử Alice muốn chứng minh rằng cô ấy biết một sự thật. Chúng ta sẽ hướng dẫn toàn bộ quy trình mà Alice cần thực hiện để tạo zk-SNARK cho bằng chứng của mình.
Câu hỏi này có vẻ quá đơn giản vì nó không liên quan đến luồng điều khiển (ví dụ: if-then-else). Tuy nhiên, không khó để chuyển đổi các hàm có luồng điều khiển thành các biểu thức số học. Ví dụ: hãy xem xét vấn đề sau (hoặc “hàm” trong ngôn ngữ lập trình):

f(x, z):
nếu(z==1):
trả về xxx+xx+5
khác:
trả về x
x+5

Viết lại bài toán này thành biểu thức số học sau (giả sử z thuộc (0,1)) không phức tạp hơn phương trình (1) .

f(x,z)=(z-1)(x^2+5)+z(x^3+x^2+5)

Trong bài viết này, chúng tôi sẽ tiếp tục sử dụng phương trình (1) làm cơ sở cho cuộc thảo luận của chúng tôi.

Bước 1: Mạch số học

Phương trình (1) có thể được chia thành các phép toán số học cơ bản sau:

Điều này tương ứng với mạch số học sau:

Chúng tôi cũng coi phương trình (2) là một tập hợp gồm 4 “ràng buộc chính”, mỗi ràng buộc mô tả mối quan hệ của một cổng số học trong mạch. Nói chung, một tập hợp n ràng buộc chính có thể được tóm tắt dưới dạng chương trình số học bậc hai (QAP), chương trình này sẽ được giải thích tiếp theo.

Bước 2: Ma trận

Đầu tiên, hãy định nghĩa một vectơ “nhân chứng” như sau:

trong đó y, s1, s2 và s3 được xác định như trong phương trình (2).
Thông thường, đối với một bài toán có m đầu vào và n cổng số học (tức là n-1 bước trung gian và đầu ra cuối cùng), vectơ chứng kiến này sẽ có chiều (m+n+1). Trong trường hợp thực tế, số n có thể cực kỳ lớn. Ví dụ, đối với hàm băm, n thường ở mức hàng nghìn.

Tiếp theo, chúng ta dựng ba ma trận n(m+n+1) A,B,C để có thể viết lại phương trình (2) như sau:

Phương trình (3) chỉ là một cách biểu diễn khác của phương trình (2): mỗi bộ (ai, bi, ci) tương ứng với một cổng trong mạch. Chúng ta có thể thấy điều này bằng cách mở rộng rõ ràng phương trình ma trận:

Vì vậy LHS=RHS hoàn toàn giống với phương trình (2) và mỗi hàng của phương trình ma trận tương ứng với một ràng buộc chính (tức là một cổng số học trong mạch).

Chúng tôi đã bỏ qua các bước xây dựng (A, B, C), những bước này thực sự tương đối đơn giản. Chúng ta chỉ cần chuyển chúng thành ma trận theo các ràng buộc sơ cấp tương ứng để xác định nội dung của từng hàng của (A, B, C), tức là (ai, bi, ci). Lấy hàng đầu tiên làm ví dụ: chúng ta có thể dễ dàng thấy rằng để làm ràng buộc chính đầu tiên x nhân với x bằng s1, chúng ta cần nhân [0,1,0,0,0], [0, 1,0, 0,0] và [0,0,0,1,0,0] theo vectơ s.

Như vậy, chúng ta đã chuyển thành công mạch số học thành phương trình ma trận, cụ thể là phương trình (3). Đồng thời, chúng ta cũng thay đổi đối tượng cần chứng minh làm chủ thành vectơ chứng kiến s.

Bước 3: Đa thức

Bây giờ, hãy xây dựng một ma trận PA n(n+m+*1), xác định một tập hợp các đa thức liên quan đến z:

Đảm bảo rằng chức năngnhận các giá trị sau tại {1, 2, 3, 4} thỏa mãn các điều kiện:

Khi đó chúng ta có thể viết lại A thành:

Đây là bốn bộ phương trình tuyến tính bao gồm sáu biến có thể được giải bằng các phương pháp truyền thống. Tuy nhiên, một cách hiệu quả hơn để giải PA trong trường hợp này là nội suy Lagrange, khai thác những đặc thù của bài toán. Ở đây chúng ta bỏ qua quá trình giải PA, việc này hơi tẻ nhạt nhưng đơn giản.

Tương tự, ta xây dựng PB và PC riêng cho B và C. Sau đó ta viết lại phương trình ma trậnnhư sau:

Quan sát từng hàng riêng biệt, rõ ràng bốn hàng này tương ứng với cùng một biểu thức được đánh giá ở bốn điểm khác nhau. Do đó, phương trình ma trận trên tương đương với:

Bước 3: Điểm đường cong Elliptic

Viết lại phương trình (4) dưới dạng:

trong đó i(z)=1 chỉ là một đa thức bậc 0 tầm thường trong z được sử dụng để thống nhất các phương trình - tất cả các số hạng đều là bậc hai. Sự cần thiết của việc này sẽ sớm trở nên rõ ràng. Lưu ý rằng phương trình này chỉ chứa phép cộng và phép nhân các đa thức trong z.

Xin lưu ý rằng các phép toán số học, phép cộng (+) và phép nhân (X), cũng được ánh xạ tới các phép toán tương ứng trong trường hữu hạn của các điểm trên đường cong elip. Các biểu tượng được sử dụng để tránh nhầm lẫn và chỉ ra rằng đây là các hoạt động trường được xác định lại.

Tiếp theo, chúng tôi sẽ giải thích các bước thực tế chi tiết hơn.

Mật mã đường cong Elliptic

Lý thuyết chung về đường cong elip vượt xa phạm vi của bài viết này. Với mục đích ở đây, đường cong elip được định nghĩa là ánh xạ từ trường nguyên tố Fp đến hàm E, trong đó E bao gồm các điểm sao cho y^2=x^3+ax+b (gọi là điểm đường cong elip, hay viết tắt là ECP) .

Xin lưu ý rằng trong khi chúng ta đang thảo luận về số học thông thường cho đến nay, khi chuyển sang trường nguyên tố, các phép toán số học trên các số được thực hiện bằng cách sử dụng số học mô-đun. Ví dụ, a+b=a+b(mod p), trong đó p là bậc của Fp.

Mặt khác, phép cộng hai điểm trên đường cong elip được xác định như sau:

Cụ thể việc bổ sung P và Q của hai ECP:

Tìm giao điểm của đường PQ và đường cong R và xác định nó là -(P+Q)
Lật tới điểm “gương” R' của R trên đường cong.
Do đó, chúng tôi xác định phép cộng các điểm trên đường cong elip P+Q=R':

Lưu ý rằng quy tắc này cũng áp dụng cho trường hợp đặc biệt khi sử dụng phép cộng một ECP, trong trường hợp đó tiếp tuyến với điểm đó sẽ được sử dụng.

Bây giờ giả sử chúng ta chọn ngẫu nhiên một điểm G và ánh xạ số 1 tới đó. (“Bản đồ ban đầu” này nghe có vẻ hơi tùy tiện. Chúng ta sẽ thảo luận về nó sau). Và với mọi n thuộc Fp, ta xác định:

E(N)=G+G+G+…..+G=G nhân với n

Có một biểu thức hoạt động. Xác định phép toán +G là “trình tạo”, ký hiệu là g. Khi đó định nghĩa trên tương đương với:

Sau khi xác định phép cộng, mối quan hệ tuyến tính sau đây trở nên rõ ràng:

Do đó, mọi mối quan hệ tuyến tính (hoặc ràng buộc) trong Fp sẽ được giữ nguyên trong không gian B được mã hóa thông qua ánh xạ này. Ví dụ, phương trình l + m = n trong Fp sẽ dẫn đến

Tuy nhiên, vì phương trình (5) mà Alice muốn chứng minh ở dạng bậc hai nên nó không đủ tuyến tính. Để xử lý các số hạng bậc hai, chúng ta cần định nghĩa phép nhân trong không gian được mã hóa. Đây được gọi là bản đồ ghép nối hoặc bản đồ song tuyến mà tôi sẽ giải thích trong phần sau.

Bản đồ song tuyến

Giả sử G1, G2 và GT là các nhóm cấp nguyên tố g. Hàm ghép nối hoặc bản đồ song tuyến được định nghĩa như sau:

Chuỗi tham chiếu chung

Toàn bộ điều này được gọi là “chìa khóa chứng minh” (PK). Lưu ý rằng việc biểu diễn các vectơ trong E() nên được hiểu là vectơ của các điểm trên đường cong elip, trong đó mỗi điểm được ánh xạ từ phần tử vectơ tương ứng. Do đó, 11 vectơ này thực sự bao gồm 62 (=42+63+63+63) điểm đường cong elip. 62 ECP này sẽ được cung cấp cho Alice, người chứng minh. Trong kịch bản chung, đối với một bài toán có m đầu vào và n ràng buộc chính, PK sẽ chứa 2n + 3(m+n+1)*3 = 11n + 9m + 9 ECP.

Đồng thời, các tính toán sau sẽ được thực hiện:

Toàn bộ quá trình này được gọi là “khóa xác minh” (VK). Ở đây chỉ có 7 điểm đường cong elip (ECP) cần được cung cấp cho người xác minh. Cần lưu ý rằng cho dù vấn đề có liên quan đến bao nhiêu đầu vào và ràng buộc chính, VK luôn bao gồm 7 ECP.

Ngoài ra, điều đáng nói là việc “thiết lập tin cậy” và quá trình tạo PK, VK chỉ cần thực hiện một lần cho một vấn đề cụ thể.

Chứng minh và xác minh

Bây giờ sở hữu khóa chung (PK), Alice sẽ tính các điểm trên đường cong elip (ECP) sau:

9 điểm đường cong elip này rất quan trọng đối với một đối số kiến thức không tương tác, ngắn gọn, không có kiến thức (zk-SNARK)!

Lưu ý rằng về cơ bản Alice chỉ đang thực hiện các kết hợp tuyến tính trên các điểm của đường cong elip trong khóa chung. Điều này đặc biệt quan trọng và sẽ được kiểm tra nghiêm ngặt trong quá trình xác minh.

Bây giờ, Alice trình bày bằng chứng zk-SNARK, cuối cùng dẫn chúng ta đến quy trình xác minh, diễn ra theo ba bước.

Đầu tiên, cần phải xác nhận rằng 8 điểm trên đường cong elip đầu tiên thực sự là tổ hợp tuyến tính của các điểm đó trong chuỗi tham chiếu chung.

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này được in lại từ [chaincatcher]. Mọi bản quyền đều thuộc về tác giả gốc [Người đồng sáng lập 0xAlpha @ DeriProtocol]. Nếu có ý kiến phản đối việc tái bản này, vui lòng liên hệ với nhóm Gate Learn , họ sẽ xử lý kịp thời.
  2. Tuyên bố miễn trừ trách nhiệm pháp lý: Các quan điểm và ý kiến 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. Việc 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 viết đã dịch đều bị cấm.

Mời người khác bỏ phiếu

Lịch Tiền điện tử

Cập nhật dự án
Etherex sẽ ra mắt Token REX vào ngày 6 tháng 8.
REX
22.27%
2025-08-06
Ngày Phát Triển và Quản Trị Hiếm ở Las Vegas
Cardano sẽ tổ chức Ngày Phát triển & Quản trị Rare tại Las Vegas, từ ngày 6 đến 7 tháng 8, với các buổi hội thảo, hackathon và thảo luận bàn tròn tập trung vào các chủ đề phát triển kỹ thuật và quản trị.
ADA
-3.44%
2025-08-06
Blockchain.Rio ở Rio De Janeiro
Stellar sẽ tham gia hội nghị Blockchain.Rio, dự kiến diễn ra tại Rio de Janeiro, từ ngày 5 đến 7 tháng 8. Chương trình sẽ bao gồm các bài phát biểu chính và các cuộc thảo luận nhóm có sự tham gia của đại diện hệ sinh thái Stellar phối hợp với các đối tác Cheesecake Labs và NearX.
XLM
-3.18%
2025-08-06
Hội thảo web
Circle đã công bố một hội thảo trực tuyến Executive Insights có tiêu đề "Kỷ Nguyên GENIUS Act Bắt Đầu", dự kiến diễn ra vào ngày 7 tháng 8 năm 2025, lúc 14:00 UTC. Phiên họp sẽ khám phá những tác động của GENIUS Act vừa được thông qua - khung quy định liên bang đầu tiên cho các stablecoin thanh toán tại Hoa Kỳ. Dante Disparte và Corey Then của Circle sẽ lãnh đạo cuộc thảo luận về cách mà luật pháp ảnh hưởng đến đổi mới tài sản kỹ thuật số, sự rõ ràng về quy định, và vị thế lãnh đạo của Hoa Kỳ trong cơ sở hạ tầng tài chính toàn cầu.
USDC
-0.03%
2025-08-06
AMA trên X
Ankr sẽ tổ chức một AMA trên X vào ngày 7 tháng 8 lúc 16:00 UTC, tập trung vào công việc của DogeOS trong việc xây dựng lớp ứng dụng cho DOGE.
ANKR
-3.23%
2025-08-06

Bài viết liên quan

Tronscan là gì và Bạn có thể sử dụng nó như thế nào vào năm 2025?
Người mới bắt đầu

Tronscan là gì và Bạn có thể sử dụng nó như thế nào vào năm 2025?

Tronscan là một trình duyệt blockchain vượt xa những khái niệm cơ bản, cung cấp quản lý ví, theo dõi token, thông tin hợp đồng thông minh và tham gia quản trị. Đến năm 2025, nó đã phát triển với các tính năng bảo mật nâng cao, phân tích mở rộng, tích hợp đa chuỗi và trải nghiệm di động cải thiện. Hiện nền tảng bao gồm xác thực sinh trắc học tiên tiến, giám sát giao dịch thời gian thực và bảng điều khiển DeFi toàn diện. Nhà phát triển được hưởng lợi từ phân tích hợp đồng thông minh được hỗ trợ bởi AI và môi trường kiểm tra cải thiện, trong khi người dùng thích thú với chế độ xem danh mục đa chuỗi thống nhất và điều hướng dựa trên cử chỉ trên thiết bị di động.
11/22/2023, 6:27:42 PM
Coti là gì? Tất cả những gì bạn cần biết về COTI
Người mới bắt đầu

Coti là gì? Tất cả những gì bạn cần biết về COTI

Coti (COTI) là một nền tảng phi tập trung và có thể mở rộng, hỗ trợ thanh toán dễ dàng cho cả tài chính truyền thống và tiền kỹ thuật số.
11/2/2023, 9:09:18 AM
Stablecoin là gì?
Người mới bắt đầu

Stablecoin là gì?

Stablecoin là một loại tiền điện tử có giá ổn định, thường được chốt vào một gói thầu hợp pháp trong thế giới thực. Lấy USDT, stablecoin được sử dụng phổ biến nhất hiện nay, làm ví dụ, USDT được chốt bằng đô la Mỹ, với 1 USDT = 1 USD.
11/21/2022, 7:54:46 AM
Mọi thứ bạn cần biết về Blockchain
Người mới bắt đầu

Mọi thứ bạn cần biết về Blockchain

Blockchain là gì, tiện ích của nó, ý nghĩa đằng sau các lớp và tổng số, so sánh blockchain và cách các hệ sinh thái tiền điện tử khác nhau đang được xây dựng?
11/21/2022, 10:04:43 AM
Thanh khoản Farming là gì?
Người mới bắt đầu

Thanh khoản Farming là gì?

Liquidity Farming là một xu hướng mới trong Tài chính phi tập trung (DeFi), cho phép các nhà đầu tư tiền điện tử sử dụng đầy đủ tài sản tiền điện tử của họ và thu được lợi nhuận cao.
11/21/2022, 9:10:13 AM
HODL là gì
Người mới bắt đầu

HODL là gì

HODL là một thuật ngữ phổ biến trong cộng đồng tiền điện tử và nó cũng là trụ cột tinh thần giúp mọi người vượt qua thị trường giá lên và giá xuống.
11/21/2022, 9:15:39 AM
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500