Trong cả cuộc sống thực và thế giới kỹ thuật số, chúng ta thường muốn chứng minh mọi thứ cho người khác. Trước khi vào một tòa nhà văn phòng, nhân viên thường cung cấp một số loại giấy tờ tùy thân trước khi vào bên trong.
Khi người dùng cố gắng đăng nhập vào một ứng dụng như Facebook hoặc Twitter, các dịch vụ này trước tiên phải yêu cầu người dùng đăng nhập bằng mật khẩu và đôi khi mật mã dùng một lần (OTP) được gửi đến thiết bị di động của họ.
Nhược điểm của việc cung cấp bằng chứng là chúng ta thường cung cấp các loại thông tin khác. Cung cấp mật khẩu cho một trang web vẫn có nghĩa là bản thân trang web đó lưu giữ một bản sao của mật khẩu được băm trong các máy chủ của nó. Nếu ai đó hack máy quét ID nhân viên của tòa nhà văn phòng, họ có thể lấy được khóa riêng của mọi người.
Bằng chứng không có kiến thức hoặc ZKP cung cấp một cách để xác thực danh tính hoặc giao dịch mà không cần phải cung cấp thông tin bổ sung. Do các ứng dụng của nó trong mật mã, ZKP đã được điều chỉnh bởi blockchains để tạo các giao thức xác thực an toàn và có thể mở rộng.
Bằng chứng Không-Tri thức là gì?
Các nhà nghiên cứu Silvio Micali, Charles Rackoff, và Shafi Goldwasser của MIT lần đầu tiên đề xuất các bằng chứng về kiến thức không vào năm 1985 trong bài báo của họ. “Độ phức tạp kiến thức của các hệ thống bằng chứng tương tác”
Bài báo này đã giới thiệu khái niệm về độ phức tạp của kiến thức. Điều này đề cập đến lượng kiến thức về một bằng chứng được chuyển từ phương ngôn sang người xác minh. Bằng chứng không có kiến thức nhằm mục đích cho phép một bên chứng minh rằng một tuyên bố cụ thể là đúng với một bên khác mà không cần phải tiết lộ bất kỳ thông tin nào khác.
ZKP có thể được sử dụng như một giải pháp thay thế an toàn cho các hệ thống xác thực hiện tại và cũng có thể được thêm vào các giao thức blockchain để giữ các giao dịch ở chế độ riêng tư.
ZKPs hoạt động như thế nào?
Ví dụ trong thế giới thực
Để minh họa cách hoạt động của công cụ kiểm chứng không có kiến thức, chúng ta hãy xem một ví dụ trừu tượng về ZKP.
Giả sử rằng bạn có một người bạn bị mù màu xanh đỏ. Bạn có hai quả bóng giống hệt nhau chỉ khác nhau về màu sắc: một màu đỏ và một màu xanh lá cây. Đối với bạn của bạn, họ trông giống hệt nhau, nhưng là một người không mù màu, bạn có thể dễ dàng phân biệt họ.
Bạn có thể chứng minh cho bạn mình thấy chúng có màu khác nhau mà không tiết lộ quả bóng nào là màu đỏ hay xanh lá cây không?
Trên thực tế, có một cách để chứng minh điều này mà không cần tiết lộ màu sắc của các quả bóng. Đầu tiên, bạn phải để người bạn của mình đặt cả hai quả bóng ra sau lưng và bảo anh ta chỉ quả bóng nào và giấu quả bóng đó lại. Tiếp theo, bạn nói với người bạn của mình rằng anh ta có quyền lựa chọn hiển thị lại cùng một quả bóng hoặc đổi nó với quả bóng kia.
Mỗi khi một quả bóng mới được hiển thị, bạn có thể cho anh ta biết anh ta đã chuyển bóng hay chưa. Nếu bạn tiếp tục đoán đúng cuộc gọi, thì càng ngày càng có nhiều khả năng các quả bóng có màu khác nhau. Bạn của bạn bây giờ nên tin rằng các quả bóng có màu khác nhau mà không cần phải nói cho anh ta biết quả bóng nào có màu nào.
Ứng dụng thực tế
Hầu hết các ví dụ thực tế về chứng minh kiến thức không có hai loại.
Đầu tiên, ZKP có thể được sử dụng khi thiết kế các giao thức. Chúng tôi có thể đảm bảo rằng các bên khác nhau không thể gian lận hoặc lợi dụng giao thức. Thứ hai, ZKP có thể được sử dụng để nhận dạng.
Ví dụ: chúng ta có thể sử dụng ZKP để đăng nhập vào ứng dụng web một cách an toàn mà không cần phải tiết lộ mật khẩu.
Hãy xem xét một vài ví dụ về cách chúng ta có thể sử dụng các chứng minh không có kiến thức.
Bỏ phiếu điện tử
Một ứng dụng thường được thảo luận của ZKP là vai trò có thể có của chúng trong việc bỏ phiếu trực tuyến. Giả sử rằng chúng tôi có một cuộc trưng cầu dân ý sắp tới, nơi người dùng có thể bỏ phiếu cho một chính sách được đề xuất. Mỗi cử tri đủ điều kiện được phép bỏ phiếu 1 hoặc 0 trên lá phiếu.
Sử dụng ZKP, cử tri có thể chứng minh quyền bỏ phiếu mà không cần tiết lộ danh tính của họ. Điều này đảm bảo rằng mỗi phiếu bầu sẽ thực sự ẩn danh. Một ZKP bổ sung cũng sẽ được sử dụng để chứng minh rằng phiếu bầu của một người dùng cụ thể là một phần của cuộc kiểm phiếu cuối cùng.
Về bản thân nội dung của các lá phiếu, hệ thống biểu quyết cũng có thể tạo ra một bằng chứng không biết rằng mỗi lá phiếu có chứa 1 hoặc 0. Điều này được thực hiện mà không cần phải biết nội dung của chính lá phiếu đó.
Bảo mật Blockchain
Các blockchain như Bitcoin và Ethereum không hỗ trợ các giao dịch riêng tư. Miễn là ví Bitcoin của bạn ở chế độ công khai, bất kỳ ai cũng có thể truy cập trình khám phá khối, chẳng hạn như Blockstream để xem tất cả các giao dịch mà ví là một phần của nó.
Trong khi đó, sử dụng một dịch vụ như ngân hàng hoặc các dịch vụ thanh toán như Cash App hoặc Venmo cho phép bạn giao dịch một cách riêng tư. Tuy nhiên, sự tiện lợi này đi kèm với cái giá phải trả là tiết lộ thông tin của bạn cho dịch vụ tập trung.
Chúng tôi có thể kết hợp ẩn danh với phân quyền bằng cách thêm ZKP vào giao thức blockchain. Các loại tiền điện tử như ZCash sử dụng ZKP để tạo các giao dịch riêng tư cho phép chủ sở hữu tiền xu duy trì tính ẩn danh của họ. Một số loại tiền điện tử này sử dụng một loại ZKP được gọi là zk-SNARK.
Các ZKP này không yêu cầu tương tác giữa người đăng và người xác minh.
Bản tổng hợp Zero-Knowledge
ZK-rollups là một giải pháp có khả năng mở rộng cho phép các giao dịch ngoài chuỗi được xác minh ngay lập tức và với phí gas tối thiểu. Chúng là một cách để kết hợp một số lượng lớn các giao dịch Lớp 2 và gửi chúng lên giao thức Lớp 1.
Bên cạnh việc cung cấp quyền riêng tư, ZKPs cho phép mở rộng quy mô của các hệ thống phức tạp. Các giao thức chuỗi khối có thể sử dụng ZKP để chứng minh rằng người dùng đã giải quyết đúng giao dịch, có số dư phù hợp, v.v. Các giải pháp an toàn nhưng có khả năng mở rộng này chỉ có thể thực hiện được thông qua các chứng minh toán học được thực hiện ngoài chuỗi trong ZKP.
Các giao thức như Loopring sử dụng các bằng chứng không có kiến thức để giúp xử lý các giao dịch ngoài chuỗi mà không cần phải ảnh hưởng đến bảo mật.
Lợi ích của Chứng minh Không có Tri thức
- ZKP thay thế các hình thức xác thực kém tin cậy hơn như mã PIN hoặc thẻ nhận dạng
- ZKPS tăng khả năng mở rộng của các blockchains
- Việc triển khai ZKP yêu cầu các phương pháp mã hóa đơn giản
- Việc sử dụng ZKPS có thể làm cho hệ thống an toàn hơn bằng cách không yêu cầu lưu trữ thông tin không cần thiết trong hệ thống.
Kết luận
Quyền riêng tư dữ liệu đã là một vấn đề lớn trong cả hệ thống tập trung và phi tập trung. Bằng chứng không có kiến thức cung cấp một cách để các bên khác nhau chứng minh hoặc xác thực các giao dịch và danh tính mà không cần phải tiết lộ các giao dịch hoặc danh tính đã nói.
Khi công nghệ blockchain được sử dụng rộng rãi hơn, việc áp dụng ZKP để xử lý xác minh một cách an toàn sẽ là chìa khóa cho những lo ngại về khả năng mở rộng.
Bình luận