BTC
ETH
HTX
SOL
BNB
Xem thị trường
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Guo Yu từ Anbi Lab: Khi các mạng lưới thần kinh sâu đáp ứng các bằng chứng không có kiến ​​thức

星球君的朋友们
Odaily资深作者
2020-09-24 05:46
Bài viết này có khoảng 8025 từ, đọc toàn bộ bài viết mất khoảng 12 phút
Bằng chứng không kiến ​​thức được sử dụng rộng rãi trong chuỗi khối, bao gồm nén khối, bảo vệ tính ẩn danh của giao dịch, quyền riêng tư về danh tính, dữ liệu được chia sẻ và tính toàn vẹn
Tóm tắt AI
Mở rộng
Bằng chứng không kiến ​​thức được sử dụng rộng rãi trong chuỗi khối, bao gồm nén khối, bảo vệ tính ẩn danh của giao dịch, quyền riêng tư về danh tính, dữ liệu được chia sẻ và tính toàn vẹn

Lưu ý của biên tập viên: Bài viết này đến từChuỗi khối Wanxiang (ID: gh_1b8639a25429), được in lại bởi Odaily với sự cho phép.

Lưu ý của biên tập viên: Bài viết này đến từ

Chuỗi khối Wanxiang (ID: gh_1b8639a25429)

bằng chứng không kiến ​​thức

, được in lại bởi Odaily với sự cho phép.

Bài viết này là nội dung chia sẻ của khóa học mở trực tuyến thứ 29 của Học viện Wanxiang Blockchain Hive. Trong số này, Guo Yu, người sáng lập SECBIT Lab, được mời chia sẻ "Khi mạng lưới thần kinh sâu đáp ứng bằng chứng không kiến ​​thức".

Hôm nay, tôi sẽ chia sẻ với bạn "Khi mạng lưới thần kinh sâu đáp ứng bằng chứng không kiến ​​thức".

bằng chứng không kiến ​​thức

Khái niệm "zero-knowledge proof" không còn xa lạ với kiến ​​trúc kỹ thuật cơ bản của chuỗi khối, được đề xuất bởi Goldwasser, Micali và Rackoff vào năm 1985 (như trong hình). Mặc dù "zero-knowledge proof" từ lâu đã bị giới hạn trong một lĩnh vực nghiên cứu lý thuyết tính toán nhỏ, nhưng tác động của nó đã có ảnh hưởng sâu rộng.

Có một từ "bằng chứng" trong bằng chứng kiến ​​thức bằng 0. Khái niệm này đã trải qua nhiều thay đổi mô hình trong suốt lịch sử phát triển của nền văn minh nhân loại. Ở Hy Lạp cổ đại, "bằng chứng" là một kỹ thuật toán học khéo léo; đến đầu thế kỷ 20, bằng chứng toán học đã được giải thích lại trong cuộc khủng hoảng toán học lần thứ ba, và logic hình thức được giới thiệu để được chính thức hóa, do đó khai sinh ra lý thuyết máy tính và máy tính.

Đến những năm 1970, mối liên hệ tuyệt vời giữa chương trình và chứng minh đã được phát hiện, và nhiều khái niệm về lập trình hàm hiện đại và chứng minh định lý tự động đã được giới thiệu; đến những năm 1980, khái niệm "chứng minh" đã được mở rộng cho các hệ thống tương tác. Sau những năm 1980, hệ thống chứng minh tương tác đã mang lại những hiểu biết mới mang tính cách mạng cả về khía cạnh triết học lẫn khía cạnh lý thuyết và kỹ thuật.

Khi tôi lần đầu tiên nhìn thấy khái niệm bằng chứng không kiến ​​thức, phản ứng đầu tiên của tôi là thứ này rất phản trực giác. Tại sao "phản trực giác"? Trước tiên, hãy để tôi giới thiệu ngắn gọn về khuôn khổ cơ bản của bằng chứng không kiến ​​thức.

Trong bằng chứng không có kiến ​​​​thức, phải có một người giống như bên phải, chúng tôi gọi anh ta là Bob và bên trái có thể là một cỗ máy không đáng tin cậy. Tại thời điểm này, giả sử rằng Bob có một nhiệm vụ tính toán được giao cho máy bên trái chạy, nhưng bản thân máy có thể do con người điều khiển. Bob cần sử dụng hàm "F ()" làm nhiệm vụ tính toán, mang đầu vào "X" và giao nó cho máy bên trái để nó hoàn thành nhiệm vụ tính toán. Vì quá trình tính toán này diễn ra ở máy bên trái nên Bob không chứng kiến ​​được toàn bộ quá trình tính toán, vậy tại sao Bob lại tin rằng có thể thiết lập được công thức của kết quả tính toán Y=F(X,W). Hơn nữa, một số dữ liệu bí mật (W) mà chỉ máy bên trái biết được trộn lẫn trong quá trình tính toán, nhưng Bob không có W, vì vậy Bob không thể biết liệu kết quả tính toán có đúng hay không bằng cách lặp lại quá trình tính toán. Trong hoàn cảnh như vậy, Bob còn có thể tin rằng kết quả tính toán là đúng không?

