Giới Thiệu Về Giao Dịch Bí Mật
Trang chủ
Bài viết
Giới Thiệu Về Giao Dịch Bí Mật

Giới Thiệu Về Giao Dịch Bí Mật

Nâng cao
Đã đăng Feb 10, 2020Đã cập nhật Dec 28, 2022
6m

Giới thiệu

Minh bạch là yếu tố quan trọng trong hoạt động của một blockchain. Điều này có nghĩa là mọi node trên mạng có thể lưu trữ một bản sao và xác minh rằng không có quy tắc nào bị phá vỡ. Đối với nhiều sổ cái phân tán, bất kỳ ai cũng có thể tải lên một công cụ khám phá blockchain trực tuyến để tìm kiếm các khối, giao dịch và các địa chỉ.

Từ quan điểm về quyền riêng tư, điều này không phải lúc nào cũng lý tưởng. Trong một hệ thống như Bitcoin, mọi giao dịch có thể được liên kết trở lại giao dịch trước đó. Về mặt kỹ thuật, tiền mã hóa là không thể hoàn toàn thay thế cho nhau, có nghĩa là có thể gắn mỗi đơn vị tiền với các giao dịch cụ thể. Không ai có thể ngăn bạn gửi bitcoin, nhưng họ có thể từ chối chấp nhận giao dịch của bạn nếu những bitcoin đó trước đây từng được chuyển qua một địa chỉ trong danh sách đen.

Trong trường hợp xấu nhất, tính không thể thay thế có thể ảnh hưởng sâu sắc đến chính nền tảng của hệ thống. Các đồng tiền sạch có thể giá trị hơn, trong khi những đồng tiền cũ sẽ ít có giá trị hơn bởi vì lịch sử giao dịch của chúng.

Quyền riêng tư trong Bitcoin thường bị phóng đại quá mức. Bạn có thể theo dõi không chỉ các đồng tiền mà cả người dùng. Những thông tin này được mã hóa, (địa chỉ công khai của người dùng được hiển thị thay vì tên), nhưng điều này không phải là luôn hoàn hảo. Với các kỹ thuật phân tích phức tạp với độ chính xác ngày càng cao, ngày nay người ta có thể liên kết các địa chỉ lại thành cụm nhằm tìm ra danh tính của các thực thể mạng.

Một bản nâng cấp được đề xuất để biến các giao dịch trở nên thực sự bảo mật là Giao dịch bí mật (Confidential Transactions).


Giao dịch bí mật là gì?

Giao dịch bí mật (CT) lần đầu tiên được đề xuất bởi Giám đốc điều hành của Blockstream, Adam Back vào năm 2013 và sau đó được phát triển bởi nhà phát triển Bitcoin Gregory Maxwell. Maxwell đã mô tả các vấn đề được đề cập trong phần đầu tiên (tính thay thế và khả năng che dấu danh tính kém) – và đề xuất một giải pháp. Trong đó, số tiền được chuyển có thể được bảo vệ khỏi mạng lưới rộng lớn hơn để chỉ các bên giao dịch mới biết số tiền đã được gửi đi.



Trong các trường hợp thông thường (với các giao dịch có thể xem công khai), thật dễ dàng để một node xác thực rằng số tiền nhận được không vượt quá số tiền được gửi. Nếu Alice muốn gửi 0,3 BTC cho Bob, cô ấy lấy một đầu ra chưa được xác định (hãy gọi nó là 1 BTC) và chia nó thành hai phần: 0,3 để gửi cho Bob và 0,69 để gửi lại cho cô ấy (phần còn lại bị giữ lại là phí khai thác).
Đây là phép tính đơn giản cho các node khác: 1 lớn hơn tổng 0,3 + 0,69, các chữ ký đều chính xác và dữ liệu đầu vào của Alice chưa được sử dụng ở nơi khác, vì vậy giao dịch chắc chắn hợp lệ. Tuy nhiên, khi thông tin về số tiền được ẩn đi, mọi thứ không dễ dàng được xác định như vậy. Làm thế nào để bạn có thể đánh giá nếu một số tiền chưa biết bằng hoặc vượt quá tổng của hai số tiền chưa biết khác?


Tổng quan về phương thức mã hóa được sử dụng

Để ẩn dữ liệu, mã hóa là quy trình bắt buộc. Tuy nhiên, các phương pháp truyền thống sử dụng cơ chế gần giống như việc đặt tài liệu vào két an toàn: khi tài liệu bị khóa trong két, bạn không thể sử dụng được nó cho đến khi bạn lấy ra. Những gì chúng ta cần để thực hiện Giao dịch bí mật là một két an toàn, trong đó nội dung kỹ thuật của chúng được ẩn giấu, tuy nhiên những người ngoài có thể xác minh các thuộc tính của chúng.

Để làm được điều này cần sử dụng phương pháp mã hóa đồng hình (homomorphic encryption), trong một sơ đồ gọi là xác nhận Pedersen. Loại mã hóa này cho phép người ngoài thực hiện các thao tác trên dữ liệu được mã hóa (thứ mà họ không thể thấy) cho một số mục đích. 

Hàm băm thông thường được sử dụng để xác nhận dữ liệu mà bạn muốn tiết lộ sau này. Giả sử bạn muốn thông báo về một cuộc thi trên phương tiện truyền thông xã hội, trong đó bất cứ ai đoán được sàn giao dịch yêu thích của bạn sẽ giành được giải thưởng 0,01 BTC. Người tham gia có thể hoài nghi về cơ chế của cuộc thi, vì có thể bạn đã xem trước các câu trả lời sau đó đưa ra đáp án là một sàn giao dịch không được nhắc đến.

