2020/07/16
Technical analysis

Double Spending (Gian lận Lặp chi) là gì?

Đăng ký ngay để nhận ngay ưu đãi

Chi tiêu hai lần là gì?

Chi tiêu hai lần là một vấn đề có thể xảy ra trong hệ thống tiền kỹ thuật số, trong đó cùng một khoản tiền được chi cho hai người nhận cùng một lúc. Nếu không có bất kỳ biện pháp đối phó thích hợp nào, một giao thức không giải quyết được vấn đề về cơ bản sẽ bị hủy hoại – người dùng không có cách nào để xác minh rằng số tiền họ nhận được chưa được sử dụng ở nơi khác.

Khi nói đến tiền kỹ thuật số, việc đảm bảo rằng các đơn vị tiền không bị nhân đôi là điều tối quan trọng. Toàn bộ hệ thống sẽ bị hủy hoại nếu Alice có thể nhận được 10 đồng tiền, sao chép và dán chúng 10 lần, sau đó sở hữu 100 đồng tiền. Tương tự, hệ thống cũng sẽ không thể hoạt động nếu cô ấy có thể gửi cùng lúc 10 đồng cho cả Bob và Carol. Vì vậy, để tiền kỹ thuật số hoạt động, phải có cơ chế để ngăn chặn hành vi này.

Nếu hai giao dịch có khoá riêng tư kèm số dư tài khoản giống nhau hoàn toàn nhưng được gửi vào hai địa chỉ khác nhau trong mạng lưới Bitcoin thì giao dịch nào đến trước sẽ được chấp nhận trước và giao dịch còn lại thì không.

Một lỗ hổng có trong hệ thống Bitcoin có thể dẫn đến Double Spend chính là Tấn công 51%.

Làm thế để ngăn chặn chi tiêu hai lần?

Cách tiếp cận tập trung

Cách tiếp cận tập trung dễ thực hiện hơn so với các giải pháp thay thế phi tập trung. Cách tiếp cận này thường bao gồm việc một giám sát viên quản lý hệ thống và kiểm soát việc phát hành và phân phối các đồng tiền. Một ví dụ điển hình về giải pháp tập trung cho vấn đề chi tiêu hai lần là vấn đề tiền mặt điện tử (eCash) của David Chaum.

Để phát hành cho người dùng một tài sản kỹ thuật số giống như tiền mặt (có khả năng trao đổi ẩn danh và ngang hàng), ngân hàng có thể sử dụng chữ ký mù – như mô tả chi tiết của nhà mật mã học David Chaum trong bài báo Chữ ký mù cho các khoản thanh toán không thể theo dõi năm 1982 của ông.

Trong bối cảnh như vậy, nếu một người dùng (hãy gọi anh ta là Dan) muốn nhận 100 đô la tiền mặt kỹ thuật số, anh ta phải thông báo trước cho ngân hàng. Với điều kiện anh ta có số dư trong tài khoản của mình, sau đó anh ta sẽ tạo một số ngẫu nhiên (hoặc nhiều số cho các đồng tiền có mệnh giá nhỏ hơn). Giả sử anh ta tạo ra năm số, mỗi số được gán một giá trị là 20 đô la. Để ngăn ngân hàng theo dõi các đồng tiền, Dan che giấu các số ngẫu nhiên bằng cách thêm một yếu tố gây mù cho mỗi đồng tiền.

Sau đó, anh ta chuyển dữ liệu này cho ngân hàng, ghi nợ tài khoản của anh ta số tiền100 đô la và ký các tin nhắn xác nhận rằng mỗi thông tin trong số năm thông tin có thể được quy đổi thành 20 đô la. Bây giờ Dan có thể chi tiêu các khoản tiền do ngân hàng phát hành. Anh ta đến nhà hàng của Erin và mua một bữa ăn trị giá 40 đô la.

Dan có thể loại bỏ yếu tố gây mù để lộ số ngẫu nhiên liên quan đến từng ”hóa đơn” tiền kỹ thuật số, hóa đơn này có chức năng như một mã định danh duy nhất cho mỗi đồng tiền (giống như số sê-ri). Anh ta tiết lộ hai số trong đó cho Erin, người này phải ngay lập tức đổi chúng với ngân hàng để ngăn Dan chi tiêu chúng với một thương gia khác. Ngân hàng sẽ kiểm tra xem các chữ ký có hợp lệ không và nếu mọi thứ có vẻ chính xác, nó sẽ ghi cộng vào tài khoản của Erin 40 đô la.

Các hóa đơn đã được sử dụng sẽ được đốt cháy và phải phát hành thêm các hóa đơn khác nếu Erin muốn sử dụng số dư mới của mình theo cách tương tự.