Nói một cách dễ hiểu, bằng chứng không kiến ​​thức có thể thuyết phục Bob một cách kỳ diệu rằng kết quả tính toán là chính xác. Điều này nghe hơi khó tin, kết quả tính toán độ tin cậy Y dựa trên sự không tin tưởng của máy bên trái, tức là bằng chứng không có kiến ​​​​thức rằng nó tạo ra một số độ tin cậy ngoài không khí, chính xác là phản trực giác. Rất, rất thú vị khi tưởng tượng rằng, khi hai người không tin tưởng nhau chút nào, thì vẫn có điều gì đó có thể tạo dựng lòng tin.

Để tôi tóm tắt lại, nó có thể được hiểu như sau: tính toàn vẹn và bảo mật của một quy trình tính toán từ xa có thể được đảm bảo.

1. Chính trực. Mặc dù tôi chưa nhìn thấy quá trình tính toán xảy ra từ xa, mặc dù tôi chưa chứng kiến ​​​​quá trình của nó, nhưng tôi biết rằng quá trình tính toán phải xảy ra trong cuộc sống thực và kết quả tính toán là chính xác, điều đó có nghĩa là quá trình tính toán đã không xảy ra. bị sửa đổi ác ý hoặc bị giả mạo.

2. Bảo mật. Mặc dù tôi không thể chứng kiến ​​quá trình tính toán và không thể biết một số kết quả trung gian trong quá trình tính toán và không thể biết một số thông tin bên trong nó, vì vậy toàn bộ quá trình tính toán, bao gồm một số thông tin đầu vào bí mật, là bí mật và bí mật đối với tôi .

Đây là điều mà bằng chứng không kiến ​​thức phản trực giác có thể đạt được. Việc sử dụng bằng chứng không kiến ​​thức là gì? Tôi nghĩ rằng cách sử dụng trực tiếp nhất là cái gọi là "bảo vệ quyền riêng tư dữ liệu". Tôi liệt kê ngắn gọn một số, chẳng hạn như dữ liệu cá nhân: dữ liệu sức khỏe, báo cáo ngân hàng, sắp xếp chuyến đi, hồ sơ liên lạc. Trên thực tế, chúng ta không muốn ai biết tình trạng sức khỏe của mình, bao gồm nhịp tim, hồ sơ bệnh án và số tiền chúng ta tiêu hàng ngày. Nhưng chúng tôi cũng muốn tận hưởng các dịch vụ của bên thứ ba, chẳng hạn như ra ngoài bắt taxi, chúng tôi muốn một số người biết chúng tôi đang ở đâu, nhưng chúng tôi không muốn người khác biết hoặc chúng tôi chỉ muốn anh ấy biết một địa điểm chung chung. , và chúng tôi không muốn anh ấy biết chi tiết cụ thể.

Dữ liệu doanh nghiệp: hồ sơ nhân sự, kho bãi và hậu cần, sổ cái tài chính, thông tin khách hàng, theo truyền thống, đây là những dữ liệu rất bí mật, nhưng để tối đa hóa hiệu quả của sự hợp tác giữa các doanh nghiệp, một số dữ liệu phải được chia sẻ. Bằng chứng không kiến ​​thức cung cấp một cách để đảm bảo quyền riêng tư dữ liệu và chia sẻ dữ liệu cùng một lúc, vì vậy tác động lớn nhất của nó đối với cuộc sống và công việc trong tương lai của chúng tôi là cung cấp một công nghệ bảo vệ quyền riêng tư dữ liệu rất hiệu quả.

Bằng chứng không kiến ​​thức vẫn có nhiều ứng dụng thú vị trong công nghệ cơ bản của chuỗi khối.Kể từ khi bằng chứng không kiến ​​thức được đề xuất vào năm 1985, nó vẫn ở mức kết quả lý thuyết trong một thời gian dài cho đến khi công nghệ chuỗi khối được áp dụng trên một quy mô lớn, có thể là từ năm 2015. Năm - 2020, bằng chứng không kiến ​​thức được sử dụng rộng rãi trên chuỗi khối. Bao gồm nén khối, bảo vệ tính ẩn danh của giao dịch, quyền riêng tư danh tính, dữ liệu được chia sẻ, tính toàn vẹn của bộ lưu trữ dữ liệu ngoài chuỗi, v.v., những người bạn kỹ thuật trong ngành công nghiệp chuỗi khối nên làm quen với những điều này.

