Chi tiêu gấp đôi là gì?

Chi tiêu gấp đôi là một vấn đề tiềm ẩn trong hệ thống tiền kỹ thuật số, nơi cùng một khoản tiền được gửi đến 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ị suy yếu – 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 chi tiêu vào 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ị cụ thể không thể bị trùng lặp là điều tối quan trọng. Toàn bộ hệ thống sẽ bị phá hoại nếu Alice có thể nhận được 10 đơn vị, sao chép và dán chúng 10 lần và thấy mình sở hữu 100 đơn vị. Tương tự, kế hoạch như vậy không thể thực hiện được nếu cô ấy có thể gửi cùng lúc 10 đơn vị giống nhau 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.


Làm thế nào có thể ngăn chặn chi tiêu gấp đôi?

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

Lộ trình tập trung dễ thực hiện hơn đáng kể so với các lựa chọn thay thế phi tập trung. Điều này thường liên quan đến một người giám sát quản lý hệ thống và kiểm soát việc phát hành và phân phối các đơn vị. Một ví dụ điển hình về giải pháp tập trung cho vấn đề chi tiêu gấp đôi là eCash của David Chaum.

Để phát hành cho người dùng một tài sản kỹ thuật số bắt chước 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ư chi tiết của nhà mật mã học David Chaum trong bài báo Blind Signatures for Untraceable Payments 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 cho ngân hàng trước. Với điều kiện anh ta có số dư trong tài khoản, anh ta sẽ tạo ra một số ngẫu nhiên (hoặc nhiều số, đối với các mệnh giá nhỏ hơn). Giả sử anh ta tạo ra năm số, mỗi số có giá trị là 20 đô la. Để ngăn ngân hàng theo dõi các đơn vị cụ thể, Dan làm xáo trộn các số ngẫu nhiên bằng cách thêm một yếu tố làm mù vào mỗi số đó.

Sau đó, anh ta chuyển dữ liệu này cho ngân hàng, ngân hàng sẽ ghi nợ tài khoản của anh ta 100 đô 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ể đổi được 20 đô la. Bây giờ Dan có thể tiêu số 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 với giá 40 đô la.

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

Các tờ tiền được sử dụng về cơ bản đã bị đốt cháy và phải phát hành nhiều hơn nữa nếu Erin muốn chi tiêu số dư mới của mình theo cách tương tự.

Thiết lập Chaumian eCash có thể có giá trị cho việc chuyển tiền cá nhân. Tuy nhiên, nó không có khả năng phục hồi vì ngân hàng là trung tâm của sự thất bại. Bản thân một hối phiếu được phát hành không có giá trị gì vì giá trị của nó chỉ xuất phát từ việc ngân hàng sẵn sàng đổi nó lấy đô la. Khách hàng phụ thuộc vào ngân hàng và phải dựa vào thiện chí của ngân hàng để tiền hoạt động. Đây chính xác là vấn đề mà tiền điện tử hướng tới giải quyết.


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

Việc đảm bảo rằng số tiền không thể được chi tiêu gấp đôi 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 nhau phải phối hợp xung quanh một bộ quy tắc 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 Bitcoin là giải pháp cho vấn đề chi tiêu gấp đôi. Mặc dù không được tham chiếu như vậy nhưng Satoshi đã đề xuất cấu trúc dữ liệu hiện được biết đến rộng rãi dưới dạng chuỗi khối.

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 nghiệp của họ. Kết quả là toàn bộ mạng có thể kiểm tra lịch sử giao dịch kể từ khối gốc. Bằng cách để blockchain có thể xem công khai, thật dễ dàng để phát hiện và ngăn chặn hoạt động gian lận, chẳng hạn như các giao dịch cố gắng chi tiêu gấp đôi.

Khi người dùng phát 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 việc khai thác. Do đó, người nhận chỉ nên coi giao dịch là hợp lệ sau khi khối của nó được thêm vào chuỗi. Nếu không, họ có nguy cơ mất tiền vì người gửi có thể tiêu số tiền tương tự ở nơi khác.

Sau khi giao dịch được xác nhận, số tiền này không thể được chi tiêu hai lần vì quyền sở hữu được chỉ định 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 mà nhiều người khuyên nên đợi nhiều lần xác nhận trước khi chấp nhận khoản thanh toán hợp lệ. Mỗi khối tiếp theo sẽ tăng đáng kể lượng nỗ lực cần thiết để sửa đổi hoặc viết lại chuỗi (điều này có thể xảy ra trong cuộc tấn công 51%).

