Các cơ chế bảo vệ quyền riêng tư trên Blockchain

featured-image

Lưu ý

Những ví dụ trong bài viết này được sử dụng với mục đích giúp những khái niệm kĩ thuật trở nên dễ hiểu hơn với người đọc nên đã được tối giản hơn so với các chi tiết trong thực tế. Người đọc vui lòng đón nhận những ví dụ này một cách cởi mở và thiện chí.

 

 

Năm giờ sáng. 

Tiếng xe cảnh sát vang inh ỏi trước cửa nhà. 

“Cậu đã bị bắt.”

Jack thức dậy và không hiểu vì sao. Mọi thứ cứ như một cơn ác mộng có thật.

Jack bị lôi đi và bị tra hỏi rất nhiều thứ như một tên phạm tội buôn lậu cực kì nguy hiểm. 

Jack ngơ ngác. Anh hoàn toàn trong sạch, thế quái nào mà từ tên tuổi, ngày tháng năm sinh, và cả số tài khoản ngân hàng đều trùng khớp, cứ như thể có một kẻ nào đã sống một cuộc đời tội lỗi khác trong hình hài của anh vậy.

Một cuộc đời bị đánh cắp.

Sự riêng tư của Jack đã bị xâm phạm nghiêm trọng, và giờ anh đang phải đối mặt nguy cơ tù tội trong suốt quãng đời còn lại của mình. Tuy nhiên, bất ngờ thay, chỉ vài ngày trước giờ tuyên án, phía bồi thẩm đoàn đã nhận được một bức thư giấu tên cho biết rằng Jack không phải kẻ phạm tội, và rằng người gửi thư biết chính xác vị trí của tên tội phạm thực sự ở đâu, nhưng lại không được phép nói ra danh tính của hắn ngay trực tiếp trong bức thư này. Nếu bồi thẩm đoàn và người gửi thư có một cuộc gặp gỡ riêng với nhau để trao đổi, sẽ rất khó để công chúng tin rằng hai bên không thông đồng với nhau để đổ oan cho một người vô tội nào khác. 

Cau-chuyen-cua-Jack

Vậy làm thế nào để người gửi có thể tiết lộ danh tính của thủ phạm thực sự một cách minh bạch nhưng không công khai để giải oan cho Jack? 

Sự minh bạch có thể được đảm bảo bằng việc trao đổi thông qua blockchain, và tính riêng tư có thể được thỏa mãn thông qua một số cơ chế đặc thù hơn. Trong bài viết ngày hôm nay, chúng tôi sẽ giới thiệu với độc giả những cơ chế hiện đang được sử dụng bởi một số nền tảng blockchain đảm bảo quyền riêng tư cho các cá nhân tham gia vào mạng lưới của mình.

Trusted Execution Environment (Môi trường thực hiện đáng tin cậy)

Hiểu đơn giản, trong Trusted Execution Environment (TEE), các dữ liệu sẽ nằm tách bạch ra khỏi những bộ phận khác trong bộ vi xử lý, từ đó bảo vệ chúng khỏi bị tấn công từ những tác nhân bên ngoài. Trên blockchain, điều này có nghĩa là các validators không thể biết được những dữ liệu tính toán bên trong đó. Secret Network và Oasis Network là hai nền tảng blockchain đang sử dụng công nghệ này, cụ thể là bộ xử lý SGX (Software Guard Extensions) của Intel, chuyên dùng để cung cấp một TEE cho các dữ liệu nhạy cảm.

Vì thế, nếu người gửi thư nặc danh liên lạc với bồi thẩm đoàn để tiết lộ thông tin về thủ phạm thực sự thông qua những nền tảng blockchain như vậy, anh ta sẽ không cần lo lắng nhiều về tính xác thực của nội dung bức thư đối với bồi thẩm đoàn, và công chúng có thể yên tâm rằng cả hai bên – người gửi thư và bồi thẩm đoàn – không thông đồng với nhau để đổ oan tội cho ai khác.

Tuy nhiên, giải pháp này vẫn có khuyết điểm. Bộ xử lý SGX có một giả định rằng chỉ có bộ xử lý trung tâm (CPU) mới đáng tin cậy, vì vậy lưu trữ các thông tin mật tại đây và cô lập chúng sẽ là một giải pháp an toàn. Chính giả định này đã dẫn đến nguy cơ các kẻ xấu sẽ không tấn công trực tiếp vào hệ thống bảo mật của máy tính mà đi “đường vòng”, hay còn gọi là side-channel attack.1