zkSNARK

Tiếp theo, hai khái niệm rất cơ bản được giới thiệu.

Bằng chứng không kiến ​​thức không tương tác

Như chúng tôi đã đề cập trước đó, khi cách chứng minh bằng không kiến ​​thức được đề xuất, một cải tiến mới đã được thực hiện đối với mô hình "chứng minh". Trước đây, cách chứng minh được viết trên giấy. Ví dụ, giáo viên đặt câu hỏi cho một bài kiểm tra. ngoài. Bằng chứng không kiến ​​thức là một bằng chứng tương tác. Bằng cách nói chuyện với giáo viên, bạn có thể thuyết phục giáo viên tin mình mà không cần nói với giáo viên bất kỳ quy trình chứng minh nào.

Tại sao lại có bằng chứng không kiến ​​thức không tương tác? Bằng chứng không kiến ​​thức không tương tác sử dụng một số kỹ thuật đặc biệt để gấp quy trình chứng minh tương tác thành bằng chứng không kiến ​​thức không tương tác. Bằng chứng không kiến ​​thức không tương tác được sử dụng rộng rãi hơn trong lĩnh vực chuỗi khối.

Đây cũng là một từ rất phổ biến, mặc dù nó có nhiều cách hiểu ít nhất quán hơn trong lĩnh vực học thuật. Nói một cách chính xác, zkSNARK là một loại NIZK đặc biệt, tức là bằng chứng không kiến ​​thức không tương tác đặc biệt. Điều gì đặc biệt về nó?

Ba điểm được liệt kê dưới đây:

1. Súc tích. Bằng chứng nó tạo ra là rất nhỏ, nhỏ như thế nào? Thông thường theo thứ tự KB và thậm chí có thể nhỏ bằng 200 byte trở xuống. Mặc dù nó chỉ có vài trăm byte, nhưng quá trình tính toán mà nó có thể đại diện có thể rất, rất lớn và dữ liệu mà nó có thể bảo vệ cũng có thể ở mức hàng terabyte.

2. Lập luận. Đó là một loại bằng chứng không có kiến ​​thức, sẽ được giải thích ngắn gọn sau.

3. Có chữ "K" ở cuối zkSNARK, có nghĩa là Kiến thức. Ý nghĩa là một bằng chứng là một bằng chứng về "kiến thức" và "kiến thức" này có một định nghĩa toán học.

Bảo vệ quyền riêng tư, chuỗi khối và bằng chứng không kiến ​​thức

Trước khi nói về khái niệm này, trước tiên chúng ta phải nói về một khái niệm rất quan trọng về mật mã-cam kết. Như thể hiện trong hình, bạn có thể thấy rằng có một cơ sở dữ liệu ở bên trái. Cơ sở dữ liệu này rất, rất lớn, có lẽ lớn tới hơn 1TB. Nó có thể được chuyển đổi thành một đoạn byte rất nhỏ bằng phương tiện mật mã, có lẽ ít hơn 100 byte. Dù cơ sở dữ liệu có lớn đến đâu, cam kết cuối cùng có thể nén thành dữ liệu không vượt quá 100 byte.

Mặc dù nó chỉ hơn 100 byte, nhưng nó có thể thiết lập mối quan hệ ràng buộc duy nhất với cơ sở dữ liệu, nếu có bất kỳ thay đổi nào xảy ra trong cơ sở dữ liệu, thì lời hứa phải được thay đổi cùng với nó. Một lời hứa giống như một “chiếc khóa”, chỉ cần có người viết ra lời hứa, chỉ cần có bất kỳ sửa đổi nào trong cơ sở dữ liệu, thì lời hứa sẽ thay đổi chóng mặt.

Lời hứa có hai thuộc tính:

Tính chất 1: Ràng buộc, một lời hứa ràng buộc một bộ dữ liệu gốc (không thể bị giả mạo). Tập dữ liệu này có thể rất lớn, nhưng có thể bị ràng buộc với một cam kết rất nhỏ.

Bản chất 2: Giấu, hứa không tiết lộ thông tin của dữ liệu gốc. Do chỉ có khoảng 100 byte nên không có thông tin dữ liệu gốc nào bị rò rỉ, vì lượng thông tin đã bị thất thoát rất nhiều.