Khi đó để thuyết phục những người theo dõi, bạn có thể cung cấp cho họ một hàm băm gồm một chuỗi các số và ký tự dường như ngẫu nhiên ánh xạ tới một đầu vào cụ thể. Bạn chuyển thông tin về sàn giao dịch của mình qua một hàm số để lấy một dữ liệu đầu ra nhất định. Chúng tôi sẽ minh họa bằng thuật toán SHA256:


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


Nhìn vào dữ liệu này bạn không thể đoán dữ liệu đầu vào. Bạn cũng không thể đảo ngược hàm để tìm ra dữ liệu đầu vào. Tuy nhiên, nếu bạn biết rằng đầu vào là “Binance”, bạn có thể dễ dàng kiểm tra xem hàm băm của nó có khớp với danh sách trên không. Bằng cách này, những người theo dõi được đảm bảo rằng bạn sẽ không thay đổi câu trả lời của mình khi kết thúc cuộc thi – bởi vì làm như vậy sẽ tạo ra một dữ liệu đầu ra hoàn toàn khác.

Tuy nhiên, trên thực tế, giải pháp này không phải là quá an toàn. Mặc dù những người theo dõi của bạn không thể đảo ngược thuật toán, họ có thể xây dựng một danh sách các sàn giao dịch có thể, băm từng dữ liệu một cho đến khi họ có được một dữ liệu đầu ra khớp. Chúng ta có thể giảm khả năng này bằng cách thêm một số dữ liệu ngẫu nhiên được gọi là yếu tố gây mù cho dữ liệu chúng ta sẽ băm. 

Như vậy chúng ta có thể thay đổi dữ liệu đầu vào thành "Binance là sàn giao dịch yêu thích của tôi, tôi yêu nó hơn bất kỳ sàn nào khác 2#43Wr", nó sẽ trở nên khó đoán hơn cho những người tham gia cuộc thi (và với 0,01 BTC, gần như chắc chắn không ai có thể thử nó).

Xác nhận Pedersen cho phép chúng ta thêm các dữ liệu đầu vào đằng sau các xác nhận. Như Maxwell minh họa: Như Maxwell minh họa:



C (BF1 + D1) + C (BF2 + D2) = C (BF1 + BF2, D1 + D2)

Trong đó BFyếu tố gây mùD là  dữ liệu


Ngoài ra còn thêm một số bước nữa sử dụng mã hóa đường cong elip và bằng chứng phạm vi, nhưng ý tưởng cơ bản là người dùng có xác nhận Pedersen cho địa chỉ của họ. Khi gửi tiền, thêm hai xác nhận nữa được tạo (một xác nhận cho địa chỉ tiền thừa để trả lại cho người dùng và một xác nhận cho địa chỉ của người nhận). 

Không ai biết số tiền được gửi là bao nhiêu, nhưng họ có thể kiểm tra xem tổng cộng các xác nhận đối với địa chỉ tiền thừa và địa chỉ người nhận (phía bên trái của phương trình Maxwell) có bằng với địa chỉ người gửi (phía bên phải của phương trình) hay không. Nếu điều này chính xác, thì giao dịch của người dùng là hợp lệ, vì có thể chứng minh rằng các dữ liệu đầu vào bằng với dữ liệu đầu ra.


Giao dịch bí mật có thể thực hiện những gì?

Nếu Giao dịch bí mật được triển khai trong Bitcoin, chúng ta sẽ có một hệ thống bảo mật hơn. Cả dữ liệu đầu vào và dữ liệu đầu ra sẽ được ẩn khỏi mạng và các mục trên sổ cái sẽ được ẩn giấu - nhưng các nút vẫn có thể xác minh tính xác thực của chúng. Với khả năng tăng cường bảo mật này, bitcoin có thể được xem là có thể thay thế, vì phân tích chuỗi không còn tiết lộ lịch sử của một đơn vị nhất định. 

Về việc liệu Giao dịch bí mật có được tích hợp vào giao thức hay không, có vẻ như điều đó sẽ không xảy ra tại thời điểm này. Mặc dù điều này bổ sung thêm tính năng cho mạng, nhưng các giao dịch sẽ trở nên lớn hơn nhiều so với các giao dịch tiêu chuẩn – và với không gian khối hạn chế, điều này sẽ chỉ làm tăng cầu. Điều này cũng sẽ đòi hỏi phần lớn những người tham gia đồng ý thay đổi code, và đây là một điều khá khó để thực hiện.


Tổng kết

Giao dịch bí mật đã được sử dụng trong các loại tiền mã hóa khác và các giao dịch ngoài mạng Bitcoin. Ví dụ, Monero sử dụng chúng kết hợp với các cấu trúc được gọi là chữ ký vòng để đạt được tính ẩn danh và tính có thể thay thế được. Sidechain Liquid dùng chúng để tăng cường bảo mật và cấu trúc MimbleWimble mở rộng chúng.

Bất chấp các lợi ích mà chúng mang lại, sử dụng Giao dịch bí mật sẽ khiến các giao dịch có kích thước lớn hơn. Các mạng tiền mã hóa thường phải giải quyết các vấn đề về khả năng mở rộng và thông lượng ở lớp cơ sở, và kích thước giao dịch lớn hơn không phải là một điều dễ chấp nhận. Dẫu vậy, những người coi trọng tính bảo mật của giao dịch tin rằng việc che giấu số tiền giao dịch và danh tính của người tham gia là điều cần thiết để các loại tiền mã hóa có thể hoạt động như các loại tiền có thể thay thế.