Một vấn đề khác khi áp dụng TEEs trong blockchain là tấn công hạ cấp (rollback attack). Nguyên nhân chính của vấn đề này là do trạng thái của một blockchain luôn có thể được tua ngược lại, và chính sự “riêng tư” được cung cấp bởi TEEs sẽ tiếp tay cho việc làm sai trái này.2

2. Trộn lẫn

Mixnet là một cơ chế được sử dụng bởi NYM Network. Trong mixnet, đường đi của các giao dịch sẽ bị “tẩy xóa”, khiến cho những người đứng ngoài không thể tìm ra được thông tin cụ thể trong các giao dịch này.

Cụ thể, mixnet của NYM Network giống như một phiên bản nâng cấp của Onion Routing, một phương pháp đảm bảo tính ẩn danh khi giao tiếp trong một hệ thống máy tính. Trong phương pháp này, một tin nhắn (message) sẽ được chia thành nhiều gói nhỏ, và những gói nhỏ này sẽ lần lượt được mã hóa qua nhiều lớp trong quá trình được chuyển đến nơi cần đến. Mixnet tiến thêm một bước xa hơn với phương pháp này thông qua việc xáo trộn những packets đã được mã hóa, khiến cho việc tìm ra tin nhắn gốc càng trở nên khó khăn hơn.

ma-hoa-onion-routing

Sau khi đã đến được địa điểm mong muốn, từng lớp mã hóa sẽ được gỡ ra lại thành những gói data nhỏ và được sắp xếp lại theo đúng thứ tự để hợp thành tin nhắn hoàn chỉnh lúc ban đầu.

giai-ma-onion-routing

Đối với người gửi thư nặc danh, anh sẽ viết một bức thư tiết lộ thân phận của thủ phạm để gửi tới bồi thẩm đoàn, xé chúng ra, trộn lẫn lên và đóng gói các mảnh thư ấy với ba lớp bì thư cùng với ba loại keo đặc biệt. Các bức thư này sẽ phải đi qua ba trạm thư khác nhau. Mỗi lần đi qua một trạm, sẽ chỉ có một lớp phong bì được bóc ra. Khi tất cả những mảnh thư này đến được hộp thư của bồi thẩm đoàn, các phong bì sẽ hoàn toàn được gỡ bỏ, và sẽ có một kí hiệu để bên bồi thẩm đoàn sắp xếp lại chúng theo trật tự ban đầu để đọc được thông điệp nguyên bản của người gửi.

Một cơ chế khác theo kiểu trộn lẫn cũng được sử dụng bởi Tornado Cash. Tornado Cash cải thiện quyền riêng tư của giao dịch bằng cách phá vỡ liên kết trên chuỗi giữa địa chỉ nguồn và địa chỉ đích. Nó sử dụng một hợp đồng thông minh chấp nhận tiền gửi ETH và các token khác từ một địa chỉ và cho phép họ rút tiền từ một địa chỉ khác. Khi giao dịch được hoàn tất, quãng đường giao dịch từ người gửi đến người nhận sẽ bị phá vỡ. Tuy nhiên, sự riêng tư trong cơ chế này sẽ không thể được đảm bảo một cách tuyệt đối.3

Ring Signatures (chữ ký dạng vòng)

Đây là một phương pháp được sử dụng bởi Monero, một trong những nền tảng blockchain tiên phong trong việc đảm bảo tính riêng tư trong các giao dịch giữa người dùng. 

Quay trở lại với câu chuyện của Jack, chúng ta sẽ thêm vào đó một tình tiết rằng kẻ gửi thư nặc danh thật ra chính là một thành viên trong một băng đảng giang hồ Tam Hoàng mà tên cầm đầu mới chính là thủ phạm thực sự trong tội danh Jack đang phải chịu. Kẻ gửi thư nặc danh ấy đang cảm thấy tội lỗi, và hắn muốn khai ra sự thật nhưng không muốn tiết lộ danh tính của mình. Hắn đã nhân danh băng đảng Tam Hoàng, thu thập những mã khóa công khai (public key) của các thành viên trong hội và kết hợp với mã khóa riêng tư (private key) của mình để ký vào lá thư được gửi đến bồi thẩm đoàn. Như vậy, bồi thẩm đoàn có thể tin chắc rằng bức thư này được viết bởi một thành viên của Tam Hoàng, nhưng không một ai, kể cả những thành viên khác trong băng đảng, có thể biết được danh tính của người gửi thư này.