Nếu có nhiều cơ sở dữ liệu, chẳng hạn như hồ sơ du lịch và ngân hàng đều có cơ sở dữ liệu, bạn có thể tạo hai cam kết, sau đó đưa các cam kết vào chuỗi. Sau khi đưa các cam kết vào chuỗi khối, sẽ có một hiệu ứng, đó là bạn không thể quay lại từ của mình được nữa. Cơ sở dữ liệu đã được sửa đổi, nhưng sau khi đặt lời hứa vào chuỗi, bạn có thể hiển thị nó cho mọi người. Bạn có thể truy cập cơ sở dữ liệu thông qua lời hứa, tất nhiên, mở nó một cách có chọn lọc hoặc mở nó sau khi xử lý dữ liệu cơ sở dữ liệu. Nhưng vì có khóa cam kết này trên chuỗi nên không thể gian lận được. Trước khi chuyển giao dữ liệu cho người khác, bạn có thể xử lý rất phức tạp và có thể xóa dữ liệu nhạy cảm trong đó, điều này phải rất trung thực và không giả tạo, vì lời hứa nằm trên dây chuyền.

Cam kết nghe có vẻ đáng kinh ngạc, nhưng nó là một công cụ mật mã rất truyền thống và được sử dụng phổ biến mà những người không chuyên biết rất ít về nó. Thực tế có nhiều cách để thực hiện lời hứa, cách đơn giản nhất là sử dụng một số thao tác như Hash. Ngoài ra còn có Merkle Tree, Cam kết Pedersen hoặc Cam kết đa thức, Mã hóa Elgamal, tất cả đều có thể thực hiện lời hứa.

Có hai loại cam kết chính, được phân tích từ góc độ lý thuyết mật mã: loại thứ nhất: Ràng buộc tính toán và Ẩn hoàn hảo. Hạng mục thứ hai: Ràng buộc hoàn hảo và Ẩn tính toán.

Cái gọi là Ẩn hoàn hảo là lời hứa rằng tuyệt đối không thể rò rỉ một chút nào, và dữ liệu gốc được ẩn hoàn hảo, nhưng mối quan hệ ràng buộc của nó là Tính toán. Nếu bạn tưởng tượng rằng ai đó có một chiếc máy tính siêu lượng tử trong 100 năm tới , nó sẽ vượt xa sức mạnh tính toán hiện tại Nó có thể bị làm giả, giả mạo một lời hứa giả mạo không liên quan đến dữ liệu gốc.

Loại còn lại thì ngược lại, quan hệ ràng buộc của nó là ràng buộc hoàn hảo, cho dù có siêu máy tính lượng tử cũng không thể làm giả được, nhưng ẩn giấu của nó là tính toán, tức là nếu 100 năm nữa xuất hiện máy tính siêu lượng tử, nó có thể bẻ khóa Tạo lời hứa hiện tại và có thể trích xuất một số thông tin hữu ích từ nó.

Về mặt lý thuyết, người ta đã chứng minh rằng một kế hoạch cam kết hoàn hảo trong cả Ràng buộc và Ẩn là không thể tồn tại. Nhưng về bằng chứng không kiến ​​thức để bảo vệ quyền riêng tư, chúng tôi thường sử dụng loại cam kết đầu tiên, đó là Ẩn hoàn hảo, nhưng cam kết là Ràng buộc tính toán. Bởi vì chúng tôi muốn đặt lời hứa lên dây chuyền, nghĩa là nó vẫn sẽ hiển thị với mọi người sau 100 năm, nhưng không cần phải lo lắng rằng thông tin này sẽ thực sự bị người khác bẻ khóa sau 100 năm. Ngoài ra, loại cam kết này có thể tạo ra một bằng chứng không có kiến ​​thức rất ngắn gọn, đó là Lập luận mà tôi đã đề cập trước đó.

nguyên tắc zkSNARK

Tại sao có thể hứa hẹn một cơ sở dữ liệu với 100 byte và đồng thời chứng minh rằng dữ liệu đáp ứng các thuộc tính nhất định nghe có vẻ khó tin.

Trước hết, hãy xem lại "zero-knowledge proof" là gì? Chính Bob ở bên phải đã nói thực hiện một phép tính và gửi phép tính đến một máy từ xa mà anh ấy không tin. Máy này có thể đã bị tin tặc kiểm soát hoặc người này có thể gây rắc rối, nhưng điều đó không quan trọng , cung cấp cho nó chức năng, nhập X và sau một lúc, hãy cho tôi Y. Mặc dù tôi không tin cái máy đó, nhưng vì tôi đã nhìn thấy Y, mặc dù tôi nghi ngờ về Y, nhưng vì tôi đã kiểm tra bằng chứng không kiến ​​​​thức bổ sung, bằng chứng không kiến ​​​​thức cho tôi biết rằng Y là sự thật nên tôi đã tin. Làm thế nào mà điều này làm việc?

