Double spend

Double Spend là hình thức gian lận sử dụng hai giao dịch khác nhau để cùng chi tiêu số dư của một tài khoản. Double Spend thường được nhắc đến khi sử dụng tiền điện tử vì tiền điện tử dễ sao chép làm giả hơn nhiều so với tiền giấy.

 

Các hacker đã cố gắng khắc phục hệ thống xác minh Bitcoin bằng cách sử dụng các phương thức như điện toán hóa cơ chế bảo mật chuỗi khối hoặc sử dụng kĩ thuật chi tiêu hai lần liên quan đến việc gửi nhật kí giao dịch gian lận cho người bán và một người khác cho phần còn lại của mạng Bitcoin.

Những việc này chỉ có thành công hạn chế. Trên thực tế, hầu hết các vụ trộm Bitcoin cho đến nay không liên quan đến việc tính hai lần mà là do người dùng lưu trữ bitcoin khi không có biện pháp an toàn đầy đủ.

Rủi ro lớn nhất đối với chi tiêu hai lần xảy ra dưới hình thức tấn công 51%, điều này có thể xảy ra nếu người dùng kiểm soát hơn 50% năng lực tính toán duy trì sổ cái phân bổ của tiền mã hóa. Nếu người dùng này kiểm soát chuỗi khối, họ sẽ có thể xử lí chuyển bitcoin sang ví của họ nhiều lần bằng cách đảo ngược sổ cái chuỗi khối như thể các giao dịch ban đầu chưa bao giờ xảy ra.

Bitcoin được thiết kế cẩn thận để ngăn chặn các cuộc tấn công chi tiêu hai lần, ít nhất là khi giao thức được sử dụng như mong đợi. Nghĩa là, nếu các cá nhân chờ đợi các giao dịch được xác nhận trong một khối, không có cách nào dễ dàng để người gửi hoàn tác nó. Để làm như vậy, họ sẽ cần phải “đảo ngược” các blockchain, điều này đòi hỏi một sức mạnh băm rất lớn và không thể thực hiện được.

Tuy nhiên, có một số ít các cuộc tấn công chi tiêu hai lần nhằm vào các bên chấp nhận các giao dịch chưa được xác nhận. Chẳng hạn, đối với các giao dịch mua giá trị thấp, người giao dịch có thể không muốn đợi các giao dịch được đưa vào một khối. Một nhà hàng thức ăn nhanh bận rộn có lẽ không thể chấp nhận thời gian mạng xử lý mỗi hóa đơn. Vì vậy, nếu một doanh nghiệp cho phép thanh toán “tức thời” , họ có rủi ro gặp gian lận chi tiêu hai lần. Ai đó có thể đặt hàng một bánh mì kẹp thịt, trả tiền cho nó, sau đó ngay lập tức gửi cùng một khoản tiền đến địa chỉ của họ. Với mức phí cao hơn, giao dịch mới này có thể sẽ được xác nhận trước, và do đó sẽ vô hiệu hóa giao dịch trước đó.

Có ba phương pháp phổ biến để thực hiện chi tiêu hai lần:

  • Tấn công 51%: khi một thực thể hoặc tổ chức kiểm soát hơn 50% tỷ lệ băm, điều này cho phép họ loại trừ hoặc sửa đổi thứ tự giao dịch. Một cuộc tấn công như vậy rất khó xảy ra đối với Bitcoin, nhưng đã xảy ra trong các mạng khác.
  • Tấn công cuộc đua: hai giao dịch xung đột được truyền đi liên tiếp, sử dụng cùng một khoản tiền – nhưng chỉ có một giao dịch được xác nhận. Mục tiêu của kẻ tấn công là vô hiệu hóa một giao dịch bằng cách chỉ xác nhận giao dịch có lợi cho anh ta (ví dụ: gửi cùng một khoản tiền đến địa chỉ mà anh ta kiểm soát). Các cuộc tấn công cuộc đua yêu cầu người nhận chấp nhận một giao dịch chưa được xác nhận là thanh toán.
  • Tấn công Finney: kẻ tấn công khai thác trước một giao dịch thành một khối mà không truyền nó lên mạng ngay lập tức. Thay vào đó, anh ta tiêu cùng một khoản tiền đó trong một giao dịch khác, và chỉ khi đó mới truyền khối được khai thác trước đó, điều này có thể làm mất hiệu lực giao dịch. Các cuộc tấn công Finney một chuỗi các sự kiện cụ thể xảy ra và cũng phụ thuộc vào sự chấp nhận của người nhận đối với các giao dịch chưa được xác nhận.
 

Để giải quyết vấn đề double spending này, chúng ta sẽ sử dụng một cơ quan xác thực tập trung để giám sát tất cả các giao dịch, trường hợp này giống như các ngân hàng hoặc các nhà cung cấp dịch vụ thanh toán trực tuyến trung gian như PayPal.


Minh họa giải quyết vấn đề double spending. (Nguồn: cryptoviet.com)

Cơ quan xác thực tập trung này duy trì một sổ cái ghi lại tất cả các giao dịch. Khi đó, An sẽ phải gửi tài sản tiền số của mình cho cơ quan này. Cơ quan này sẽ thực hiện ghi chép lại biến động tài sản của An kèm với các giao dịch được thực hiện. Mỗi lần tiêu số tiền này sẽ được trừ vào tổng tài sản của An. Và khi An muốn tiêu một khoản tiền nào đó để mua hàng thì cơ quan xác thực này sẽ xác nhận lại việc An có đủ số dư tài khoản để thanh toán cho giao dịch đó hay không. Khi số dư tài khoản được xác thực, cơ quan xác thực tập trung này sẽ gửi một số tiền số tương ứng cho Bình hoặc Chung bằng cách cộng thêm và ghi lại số tiền có được của Bình hoặc Chung vào tài khoản tương ứng của họ trong sổ cái.

Trong trường hợp này, An không thể nhân đôi số tiền của mình bởi dù có gửi như thế nào thì số tiền trong sổ cái cũng không thay đổi và không thể xác nhận được. Nếu mọi giao dịch tiền kỹ thuật số được chuyển thông qua một cơ quan tập trung như thế này, thì vấn đề double spending sẽ được giải quyết. Điều này cũng cung cấp một lợi ích khác trong việc xác thực tính xác thực của mỗi đồng tiền kỹ thuật số được sử dụng trong giao dịch. Tiền giả (tiền trùng lặp như trong trường hợp An trả tiền cho Chung bằng cách sử dụng bản sao) sẽ dễ dàng bị phát hiện và ngăn chặn lưu thông.