Nội dung
- Giới thiệu
- Giao dịch bí mật là gì?
- Tổng quan về phương thức mã hóa được sử dụng
- Giao dịch bí mật có thể thực hiện những gì?
- Kết luận
Giới thiệu
Tính minh bạch của hệ thống thường được coi 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 nút 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ụ thăm dò khối trực tuyến để tìm kiếm trong các khối, giao dịch và các địa chỉ.
Xét về tính bảo mật, đây không phải là một điều 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ể thay thế, 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 đã đượ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ể mất phí, 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.
Tính bảo mật trong Bitcoin không bảo đảm như người ta vẫn thường nói. 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 luôn hoàn hảo. Các kỹ thuật phân tích tinh vi có thể ngày nhóm các địa chỉ lại với nhau một cách ngày một chính xác để truy tìm danh tính thực của các thực thể trên 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.
Giao dịch bí mật là gì?
Giao dịch bí mật (CT) lần đầu tiên được thảo luận bởi Giám đốc điều hành của Blockchain, Adam Back vào năm 2013 và sau đó được phát triển bởi nhà phát triển của Bitcoin, Gregory Maxwell. Maxwell đã mô tả các vấn đề được đề cập trong phần đầu tiên (tính thay thế được và khả năng che dấu danh tính kém) – và đề xuất một giải pháp. Có thể ẩn thông tin về khoản tiền được giao dịch khỏi mạng, như vậy chỉ các bên giao dịch mới biết số tiền đã được gử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 nút xác minh 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 (đào)).
Đây là phép tính đơn giản cho các nút 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 để xác định như vậy. Làm thế nào có thể xác định được một ẩn số sẽ lớn hoặc bằng tổng của hai ẩn số 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à 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, trong một sơ đồ gọi là cam kết 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 (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 để cam kết 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 sẽ 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à “Bin 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ế, điều 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 “Bin 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ó).
Cam kết Pedersen cho phép chúng ta thêm các dữ liệu đầu vào đằng sau các cam kết. Như Maxwell minh họa:
C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)
Trong đó BF là yếu tố gây mù và 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ó cam kết Pedersen cho địa chỉ của họ. Khi gửi tiền, thêm hai cam kết nữa được tạo (một cam kết cho địa chỉ tiền thừa để trả lại cho người dùng và một cam kết 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 cam kết đố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 &ndash 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 mã, và đây là một nhiệm vụ thường được chứng minh là khó khăn.
Kết luận
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 (chuỗi dựa trên blockchain chính) Liquid thực hiện chúng để tăng cường bảo mật và MimbleWimble mở rộng chúng cho cùng một mục đích.
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ế.