Quay lại ý tưởng đơn giản nhất trước đã, có máy chạy chương trình của mình thì không xem được cũng không lo, đơn giản nhất là lấy camera ghi lại toàn bộ quá trình tính toán từ đầu đến cuối .Sau khi nhận được video Có thể kiểm tra từng khung hình để xem từng bước tính toán đã đúng chưa. Điều này là ngớ ngẩn, nhưng về lý thuyết nó có thể hoạt động.

Nhưng rõ ràng giải pháp này rất không thực tế, vì khi máy đang chạy, trạng thái bộ nhớ của máy rất lớn, chẳng hạn như bộ nhớ 4G, và tệp video sẽ lớn đến mức không thể xác minh được sau khi ghi lại toàn bộ quá trình.

Có cách nào để cải thiện nó? Chúng tôi sử dụng mô hình điện toán của các mạch điện toán, thay vì mô hình CPU cộng với bộ nhớ. Khả năng biểu diễn của mô hình tính toán mạch số học và chương trình chạy CPU của máy tính gần như tương đương nhau và về cơ bản có thể biểu diễn các phép tính phổ biến.

Các mạch số học bao gồm các "cổng" được kết nối với nhau như "cổng nhân" và "cổng cộng". Đầu vào là đầu vào từ phía bên trái của mạch và kết quả hoạt động được tạo ra trên dòng đầu ra bên phải sau khi hoạt động, toàn bộ quá trình là tính toán "+" và "×". Đừng đánh giá thấp hai hoạt động này , chúng có thể diễn đạt hầu hết các phép toán.

Ưu điểm của mạch số học là quá trình tính toán của nó có thể được chụp ảnh. Lúc này, chỉ cần máy ảnh nhấn nút chụp ảnh và chụp toàn cảnh mạch điện, tương đương với việc ghi lại toàn bộ quá trình tính toán. Bằng cách này, tính toán xác minh không còn là video xác minh nữa. Video được xem từng khung hình, nhưng ảnh chỉ là ảnh, miễn là mọi chi tiết của ảnh đều được xác minh.

Làm thế nào để xác minh tính toán mạch? Để xác minh hoạt động của từng cổng, đối với mỗi cổng bổ sung, hãy xác minh rằng việc bổ sung đầu vào bên trái và bên phải không bằng đầu ra. Đối với cổng nhân, hãy xác minh rằng phép nhân của đầu vào bên trái và bên phải không bằng với đầu ra. Chỉ cần bạn kiên nhẫn kiểm tra từng cửa một là sẽ ổn thôi.

Nếu có cổng hàng chục tỷ, việc xác minh có thể mất hơn một năm. Có cách nào để đơn giản hóa quá trình xác minh của rất nhiều cổng không? Điều này có thể được thực hiện với công cụ toán học "mã hóa đa thức".

Ví dụ có các số: y0, y1, y2, ta đặt chúng trên mặt phẳng trục XY, lần lượt biến chúng thành các điểm rồi tìm đường cong đi qua các điểm đó, tương đương với việc mã hóa tất cả các giá trị với một Giá trị đường cong, từ y0 đến yn.

Lợi ích của việc mã hóa dưới dạng đường cong là gì? Ưu điểm là nếu tôi muốn thay đổi một trong các giá trị yk, ngay cả khi tôi thay đổi một chút, toàn bộ đường cong rõ ràng sẽ bị xáo trộn. Đường cong bị xáo trộn chỉ giống với đường cong ban đầu ở n điểm, còn các điểm khác thì lệch. Mã hóa đa thức có thể khuếch đại bất kỳ sửa đổi nhỏ nào. Vì vậy, chúng tôi có thể kiểm tra xem điểm được mã hóa bởi đường cong có bị sửa đổi hay không bằng cách xác minh ngẫu nhiên một điểm.

Tiếp theo, ba mã hóa đa thức khác nhau có thể được thực hiện trên cổng đầu vào bên trái, cổng đầu vào bên phải và cổng đầu ra của tất cả các cổng nhân trong mạch số học vừa rồi để tạo thành ba đường cong. Bây giờ, miễn là có ba đường cong, đủ để xác minh rằng mối quan hệ nhân giữa ba đường cong (ba đa thức) được thỏa mãn. Để xác minh mối quan hệ nhân, chỉ cần lấy mẫu ngẫu nhiên một điểm trên trục X và không cần xác minh mười tỷ cổng. Mặc dù ba đường cong đã được xác minh, nhưng rõ ràng người xác minh đã nhìn thấy quá nhiều bí mật và bằng chứng không kiến ​​​​thức phải đảm bảo rằng các bí mật của quá trình tính toán không bị rò rỉ. Làm thế nào để làm nó? Các phép toán đa thức có thể được ánh xạ đồng hình lên các nhóm đường cong elip.

