50 triệu USDT đã được hoán đổi lấy 35 nghìn AAVE trong sự cố Aave CoW Protocol

iconOdaily
Chia sẻ
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary iconTóm tắt

expand icon
Một bản cập nhật giao thức cho Aave CoW đã được tiết lộ sau khi một người dùng hoán đổi 50,4 triệu USDT lấy chỉ 35.900 AAVE vào ngày 12 tháng 3 năm 2026. Giao dịch này đã cạn kiệt hồ sơ thanh khoản thấp trên SushiSwap do đường dẫn định tuyến bị lỗi. Tin tức trên chuỗi cho thấy logic định tuyến của giao thức CoW và giao diện người dùng của Aave đã không ngăn được giao dịch này. Không có kiểm tra nào về tính hợp lý kinh tế nào ngăn chặn giao dịch.

Bài viết này đến từ: @Ehsan1579

Biên dịch|Odaily Star Daily(@OdailyChina); Người dịch| Ethan(@ethanzhang_web3

Chỉ nhìn vào tiêu đề sự kiện, rất có thể sẽ hiểu nhầm đây là một cuộc tấn công khai thác lỗ hổng.

Trung tâm sự kiện là: một người đã chuyển đổi 50,4 triệu USD giá trị USDT, cuối cùng chỉ nhận được 35.900 USD giá trị AAVE.

Lúc lần đầu tiên nghe đến sự việc này, tôi thực sự kinh ngạc. Vì vậy, tôi đã tiến hành rà soát toàn bộ sự việc: theo dõi giao dịch, đường đi của trình giải, gọi hợp đồng, dữ liệu dự trữ lịch sử, dữ liệu thanh toán, quy trình bộ điều hợp, mã giao diện Aave, SDK闪电贷 CoW, và mã định tuyến để xác định xem báo giá có “hợp lý” hay không.

Đây không phải là một cuộc tấn công mạng. Giao thức lõi của Aave không có lỗi. Việc thanh toán CoW không có lỗi. Uniswap không có lỗi. SushiSwap không có lỗi. Các giao dịch là hợp lệ, chữ ký là hợp lệ, và tất cả các hợp đồng đều được thực thi đúng hoàn toàn theo mã. Tuy nhiên, gần như toàn bộ giá trị kinh tế đã bị phá hủy chỉ vì đường dẫn được phép thực hiện là vô lý đến mức không thể tin nổi.

Chuỗi công không có vấn đề, vấn đề nằm ở bộ định tuyến.

Theo tôi, việc coi sự việc này đơn giản là “lỗi do người dùng” là không mang tính khách quan và nghiêm túc. Dù người dùng đã ký xác nhận lệnh, nhưng toàn bộ hệ thống phần mềm lại cho phép một thao tác luân chuyển tài sản thế chấp trị giá gần 50 triệu USD — từ việc đưa ra báo giá, ký xác nhận, lập kế hoạch định tuyến cho đến thực thi cuối cùng — đều dẫn đến một hồ sơ thanh khoản thấp chỉ sở hữu khoảng 331 AAVE. Đây vốn là điều hoàn toàn không thể xảy ra, và ít nhất hệ thống phải ngăn chặn ngay trước khi bước vào quá trình thanh toán.

Trace the core trading information

Giao dịch bất thường này có hash: 0x9fa9feab3c1989a33424728c23e6de07a40a26a98ff7ff5139f3492ce430801f, được xác nhận trên blockchain chính của Ethereum ở độ cao khối 24643151 vào ngày 12 tháng 3 năm 2026, với chỉ số giao dịch là 1, tiêu tốn 3780570 đơn vị Gas, và thực thi thành công. Địa chỉ ví sở hữu lệnh bắt đầu bằng 0x98b9, trong khi địa chỉ solver (người gửi giao dịch) thực tế thực hiện giao dịch bắt đầu bằng 0x3980, được ghi nhãn là tsolver trong dữ liệu CoW Auction.

Trước tiên, cần hiểu rằng đây không phải là một lần chuyển đổi USDT sang AAVE đơn thuần ở cấp độ ví. Tài sản bán ra là aEthUSDT, tức là chứng nhận gửi USDT sinh lời trên nền tảng Aave. Tài sản mua vào là aEthAAVE, tức là chứng nhận gửi AAVE sinh lời trên nền tảng Aave. Do đó, thực chất đây là một quá trình luân chuyển tài sản thế chấp trên Aave thông qua hệ thống thanh toán của CoW Protocol và bộ điều hợp flash loan của nó.

Trước giao dịch, ví này sở hữu khoảng 50.432.693,075254 aEthUSDT và 0 aEthAAVE. Sau giao dịch, ví chỉ còn lại 4,980399 aEthUSDT và nhận được 327,241335505966487788 aEthAAVE. Thực tế, ví đã bán gần như toàn bộ vị thế của mình.

Metadata cho thấy rõ ràng rằng lệnh đã là “độc hại” ngay trước khi được thực thi. Lệnh đến từ quy trình aave-v3-interface-collateral-swap. API của CoW hiển thị nó như một lệnh bán đã ký, trong khi metadata ứng dụng ghi nhận nó là một cuộc hoán đổi tài sản thế chấp theo kiểu thị trường với mức trượt giá thông minh 121 điểm cơ bản. Số lượng bán đã ký là 50.432.688,41618 aEthUSDT. Số lượng mua tối thiểu đã ký là 324,949260918413591035 aEthAAVE. Thực tế thanh toán đã trả 327,241335505966487788 aEthAAVE.

Đây là một chi tiết cực kỳ quan trọng. Đơn hàng này vốn không kỳ vọng nhận được hàng ngàn AAVE, rồi sau đó bị hủy một cách vô cớ ở giữa chừng. Nó được thiết kế ngay từ đầu để đạt được kết quả khoảng hơn ba trăm AAVE.

Toàn bộ chuỗi sự cố sụp đổ của bộ định tuyến

Một khi bạn theo dõi giao dịch, toàn bộ quá trình sẽ trở nên khắc nghiệt và trực tiếp.

Việc luân chuyển vốn cấp cao chủ yếu dựa trên hợp đồng thanh toán GPv2Settlement bắt đầu bằng 0x9008. Trước tiên, hợp đồng HooksTrampoline bắt đầu bằng 0x60bf thực hiện thao tác cấp quyền cho aEthUSDT, cho phép các trình trung gian kho CoW rút tài sản người dùng mà không cần cấp quyền giao dịch riêng lẻ; sau đó, hợp đồng GPv2VaultRelayer bắt đầu bằng 0xc92e rút 50432688.41618 aEthUSDT từ ví người dùng vào quy trình thanh toán, đến giai đoạn này, tất cả các thao tác đều tuân thủ logic bình thường.

Hợp đồng thanh toán sau đó cấp quyền thao tác aEthUSDT cho hợp đồng phụ chưa mở nguồn bắt đầu bằng 0xd524 và kích hoạt thông qua bộ chọn hàm 0x494b3137; hợp đồng phụ này sau đó chuyển quyền thực thi cho hợp đồng bộ thực thi chưa mở nguồn bắt đầu bằng 0x699c, đến đây, toàn bộ lộ trình giao dịch bất thường đã được phơi bày hoàn toàn.

Lời gọi hợp lệ đầu tiên hướng đến hợp đồng kho quỹ Aave bắt đầu bằng 0x87870, thông qua hàm withdraw (bộ chọn 0x69328dec) để tiêu hủy aEthUSDT và đổi lấy USDT gốc; sau đó chuyển hướng đến hồ giao dịch Uniswap V3 sâu về USDT/WETH bắt đầu bằng 0x4e68, đổi toàn bộ 50432688.41618 USDT thành 17957.810805702142342238 WETH.

Giao dịch trong giai đoạn này hoàn toàn bình thường: tỷ giá trao đổi khoảng 2808.4 USDT cho 1 WETH, phù hợp với tình hình thị trường tại thời điểm đó, không có vấn đề về thanh khoản, không có sai lệch tính toán, và chuỗi giao dịch bước đầu không có bất kỳ bất thường nào.

Vấn đề nằm ở bước nhảy thứ hai, một khi bạn nhìn thấy nguồn dự trữ thanh khoản, phần còn lại của câu chuyện là không thể tránh khỏi.

Sau khi nhận 17957.810805702142342238 WETH, bộ thực thi đã chuyển toàn bộ số vốn vào hồ giao dịch SushiSwap V2 AAVE/WETH tại địa chỉ 0xd75ea151a61d06868e31f8988d28dfe5e9df57b4.

Tôi đã kiểm tra dữ liệu dự trữ thanh khoản lịch sử của hồ giao dịch tại thời điểm ngay trước khi giao dịch bất thường xảy ra (độ cao khối 24643150), hồ chỉ đang giữ:

331.631982538108027323 hạt AAVE, 17.653276196397688066 hạt WETH

Đây không phải là lỗi nhập dữ liệu, mà là sự thật không thể chối cãi.

Đường dẫn giao dịch này đã bơm toàn bộ 17.958 WETH vào một hồ giao dịch vi mô chỉ có 17,65 WETH dự trữ và tổng lượng AAVE là 331,63 WETH, với lượng WETH đầu vào gấp khoảng 1.017 lần lượng dự trữ WETH trong hồ.

Đây không phải là vấn đề thông thường như “độ trượt giá cao” hay “than khoản lỏng lẻo”, mà là một đường dẫn thực thi lệnh thị trường cực kỳ phi lý, tương đương với việc ép một hồ AMM tích cố định có quy mô cực nhỏ tiếp nhận một giao dịch khổng lồ lớn gấp hàng ngàn lần dung lượng của nó.

AMM liquidity pool đã thực hiện thao tác theo thuật toán được định sẵn, làm cạn kiệt gần như toàn bộ nguồn dự trữ AAVE trong pool.

SushiSwap trading pair kích hoạt sự kiện trao đổi Swap cốt lõi: người thực thi chuyển vào 17957.810805702142342238 WETH, chỉ nhận lại 331.305315608938235428 AAVE. Sau khi giao dịch hoàn tất, thanh khoản còn lại trong池 khoảng:

0.326666929169791895 hạt AAVE, 17975.464081898540030304 hạt WETH

Nói một cách đơn giản, khoảng 99,9% lượng AAVE trong pool đã bị rút sạch trong một nhảy.

Dựa trên dự trữ trước giao dịch, giá ẩn của AAVE trong池 là khoảng 149,50 USD. Giá thực tế mà người dùng thực hiện là khoảng 154.114,66 USDT đổi lấy 1 AAVE. Điều này chênh lệch hơn 1000 lần so với giá spot trước giao dịch.

Tiếp theo, số AAVE này được cung cấp trở lại pool Aave bằng bộ chọn 0x617ba037, tức là supply(address,uint256,address,uint16). Kết quả là số aEthAAVE mới được đúc đã được gửi trở lại hợp đồng thanh toán. Hợp đồng thanh toán cuối cùng đã chuyển 327.241335505966487788 aEthAAVE cho người dùng. Khoảng 4.06398010297174764 aEthAAVE, là phần dư so với số tiền người dùng đã thanh toán, vẫn còn lại trong hợp đồng thanh toán.

Vì vậy, việc thanh toán không làm biến đổi một kết quả thực hiện tốt thành một kết quả xấu một cách đột ngột. Nó chỉ xác nhận cuối cùng kết quả mà tuyến đường đã tạo ra từ trước.

Đây là điểm then chốt, đáng để nêu rõ: Kết quả thảm họa đã được “thiết lập sẵn” ngay từ trước khi thực hiện định tuyến.

Trong dữ liệu gọi hợp đồng phụ nhúng trong tuyến đường, số lượng mục tiêu mua vào khoảng 331.272185078031026739, số lượng mua tối thiểu do người dùng ký xác nhận là 324.949260918413591035, và số lượng thanh toán thực tế là 327.241335505966487788, tất cả các giá trị cốt lõi đều được khóa ở mức vài trăm AAVE trước khi thanh toán.

This route has been bad since birth.

Where is the vulnerability?

Câu trả lời là: Cơ chế kiểm tra ở từng cấp độ của hệ thống đều đang xác minh các chiều lỗi.

Tất cả các cấp đều chỉ kiểm tra xem giao dịch có thể thực thi được không, chữ ký có hợp lệ không và số tiền có khác không, nhưng gần như không có kiểm tra cấp cốt lõi về tính hợp lý kinh tế của tuyến đường giao dịch, đây là nguồn gốc cốt lõi của sự thất bại cơ chế.

Lỗi mã trong đường dẫn báo giá của bộ điều hợp giao diện Aave

Điểm bất thường về mã đầu tiên xuất hiện trong quy trình báo giá của bộ điều hợp CoW trên giao diện Aave: hàm vốn được sử dụng để đính kèm dữ liệu ứng dụng đặc trưng của bộ điều hợp khi yêu cầu báo giá đã bị vô hiệu hóa trực tiếp.

Nguồn: rates.helpers.ts:93adapters.helpers.ts:194

Điều này có nghĩa là giao diện Aave khi yêu cầu báo giá từ CoW đã không đính kèm các siêu dữ liệu về vay chớp nhoáng và hook sẽ được thêm vào khi thực sự phát hành lệnh. Nói cách khác, thứ được báo giá không hoàn toàn giống với thứ sẽ được thực thi. Ngay cả chú thích mã cũng nói rằng mục đích của hàm trợ giúp này là để làm cho báo giá của bộ điều hợp chính xác hơn, nhưng hàm này lại bị vô hiệu hóa cứng.

Việc xác định tính hợp lý của logic cạnh tranh báo giá CoW quá yếu (lỗ hổng chính)

Vấn đề thứ hai và nghiêm trọng nhất là logic cạnh tranh báo giá của giao thức CoW: trong mã dịch vụ công cộng, bất kỳ báo giá nào có phí Gas dương và số lượng đầu ra khác không đều được coi là “báo giá hợp lệ”.

Nguồn: quote.rs:31

Đối với một hệ thống định tuyến xử lý đơn hàng tám chữ số, đây là một định nghĩa “hợp lý” yếu ớt đáng kinh ngạc.

Hệ thống chưa tích hợp oracle để kiểm tra tính hợp lệ của giá, không có cơ chế chặn khi báo giá lệch hơn 500 lần so với giá spot, không có đánh giá rủi ro về việc tuyến đường làm cạn kiệt hoàn toàn nguồn thanh khoản, không có cảnh báo về sự không khớp nghiêm trọng giữa thanh khoản bước cuối và quy mô lệnh; chỉ cần solver trả về phương án tuyến đường có thể thực thi và khác không, hệ thống sẽ chấp nhận — đây là lỗ hổng cốt lõi của sự kiện này.

Điểm yếu trong logic mô hình hóa thanh khoản của Uniswap V2

Vấn đề thứ ba nằm ở cách mô hình hóa hồ thanh khoản theo phong cách Uniswap V2: mã nguồn chỉ sử dụng thuật toán tích hằng số, chỉ từ chối các tình huống không thể về mặt toán học như dự trữ bằng không, tràn số học dưới, tràn dự trữ, mà không thực hiện kiểm tra tính khả thi về mặt kinh tế.

Nguồn: pool_fetching.rs:118pool_fetching.rs:153

Đoạn mã này không kiểm tra xem khối lượng hồ sơ thanh khoản có đủ để thực hiện giao dịch theo tuyến đường tương ứng hay không, mà chỉ xác định xem thao tác trao đổi có hợp lệ về mặt toán học hay không. Do đó, ngay cả một hồ sơ thanh khoản nhỏ chỉ có 331 AAVE cũng sẽ được coi là nơi có thể tiếp nhận yêu cầu mua 17.957 WETH, chỉ vì thuật toán tích không đổi có thể tính ra kết quả khác không, nhưng hoàn toàn bỏ qua việc kết quả này sẽ gây tổn thất tài sản nghiêm trọng.

Sự thất bại thứ hai của SDK vay chớp nhoáng và cơ chế xác thực đơn hàng

Sau đó, SDK vay chớp nhoáng trực tiếp cố định báo giá hết hạn vào tải trọng thực thi đơn hàng và hook, không thực hiện bất kỳ biện pháp ngăn chặn rủi ro thứ cấp nào.

Tiếp theo:

Nguồn: index.js:484index.js:591

Đó là lý do tại sao tôi luôn nói tuyến đường này là “xấu ngay từ khi sinh ra”. Lớp adapter không “phát hiện” một số tiền xấu mới trong lúc thực thi. Nó đã serial hóa chuỗi số tiền xấu vào dữ liệu hook và địa chỉ instance đã xác định. Một khi có báo giá xấu, các cơ chế còn lại sẽ trung thành truyền nó xuống.

Ngay cả logic xác thực lệnh của CoW ở đây cũng không thực sự bảo vệ người dùng, vì nó chỉ kiểm tra xem lệnh có vượt quá giá thị trường tại thời điểm báo giá hay không, chứ không kiểm tra xem bản thân báo giá có hợp lý so với thanh khoản thực tế hay không.

Nguồn: order_validation.rs:694

Đây là kiểm tra tính nhất quán. Nếu bản báo giá đã là lời nói vô nghĩa, đơn hàng vẫn sẽ được thực hiện.

Cơ chế cảnh báo giao diện người dùng không có tác dụng

Giao diện Aave thực sự có cảnh báo về tác động giá cao, nhưng nó không phải là công tắc ngắt khẩn cấp cứng nhắc. Khi tổn thất giá trị vượt quá 20%, nó sẽ chuyển thành hộp xác nhận.

Khi người dùng tích vào hộp kiểm, rào cản đã được xóa bỏ:

Nguồn: helpers.ts:24HighPriceImpactWarning.tsx:35

Do đó, ngay cả khi giao dịch này gần như xóa sạch toàn bộ giá trị tài sản, hệ thống chỉ coi đây là thao tác cần xác nhận từ người dùng, chứ không phải giao dịch nguy hiểm cao mà hệ thống phải từ chối cương quyết, cơ chế cảnh báo hoàn toàn mất tác dụng ngăn chặn rủi ro.

Dựa trên tất cả các cơ chế trên đã bị phá vỡ, tôi hoàn toàn không đồng ý với kết luận sơ sài rằng “đây chỉ là người dùng ngốc nghếch”. Người dùng thực sự đã ký, nhưng toàn bộ hệ thống phần mềm đã có vô số cơ hội để ngăn chặn thảm họa này, nhưng mỗi lớp đều chỉ thực hiện kiểm tra cơ bản, xác định “khác không, có thể thực thi, đã ký” rồi cho phép ngay lập tức, cuối cùng dẫn đến hậu quả nghiêm trọng.

Đường dẫn không bị thay đổi

Giai đoạn này cực kỳ quan trọng, loại bỏ trực tiếp rất nhiều phỏng đoán sai: quy trình giao diện chính thức của Aave tương ứng với aave-v3-interface-collateral-swap sẽ tính toán số lượng mua sau khi điều chỉnh trượt giá dựa trên báo giá, phí mạng, phí đối tác và phí vay chớp nhoáng tại dòng thứ 139 trong tệp useSwapOrderAmounts.ts; chuyển đổi thành giá trị buyAmountBigInt tại dòng thứ 331; sau đó ký chính xác số lượng này tại dòng thứ 191 trong tệp CollateralSwapActionsViaCoWAdapters.tsx.

Hợp đồng bộ điều hợp tiếp theo sẽ xác minh rằng trường lệnh chữ ký khớp hoàn toàn với giá trị được lưu trữ tại dòng 141 trong tệp AaveV3BaseAdapter.sol; hợp đồng thanh toán CoW sẽ thực thi bắt buộc các quy tắc hạn mức đã ký tại dòng 337 trong tệp GPv2Settlement.sol. Do đó, kết quả thực thi trên chuỗi không vượt quá phạm vi được phép bởi lệnh chữ ký, và tài sản người dùng thực tế nhận được thậm chí còn cao hơn mức hạn thấp nhất đã cam kết trong chữ ký.

Điều này đủ chứng minh: thảm họa xảy ra trước khi thanh toán, chứ không phải trong quá trình thanh toán, lỗ hổng chết người trong định tuyến đã định sẵn kết cục.

Giá trị biến mất đi đâu?

Giao dịch tiếp theo trong cùng khối (bắt đầu bằng hash 0x45388b0f) đã thực hiện arbitrage chạy lại đối với池 SushiSwap AAVE/WETH bị phá hoại. Giao dịch bất thường đã làm đầy池 bằng lượng lớn WETH, rút cạn phần lớn AAVE, sau đó người arbitrage ngay lập tức bán lại AAVE vào池 để thu lợi từ giá trị vượt mức do mất cân bằng thanh khoản.

Lần arbitrage quay vòng này đã rút khoảng 17929.770158685933 WETH, sau đó thanh toán khoảng 13087.73 ETH cho người xây khối và khoảng 4824.31 ETH cho địa chỉ thực hiện arbitrage.

Toàn bộ giá trị kinh tế bị mất của người dùng cuối cùng gần như tức thì được chuyển hóa thành lợi nhuận MEV và lợi nhuận của người xây dựng khối trong cùng một khối.

Ngoài ra, việc kiểm tra chuỗi thời gian ở cấp độ khối xác nhận: trước giao dịch, không có ai thao túng xấu ý các bể giao dịch SushiSwap để bẫy người dùng; cặp giao dịch AAVE/WETH lần đầu tiên được chạm vào chính là giao dịch bất thường này (chỉ số giao dịch 1); giao dịch tiếp theo ngay sau đó (chỉ số giao dịch 2) đã thực hiện giao dịch chốt lời đầu tiên nhằm khai thác sự bóp méo giá do giao dịch này gây ra; giao dịch chỉ số 3 cũng đã chạm vào cặp giao dịch này trong quá trình thị trường phục hồi. Đường thời gian rõ ràng chứng minh: giao dịch bất thường này đã tạo ra mức giá bóp méo cực đoan, và các giao dịch sau đó trực tiếp thu lợi từ sự bóp méo này.

Vậy thì lỗi ở đâu?

Nếu bạn hỏi liệu giao thức cốt lõi Aave V3 có bị sụp đổ không, câu trả lời là không. Các khoản tiền gửi Aave đã thực hiện đầy đủ các thao tác theo lệnh, hoàn thành thành công quy trình rút USDT và gửi AAVE.

Nếu bạn hỏi liệu hợp đồng GPv2Settlement của CoW có bị sập không, câu trả lời là không. Hệ thống thanh toán đã thực thi một lệnh ký hợp lệ và thanh toán số tiền cao hơn mức tối thiểu được ký.

Nếu bạn hỏi liệu hợp đồng cặp giao dịch của Uniswap V3 hay SushiSwap có bị sập không, câu trả lời cũng là không. Các hồ giao dịch thuộc cả hai loại đều thực hiện định giá giao dịch theo quy tắc thuật toán của riêng chúng.

Sự thất bại mang tính hệ thống thực sự xảy ra ở cấp độ định tuyến và kiểm soát rủi ro cao hơn:

Bên chịu trách nhiệm chính là các mô-đun định tuyến, báo giá và giải pháp của giao thức CoW: hệ thống toàn bộ có tiêu chuẩn quá yếu kém để xác định “đường dẫn hợp lý”, cho phép các lệnh lớn hàng chục triệu đô la Mỹ cuối cùng chảy vào các hồ thanh khoản cực nhỏ, miễn là đường dẫn có thể thực thi và khác không thì đều chấp nhận, hoàn toàn bỏ qua sự bất hợp lý kinh tế cực đoan.

Bên phụ trách thứ cấp là giao diện người dùng của Aave: khi yêu cầu báo giá từ bộ điều hợp, không đính kèm dữ liệu ứng dụng liên quan đến hook, trực tiếp truyền kết quả lỗi vào quy trình ký, đồng thời chỉ dựa vào cảnh báo cảnh báo mà không có cơ chế từ chối bắt buộc; các biện pháp kiểm soát rủi ro này hoàn toàn không đủ để ngăn ngừa rủi ro đối với các giao dịch cực kỳ lớn như vậy.

Đây là một sự thất bại cực đoan về chất lượng định tuyến giao dịch và các hàng rào kiểm soát rủi ro, trực tiếp biến một thao tác thay thế tài sản thế chấp hợp pháp và tuân thủ thành một sự kiện tổn thất tài sản hủy diệt.

Tuyên bố miễn trừ trách nhiệm: Thông tin trên trang này có thể được lấy từ bên thứ ba và không nhất thiết phản ánh quan điểm hoặc ý kiến của KuCoin. Nội dung này chỉ được cung cấp cho mục đích thông tin chung, không có bất kỳ đại diện hay bảo đảm nào dưới bất kỳ hình thức nào và cũng không được hiểu là lời khuyên tài chính hay đầu tư. KuCoin sẽ không chịu trách nhiệm về bất kỳ sai sót hoặc thiếu sót nào hoặc về bất kỳ kết quả nào phát sinh từ việc sử dụng thông tin này. Việc đầu tư vào tài sản kỹ thuật số có thể tiềm ẩn nhiều rủi ro. Vui lòng đánh giá cẩn thận rủi ro của sản phẩm và khả năng chấp nhận rủi ro của bạn dựa trên hoàn cảnh tài chính của chính bạn. Để biết thêm thông tin, vui lòng tham khảo Điều khoản sử dụngTiết lộ rủi ro của chúng tôi.