Search
Close this search box.
Flash Loan
Flash Loan

Loan หรือการกู้ยืมเงิน ภาพที่คิดได้ทันทีหลังจากที่ได้ยินคำนี้คือการเอาบางอย่างไปค้ำประกันเพื่อให้ได้เงินมาใช้ทั้งใน Traditional Finance หรือ Decentralize Finance(DeFi) เอง แต่ในโลก DeFi มีสิ่งที่เรียกว่า Flash Loan ที่เข้ามาเปลี่ยนความคิดเราใหม่ทั้งหมด เพราะ Flash Loan ไม่ได้ต้องการอะไรค้ำประกัน ซึ่งจะเป็นการยืมเงินออกไปจำนวนหนึ่ง ใช้จ่ายอะไรก็ได้แล้วจ่ายกลับคืนภายในระยะเวลาสั้นๆ 

เทคโนโลยีเบื้องหลัง Flash Loan คือ Smart Contract ซึ่ง Smart Contract จะเขียนทุกขั้นตอนเกี่ยวกับเงินก้อนนั้นว่าจะทำอะไรบ้าง ผ่านไปที่กระเป๋าไหนบ้างและท้ายที่สุดเงินนั้นกลับมาที่ผู้ปล่อยกู้ ทำให้ตัดตัวกลางออกไปและรับประกันได้ว่าเงินจะต้องกลับมาถึงผู้ปล่อยให้กู้อย่างแน่นอนและโดยปกติแล้ว Flash Loan จะจบลงใน 1 Block อย่างไรก็ตาม Flash Loan อาจทำไม่สำเร็จได้หากการทำบางขั้นตอนใน Smart Contract ทำไม่สำเร็จ ทุกธุรกรรมจะถูกย้อนกลับมาและเงินก็จะกลับมาสู่ผู้ปล่อยกู้ จะเห็นได้ว่าแทบจะไม่มีความเสี่ยงในการปล่อยกู้ Flash Loan เลย ซึ่ง Flash Loan Provider หรือผู้ปล่อยกู้ในโลกคริปโตจะมีเจ้าหลักๆ คือ AAVE, Equalizer, dydx และ Uniswap การปล่อยกู้ Flash Loan จะเก็บค่าธรรมเนียม (Fees) กับผู้กู้และอัตราค่าธรรมเนียมขึ้นอยู่กับแต่ละเจ้า เช่น AAVE มีค่าธรรมเนียมอยู่ที่ 0.09%

Flash Loan ใช้ทำอะไร

Arbitrage

การทำ Arbitrage คือการซื้อถูกจากที่หนึ่งไปขายแพงในอีกที่หนึ่ง ยกตัวอย่างเช่น เราซื้อแอปเปิลจากแม่ได้ในราคา 1$ แล้วเราเอาไปขายในตลาดได้ราคา 2$ ทำให้เราได้กำไรจากส่วนต่างของราคา 1$

ในการทำ Flash Loan เราจะทำเหมือนกันแต่จะมีเนื้อหาใน Smart Contract หลากหลายกว่าดังนี้

  1. เราเห็นว่าราคา Ethereum บน Uniswap ถูกกว่า Ethereum บน Curve ซึ่งเป็นโอกาสดีในการทำ Arbitrage
  2. ขอ Flash Loan ที่ AAVE จำนวน 19,000,000 USDC
  3. Swap ETH บน Uniswap ได้จำนวน 10,000 ETH
  4. Swap เป็น USDC ที่ Curve ได้ 20,000,000 USDC
  5. จ่ายคืน USDC ที่ได้มาจาก Flash Loan จำนวน 19,017,100 USDC รวมค่าธรรมเนียม
  6. ได้กำไร 982,900 USDC

Collateral Swap

Collateral swap หรือการเปลี่ยนสินทรัพย์ค้ำประกันจากที่ต่างเช่น MakerDAO ยกตัวอย่างเช่น เราค้ำ ETH ใน MakerDAO เพื่อที่จะเอา Dai ออกมาแล้วเอา Dai ไปทำอย่างอื่นแล้ว แต่เราไม่อยากถือ ETH แล้ว อยากถือ WBTC แทน แต่เราไม่สามารหาเงินกู้ที่ดึงออกแล้วไปมาคืนได้ เราสามารถใช้ Flash Loan แก้ปัญหาได้