Hãy xem lại kịch bản nhà hàng. Dan quay 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ó tiêu tốn của anh ta 0,005 BTC.

Erin đưa cho anh ta một địa chỉ công cộng để anh ta phải gửi tiền đến đó. Dan phát sóng giao dịch, về cơ bản là một thông báo đã được ký cho biết rằng 0,005 BTC mà Dan sở hữu hiện thuộc sở hữu của Erin. Không đi sâu vào chi tiết, bất kỳ ai có giao dịch đã ký của Dan đều có thể xác minh rằng anh ta thực sự sở hữu số tiền đó và do đó có quyền gửi chúng.

Tuy nhiên, như đã đề cập, giao dịch chỉ hợp lệ nếu được đưa vào một khối được xác nhận. Việc 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 đô la tiền điện tử từ ví dụ trước mà không cần chuyển ngay số tiền đó vào ngân hàng – nó cho phép người gửi chi tiêu ở nơi khác. Vì vậy, Erin nên đợi ít nhất 6 xác nhận khối (khoảng một giờ) trước khi chấp nhận khoản thanh toán của Dan.


Chi tiêu gấp đôi bằng Bitcoin

Bitcoin được thiết kế cẩn thận để ngăn chặn các cuộc tấn công chi tiêu gấp đôi, í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 thì 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” blockchain, vốn đòi hỏi một lượng sức mạnh băm không thực tế.

Tuy nhiên, có một số cuộc tấn công chi tiêu gấp đôi nhằm vào các bên chấp nhận giao dịch chưa được xác nhận. Ví dụ: đối với các giao dịch mua có giá trị thấp, người bán 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ó thể không đủ khả năng để chờ mạng lưới xử lý mọi giao dịch mua hàng. Vì vậy, nếu một doanh nghiệp cho phép thanh toán “tức thời”, họ sẽ tự mở ra cơ hội chi tiêu gấp đôi. Ai đó có thể đặt mua một chiếc bánh mì kẹp thịt, trả tiền, sau đó gửi ngay số tiền tương tự đế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ẽ làm mất hiệu lực của giao dịch trước đó.

Có ba phương pháp phổ biến để thực hiện chi tiêu gấp đôi:

  • Tấn công 51%: khi một thực thể hoặc tổ chức duy nhất 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 ở các mạng khác.

  • Tấn công chủng tộc: hai giao dịch xung đột được phát 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 khoản thanh toán bằng cách chỉ xác thực giao dịch có lợi cho hắn (ví dụ: gửi cùng một khoản tiền đến địa chỉ mà hắn kiểm soát). Các cuộc tấn công chủng tộc yêu cầu người nhận chấp nhận thanh toán bằng một giao dịch chưa được xác nhậ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 phát nó lên mạng ngay lập tức. Thay vào đó, anh ta chi tiêu số tiền tương tự trong một giao dịch khác và chỉ sau đó phát sóng khối đã khai thác trước đó của mình, điều này có thể làm mất hiệu lực thanh toán. Các cuộc tấn công Finney yêu cầu một chuỗi sự kiện cụ thể xảy ra và cũng phụ thuộc vào việc người nhận có chấp nhận các giao dịch chưa được xác nhận hay không.

Như chúng ta có thể thấy, người bán chờ xác nhận khối sẽ giảm đáng kể rủi ro trở thành nạn nhân của chi tiêu gấp đôi.


Bớt tư tưởng

Chi tiêu gấp đôi cho phép người dùng đánh lừa hệ thống tiền mặt điện tử để thu được lợi ích tài chính, sử dụng cùng một khoản tiền nhiều lần. Theo truyền thống, việc thiếu các giải pháp thích hợp cho vấn đề này đã cản trở sự tiến bộ trong khu vực.

Tuy nhiên, may mắn thay, việc sử dụng chữ ký mù đã đề xuất một giải pháp thú vị cho các chương trình tài chính tập trung. Sau đó, việc tạo ra các cơ chế Proof of Work và công nghệ blockchain đã khai sinh ra Bitcoin như một dạng tiền phi tập trung mạnh mẽ – từ đó truyền cảm hứng cho hàng nghìn dự án tiền điện tử khác.