SETTINGS
Content language
flag Vietnamese
Vietnamese
flag Vietnamese
Vietnamese
Tiếng việt
flag English
English
English
Channel logo
Coin98 Insights
Save
Copy link

Cách thức tấn công khiến Euler Finance thiệt hại gần 200 triệu USD

Hacker tận dụng một lỗ hổng nhỏ trong smart contract, kết hợp với vay tiền từ flash loan để cướp đi số tiền gần 200 triệu USD mà không cần một đồng vốn nào.
Avatar
LilYang
Published Mar 16 2023
Updated Apr 02 2023
10 min read
thumbnail

Chiều ngày 13/3, Euler Finance đã bị hack 200 triệu USD. Đây là vụ hack lớn lớn nhất kể từ đầu 2023. Người dùng đối diện với nguy cơ mất trắng tài sản mà không thể làm gì. Giá token Euler đã giảm hơn 60% và kéo theo đó nhiều dự án DeFi bị ảnh hưởng.

Euler Finance và vụ flash loan 200 triệu USD

Euler Finance là một lending market trên Ethereum. TVL của dự án thời điểm ngày 8/3/2023 (trước vụ hack) là 312 triệu USD và vẫn đang trong đà tăng trưởng. Thị trường cho vay trên Euler đa dạng hơn Aave/Compound khi cho phép người dùng listing bất cứ token nào có cặp thanh khoản với WETH trên Uniswap V3. 

Để hiểu được cách hacker tấn công, cần phải hiểu qua về một vài cơ chế của Euler Finance.

Tokenised Debt: Tài sản thế chấp và số tiền vay ra của người dùng sẽ được biểu thị dưới dạng một loại ERC-20 token.

  • Ví dụ, khi nạp token DAI vào Euler, người dùng sẽ nhận về eDAI - đại diện cho tài sản thế chấp.
  • Khi vay DAI token từ Euler, người dùng sẽ nhận về dDai - đại diện cho khoản nợ được vay ra từ Euler.
  • Mỗi khi dToken vượt quá eToken, người dùng sẽ phải đối mặt với việc thanh lý tài sản. 

Health Factor (HF): Chỉ số thể hiện mức độ an toàn của tài sản người dùng so với tài sản vay ra và giá trị cơ bản của tài sản đó. Con số này càng cao thì khoản vay càng an toàn. Euler khuyến khích người dùng giữ mức HF trên 1.25.

Công thức tính HF:

HF = ⅀(giá trị Collateral * Liquidation Threshold) / Loan

coin98
TVL dự án Euler Finance. Nguồn: DefiLlama

Quá trình tấn công

Kẻ tấn công đã sử dụng hơn 20 địa chỉ ví hợp đồng (contract address) và thực hiện các thao tác khá phức tạp xoay quanh flash loan (hình thức vay không cần tài sản thế chấp trong một giao dịch) để lấy đi tài sản trên Euler Finance. Vụ tấn công đã gây thiệt hại gần 200 triệu USD tài sản:

  • 73.8 nghìn wstETH (117 triệu USD)
  • 34.2 triệu USDC
  • 846 WBTC (18.6 triệu USD)
  • 8 nghìn WETH (12.6 triệu USD)
  • 8.9 triệu DAI
  • 3.8 nghìn stETH (6 triệu USD)

Trong đó, chỉ với một giao dịch flash loan đã đem lại khoảng 8.9 triệu DAI cho hacker. Sau đây là tóm tắt cách thức hacker đã tấn công Euler Finance:

1. Sử dụng flash loan để vay token (30 triệu DAI) từ Aave V2/Balancer 

2. Triển khai 2 ví hợp đồng: borrower (ví đi vay) và liquidator (ví thực hiện thanh lý)

3. Sử dụng ví borrower deposit ⅔ tổng tiền lên Euler, tức gửi 20 triệu DAI qua Euler và nhận về 19.5 triệu eDAI.