มีขั้นตอนการทำ Flash Loan และเนื้อหาใน Smart Contract ดังนี้

  1. ขอ Flash Loan กับ AAVE เป็นสกุลเงินใดก็ได้ที่เราจะเอาไปจ่าย Maker DAO (ตัวอย่างเป็น Dai)
  2. จ่ายเงินกู้ที่เอาออกมาจาก Maker DAO
  3. Maker DAO คืน ETH ที่ค้ำประกันไว้ให้กับเรา
  4. Swap ETH เป็น WBTC บน Uniswap
  5. เอา WBTC ไปค้ำใน Maker DAO
  6. กู้ Dai ออกมา
  7. เอา Dai ที่กู้ออกมาไปจ่าย Flash Loan ที่เอามาจาก AAVE

Self Liquidation

Self Liquidation จะคล้ายกันกับ Collateral swap ซึ่งจะมีวิธีการบางส่วนที่คล้ายกัน แต่สถาณการณ์จะแตกต่างกันออกไป ใน Self Liquidation จะเกิดขึ้นเมื่อต้องการนำสินทรัพย์ค้ำประกันที่ฝากไว้ออกมา ไม่อยากกู้ต่อแล้ว ในสถานการณ์นี้ Flash Loan ช่วยได้

มีขั้นตอนการทำ Flash Loan และเนื้อหาใน Smart Contract ดังนี้

  1. ทำการขอ Flash Loan กับ AAVE เป็นสกุลเงินใดก็ได้ที่เราจะเอาไปจ่าย Maker DAO (ตัวอย่างเป็น Dai)
  2. จ่ายเงินกู้ที่เอาออกมาจาก Maker DAO
  3. Maker DAO คืน ETH ที่ค้ำประกันไว้ให้กับเรา
  4. Swap ETH ที่ได้จาก MakerDAO เป็น Dai
  5. เอา Dai ที่ได้จากการ Swap ETH ไปจ่าย Flash Loan ที่เอามาจาก AAVE

ข้อควรระวังในการทำ Flash Loan

จากตัวอย่างและเทคโนโลยี Smart Contract จะเห็นได้ว่าแทบจะไม่มีความเสี่ยงในการทำ Flash Loan เลย สำหรับผู้ให้กู้ แต่ความเสี่ยงจะเกิดขึ้นในฝั่งของผู้กู้ ซึ่งจะมีค่าใช้จ่ายเล็กๆน้อยๆที่ผู้กู้ต้องแบกรับไว้

  • Flash Loans Fees หรือค่าธรรมเนียมการกู้ยืม Flash Loan ซึ่งแต่ละที่จะมีเรทที่แตกต่างกัน เช่น AAVE 0.09%
  • Transaction Fees หรือค่าธรรมเนียมในการทำธุรกรรมบน Blockchain ซึ่งผู้กู้ต้องรับทั้งหมด
  • Price Slippage หรือราคาสินทรัพย์เปลี่ยนแปลงไปจากการซื้อขาย จากตัวอย่างที่มีการซื้อขายสินทรัพย์เปลี่ยนไปเปลี่ยนมาตลอดจะเห็นได้ว่ามีโอกาสที่ราคาสินทรัพย์จะเปลี่ยนแปลงไปด้วย เกิดขึ้นได้จาก จำนวนเหรียญที่ขาย Liquidity ของเจ้าที่ขาย
  • Front runner หรือการที่มีคนเห็นโอกาสเดียวกันกับเราในการทำ Arbitrage เลยทำแบบเดียวกันก่อน ทำให้เกิด Price Slippage ขนาดใหญ่ขึ้น