chu-ky-dang-vong

Ví dụ trên chính là một mô tả được giản lược về cách mà Ring signatures hoạt động.

Trong mạng lưới của Monero, sự riêng tư còn được đảm bảo thông qua địa chỉ ẩn (stealth addresses). Địa chỉ ẩn được sử dụng bởi cả người nhận và người gửi và chỉ có thể dùng trong một lần duy nhất.

Zero-knowledge proof (ZKP)

Đây là một công nghệ độc đáo giúp một cá nhân chứng minh rằng mình biết một sự thật nào đó mà không cần phải trực tiếp nói ra sự thật này.

Một nhánh phát triển khá phổ biến của ZKP hiện nay là ZK-SNARKs. Những dự án tiêu biểu đang sử dụng ZK-SNARKs có thể kể đến là ZCash và Mina.

zk-SNARK đề cập đến một cấu trúc bằng chứng trong đó người xác minh có thể chứng minh việc sở hữu một số thông tin từ người gửi qua một khóa bí mật mà không cần tiết lộ thông tin đó và không có bất kỳ tương tác nào giữa người gửi và người xác minh.

Với cấu trúc “non-interactive”, bằng chứng xác thực chỉ bao gồm một thông điệp duy nhất được gửi từ người gửi đến người xác minh mà không cần phải gửi qua lại nhiều lần giữa người gửi và người xác minh theo phương thức truyền thống.

Trong trường hợp của người gửi thư nặc danh, khi gửi một bức thư khác tới bồi thẩm đoàn để tiết lộ thân phận thực sự của kẻ thủ ác, anh ta sẽ chỉ cần kèm theo đó một thông điệp được mã hóa trên blockchain để có thể chứng minh với công chúng rằng những điều mình biết về tên tội phạm kia hoàn toàn là thật, và rằng anh không hề lén lút trao đổi với bồi thẩm đoàn để đổ oan tội cho người khác. 

Hiện tại, cách hiệu quả nhất được biết đến để tạo ra zero-knowledge proof mà có cấu trúc “non-interactive” và đủ ngắn để xuất bản lên trên blockchain là cấu trúc phải có giai đoạn thiết lập ban đầu với một chuỗi tham chiếu chung được chia giữa phương thức và validators, được gọi là số tham chiếu công khai của hệ thống. 

Mãi cho đến gần đây, một biến thể khác của SNARKs đã xuất hiện để cải thiện những nhược điểm đã tồn tại trong công nghệ này: zk-STARKs. Giải pháp này đã được phát triển bởi StarkWare, một trong những giải pháp layer 2 nổi tiếng cho Ethereum.

STARK cho phép các developers di chuyển các tính toán và storage ra ngoài chuỗi. Những bằng chứng này sau đó được đặt trở lại chuỗi để bất kỳ bên nào quan tâm có thể xác thực việc tính toán. Di chuyển phần lớn công việc tính toán ra khỏi chuỗi bằng cách sử dụng STARKs cho phép cơ sở hạ tầng blockchain hiện tại mở rộng theo cấp số nhân một cách nhanh chóng và hiệu quả hơn. Tuy nhiên, kích cỡ của bản xác minh thuộc zk-STARKs lớn hơn so với zk-SNARKs, một mặt sẽ giúp nó khó bị tấn công hơn bởi những thuật toán của máy tính lượng tử nhưng đồng thời, dữ liệu cần quản lý sẽ nặng hơn so với zk-SNARKs.

Footnotes

  1. Side-channel attack: Một dạng tấn công mà ở đó, tin tặc nhắm vào những lỗ hổng gián tiếp trong hệ thống hoặc vào phần cứng máy tính thay vì tấn công vào lỗ hổng trực tiếp từ tầng bảo mật.
  2. Rollback attack: Trong hình thức tấn công này, tin tặc sẽ làm cho hệ thống từ chối việc sử dụng những cơ chế hoạt động chất lượng cao, đã được nâng cấp, mà quay về sử dụng những cơ chế hoạt động cũ hơn và còn nhiều lỗ hổng.
  3. Nếu như một địa chỉ ví vừa gửi vào Tornado Cash 10,000 ETH và rồi một ví khác lại rút 10,000 ETH ngay sau đó (trong khi các địa chỉ khác thường chỉ gửi từ 100 – 1,000 ETH vào pool thanh khoản của Tornado Cash), khả năng rất cao là hai địa chỉ ví gửi và nhận này đều cùng thuộc về một cá nhân.