Bài viết Tăng cường Quyền Riêng Tư Blockchain: Vai Trò của Bằng chứng Không Biết trong Các Giao Dịch An Toàn đã xuất hiện đầu tiên trên Coinpedia Fintech News
Giới thiệu
Chúng ta đang sống trong một thế giới thông tin, nơi dữ liệu là dầu mỏ mới. Do đó, với dữ liệu, mọi thứ đều có thể. Thực tế dựa trên dữ liệu này mang lại trách nhiệm lớn, đặc biệt là trong việc đảm bảo rằng thông tin riêng tư và nhạy cảm vẫn được bảo vệ. Công nghệ blockchain là một công cụ mạnh mẽ ưu tiên tính minh bạch hơn quyền riêng tư. Trong khi tính minh bạch là điều thiết yếu cho sự tin tưởng trong một hệ thống phi tập trung, nó có thể phơi bày những chi tiết nhạy cảm, điều này không phải lúc nào cũng mong muốn, đặc biệt trong các ứng dụng liên quan đến giao dịch bí mật hoặc thông tin cá nhân.
Để vượt qua những hạn chế này, các nhà phát triển đã giới thiệu một loạt các công nghệ tăng cường quyền riêng tư như Bằng chứng Không Biết (ZKP), zk-SNARKs, các đồng tiền bảo mật như Monero và Zcash, và các kỹ thuật mã hóa tiên tiến như mã hóa đồng nhất (HE).
Các công nghệ này duy trì sự cân bằng giữa tính minh bạch và quyền riêng tư của người dùng.
Trong bài viết này, chúng ta sẽ khám phá cách thức hoạt động của các công cụ tăng cường quyền riêng tư này và ứng dụng của chúng trong phát triển blockchain.
Vậy hãy bắt đầu nào!
Bạn có thể đang nghĩ rằng Blockchain là tùy chọn an toàn và minh bạch nhất trong lĩnh vực Công nghệ đúng không? Nhưng nó vẫn có một số khiếm khuyết. Ví dụ, hãy xem xét Bitcoin, nó là một loại tiền tệ minh bạch (Blockchain công khai). Nơi mà các địa chỉ của bạn là bút danh. Nhưng có một vấn đề! Thợ mỏ vẫn có thể có quyền truy cập dữ liệu trên blockchain trước khi nó chính thức trên chuỗi. Nghe thật đáng sợ phải không?!
Do đó, để tránh tất cả các trường hợp như vậy, chúng tôi lựa chọn các tùy chọn tăng cường quyền riêng tư và một trong số đó là ZPks. Hãy cùng xem xét nó!
Bằng chứng Không Biết và zk-SNARKs
Bằng chứng Không Biết là gì?
Bằng chứng không biết là một giao thức mật mã trong đó có một bên chứng minh và một bên xác minh. Ở đây, bên chứng minh phải thuyết phục bên xác minh rằng một số tuyên bố là đúng mà không tiết lộ bất kỳ sự thật hay thông tin nào khác ngoài thực tế rằng tuyên bố đó là đúng.
Hãy hiểu điều này một cách trực quan hơn bằng cách lấy một ví dụ thực tế:
Vậy hãy nói rằng bạn có một người bạn tên Carl bị mù màu và bạn có hai quả bóng (một đỏ và một xanh) và bạn cần anh ấy phân biệt cả hai mà không thực sự tiết lộ quả bóng nào là quả nào.
Vậy đây bạn là bên chứng minh và Carl là bên xác minh. Bây giờ bạn yêu cầu Carl đặt cả hai quả bóng ở phía sau và anh ấy có thể chọn một quả bóng ngẫu nhiên mà anh ấy có thể hỏi bạn một câu hỏi đơn giản: Tôi có hoán đổi các quả bóng không? Thủ tục này sau đó có thể được thực hiện lặp đi lặp lại và với xác suất 50% Carl sẽ trở nên thuyết phục (“đầy đủ”) rằng các quả bóng thực sự có màu khác nhau.
Vậy như tên gọi đã gợi ý, bạn đã chứng minh tính hợp lệ của tuyên bố của mình và bạn của bạn không bao giờ biết quả bóng nào là xanh và quả bóng nào là đỏ; thực sự, anh ấy không có kiến thức gì về cách phân biệt các quả bóng. Vì vậy, kiến thức này sau đó cũng có thể được chuyển giao cho bên thứ ba.
Ví dụ Mã:
# Mô phỏng ZKP đơn giản từ hashlib import sha256# Giả sử bên chứng minh biết mật khẩu ‘bí mật’secret_password = “blockchain_rocks”hash_of_secret = sha256(secret_password.encode()).hexdigest()# Bên chứng minh muốn chứng minh kiến thức mà không tiết lộ ‘secret_password’def prove_knowledge(guessed_password): return sha256(guessed_password.encode()).hexdigest() == hash_of_secret# Bên xác minh xác nhận kiến thức của bên chứng minh bằng cách so khớp các bămprint(prove_knowledge(“blockchain_rocks”)) # Trả về True mà không tiết lộ ‘secret_password’
zk-SNARKs: Bằng chứng Không Biết Ngắn gọn Không Tương tác
zk-SNARKs là viết tắt của Bằng chứng Không Biết Ngắn gọn Không Tương tác. Đây là một cấu trúc bằng chứng mà bên chứng minh phải chứng minh sự thật hoặc sự sở hữu của mình mà không tương tác với bên xác minh. Đây chỉ là một phiên bản cụ thể hơn của ZKPs. zk-SNARK hữu ích hơn khi không có khả năng giao tiếp giữa hai bên, ví dụ như giao dịch trực tuyến mà không có giao tiếp theo thời gian thực.
Khái niệm này có chút khó hiểu, ngắn gọn, chúng ta có thể nói rằng bạn nói với một người khác rằng bạn biết bí mật của họ mà không nói ra bí mật thực sự là gì mà thay vào đó là chứng minh điều đó.
Bạn có biết không? rằng zk-SNARKs được triển khai trong Zcash, một đồng tiền bảo mật nổi tiếng với các giao dịch được bảo vệ?
Bài Tập: Xây dựng một zk-SNARK với libsnark
Sử dụng libsnark để thiết lập và xác minh một zk-SNARK đơn giản, hoặc tham khảo tài liệu của thư viện cho các dự án mẫu về xây dựng bằng chứng zk-SNARK.
Bây giờ câu hỏi là Làm thế nào mà ZKP không tương tác này hoạt động?
Thiết lập: zk-SNARKs cần một thiết lập một lần cho các khóa mật mã, được sử dụng để xây dựng các bằng chứng.
Tạo Bằng Chứng: Bên chứng minh sử dụng thông tin riêng tư để tạo ra một bằng chứng ngắn gọn có thể được xác minh công khai.
Xác Minh: Các bên xác minh có thể xác nhận rằng bên chứng minh có một kiến thức nhất định mà không cần biết chi tiết.
Tiền Điện Tử Bảo Mật
Tiền điện tử bảo mật là các loại tiền điện tử được thiết kế đặc biệt để ưu tiên quyền riêng tư và ẩn danh người dùng.
Monero
Monero (XMR) là một loại tiền điện tử với quyền riêng tư nâng cao. Nó sử dụng một blockchain đặc biệt che giấu chi tiết giao dịch, làm cho bên ngoài gần như không thể thấy ai đang gửi hoặc nhận Monero, số lượng đang được gửi, hoặc bất kỳ số dư tài khoản nào. Điều này duy trì tính ẩn danh và đảm bảo tất cả các đơn vị của Monero là đồng nhất.
Có thể hoán đổi (có thể thay thế): nghĩa là một Monero luôn bằng một Monero khác, không có lịch sử có thể truy dấu.
Monero đảm bảo các giao dịch riêng tư như thế nào?
Monero triển khai các kỹ thuật độc đáo như sau để đảm bảo các giao dịch riêng tư. Hãy cùng xem xét các kỹ thuật này:
Chữ Ký Vòng: Kết hợp chữ ký giao dịch của người dùng với những người khác để làm mờ nguồn gốc thực sự.
Ví dụ mã:
import random# Danh sách các khóa công khai cho các bên tham giaparticipants = [“Alice”, “Bob”, “Charlie”, “Dave”]# Chọn một bên tham gia ngẫu nhiên làm “người gửi”sender = random.choice(participants)# Trộn chữ ký của người gửi với những người khácmixed_signatures = random.sample(participants, len(participants))print(“Nhóm Chữ Ký Vòng:”, mixed_signatures)print(“Người Gửi (ẩn danh):”, sender)
Địa Chỉ Ẩn Danh: Tạo ra các địa chỉ duy nhất, dùng một lần cho mỗi giao dịch, đảm bảo rằng chỉ người gửi và người nhận biết đích đến.
Giao dịch Bí mật Vòng (RingCT): Che giấu số tiền giao dịch để ngăn chặn bên thứ ba liên kết các giao dịch.
Cũng Đọc:
Giải thích Quy Mô Blockchain: Hướng dẫn về Giải Pháp Tầng 1 và Tầng 2 Hiệu Quả
,
Zcash
Zcash (ZEC) là một đồng tiền bảo mật được xây dựng trên mã nguồn của Bitcoin. Nó chia sẻ nhiều điểm tương đồng với Bitcoin như các giao dịch thông thường và minh bạch nhưng cũng cung cấp tùy chọn cho các giao dịch được bảo vệ.
Giao dịch được bảo vệ: Các giao dịch được bảo vệ trong Zcash là các giao dịch riêng tư sử dụng một phương pháp mật mã gọi là zk-SNARKs (Bằng chứng Không Biết Ngắn gọn Không Tương tác) để giữ cho các chi tiết giao dịch hoàn toàn bí mật.
Do đó, Zcash hỗ trợ cả giao dịch minh bạch và được bảo vệ với các địa chỉ T (Địa chỉ minh bạch hoạt động như Bitcoin tiêu chuẩn) và địa chỉ Z (Địa chỉ được bảo vệ che giấu chi tiết giao dịch).
Các giao dịch được bảo vệ của Zcash là một lựa chọn tuyệt vời cho các tình huống yêu cầu sự bảo mật, chẳng hạn như giao dịch B2B trong quản lý chuỗi cung ứng, nơi mà quyền riêng tư dữ liệu là rất quan trọng.
Thiết lập
# Cài đặt Zcash clientsudo apt-get update && sudo apt-get install zcash# Tạo một địa chỉ được bảo vệzcash-cli z_getnewaddress# Gửi đến địa chỉ được bảo vệzcash-cli z_sendmany
Mã Hóa Đồng Nhất và Vai Trò của nó trong Blockchain
Mã hóa đồng nhất (HE) là một loại mã hóa cho phép bạn thực hiện các phép toán trên dữ liệu trong khi nó vẫn được mã hóa. Điều này có nghĩa là bạn không cần phải giải mã dữ liệu để làm việc với nó. Khi bạn cuối cùng giải mã các kết quả, nó giống như bạn đã thực hiện các phép toán trên dữ liệu gốc chưa mã hóa.
Kỹ thuật này đặc biệt hữu ích cho quyền riêng tư, vì nó cho phép dữ liệu nhạy cảm được lưu trữ và xử lý trên các máy chủ bên ngoài (như trên đám mây) mà không bị lộ diện
Có hai loại kỹ thuật Mã hóa Đồng nhất chính:
Mã Hóa Đồng Nhất Một Phần (PHE): PHE chỉ cho phép một số phép toán cụ thể trên dữ liệu, ví dụ như Phép Cộng và Phép Nhân.
Mã Hóa Đồng Nhất Hoàn Toàn (FHE): FHE hỗ trợ các phép toán tùy ý trên dữ liệu đã mã hóa. Nhưng nó tiêu tốn nhiều tài nguyên.
Mã Ví Dụ:
from seal import EncryptionParameters, SEALContext, IntegerEncoder# Thiết lập các tham số mã hóaparms = EncryptionParameters(scheme_type.BFV)parms.set_poly_modulus_degree(1024)parms.set_coeff_modulus(coeff_modulus_128(1024))# Ví dụ về phép cộng đã mã hóaencrypted_sum = add_encrypted_values(enc1, enc2)print(“Tổng đã mã hóa:”, encrypted_sum)
Kết luận
Các công nghệ tăng cường quyền riêng tư như Bằng chứng Không Biết (ZKPs), zk-SNARKs, tiền điện tử bảo mật và mã hóa đồng nhất đang định nghĩa lại những gì có thể trong blockchain bằng cách tạo ra một sự cân bằng thiết yếu giữa quyền riêng tư và tính minh bạch. Đối với các nhà phát triển, sự phát triển này mang đến những cơ hội thú vị. Bằng cách tích hợp các tính năng bảo mật này vào các ứng dụng phi tập trung, các nhà phát triển có thể đáp ứng nhu cầu của các ngành như tài chính, chăm sóc sức khỏe và IoT, nơi cần có sự bảo mật.
Tiếp tục Học Hỏi và Chúc Mừng Lập Trình!!