ห่างหายไปนานเลย กลับมาเป็นชาวนาอีกครั้ง คราวนี้ Upgrade ใหม่แบบยกเครื่อง ใน 2023 version ที่กำลังจะไป 2024 ในอีกไม่กี่วันนี้แล้ว
ที่ผ่านมา มีการ update หลายอย่างเกิดขึ้นเยอะมากๆ เพราะว่าโลก DeFi และ Blockchain ก็ไม่เคยหยุดนิ่ง ยังมีการพัฒนาต่อยอดมาได้เรื่อยๆอีก เนื้อหาคราวนี้ จะเป็นการอธิบายการทำฟาร์ม เพื่อให้เข้าใจ concept ยาวไปถึงวิธีการคิด การคำนวณตัวอย่าง พร้อมเทคนิคพิเศษ
การทำ Yield Farming คืออะไร
ไม่เล่าซ้ำนะ อ่านนี่เลย ภาพใหญ่ๆ การทำฟาร์ม แบบเข้าใจง่ายๆ ยังเป็น concept เหมือนเดิม
ผลตอบแทน Yield farming ที่เราได้ มาจากไหน?
เรื่องนี้สำคัญมากๆ การที่เราได้รับผลตอบแทน เราต้องเข้าใจถึงผลตอบแทนที่เราได้ มาจากไหน กิจกรรมอะไร ซึ่ง ก็ขอไม่อธิบายซ้ำเลย เพราะ รู้จัก PancakeSwap และการหาเงินจาก Yield Farming อธิบายเอาไว้ละเอียดแล้วนั่นเอง ทุกวันนี้ ยังเป็น Concept เหมือนเดิม
2023 เพิ่มอะไรขึ้นมา ในการทำ Yield Farming?
มีเรื่องหลักๆ ที่ต้องรู้ และ ต้องทำความเข้าใจ มากกว่าเดิมไม่เยอะ ดังนี้
- การ Provide liquidity เป็นแบบ Non Fungible หรือ ที่เค้าเรียกว่าการ concentrated liquidity ซึ่งถูกคิดค้นขึ้นมาจาก Uniswap เป็นเจ้าแรก (ที่เค้าจะเรียกกันว่า v3 นั่นแหล่ะ)
- Impermanent loss จะมีผลค่อนข้างมาก ซึ่งเป็นผลมาจาก concentrated liquidity นั่นเอง
- กำหนดค่า fee ที่เราอยากเก็บจากการเป็น LP ของเราได้
- ค่าธรรมเนียมที่ได้รับ ไม่ทบต้นอัตโนมัติ
Concentrated liquidity คืออะไร
ต้องย้อนความเข้าใจเรื่องของ DEX แบบ AMM ก่อน Price impact และ Slippage สิ่งที่ทำให้ swap ไม่เป็นอย่างที่ต้องการ ถ้าคนที่ได้ใช้งาน จะรู้สึกได้เลย ว่ามันไม่เหมาะกับ การเอามา exchange stable coin สักเท่าไร เพราะว่าจากสมการ เมื่อมีการแลกเปลี่ยน Token ฝั่งใดที่เป็นจำนวนมาก มันจะทำให้เกิด Slippage มากขึ้นได้อย่างรวดเร็ว เพราะการที่มันไม่ balance กันระหว่างสองฝั่ง ซึ่งนี่ คือปัญหาที่เค้าต้องการแก้ไข เป็นเรื่องหลัก เพราะเจ้า slippage นี้มันสูงมาก จนอาจจะทำให้เกิดการขาดทุนมหาศาลในการแลก token เพียงครั้งเดียวได้เลย (มีเหตุการณ์เกิดขึ้นบ่อยมาก ด้วยความไม่เข้าใจ)
Uniswap เค้าก็เลยพัฒนาการทำงานของ AMM DEX แบบใหม่ เป็น Version 3 ซึ่งทำให้คนที่ต้องการ provide liquidity นอกจากต้องใส่ 2 token เข้ามาเป็น pair กันแล้ว จำเป็นต้องกำหนด กรอบของราคา ที่เราจะเปิดให้บริการด้วย เช่น ผมกำลังจำ provide USDT – USDC แต่ผมรู้อยู่แล้วว่า สองตัวนี้ค่อนข้างจะเป็น 1:1 กันเกือบตลอดเวลา ผมอาจจะกำหนดกรอบของ USDT ให้อยู่ในช่วง 0.9998 – 1.0002 (ความกว้างคือ 0.0004 ซึ่งได้มาจาก 1.0002 – 0.9998) ซึ่งถ้าตราบใดที่ราคาไม่เกินไปกว่านี้ ผมก็ยังเป็น liquidity provider ให้ได้อยู่ และได้รับค่าธรรมเนียมจากการแลกในส่วนนี้ จนกระทั่งราคาเลยออกนอก range ที่ผมกำหนดไป ผมก็จะไม่ได้รับค่าธรรมเนียมจากการแลกอีก จนกว่าราคาจะกลับเข้ามาใน range อีกครั้งหนึ่ง โดยเมื่อราคาออกนอก range ไป ก็จะมีคนอื่นที่เค้า กำหนด range ที่กว้างกว่าเรา ทำหน้าที่เป็น liquidity provider และได้รับค่าธรรมเนียมไปแทนนั่นเอง
งั้นเราก็กำหนด Range ราคาให้กว้างๆเลยสิ จะได้ครอบคลุม
เราสามารถทำได้ครับ เพราะเค้าไม่มี limit ในการกำหนด range แต่ว่าปัญหาคือ เมื่อเรากำหนด range ที่ครอบคลุมราคาที่กว้างๆมากๆ เงินของเราจะถูกไป utilize น้อยครับ มันก็คล้ายกับการที่เรา trade แบบกำหนด grid ราคา แล้วกำหนด upper / lower ให้ห่างกันมากๆ โดยเงินเรามีเท่าเดิม ราคาจึงต้องเคลื่อนที่เยอะมากๆ ถึงจะทำกำไรได้สักทีนึง หรือ เราก็ได้กำไรจากการแลกได้น้อยลงนั่นเอง (อันนี้ตัวอย่างแบบให้เข้าใจง่ายๆนะครับ)
ดังนั้น การกำหนด range ราคาใน DEX AMM v3 จึงเป็นเรื่องที่สำคัญ และมีผลกระทบต่อ APR เป็นอย่างมาก เรียกว่าเป็นปัจจัยหลักเลยก็ว่าได้ เพราะกำหนดแคบมากๆ ถ้าราคาวิ่งในกรอบ เราจะได้ APR ที่ดี แต่ถ้าหลุดกรอบ APR เราแทบจะหยุดเลย (ถ้าไม่นับส่วนที่เค้าแจก governance token นะ) การกำหนดกรอบราคากว้าง ก็จะได้ APR ต่ำมาก เพราะ utilize เงินเราได้ไม่ดี
งั้นเราก็กำหนดแคบๆ แต่ปรับขยับราคาบ่อยๆสิ
เราไม่สามารถขยับกรอบราคาได้ สิ่งที่เราทำได้คือการ Add / Remove LP ที่เรามีอยู่เดิมเท่านั้น หรือ เพิ่ม LP ใหม่ ที่เป็นคนละกรอบราคากัน ซึ่งอย่างที่บอกไป ว่ามันเป็น Non Fungible LP ดังนั้น เราจะได้ LP 2 ตัว คือ กรอบราคาแบบแรก กับ แบบสอง แยกอิสระจากกัน แม้ว่าจะเป็น pair เดียวกันก็ตาม
การกำหนดค่า Fee ทำให้เป็นคนละ LP
ในขั้นตอนที่เราจะ provide LP นั้น เราจะสามารถเลือกได้ว่าเราอยากได้ fee กี่ % ซึ่งการเปลี่ยนค่า Fee จะทำให้เราได้ LP เป็นคนละอันที่แตกต่างกันออกมาอีก ทั้งๆที่เป็น pair เดียวกัน range ราคาเดียวกันก็ตาม
สรุปคือ ค่า Fee , pair , กรอบราคา เป็นตัวกำหนดว่า LP ของเราจะหน้าตาเป็นอย่างไร และเมื่อ สร้าง LP แล้ว เราจะทำได้แค่ add / remove เท่านั้น ไม่สามารถแก้ 3 ตัวแปรข้างต้นได้เลย
ถ้าใครที่เข้าใจเรื่อง NFT ก็คือแบบนั้นแหล่ะ เมื่อก่อน v2 ทุกคนจะได้ LP token หน้าตาแบบเดียวกัน แต่ v3 LP token มันเป็น NFT ไปแล้ว
ค่าธรรมเนียมที่ได้รับ ไม่สะสมทบต้นอัตโนมัติ
เมื่อก่อน v2 ถ้าเราถือ Token LP แม้ว่าจำนวนเท่าเดิม แต่เวลาแลกคืน เราจะได้ token สองตัวเพิ่มมากขึ้น ส่วนที่เพิ่มมาก มันสะสมมาจากค่าธรรมเนียมที่ระบบเก็บเอาไว้ ทำให้ราคา LP แพงขึ้นเรื่อยๆ แต่ด้วย v3 เป็น Non fungible LP ทำให้กำไรมันเก็บสะสมในรูปแบบ 2 token โดยตรงเลย ซึ่งเราต้องกด Collect ส่วนกำไรนี้ออกมาเอง และถ้าต้องการทบต้น ก็ต้องเอาไปทบต้นด้วยตัวเราเองเท่านั้น
Impermanent สูงมากขึ้นเยอะ
ผลต่อเนื่องมาจากการที่เรากำหนดกรอบราคา เมื่อราคาหลุดกรอบ เราจะถือ token เพียงแค่ฝั่งเดียวเต็มกระบุง เหตุเพราะมันถูกแลกออกไปจนหมดแล้วนั่นเอง (ถ้ายังมีเหลือแปลว่า ส่วนที่เหลือ ราคาต่ำหรือ สูงกว่าตลาด ทำให้ต้องถูกแลกออกไปอยู่ดี เพราะคนก็อยากได้ที่ราคา สูง หรือ ต่ำสุดแล้วแต่กรณี) ดังนั้น ตามหลักการ impermanent loss ที่เราเคยรู้กันมา เมื่อมีการไม่สมดุลย์กันเกิดขึ้นระหว่าง 2 token impermanent loss จึงเข้ามามีผลมาก
แต่ว่ามันเป็นเรื่องที่ค่อนข้างยากในการคำนวณ impermanent loss เพราะสมการตัวใหม่นั้นยากขึ้นเยอะ แต่ว่าโดยเบื้องต้น “มันสูงขึ้น 4 เท่า หากราคา token ของ LP เปลี่ยนไป เท่าตัว หรือ ลดลงครึ่งนึง เมื่อเทียบกับการ provide LP แบบ full range ของราคา” ซึ่งมีคนอธิบายเป็นสมการและ chart ไว้ที่นี่ https://medium.com/auditless/impermanent-loss-in-uniswap-v3-6c7161d3b445
ผมลองสร้างตัวอย่างนึงขึ้นมา เพื่อเทียบว่า V2 , V3 จะเกิด impermanent loss ต่างกันแค่ไหน กำหนดข้อมูลดังนี้
- Pair : BTC-USDT
- BTC price : 41197
- USDT price: 1.0003
- BTC Unit : 0.0012 BTC (value 49.77)
- USDT Unit : 50.22 USDT (value 50.23)
ถ้ากำหนดให้ Future BTC price : 20500 (ลดลงประมาณครึ่งนึง) ผลที่ได้ จะเป็น
- การซื้อแล้วถือ : จะทำให้เราขาดทุน 25% (เพราะ ราคา BTC ลดลงครึ่งนึง และเรามี stable coin ช่วยอุ้มการขาดทุนอยู่)
- LP v2 : จะทำให้เราขาดทุน 30.72% หรือ impermanent loss 5.72% (ขาดทุนเยอะขึ้นกว่าการซื้อแล้วถือ)
- LP v3 : จะทำให้เราขาดทุน 39.83% หรือ impermanent loss 14.83%
เราจะเห็นได้ว่า impermanent loss สูงขึ้นกว่าเดิมอีก 2.59 เท่าเมื่อเทียบกับ v2 เลย
ถ้ากำหนดให้ Future BTC price : 30750 (ลดลงประมาณ 25%) ผลที่ได้ จะเป็น
- การซื้อแล้วถือ : จะทำให้เราขาดทุน 12.62% (เพราะ ราคา BTC ลดลงครึ่งนึง และเรามี stable coin ช่วยอุ้มการขาดทุนอยู่)
- LP v2 : จะทำให้เราขาดทุน 13.65% หรือ impermanent loss 1.03%
- LP v3 : จะทำให้เราขาดทุน 15.78% หรือ impermanent loss 3.16%
เราจะเห็นได้ว่า impermanent loss สูงขึ้นกว่าเดิมอีก 3.06 เท่าเมื่อเทียบกับ v2 เลย
*v2 ใช้ที่นี่คำนวณ ส่วน v3 กดจาก เครื่องมือ pancake เองเลย ในกระบวนการ add LP
ลดผลกระทบจาก Impermanent loss ได้ยังไง?
เนื้อหาพิเศษ ต้องแลกด้วย Reach เท่านั้น
เนื้อหาส่วนนี้เป็นเนื้อหาพิเศษ จะต้องใช้ reach ในการเข้าอ่านเนื้อหาจุดนี้ เมื่อแลกด้วย reach แล้วจะสามารถอ่านเนื้อหาที่ซ่อนอยู่เพิ่มเติมได้ หากมี reach แล้วกรุณา login ก่อน อ่านรายละเอียดเพิ่มเติมเรื่อง Reachเทคนิคพิเศษ
การทำ Farm v3 ให้ลด impermanent loss ลงให้ต่ำ และได้ผลอย่างที่เราต้องการ มันจะมีจังหวะที่เหมาะสมด้วยครับ ดังนี้
เนื้อหาพิเศษ ต้องแลกด้วย Reach เท่านั้น
เนื้อหาส่วนนี้เป็นเนื้อหาพิเศษ จะต้องใช้ reach ในการเข้าอ่านเนื้อหาจุดนี้ เมื่อแลกด้วย reach แล้วจะสามารถอ่านเนื้อหาที่ซ่อนอยู่เพิ่มเติมได้ หากมี reach แล้วกรุณา login ก่อน อ่านรายละเอียดเพิ่มเติมเรื่อง Reachแล้วในบทความหน้า จะมาลุยเป็นตัวอย่างให้ดู ว่าทำจริงแล้ว หน้าตาเป็นอย่างไร พร้อมผลลัพท์ที่เกิดขึ้นจริงๆด้วย ว่าได้อะไรยังไงบ้าง มีความซับซ้อนมากกว่า version 2020 เยอะมากเลย และบางอันกดผิด ชีวิตเปลี่ยนเลย