สำหรับความเสี่ยงของผู้ให้กู้ที่แทบจะไม่มี ส่วนมากจะไม่ใช่ความเสี่ยงของ Flash Loan เอง แต่จะเป็นความเสี่ยงของ Platform, Smart contract, หรือ Coding ต่างๆ

Flash Loan Attack

Price Manipulation

Price Manipulation เป็นการใช้ Flash Loan โจมตีราคาสินทรัพย์ ซึ่งจะใช้ช่องโหว่ของการปรับระดับราคาและ Liquidity ใน Pool นั้นๆ โดยมีวิธีการและเนื้อหาใน Smart Contract ดังนี้

  1. ทำการขอ Flash Loan กับ AAVE เป็นสกุลเงินใดก็ได้ที่เราจะเอาไปจ่าย Maker DAO (ตัวอย่างเป็น ETH)
  2. Swap WBTC บน Uniswap (ทำให้ราคา ETH ลดลงและราคา BTC เพิ่มขึ้น)
  3. เอา WBTC ที่ซื้อมาจาก Uniswap ไปฝากไว้ MakerDAO เพื่อเป็นเงินค้ำประกัน
  4. กู้ ETH มาจาก MakerDAO ที่ค้ำโดย WBTC
  5. นำ ETH ที่กู้มาไปจ่ายคืน Flash Loan บน AAVE
  6. สรุป ราคา ETH ลดลง และ ราคา WBTC เพิ่มขึ้น จากการจ่ายแค่ Transaction Fees

หรืออีกรูปแบบหนึ่งเป็นการทำกำไรได้ด้วย ช่องโหว่ของการปรับระดับราคาและ Liquidity ใน Pool นั้นๆ จะมีวิธีการที่แตกต่างไปเล็กน้อย

  1. ทำการขอ Flash Loan กับ AAVE เป็นสกุลเงินใดก็ได้ที่เราจะเอาไปจ่าย Maker DAO (ตัวอย่างเป็น ETH)
  2. Swap WBTC บน Uniswap (ทำให้ราคา ETH ลดลงและราคา BTC เพิ่มขึ้น)
  3. ทำการขอ Flash Loan กับ dydx เป็นสกุลเงินเดียวกันกับที่เรา Swap ได้มา (ตัวอย่างเป็น WBTC)
  4. Swap ETH บน Uniswap (ETH ราคาตำ่อยู่และ WBTC ราคาสูงอยู่)
  5. นำ WBTC จากการ Swap ครั้งแรกไปจ่าย dydx และนำ ETH จากการ Swap ครั้งที่ 2 ไปจ่าย AAVE ในส่วน ETH ที่เหลืออยู่คือกำไร

จากที่ดูมาทั้งหมด การกู้ยืมเงินแบบไม่มีสินทรัพย์ค้ำประกันหรือ Flash Loan เป็นนวัตกรรมที่ไม่มีทางเกิดขึ้นได้ในโลก Traditional Finance แต่การมาของ Smart Contract ทำให้การกู้ยืมเงินแบบไม่มีสินทรัพย์ค้ำประกันเป็นไปได้ ถึงตอนนี้จะมี Usecase เพียงน้อยนิด เช่น Arbitrage, Collateral Swap และ Self Liquidation แต่การกู้ยืมเป็นไอเดียพื้นฐานในโลกแห่งการเงิน ดังนั้นในอนาคตจะต้องมีคนเอาไอเดียพื้นฐานนี้ไปต่อยอดหา Usecase ใหม่ๆ ที่สร้างสรรค์ให้ Flash Loan ได้ อย่างไรก็ตาม Flash Loan ไม่ได้มีข้อแต่ดีเสมอไป Flash Loan สามารถกลับมาทำร้ายตัวเองได้สำหรับผู้กู้ ทั้งค่าธรรมเนียมต่างๆ จาก Platform หรือ Blockchain เองล้วนนับเป็นต้นทุนทั้งสิ้น ที่มากไปกว่านั้นยังมีการใช้ Flash Loan เพื่อโจมตีตลาดอีกด้วย ไม่ว่าจะเป็นการทำ Price Manipulation หรือการทำกำไรด้วย Price Manipulation เอง