Phép cộng trên trường hữu hạn của số nguyên ánh xạ tới phép toán nhị phân trên nhóm đường cong elliptic. Phép toán nhân số nguyên có thể được ánh xạ đồng cấu thành phép toán ghép song tuyến tính trên nhóm đường cong elip Phép nhân chỉ có thể là phép nhân đơn nhưng cũng đủ để kiểm chứng mối quan hệ phép toán của mạch số học.

Quá trình này có vẻ đơn giản, nhưng nghiên cứu về zkSNARK dựa trên sự làm việc chăm chỉ của nhiều nhà mật mã. Lộ trình có thể được bắt nguồn từ IKO07 (2007). Vào năm 2010, Groth đã có một ý tưởng sơ bộ và bước đột phá quan trọng là vào năm 2013. giải pháp cải tiến của Groth16 là thuật toán chứng minh không kiến ​​thức phổ biến nhất trong ngành. Ngoài ra còn có một số lược đồ cải tiến rất mới như: Marlin, Aurora, Spartan và Fractal, tất cả đều được phát triển từ quá trình cải tiến liên tục của thuật toán GGPR13.

Bài báo GGPR13 năm 2013 là một bước đột phá tương đối lớn và nhiều ý tưởng tuyệt vời đã ra đời từ đó. Bốn tác giả của bài báo là Rosario Gennaro, Craig Gentry, Bryan Parno, Mariana Raylova.

Hãy xem khung GGPR13/Pinocchio/Groth16. Khi chúng tôi muốn thể hiện bất kỳ phép tính nào, trước tiên chúng tôi viết mã bằng ngôn ngữ cấp cao, sau đó biên dịch nó thành một mạch số học thông qua trình biên dịch, sau đó tạo ma trận R1CS thông qua biểu diễn ma trận và tạo QAP thông qua mã hóa đa thức, và cuối cùng tạo thông qua Trusted-Setup: Chứng minh khóa, Xác minh khóa. Chìa khóa chứng minh có thể được sử dụng để chứng minh quá trình tính toán và Chìa khóa xác minh có thể được sử dụng để biết rằng bằng chứng π là đúng.

Bằng chứng không kiến ​​thức + mạng lưới thần kinh sâu

Với bằng chứng không kiến ​​thức, chúng tôi có thể tính toán cam kết cho cơ sở dữ liệu và xuất bản nó trên chuỗi. Sau khi đưa cơ sở dữ liệu lên chuỗi thông qua Cam kết, chúng tôi có thể làm được nhiều việc. Chúng tôi có thể sử dụng cơ sở dữ liệu để tạo ra nhiều thông tin hữu ích mà không làm lộ quyền riêng tư cá nhân Khả năng chia sẻ thông tin với bạn bè, doanh nghiệp và toàn xã hội. Tiếp theo, hãy để tôi giới thiệu kết quả được dàn dựng của nhóm chúng tôi trong mạng sâu.

Nhận dạng hình ảnh được sử dụng rộng rãi. Đây là mô hình phân loại hình ảnh tiêu chuẩn. Các trường hợp thử nghiệm tiêu chuẩn bao gồm máy bay, ô tô, chim, chó, v.v., và độ phân giải là 224 × 224. Bước tiếp theo là bảo vệ quyền riêng tư + học máy (bằng chứng không kiến ​​thức + mạng lưới thần kinh sâu).

Có một cơ sở dữ liệu ở bên trái, chứa nhiều thông tin cá nhân và các mô hình trí tuệ nhân tạo được tạo ra sau quá trình học máy (đào tạo). Alice không muốn tiết lộ người mẫu, dù sao thì người mẫu cũng có thể phản ánh quyền riêng tư cá nhân.

Nhưng Alice nghĩ rằng mô hình có thể cung cấp cho Bob thông tin có giá trị và Bob sẽ cung cấp một bức tranh cho Alice và nói rằng bạn có thể giúp tôi xác định bức tranh, nhưng tôi không biết chi tiết về tập huấn luyện của bạn. Alice có thể chụp ảnh và đưa nó vào mô hình để nhận dạng và tạo ra kết quả, cùng với bằng chứng không có kiến ​​thức. Nếu kết quả của mô hình là một con mèo được công nhận, nhưng tôi cũng cho bạn biết một bằng chứng không có kiến ​​​​thức, điều này chứng tỏ rằng kết quả thực sự được công nhận bởi một mô hình bí mật. Tất nhiên, mèo và chó có thể được nhìn thấy mà không cần bằng chứng, nhưng đối với một số Trong kịch bản học máy, không có cách nào để xác định xem kết quả dự đoán có đáng tin cậy hay không.