Thiết lập Chaumian eCash có thể có ý nghĩa quan trọng đối với các phương thức chuyển khoản riêng tư. Tuy nhiên, khả năng phục hồi của nó không tốt vì ngân hàng là điểm thất bại trung tâm. Bản thân hóa đơn được phát hành không có giá trị gì, vì nó chỉ có giá trị khi ngân hàng sẵn sàng đổi nó lấy đô la. Khách hàng hoàn toàn phụ thuộc vào quyền lực của ngân hàng, và phải dựa vào sự thiện chí của nó để có tiền. Đây chính xác là vấn đề mà tiền mã hóa sẽ giải quyết.

Cách tiếp cận phi tập trung

Đảm bảo rằng các khoản tiền không thể được chi tiêu hai lần trong một hệ sinh thái không có người giám sát sẽ khó khăn hơn. Những người tham gia có quyền lực ngang bằng nhau phải phối hợp quanh một bộ quy tắc giúp ngăn chặn gian lận và khuyến khích tất cả người dùng hành động trung thực.

Sự đổi mới lớn nhất được trình bày trong sách trắng về Bitcoin là cách thức để giải quyết vấn đề chi tiêu hai lần.Mặc dù không được gọi bằng cái tên như ngày nay, Satoshi đã đề xuất cấu trúc dữ liệu hiện được biết đến rộng rãi như là blockchain.

Một blockchain thực sự chỉ là một cơ sở dữ liệu với một số thuộc tính độc đáo. Những người tham gia trên mạng (được gọi là các nút) chạy phần mềm chuyên dụng, cho phép họ đồng bộ hóa bản sao cơ sở dữ liệu của họ với các đồng đẳng (peer). Kết quả là toàn bộ mạng có thể kiểm tra lịch sử của các giao dịch có từ khối nguyên thủy (genesis). Bằng cách để blockchain ở chế độ công khai, thật dễ dàng để phát hiện và ngăn chặn hoạt động lừa đảo, chẳng hạn như các giao dịch cố gắng chi tiêu hai lần.

Khi người dùng truyền một giao dịch, nó không được thêm ngay vào blockchain – trước tiên nó phải được đưa vào một khối thông qua hoạt động khai thác. Như vậy, người nhận chỉ nên xem giao dịch là hợp lệ sau khi khối của nó được thêm vào chuỗi. Mặt khác, họ có nguy cơ mất tiền, vì người gửi có thể chi tiêu cùng một số tiền ở nơi khác.

Sau khi giao dịch được xác nhận, người gửi không thể chi tiêu các đồng tiền một lần nữa, vì quyền sở hữu được gán cho người dùng mới – và toàn bộ mạng có thể xác minh điều này. Vì lý do này, nhiều người khuyên nên chờ đợi nhiều người xác nhận trước khi chấp nhận thanh toán là hợp lệ. Mỗi khối tiếp theo làm tăng đáng kể số lượng nỗ lực cần thiết để sửa đổi hoặc viết lại chuỗi (có thể xảy ra trong cuộc tấn công 51%).

Hãy quay trở lại kịch bản xảy ra ở nhà hàng. Dan trở lại nhà hàng và lần này nhận thấy nhãn dán Bitcoin được chấp nhận ở đây trên cửa sổ. Anh ấy rất thích bữa ăn lần trước, nên gọi món đó lần nữa. Nó có giá 0,005 BTC.

Erin đưa cho anh ta một địa chỉ công khai để anh ấy chuyển tiền. Dan truyền giao dịch, về cơ bản là một thông điệp đã ký để xác nhận rằng 0,005 BTC thuộc quyền sở hữu của Dan bây giờ sẽ là của Erin. Bất kỳ ai thấy được giao dịch đã ký của Dan đều có thể xác minh rằng anh ta thực sự đã chủ sở hữu các đồng tiền, và do đó có quyền gửi chúng.

Tuy nhiên, như đã đề cập, giao dịch chỉ có hiệu lực nếu được bao gồm trong một khối đã được xác nhận. Chấp nhận các giao dịch chưa được xác nhận cũng giống như chấp nhận $40 trong eCash từ ví dụ trước mà không cần ngay lập tức gửi tiền vào ngân hàng – điều đó cho phép người gửi chi tiêu ở nơi khác. Vì vậy, chúng tôi khuyên Erin nên đợi ít nhất có 6 xác nhận khối (khoảng một giờ) trước khi chấp nhận thanh toán của Dan.

TỔNG KẾT

Chi tiêu hai lần cho phép người dùng đánh lừa hệ thống tiền mã hóa để kiếm lợi nhuận bằng cách sử dụng cùng một khoản tiền nhiều lần. Thông thường, việc thiếu các giải pháp thích hợp cho vấn đề sẽ cản trở quá trình phát triển của vấn đề.

Tuy nhiên, thật may mắn là việc sử dụng chữ ký mù đã đề xuất một giải pháp thú vị cho các hệ thống tài chính tập trung. Sau đó, việc tạo ra các cơ chế Bằng chứng công việc và công nghệ blockchain đã dẫn đến sự ra đời của Bitcoin như một hình thức đồng tiền phi tập trung đầy sức mạnh – điều này đã gợi cảm hứng cho hàng ngàn dự án tiền mã hóa khác.