4. Sử dụng tính năng Mint để vay đòn bẩy 10x (bản chất là lặp lại hành động deposit và vay ra DAI), nhận về 195.6 triệu eDAI và 200 triệu dDAI từ Euler.

5. Sau đó dùng ⅓ số tiền ban đầu còn lại để trả một phần nợ (gửi đi 10 triệu DAI và burn 10 triệu dDAI).

6. Thực hiện lại bước thứ 4, tiếp tục Mint nhận về 195.6 triệu eDAI và 200 triệu dDAI từ Euler.

7. Gửi đi 100 triệu eDAI để donate cho quỹ Reserve. Mục đích để làm biến mất một phần số eDAI vay ra ban đầu, làm giảm mức HF xuống còn ~0.8. 

8. Sử dụng ví liquidator để thanh lý tài khoản đi vay ban đầu do số eDAI khi đó đã nhỏ hơn dDAI (310 eDAI và 390 dDAI). Nhận lại khoản nợ eDAI, dDAI từ borrower.

9. Vì mức health factor (HF) quá thấp, liquidator được hưởng 20% liquidation rewards. Tức là được nhận về 310 triệu eDAI và 310/1.2 = 259 triệu dDAI tương ứng. Việc dư ra 51 triệu eDAI là đủ để hacker rút toàn bộ số DAI khỏi Euler.

10. Rút toàn bộ 38.9 triệu DAI từ eDAI ra khỏi Euler, sử dụng 30 triệu DAI để trả lại khoản vay flashloan, ghi nhận khoản lời 8.9 triệu từ một giao dịch flash loan.

coin98
Một vài giao dịch trong thao tác exploit Euler. Nguồn: Arkham

Người dùng trên Euler hoàn toàn có thể sử dụng tính năng mint/burn để tạo vị thế long/short với đòn bẩy cao. Vấn đề là ở bước donate cho quỹ Reserve, khi người dùng donate, Euler không yêu cầu check health factor (HF) của vị thế. Do đó, việc donate này đã lập tức làm biến mất hoàn toàn 100 triệu eDAI và giảm HF của vị thế trên dẫn đến việc thanh lý tài sản.

Đồng thời, theo whitepaper của Euler, với mỗi % HF giảm thêm, người thanh lý sẽ được giảm thêm % chi phí để mua lại tài sản thế chấp và nợ của người vi phạm (eTokens and dTokens). Bằng phương pháp self-liquidation này, người thực hiện có thể nhận reward khổng lồ khi làm mức HF giảm xuống thấp.

Một số ví được sử dụng để exploit Euler:

Tổng kết lại các khoản tiền sau khi exploit được chuyển vào các ví:

  • 73.8 nghìn wstETH (117 triệu USD) → Giữ tại ví Euler Finance Exploiter 2 dưới dạng ETH
  • 34.2 triệu USDC → Giữ tại ví Euler Finance Exploiter 2 dưới dạng DAI
  • 846 WBTC (18.6 triệu USD) → Giữ tại ví Euler Finance Exploiter 2 dưới dạng ETH
  • 8 nghìn WETH (12.6 triệu USD) → Giữ tại ví Euler Finance Exploiter 1 dưới dạng ETH
  • 8.9 triệu DAI → Giữ tại ví Euler Finance Exploiter 2 dưới dạng DAI
  • 3.8 nghìn stETH (6 triệu USD) → Giữ tại ví Euler Finance Exploiter 2 dưới dạng ETH.

Sau khi thực hiện vụ hack, mới chỉ có 101 ETH được gửi lên Tornado Cash từ ví Euler Finance Exploiter 2, ngoài ra các ví khác vẫn đang nắm giữ token. Nhiều khả năng hacker vẫn chưa tìm được cách để rửa số tiền này. Người dùng có thể tiếp tục theo dõi hoạt động của nhóm ví trên với entity tên Euler Exploiter trên Arkham hoặc Etherscan.

coin98
Các ví Euler Exploiter. Nguồn: Arkham

Hậu quả của sự kiện

Về phía Euler

Sự kiện này đã giáng một đòn rất mạnh vào nỗ lực phát triển của đội ngũ dự án. Sau vụ hack, TVL trên Euler chỉ còn 10 triệu USD, token EUL cũng ngay lập tức dump 48% ngay trong ngày.

Phía dự án cũng ngay lập tức thông báo về sự cố và đưa ra một vài hành động cụ thể.

Theo đó, dự án sẽ ngay lập tức vô hiệu hoá tính năng eToken, chặn tính năng donate gây lỗi trước đó, tham gia cùng TRM Labs, Chainalysis và một vài thành viên khác trong cộng đồng Ethereum để điều tra về vụ hack, đồng thời báo cáo thông tin với cơ quan thực thi pháp luật của Hoa Kỳ và Vương quốc Anh.

Đội ngũ dự án đang làm mọi thứ có thể có thể giải quyết sự việc theo hướng tốt nhất. Trong nỗ lực mới nhất, Euler Labs đã gửi tối hậu thư tới hacker qua hình thức chuyển ETH kèm tin nhắn on-chain.

Trong đó đề nghị hacker trả lại 90% số tiền đã lấy vào địa chỉ ví EulerDAO Treasury, hacker có thể giữ số tiền còn lại (khoảng 19 triệu USD). Nếu hacker không thoả hiệp, dự án sẽ nhờ tới sự can thiệp của luật pháp để tìm ra danh tính hacker và tịch thu toàn bộ số tiền.

coin98
Tin nhắn mới nhất từ Euler Labs. Nguồn: Twitter

Hiện tại hacker chưa có tin nhắn hồi âm cũng như chưa có nhiều động thái sử dụng số tiền hack được (ngoại trừ một vài giao dịch gửi ETH lên Tornado Cash).

Các dự án khác

Không chỉ bản thân dự án chịu thiệt hại, các dự án DeFi khác có liên quan cũng phải chịu ảnh hưởng. Một vài dự án đã lên tiếng xác nhận bị ảnh hưởng:

  • Angle Protocol: có 17 triệu USDC deposit lên Euler.
  • Balancer: đã gửi 11.9 triệu USD vào Euler dưới dạng token bbeUSD.
  • Yearn Finance: có 1.38 triệu USD bị ảnh hưởng không trực tiếp từ Euler.
  • Yield Protocol: YieldSpace liquidity pool bị ảnh hưởng, thiệt hại ước tính 1.5 triệu USD.
  • Inverse Finance: DOLA-bbeUSD bị ảnh hưởng, thiệt hại khoảng 860,000 USD.
  • Alchemix: bị ảnh hưởng bởi Yearn Vault

Ngoài ra còn vài dự án khác với số tiền bị ảnh hưởng chưa xác định.

Về phía người dùng

Những người dùng đang để tiền trên Euler nhiều khả năng sẽ lâm vào tình cảnh mất trắng tài sản nếu như dự án không tìm được cách giải quyết hợp lý. Trong tình cảnh đó, đã có người dùng thực hiện phương pháp gửi tin nhắn on-chain cho hacker để xin lại 88 ETH (số tiền tiết kiệm) gửi trên Euler. Hacker sau đó đã gửi 100 ETH cho địa chỉ ví này.

coin98
Tin nhắn của người dùng gửi tiền trên Euler Finance. Nguồn: Twitter

Coin98 Insights sẽ tiếp tục cập nhật tình tiết mới nhất của sự kiện tại bài viết này. Người dùng cũng có thể tự theo dõi hành động của các ví có liên quan đã trình bày ở trên.

Tổng kết

Bảo mật trong DeFi vẫn luôn là một vấn đề nhức nhối. Sự kiện Euler Finance bị hack là sự kiện có thiệt hại nặng nề nhất tính tới thời điểm hiện tại của năm 2023. Cho dù đã được audit bởi nhiều bên, dự án vẫn tồn tại lỗ hổng trong smart contract và đã bị khai thác vào điểm yếu này. 

RELEVANT SERIES