Ví dụ, trong phim chẩn đoán y tế có những dấu hiệu sớm của bệnh ung thư hay không, nhìn vào phim không thể thấy được kết quả này, nhưng mô hình có thể cho bạn biết rằng bạn rất khỏe mạnh. Bạn không tin cũng không sao, bằng chứng không có kiến ​​thức có thể cho bạn biết rằng đây thực sự là kết quả được suy ra từ cơ sở dữ liệu phim X-quang rất đáng tin cậy.

Mô hình có thể hứa hẹn sẽ có trong chuỗi, khiến Alice hoàn toàn không thể lừa được Bob. Điểm mấu chốt là bạn không còn cần phải tin tưởng Alice là người tốt hay người xấu. Nếu bạn có thể đưa ra kết quả bằng chứng, nó đúng Bạn chỉ quan tâm đến kết quả, không phải ai cung cấp nó.

Tiếp theo, tôi thực hiện một thí nghiệm nhận dạng hình ảnh, đó là mô hình mạng thần kinh của VGG16. Nó là một mạng lưới thần kinh sâu 16 lớp. Có một số lượng lớn các tham số, 14 lớp tích chập, 2 lớp được kết nối đầy đủ, chức năng kích hoạt Relu, tổng hợp Max-pooling.

Để làm được điều này rất khó khăn, trước hết là không có công trình nào trước đây để chúng tôi tham khảo.

Thử thách 1: Cách thực hiện các phép tính khoa học trong mạch số học.

Có rất nhiều số học thập phân và dấu phẩy động trong máy tính khoa học. Chúng tôi chọn mã hóa các số điểm cố định trên các trường hữu hạn và chuẩn hóa tất cả dữ liệu của mô hình VGG16 để đảm bảo rằng tất cả các số không vượt quá 256. Lấy sáu số điểm cố định thập phân, 8 bit đại diện cho phần nguyên, 6 bit đại diện cho phần phân số và 24 bit đại diện cho một điểm nhất định. Sử dụng các mạch kỹ thuật số để thực hiện các hoạt động khác nhau trên các số điểm cố định (bình phương, căn bậc hai, logarit, v.v.).

Thử thách 2: Ma trận R1CS rất lớn và yêu cầu bộ nhớ cấp độ PB.

Bộ nhớ của một máy tính thông thường là GB và bộ nhớ của máy chủ lên tới hàng trăm G đã được coi là rất lớn. Nếu mạch số học ma trận R1CS thực sự được mã hóa, bộ nhớ mức PB là bắt buộc. Máy bình thường khó mà chịu được. Chúng tôi đã tính toán rằng việc nhận dạng hình ảnh VGG16 cần 14,6 tỷ cổng nhân. Theo hiểu biết tốt nhất của chúng tôi, đây là bằng chứng không kiến ​​thức đầu tiên trên thế giới về một thuật toán thực tế quy mô lớn như vậy. Việc phân phối số lượng phép nhân chủ yếu là các lớp tích chập và khi thực hiện các mạng thần kinh sâu, một số lượng lớn trong số chúng là các phép toán tích chập, chiếm hơn 90%.

Ma trận mạch quá lớn, chúng tôi đã phải phát minh ra một lược đồ chứng minh kiến ​​​​thức mới - CLINK, để chứng minh quá trình nhận dạng hình ảnh. So với các sơ đồ chứng minh không kiến ​​thức khác, CLINK áp dụng một số kỹ thuật đặc biệt để xử lý các mạch quy mô lớn.

Công nghệ 1: Có một số lượng lớn các mạch chồng lên nhau trong một mạch khổng lồ. Đối với nhận dạng hình ảnh, có rất nhiều lớp tích chập và các phần mạch của rất nhiều lớp tích chập là tương tự nhau và các phần tương tự có thể được kết hợp để xử lý.

Công nghệ 2: Có thể tháo rời các mạch lớn thành nhiều mạch nhỏ để bộ nhớ có thể chứa từng mạch nhỏ, từng mạch một và liên kết sau khi hoàn thành. Sau khi mạch được tháo rời nhưng kết nối giữa nhiều mạch cần được bảo vệ, các giá trị này vẫn là bí mật và không thể bị lộ ra ngoài. Chúng tôi vẫn bảo vệ các dây tiếp xúc giữa tất cả các mạch con ở giữa bằng lời hứa. Sau đó, việc tháo gỡ mạch có thể được thực hiện.

