Flash Loans ban đầu đã có mặt trên thị trường crypto vào năm 2018 nhưng chưa thật sự nổi bật. Đến khi ra mắt trên mạng Ethereum vào năm 2020 thì hình thức cho vay theo kiểu này dần được ứng dụng rộng rãi và đa dạng hơn . Hãy cùng tìm hiểu flash loans là gì và cách thức hoạt động cũng như ưu nhược điểm của flash loans trong bài viết dưới đây.
Flash loans là gì trong tiền mã hoá?
Flash loans là một khoản vay tức thời trong thế giới crypto, được vay và trả lại trong cùng một khối giao dịch. Người vay phải thực hiện một chiến lược sinh lời hoặc khai thác giá trị tối đa (MEV) để đảm bảo khoản vay này có ý nghĩa.
*MEV là giá trị lớn nhất mà người khai thác hoặc người xác nhận giao dịch trên một blockchain có thể kiếm được bằng cách thay đổi thứ tự, chèn thêm hoặc loại bỏ các giao dịch trong một khối*
Flash loan không yêu cầu người vay giữ vốn và người cho vay chịu rủi ro tài chính hạn chế, vì mã code hợp đồng chỉ thực thi khi đảm bảo rằng khoản vay sẽ được trả lại, bao gồm cả phí dịch vụ.
Các dịch vụ DeFi cung cấp flash loan sẽ kiểm tra nếu người vay đã trả lại tiền trong cùng một khối. Nếu giao dịch không trả lại tiền, hợp đồng sẽ không phát hành vốn ngay từ đầu. Người vay phải thực hiện các hành động sinh lời ngay lập tức, chẳng hạn như chạy bot MEV, arbitrageurs (kinh doanh chênh lệch giá) và khai thác giao thức để đảm bảo lợi nhuận đủ để trả lại khoản vay ban đầu.
Làm thế nào để thực hiện flash loans?
Flash loan được thực hiện bởi các bot MEV và người dùng có khả năng lập trình các giao dịch phức tạp để mượn và trả lại tiền trong cùng một giao dịch duy nhất.
Các flash loan có thể được gọi từ nhiều giao thức DeFi khác nhau như DssFlash của MakerDAO (cho vay DAI) hoặc AAVE (cho vay bất kỳ token nào được gửi vào AAVE). Các hợp đồng này chỉ chấp nhận function call flash loan nếu người call trả lại tiền trong cùng một khối, do đó người dùng thường phải thiết lập một Smart Contract riêng để tùy chỉnh để thực hiện nhiều hành động cùng lúc.
Hầu hết các bot MEV sẽ gói tất cả các hàm của họ trong một giao dịch duy nhất. Điều này có nghĩa là giao dịch mượn và trả lại sẽ xuất hiện trên cùng một trang giao dịch trên các công cụ phân tích như Arkham. Trong khoảng thời gian đó, họ sẽ thực hiện các giao dịch sinh lời, cho phép người quan sát thấy chính xác các bước bot MEV đã thực hiện để sinh lời từ flash loan.
Bạn có phải trả lại các khoản flash loans không?
Flash loan được tạo ra và trả lại ngay lập tức trong cùng một khối giao dịch, do đó người vay không thực sự giữ số vốn đã vay.Không giống các khoản vay DeFi khác, flash loan không yêu cầu tài sản thế chấp. Điều này có nghĩa là nếu không có giao dịch trả lại trong cùng một khối, hợp đồng flash loan sẽ từ chối yêu cầu, ngăn chặn người vay lấy tiền mà không trả lại.
Do đó, bạn phải trả lại flash loan ngay khi nhận được nó. Nếu yêu cầu flash loan không đi kèm với giao dịch trả lại trong cùng một khối, khoản vay sẽ không bao giờ xảy ra. Điều này đảm bảo rằng không ai có thể vay tiền mà không thể trả lại ngay lập tức, và không có rủi ro bị thanh lý như các khoản vay DeFi khác.
Flash loan cung cấp sự linh hoạt lớn cho các MEV Searchers và lập trình viên tìm kiếm cơ hội chênh lệch giá, cho phép họ làm việc với số vốn gần như không giới hạn khi hoạt động trên chuỗi. Chi phí duy nhất là phí gas cho việc kích hoạt flash loan.
Flash loans được ứng dụng như thế nào?
Flash loans rất phổ biến trong giới người dùng MEV vì chúng cho phép người dùng khai thác các cơ hội tận dụng số vốn lớn để có lợi nhuận tức thì trong một giao dịch duy nhất. Như bạn có thể tưởng tượng, có rất nhiều người muốn có lợi nhuận không rủi ro! Điều này làm cho cảnh quan flash loan khá cạnh tranh. Flash loans thường được thấy nhất khi MEV bots thanh lý người dùng giao thức – ví dụ, khi các vị trí vay chuyển sang chế độ thanh lý trên AAVE hoặc MakerDAO. Thường thì các vị trí này sẽ phải được bán ra trên nhiều pool thanh khoản khác nhau – vì vậy flash loans cho phép MEV Bots có nhiều vốn hơn để làm việc khi tiếp nhận và thanh lý các vị thế DeFi này.
Đôi khi, flash loans được sử dụng bởi các MEV Bots để thực hiện các giao dịch, trả phí gas – và sau đó hoàn trả khoản vay bằng lợi nhuận từ một giao dịch chênh lệch giá. Một số người dùng MEV sử dụng flash loans để cấp vốn cho các ví mới với tiền gas, đơn giản bằng cách lập trình một chiến lược chênh lệch giá hiệu quả và sử dụng lợi nhuận từ flash loan để trả phí giao dịch.
Flash loan attacks có còn hiệu quả?
Flash Loan Attacks đề cập đến việc sử dụng flash loans như một phần của một cuộc tấn công giao thức hoặc thao túng thị trường để thu lợi. Thông thường, các cuộc tấn công flash loan xảy ra thông qua một lỗi re-entrancy hoặc một lỗi thao túng oracle.
Re-entrancy là khi một Function Call DeFi nào đó (ví dụ: hàm “Borrow” hoặc “Repay”) bị thao túng và ‘tái nhập’ để đánh lừa các hợp đồng của giao thức thực hiện sai chức năng. Ví dụ, một trong những cuộc tấn công nổi tiếng nhất trong crypto, vụ hack The DAO vào năm 2016, là một lỗi re-entrancy. Kẻ tấn công khai thác một lỗi trong hàm rút tiền để ‘rút’ tất cả tài sản, trước khi các hợp đồng của The DAO cập nhật số dư nội bộ của hắn. Điều này có nghĩa là kẻ tấn công có thể liên tục ‘vòng lặp’ hàm rút tiền này mà hợp đồng không nhận ra rằng hắn đã rút nhiều ETH hơn tổng số tiền gửi của hắn.
Thao túng oracle xảy ra khi kẻ tấn công thuyết phục một giao thức DeFi giao dịch hoặc cho vay tài sản của mình với giá sai, và khai thác điều này để rút hết các tài sản có giá trị của giao thức với giá không có lợi. Ví dụ, một kẻ tấn công đã thao túng các hợp đồng của Alpha Homora vào đầu năm 2021 để rút hàng triệu đô la từ Iron Bank của Cream, một ngân hàng thực hiện cho vay giao thức. Kẻ tấn công đã thuyết phục các hợp đồng của Alpha Homora phát hành sUSD mà không mắc nợ giao thức. Điều này dẫn đến việc kẻ tấn công vay hàng triệu đô la từ giao thức với giá sai – và rút được 37 triệu đô la từ Iron Bank.
Vì flash loans hoàn toàn trung lập trong cách chúng được thực hiện, người vay chỉ cần thực hiện một giao dịch mang lại bất kỳ loại lợi nhuận nào. Các hợp đồng trên chuỗi không phân biệt giữa lợi nhuận từ chênh lệch giá hợp pháp hay rút tiền phi pháp từ người dùng – vì vậy kẻ tấn công sẽ tiếp tục sử dụng các chiến lược này để hack các giao thức. Cách phòng ngừa duy nhất là các nhà phát triển phải đảm bảo mã code của họ chống lại lỗi và khai thác trước khi họ chấp nhận tiền của người dùng.
Làm thế nào để kiếm tiền với flash loans?
Có thể kiếm tiền với flash loans bằng cách tìm kiếm một cơ hội chênh lệch giá hoặc hành động có lợi nhuận có thể thực hiện trong một khối giao dịch. Cũng cần phải bao gồm một hàm để trả lại số tiền flash loan trong giao dịch ban đầu. Điều này có thể được thực hiện bằng cách tạo một hợp đồng thông minh tùy chỉnh có thể thực hiện ít nhất ba việc – giao dịch vay, chênh lệch giá, và trả lại số tiền.
Tất nhiên, cảnh quan MEV hiện tại rất cạnh tranh. Để cạnh tranh nghiêm túc với những người tìm kiếm và kinh doanh chênh lệch giá hàng đầu, bạn sẽ cần kết nối trực tiếp với các validator để nộp giao dịch của mình. Điều này là do các giao dịch được nộp trực tiếp qua mempool có thể được mọi người tham gia nhìn thấy – và thường thì các người tham gia MEV khác sẽ có thể thấy và thực hiện trước các chiến lược có lợi mà bạn đã tìm thấy. Đó là lý do tại sao bạn thường thấy các bot MEV ‘hối lộ’ các validator – hoặc bao gồm một giao dịch để gửi một phần phần trăm lợi nhuận cho các validator. Điều này nhằm đảm bảo rằng giao dịch của bot MEV được ưu tiên hơn so với đối thủ cạnh tranh của họ, và do đó họ có thể thực hiện và thu lợi nhuận từ một cơ hội chênh lệch giá nào đó.
Case study: flash loan attack vào Beanstalk Finance
Beanstalk Finance là một giao thức stablecoin on-chain đã bị khai thác thông qua một cuộc tấn công flash loan vào cơ chế quản trị của nó. Kẻ tấn công đã sử dụng flash loan để thu thập một lượng lớn token quản trị của Beanstalk, STALK, nhằm ngay lập tức phê duyệt và thực hiện một đề xuất độc hại để rút hết tài sản của giao thức. Do Beanstalk sử dụng cơ chế quản trị trên chuỗi, nó hoàn toàn dựa vào người dùng khác nhận ra và bỏ phiếu chống lại một đề xuất nhất định. Kẻ tấn công cần đợi 7 ngày trước khi thực hiện đề xuất của họ – nhưng trong thời gian đó, không có người dùng nào của giao thức kiểm tra mã hợp đồng để xem nó thực sự làm gì.
Kẻ tấn công đã tạo ra 2 đề xuất: Đề xuất 18 sẽ lấy cắp toàn bộ số tiền trong giao thức, và Đề xuất 19 sẽ quyên góp $250,000 vào địa chỉ quyên góp crypto của Ukraine. Tuy nhiên, đề xuất 19 được đặt tên là Bip18 – nhằm đánh lừa bất kỳ người xem nào tin rằng đề xuất thứ 18 chỉ đơn giản là quyên góp $250,000 từ giao thức cho Ukraine.
Sau khi thời gian xem xét đã qua, kẻ tấn công có thể thực hiện đề xuất thứ 18 thực sự, rút hơn $180 triệu từ các hợp đồng của Beanstalk. Để làm điều này, họ phải flash loan $1 tỷ bằng các stablecoin khác nhau từ AAVE – sau đó, họ sử dụng số tiền này để mua toàn bộ lượng STALK (token quản trị của Beanstalk) có sẵn trên các sàn giao dịch phi tập trung. Với lượng STALK tích lũy, họ có thể bỏ phiếu thông qua đề xuất độc hại, bán số STALK còn lại và thu lợi hơn $70 triệu sau khi trả lại flash loans của AAVE. Kết thúc trò chơi cho Beanstalk.
Kết luận
Trong khi flash loans có thể được sử dụng cho nhiều mục đích khác nhau, mục đích phổ biến nhất là duy trì lợi ích của hệ sinh thái DeFi – với việc arbitrage và thanh lý được thực hiện bởi các bot MEV có thể thực thi code để quản lý các vị thế và pool. Các cuộc tấn công ‘flash loan’ nổi tiếng trên các giao thức hiếm hơn nhiều. Hiện tại, hệ sinh thái flash loan đã trưởng thành đến mức các bot MEV, những người thực hiện flash loans phổ biến nhất, thực sự phải đấu giá cho các cơ hội sử dụng chúng và thường trả phí nặng cho các validator block để có quyền thực hiện arbitrage hoặc thanh lý.