Tài sản mã hóaiCapital3 phút đọc

Double spending: vì sao chữ ký đúng vẫn chưa đủ?

Nội dung giáo dục và nghiên cứu, không phải tư vấn đầu tư cá nhân.

Double spending, hay chi tiêu hai lần, là việc tạo các giao dịch cạnh tranh để sử dụng cùng một quyền chi tiêu. Vấn đề không nằm ở số bản sao của một tệp, mà ở việc hệ thống sẽ công nhận quyền nào đã được sử dụng trong lịch sử hợp lệ.

Chữ ký có thể giúp kiểm tra một lệnh được bên có khóa phù hợp tạo ra. Nhưng cùng người đó có thể ký hai lệnh xung đột. Bitcoin whitepaper đặt bài toán này bên cạnh nhu cầu thống nhất lịch sử chuyển giao. Nguồn: Bitcoin whitepaper, §2.

Cơ chế xử lý gồm những bước nào?

Đầu tiên, giao dịch tham chiếu quyền hoặc đầu vào muốn sử dụng. Tiếp theo, bên kiểm tra xác minh điều kiện chi tiêu và trạng thái trước đó. Cuối cùng, hệ thống chỉ công nhận các chuyển giao tương thích trong lịch sử được chấp nhận.

Với mô hình UTXO của Bitcoin, đầu ra chưa chi tiêu là đơn vị tham chiếu quan trọng. Khi một đầu ra đã được sử dụng trong lịch sử hợp lệ, một giao dịch khác không thể tiếp tục dùng chính đầu ra ấy như đầu vào còn chưa chi. Nguồn: Bitcoin Developer Guide, Introduction.

Trong lúc giao dịch chưa được ghi nhận chắc hơn bởi lịch sử mạng, các bên có thể nhìn thấy thông tin khác nhau. Vì thế, việc một giao diện nhận được giao dịch không tự chứng minh mọi nút đã thấy cùng thông tin hoặc giao dịch sẽ được giữ trong lịch sử sau đó.

Ví dụ giả định: một quyền, hai người nhận

Giả sử A kiểm soát một đầu vào trị giá 10 đơn vị. A tạo giao dịch X trả B và giao dịch Y trả C, cả hai đều tham chiếu cùng đầu vào. Đây là hai lệnh cạnh tranh, dù chữ ký của chúng có thể đều được tạo bằng khóa đúng.

Nếu X được lịch sử hợp lệ công nhận trước và đầu vào đã chi, Y không còn thỏa điều kiện về trạng thái. Người nhận không thể cộng X và Y để kết luận đã có 20 đơn vị được tạo ra. Ví dụ chỉ mô tả xung đột quyền chi; không phải quan sát một giao dịch thực và không cung cấp cách thực hiện tấn công.

Hai lệnh dùng cùng một khoản. Chữ ký của cả hai có thể đúng, nhưng mạng chỉ ghi nhận một.

Ghi vào khối có xóa hết rủi ro không?

Một lịch sử phân nhánh có thể làm thay đổi trạng thái của giao dịch. Vì vậy, cần phân biệt từ chối một giao dịch xung đột với rủi ro lịch sử đang dùng bị thay bằng một nhánh khác. Các khái niệm này gặp nhau nhưng không đồng nhất.

Ngộ nhận khác là double spending cho phép bất kỳ ai chi tài sản của người khác. Xung đột lịch sử không tự cung cấp khóa hay thỏa điều kiện chi tiêu của một đầu vào không thuộc quyền kiểm soát của bên đó. Khi đánh giá rủi ro, phải xem riêng quyền tạo giao dịch và khả năng lịch sử đổi nhánh.

Kết luận

Double spending là rủi ro cùng một quyền chi tiêu bị dùng cho hai giao dịch xung đột; chữ ký đúng không ngăn được điều này vì cùng một người có thể ký cả hai. Bitcoin xử lý bằng cách để mạng thống nhất một lịch sử chung, trong đó chỉ một giao dịch được công nhận. Ngay cả khi đã vào block, rủi ro giảm dần theo độ sâu của lịch sử chứ không biến mất ngay.

Đọc tiếp

Bài toán chuyển giá trị số đưa ra bối cảnh; Giao dịch Bitcoin trình bày toàn bộ hành trình. Các trang tiền đề là UTXO, Đồng thuận và fork và Xác nhận và finality. Tra cứu tại Thư viện thuật ngữ.

Lưu ýBài viết nhằm mục đích cung cấp thông tin và giáo dục, không phải tư vấn đầu tư, pháp lý hay thuế và không phải khuyến nghị mua, bán hoặc nắm giữ bất kỳ tài sản mã hóa nào. Tài sản mã hóa có rủi ro cao, gồm biến động giá, mất quyền kiểm soát khóa và thay đổi pháp lý. Thông tin đúng tại ngày cập nhật ghi trên bài và có thể thay đổi sau đó.Cập nhật lần cuối: