Sự phát triển mạnh mẽ của thị trường crypto đã kéo theo nhiều kẻ xấu lợi dụng lỗ hổng về an ninh để trục lợi, và thủ thuật Double Spending là một trong số đó. Vậy Double Spending là gì? Có cách nào để ngăn chặn Double Spending xảy ra hay không? Hãy cùng bài viết dưới đây tìm hiểu về Double Spending là gì cũng như biện pháp để ngăn chặn nó một cách hiệu quả.
Double Spending là gì?
Double Spending được mô tả là một hiện tượng diễn ra khi dùng cùng lúc (hay gần như cùng lúc) một đơn vị tiền hay tài sản cố định co từ hai giao dịch trở lên mà không cần đến quy trình xác minh chính thức từ hệ thống.
Trong môi trường crypto, Double Spending hiện diện khi một cá nhân dùng một loại đơn vị của tiền điện tử để tiến hành những giao dịch khác nhau. Hành động này được thực hiện với mục đích tránh sự kiểm soát của hệ thống thông qua việc dùng số tiền đó không hợp pháp hoặc chưa được xác thực. Trong trường hợp nếu không bị hệ thống phát hiện và ngăn cản kịp lúc thì hậu quá nó đem lại từ việc gian này là sẽ có thêm nhiều giao dịch lừa đảo từ số tiền điện tử này tạo ra.
Ví dụ, giả định A có 1 BTC (Bitcoin) còn B thì sở hữu một chiếc ô tô và A có ý muốn mua lại từ B chiếc xe đó. Vì vậy A chuyển 1 BTC cho B. Nhưng trước lúc giao dịch được xác nhận bởi hệ thống thì A lại tiếp tục chuyển thêm 1 BTC vào tài khoản của C cũng với mục đích để mua chiếc ô tô. Giả sử giá của mỗi chiếc ô tô là 1 BTC.
Với trường hợp này, ta có sơ sở kể khẳng định A đang gian lận bằng việc tiến hành Double Spending, có nghĩa là hai lần chi tiêu nhưng chỉ sử dụng cùng 1 số tiền để mua ô tô từ B và C. Nếu không có sự nhận ra từ hệ thống và ngăn chặn kịp lúc thì với 1 BTC A có thể sẽ sở hữu được cả 2 chiếc ô tô tương đương tổng giá trị lên đến 2 BTC.
Lý do xuất hiện Double Spending là gì?
Theo ví dụ được phân tích phía trên, có thể nhận thấy Double Spending trong thị trường tiền điện tử đem lại rủi ro rất nghiêm trọng vì tác động lớn đến sự tin tưởng của những nhà đầu tư khi gia nhập vào hệ thống. Nguyên nhân có thể dẫn đến xảy ra hiện tượng này là:
Nguyên nhân đầu tiên là đến tự sự thiếu an toàn từ hệ thống đã dẫn đến hiện tượng Double Spending. Như mọi người đã biết thì blockchain là nơi mà tiền điện tử hoạt động với một chuỗi những khối giao dịch đã được mã hoá. Song song đó, những chuỗi mã hoá này được rải rác đều ở nhiều nút mạng. Nhưng nếu một số kẻ lợi dụng lỗ hổng và chiếm được 50% sức mạnh tính toán từ mạng này (tấn công 51%) họ sẽ có thể thiết lập những giao dịch gian lận và thậm chí có thể xác minh chúng, từ đó xuất hiện hiện tượng Double Spending.
Nguyên nhân thứ 2 cũng là một yếu tố rất quan trọng đối với sự xuất hiện của Double Spending là những lợi ích về kinh tế mà nó mang đến. Trong một vài trường hợp, những kẻ có ý đồ xấu sẽ khai thác những lỗ hổng ở hệ thống với mục đích tạo ra Double Spending trục lợi cá nhân. Điển hình như việc tận dụng lỗ hổng để không phải thanh toán khi mua hàng.
Nguyên nhân thứ ba xảy ra hiện tượng Double Spending là do sự xung đột của những giao thức hay lỗ hổng ở mã nguồn. Nếu những nhà phát hành không đủ khả năng cập nhật cũng như khắc phục những lỗ hổng về an ninh một cách nhanh chóng thì những hacker có thể sẽ tận dụng cơ hội đó với mục đích trục lợi thông qua những giao dịch giả.
Với mục đích ngăn chặn những hành vi thực hiện Double Spending, những hệ thống về tiền điện tử đã triển khai những cách thức bảo mật như cơ chế sự đồng thuận ở blockchain (có thể là proof-of-stake hoặc proof-of-work). Bên cạnh đó, việc kiểm soát giao dịch bằng blockchain cũng hỗ trợ đảm bảo sự an toàn cũng như niềm tin đối với hệ thống.
Cách thức vận hành của Double Spending diễn ra như thế nào?
Quy trình thực hiện tấn công Double Spending là gì? Dưới đây sẽ là những bước kẻ xấu thực hiện hình thức tấn công này:
Bước 1: Tiến hành 1 giao dịch hợp lệ: Bắt đầu, kẻ gian sẽ thực hiện hợp lệ một giao dịch, nhưng sau đó giao dịch này sẽ thông qua hệ thống để truyền tới những nút mạng cũng như chuyển vào mempool (nhóm những giao dịch danh đợi xử lý).
Bước 2: Chỉnh sửa dữ liệu của giao dịch: Trong khi đợi hệ thống xác nhận tính hợp lệ của giao dịch đầu tiên thì những kẻ xấu sẽ chỉnh sửa dữ liệu của giao dịch ở mempool hay blockchain với mục đích qua mặt hệ thống, khiến cho giao dịch đã thực hiện lúc đầu gần như chưa hề được thực hiện.
Bước 3: Tiến hành giao dịch thứ 2 nhưng giao dịch này không hợp lệ: Kẻ gian sẽ lập tức tạo một giao dịch thứ hai có giá trị tương đương với giao dịch đầu tiên nhưng thông tin về người nhận sẽ được thay đổi. Ở thời điểm này, chúng có khả năng sẽ dùng những cách thức tấn công ví dụ như: 51% attack, Finney attack hay Race attack để tiến hành làm việc này.
Bước 4: Truyền những giao dịch gian lận đến các node: Những giao dịch gian lận sẽ được truyền đến những nút trong mạng với mục đích để chờ xác minh tương tự như giao dịch đã thực hiện hợp lệ ban đầu.
Bước 5: Hệ thống xác minh những giao dịch: Bước cuối cùng giữ vai trò quan trọng trong việc quyết định sự thành công của cuộc tấn công Double Spending. Có hai tình huống có khả năng xảy ra đối với sự thành công của Double Spending là:
- Tình huống 1: Nếu hệ thống xác minh nhận ra sự không bình thường của hai giao dịch được nhận thì hệ thống sẽ từ chối nó. Có nghĩa là việc tấn công Double Spending đã thất bại.
- Tình huống 2: Nếu hệ thống xác minh không phát hiện điểm bất thường và xác nhận cho cả hai giao dịch. Có nghĩa là cuộc tấn công Double Spending đã được kẻ xấu thực hiện thành công.
Tổng hợp các hình thức Double Spending phổ biến năm 2024
Hiện nay, những cuộc tấn công bằng Double Spending được người ta phân thành 3 loại chính như sau:
51% Attack
Khi kẻ có ý đồ xấu thành công chiếm hơn phân nửa sức mạnh về tính toán từ mạng lưới, họ sẽ dễ dàng quản lý việc hình thành những khối giao dịch mới cũng như quyết định thông qua hoặc từ chối những giao dịch. Do đó mà họ có thể tiến hành Double Spending và khiến cho nó trở thành hợp lệ. Hình thức tấn công này là 51% attack, nó được sử dụng rộng rãi ở những blockchain có ít validator. Mặt khác, những blockchain có quy mô lớn hơn như Bitcoin hay Ethereum, nếu kẻ xấu muốn tiến hành 51% attack thì họ phải bỏ ra một chi phí khá lớn.
Finney Attack
Đây cũng là một dạng khác của tấn công Double Spending. Dưới tình huống tiến hành cách thức 51% attack tốn nhiều chi phí, những kẻ có ý đồ gian lận có khả năng sẽ chuyển hướng sang chọn Finney attack dù nó có tỷ lệ thành công thấp hơn. Finney attack sẽ khởi động bằng việc tiến hành một lệnh giao dịch hợp lệ không được xác nhận. Tiếp theo, kẻ gian sẽ tiến hành thêm một giao dịch nữa có số tiền bằng số tiền ban đầu nhưng gửi đến một ví khác. Khi được xác nhận giao dịch thứ 2, kẻ gian sẽ lập tức thực hiện xác nhận giao dịch đầu tiên. Nhưng sẽ xuất hiện lỗi khi tính toán nên đa số những validators sẽ thường không chấp nhận giao dịch này.
Race attack
Đây là hình thức tấn công có sự khác biệt khi so sánh với Finney attack, phương thức này không bắt buộc những validators phải đóng vai kẻ tấn công. Thủ thuật được sử dụng ở phương thức này là kẻ xấu sẽ đồng thời thực hiện hai giao dịch có số tiền bằng nhau đến hai địa chỉ ví khác nhau với hai thiết bị khác biệt để “qua mặt” thông báo “số dư không đủ”. Trong khi chờ sự xác nhận giao dịch từ hệ thống họ sẽ lừa người bán bằng việc giao dịch đã được thực hiện thành công và người bán sẽ giao hàng cho họ. Sau đó, khi giao dịch bị hệ thống từ chối thì người bán sẽ không nhận được tiền dù họ đã tiến hành giao hàng rồi.
Alternative Facts (History or Transaction) Attack
Kẻ tấn công sẽ sử dụng một địa chỉ giao dịch để thanh toán, đồng thời khai thác riêng một nhánh blockchain thay thế, trong đó bao gồm một giao dịch double spending. Trong trường hợp này, kẻ tấn công đang chuẩn bị tấn công trong khi đang ở giữa một cuộc giao dịch, giống như một Kamehameha đang chuẩn bị giữa một cuộc chiến.
Nếu kẻ tấn công không khai thác đủ, họ sẽ cố gắng tiếp tục mở rộng nhánh của mình với hy vọng có thể bắt kịp mạng lưới. Thông thường hacker sẽ cắt lỗ và từ bỏ việc cố gắng vượt qua phần còn lại của mạng lưới. Vì chúng nghĩ nếu càng cố kéo dài việc này, thì khả năng thành công về mặt lý thuyết sẽ giảm dần theo thời gian.
Vector76 Attack
Kẻ tấn công theo dõi tốc độ lan truyền của một ứng dụng ngoài chuỗi trước khi thiết lập kết nối với một nhóm khai thác. Sau đó, chúng sẽ khai thác một khối với khoản tiền gửi nhưng giữ lại phần phát sóng (tương tự như Finney Attack). Sau đó, họ đợi để khớp phần phát sóng khối của mình với phần phát sóng của một nhóm khai thác. Hai khối chính xác tạo ra một nhánh trong mạng.
Tại thời điểm này, khối của kẻ tấn công cũng đã được khối của nhóm xác nhận. Sau đó, chúng sẽ rút số tiền đã gửi ban đầu. Mạng chuỗi sẽ hiểu điều này là hợp lệ vì nhóm cũng đã phát sóng khối chính xác và chuỗi có thể tiếp tục trên nhánh này.
Kẻ tấn công thắng trong cả hai trường hợp; nếu đường dẫn khối của nhóm được tiếp tục, kẻ tấn công sẽ không mất gì. Nếu đường dẫn khối của kẻ tấn công được tiếp tục, hắn sẽ rút thành công gấp đôi số tiền mà hắn đã đầu tư ban đầu vào cuộc tấn công.
Những cuộc tấn công ảnh hưởng lớn trong giới Crypto
Thị trường tiền điện tử đã phải chịu sự thiệt hại nặng nề lên đến con số hàng triệu USD được gây ra bởi hiện tượng Double Spending. Những cuộc tấn công lớn có thể được nhắc đến như:
Cuộc tấn công ở BTG – Bitcoin Gold
Vào tháng 5/2018, đã có 51% sức mạnh tính toán từ mạng lưới của Bitcoin Gold (BTG) đã bị kẻ xấu chiếm đoạt, họ nắm giữ hoàn toàn quyền kiểm soát những giao dịch ở trên mạng. Tiếp theo đó, người này đã tiến hành thực hiện Double Spending và thuận lợi chiếm được 388,200 BTC, vào lúc đó con số này tương đương với số tiền hơn 20 triệu đô. Để giải vây thế khó lúc bấy giờ, những nhà phát triển của Bitcoin Gold đã ban hành chính sách buộc những sàn giao dịch phải nâng con số xác nhận block lên ít nhất là 50 lần với mục đích tạm thời ngăn cản những cuộc tấn công khác trong tương lai.
Trường hợp tấn công vào XVG – Verge
Năm 2018, mạng lưới của Verge đã phải đối mặt với hành vi Double Spending bằng Finney Attack, cuộc tấn công này đã cuỗm đi 250,000 XVG, vào thời điểm đó con số này có trị giá tương đương khoảng 1.5 triệu đô. Qua cuộc tấn công này đã gây ảnh hưởng lớn đến danh tiếng của Verge và khiến cho token này bị rớt giá trầm trọng.
Trường hợp tấn công vào ETC – Ethereum Classic
Vào tháng 1/2019, quyền kiểm soát của mạng lưới Ethereum Classic đã bị chiếm bởi kẻ tấn công thông qua sức mạnh tính toán. Lợi dụng sơ hở, kẻ tấn công đã thông qua việc gửi các giao dịch gian lận để tiến hành hành vi Double Spending ở blockchain ETC, cuộc tấn công này đã ảnh hưởng với độ uy tín và bảo mật trên Ethereum Classic.
Cơ chế chống lại Double Spending từ Bitcoin
Phần lớn những blockchain có mặt trên thị trường hiện này đều có khả năng kiểm tra lại những giao dịch cũng như luôn sẵn sàng tiến hành reorganization nếu nhận thấy điều bất thường. Việc thực hiện reorganization sẽ không xảy ra thường xuyên nếu giao dịch đó đã được xác minh qua nhiều block.
Ví dụ, mức độ khả năng thực hiện reorganization ở Bitcoin là rất thấp. Khi có một giao dịch bất kỳ nào mà người dùng thực hiện cùng Bitcoin, nó sẽ chuyển vào trạng thái “chưa xác nhận” cũng như không có khả năng chuyển ra một block ngay lập tức. Vì vậy đây là nguyên mà giao dịch này phải trải qua ít nhất 6 lần xác nhận trên block ở mạng lưới Bitcoin.
Ở quá trình này, giao dịch sau khi được xác nhận là hợp lệ cũng như không có hành vi Double Spending, tiếp theo nó sẽ được ghi ở sổ cái một cách công khai cũng như mã hóa trước khi chuyển đến thợ đào hoặc người nhận.
Hình thức chống lại Double Spending từ Bitcoin giữ vai trò vô cùng quan trọng đối với mạng lưới này khi giá trị vốn hóa của nó là hơn 600 tỷ đô. Nếu có bất kỳ hành vi Double Spending nào xảy ra với Bitcoin đều có khả năng gây ra thiệt hại nghiêm rộng trên toàn hệ thống tiền điện tử.
Double Spending phổ biến ở mức độ như thế nào?
Hiện nay, ở những blockchain có quy mô nhỏ hay cơ chế phòng ngừa kém sẽ thường xuất hiện những hành vi Double Spending. Những hình thức Double Spending phổ biến là Race Attack và 51% Attack. Ngược lại đối với những mô hình blockchain mạnh như Bitcoin hoặc Ethereum sẽ rất ít khả năng xảy hay thậm chí là không có. Như vậy, rất may là tấn công chi tiêu kép trong blockchain rất khó đạt được.
Lý do là một khi blockchain của đồng tiền mã hoá đã đủ lớn, tỷ lệ một bên có đủ sức mạnh tính toán một cách nhanh chóng để thay đổi những bên tham gia khác trở nên rất thấp.
Hơn thế nữa, việc sửa đổi các khối đã được xác nhận sẽ cực kỳ khó khăn khi so với chuỗi đang phát triển, vì các khối đã blocked đều được liên kết thông qua bằng chứng mật mã. Vì thế, nếu xác nhận trong một khối ngày càng nhiều thì chi phí thay đổi hoặc lật đổ giao dịch ngày càng cao.
Suy ra, một hành động chi tiêu 2 lần chỉ thành công khi sửa đổi một vài giao dịch nhỏ của các khối gần đây và chỉ trong một khoảng thời gian ngắn.
Có cách nào để ngăn chặn Double Spending cho người dùng?
Thông thường, nhà giao dịch chỉ nên đặt niềm tin vào những giao dịch đã được xác nhận bởi mạng lưới. Điển hình như ở mạng Bitcoin, số lần xác nhận từ những thợ đào được yêu cầu số lượng ít nhất là 6 block, còn đối với mạng Polygon thì số lần tối thiểu để xác nhận là 128 block. Nếu thời gian để xác nhận giao dịch trở nên lâu hơn thì nguy cơ Double Spending đều được giảm đáng kể
Hiện tại, Double Spending được xem là một trong các nhân tố đe dọa nghiêm trọng đến những nền tảng thanh toán tiện điện tử. Sự minh bạch cũng như độ tin cậy của giao dịch có thể sẽ bị đe dọa, từ đây có thể dẫn đến các thiệt hại về tài chính đáng kể cho nhà đầu tư. Để chống lại hành vi Double Spending, nhiều blockchain lớn đã ứng dụng nhiều cách thức xác thực bằng những block
Nhưng so với sự phát triển không ngừng từ công nghệ thì một phương thức tấn công mới có nguy cơ sẽ xuất hiện trong tương lai là hoàn toàn có khả năng. Đây là động lực giúp những nhà phát triển của blockchain phải không ngừng nâng cao những giải pháp an ninh để ngăn chặn những hành vi gian lận và đảm bảo an ninh cho hệ thống khi đối diện với các rủi ro tiềm ẩn như Double Spending.
Có 2 cách thức để ngăn chặn tấn công chi tiêu hai lần:
- Hình thức tiếp cận tập trung: Cách thức này khá dễ thực hiện và hay liên quan tới một giám sát duy nhất, người kiểm soát hệ thống và kiêm quản lý việc phát hành cũng như phân tán đơn vị giữa các bên tham gia.
- Hình thức tiếp cận phi tập trung: Cam kết các khoản tiền không được chi tiêu kép trong môi trường mà không có bất cứ một người giám sát duy nhất nào. Lúc đấy, những người tham gia quản lý theo phương thức đôi bên bình đẳng cần phải phối hợp xoay quanh các giao thức đã được xác định để test gian lận và nâng cao ý thức trung thực giữa mọi người.
Thông qua nội dung Double Spending là gì mà bài viết trên cung cấp có lẽ đã giúp các nhà đầu tư của chúng ta hiểu được tác hại mà Double Spending mang đến. Hi vọng nội dung trên hữu ích để giúp bạn tránh khỏi những rủi ro gây thiệt hại về tài sản. Chúc bạn có những giao dịch thuận lợi và mang về lợi nhuận cao.
Xem thêm:
Phương pháp giúp các nhà đầu tư mới không rơi vào Wash Trading
Cách ngăn chặn hành vi Money Laundering tại thị trường Việt Nam
Tôi là Lê Võ Trọng Tú, một Trader Full Time với đam mê phân tích và nhiệt huyết với những con số. Hãy kết nối và chia sẻ cùng chúng tôi – TraderForex. Tôi không hứa sẽ giúp bạn “giàu nhanh”, nhưng tôi sẽ cung cấp cho bạn những “công cụ” để tạo đà phát triển tốt nhất có thể.