Các mạch con giống hệt nhau có thể được kết hợp để chứng minh. Cuối cùng, nhiều bằng chứng không kiến ​​thức đã được tạo ra cho mạch lớn và cam kết giá trị trung gian đã được thêm vào để tạo thành một bằng chứng không kiến ​​thức hoàn chỉnh. Trong quá trình này, một bằng chứng không có kiến ​​thức được tạo ra cho mạch phụ và cam kết tính toán đường tiếp xúc ở giữa, giá trị trung gian không được sử dụng làm đầu vào/đầu vào công khai và kết quả được đóng gói và nén.

Chúng tôi đã làm hai thí nghiệm:

Giải pháp 1 (song song): Tận dụng tối đa CPU đa nhân, đồng thời tính toán song song VGG16. Tất cả các mạch 16 lớp được chứng minh song song, và việc chứng minh liên kết giữa các lớp cam kết được thực hiện tại cùng lúc.

Giải pháp 2 (nối tiếp): Nối tiếp từng lớp, trước tiên tạo lớp thứ nhất và lớp thứ hai, sau đó thực hiện bằng chứng liên kết giữa lớp thứ nhất và lớp thứ hai.

Tại đây, chúng tôi rất biết ơn nhóm QTUM đã cung cấp cho chúng tôi một siêu máy chủ được trang bị bộ nhớ 1TB và SSD hiệu năng cao. Trước tiên hãy sử dụng giải pháp song song đầu tiên, vì giải pháp song song vẫn cần nhiều bộ nhớ, mặc dù không yêu cầu mức PB nhưng để chạy giải pháp song song, cần khoảng 5TB bộ nhớ, trong đó 4TB đang chạy trên phân vùng trao đổi. Bởi vì toàn bộ quá trình sử dụng phân vùng trao đổi SSD, hiệu suất sẽ bị ảnh hưởng rất nhiều.

Giải pháp song song: Chứng minh rằng hình ảnh nhận ra một chú mèo con có độ phân giải 224 × 224 và thời gian chứng minh sẽ mất 25 giờ. Nếu bạn được cung cấp máy có bộ nhớ 4TB, có thể chỉ mất 5 giờ, nhưng máy có bộ nhớ 4TB rất khó tìm và thời gian xác minh sẽ mất 1 giờ. Độ dài bằng chứng là 80KB và mức sử dụng bộ nhớ cao nhất là 5TB.

Sơ đồ nối tiếp: Có vẻ chậm hơn nhưng máy chạy nhanh hơn nên chỉ sử dụng bộ nhớ 500GB và không sử dụng phân vùng trao đổi nên nhìn chung nhanh hơn, thời gian chứng minh là 20 giờ và thời gian xác minh là 1 giờ , độ dài bằng chứng là 110KB.

Trong quá trình chúng tôi thực nghiệm, các học giả Hàn Quốc cũng gửi bản thảo, làm công việc tương tự cho chúng tôi. Sự khác biệt lớn nhất là họ đã thực hiện một số sửa đổi thỏa hiệp đối với VGG16, đặc biệt là khi rất khó thực hiện gộp Max trong mạch, vì vậy họ sử dụng giá trị trung bình để thực hiện gộp. Trong số đó, một CRS 83GB rất lớn đã được giới thiệu. Trong sơ đồ của chúng tôi, CRS rất nhỏ và khả năng thực hiện tốt hơn. Đây là kết quả nghiên cứu quốc tế mới nhất mà chúng ta có thể biết được.

Triển vọng ứng dụng của bằng chứng không kiến ​​thức về dữ liệu lớn

Bằng chứng không kiến ​​thức đã chuyển từ lý thuyết sang kỹ thuật và đang dần hướng tới ứng dụng.Trong tương lai, nó sẽ có thể xử lý lượng dữ liệu lớn hơn. Thuật toán CLINK mà chúng tôi đã phát triển trong quá trình khám phá có thể hỗ trợ thống kê dữ liệu lớn, truy vấn và các hoạt động phức tạp khác, thậm chí bao gồm cả quá trình suy luận của mạng lưới thần kinh sâu. Trong tương lai, những công nghệ này có thể được sử dụng trong:

开发者
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
Nhóm trò chuyện
https://t.me/Odaily_GoldenApe
Tài khoản chính thức
https://twitter.com/OdailyChina
Nhóm trò chuyện
https://t.me/Odaily_CryptoPunk