DeFi WTF!! Guide Book เส้นทางสู่การเป็นชาวนาดิจิทัล ตอนที่ 4 การตรวจสอบความน่าเชื่อถือของ Platform และการถอนเงินผ่าน Smart Contract

สวัสดีครับเนื่องจากมีคนถามเข้ามากันเยอะมากถึงเกี่ยวกับการที่จะตรวจสอบว่าแพลทฟอร์ม DeFi ต่าง ๆ ว่าปลอดภัยแค่ไหน รวมไปถึงกรณีที่หากเเพลทฟอร์มปิดตัวลงเราจะยิงคำสั่งผ่าน Smart Contract อย่างไร ซึ่งจริง ๆ แล้วทางเราขอเรียนให้ทราบตามตรงว่ามันไม่มีสูตรสำเร็จใด ๆ ที่จะสามารถตรวจสอบได้ว่า Platform DeFi ใด ๆ จะไม่มีความเสียหายเกิดขึ้น แม่แต่การตรวจสอบ SmartContract เองนั้นก็จำเป็นจะต้องให้ Developer ที่มีความเชี่ยวชาญหรือทีม Audit ตรวจสอบเท่านั้น (แต่ก็ไม่ 100% เสมอไปเช่นกัน)

การตรวจสอบความน่าเชื่อถือโดยทั่วไป

เช็ครายชื่อใน  DeFiPulse (Ethereum) และ DeFiStation (Binance Smart Chain) นั้นจะเป็นเหมือนแหล่งอ้างอิงที่บอกว่าแต่ละแพลทฟอร์มนั้นเปิดมานานเท่าไหร่และมีมูลค่าเท่าไหร่ (Total Value Lock) แม้การที่แพลทฟอร์มเปิดมานานจะไม่ได้หมายความว่ามันจะไม่มีข้อผิดพลาดในอนาคต แต่มันก็ป็นสิ่งที่พิสูจน์ได้ว่าการทำงานหลักของมันสามารถทำงานได้โดยไม่มีข้อผิดพลาดเป็นเวลานาน และการที่มีคนฝากเงินเข้าไปมากก็บ่งบอกถึงการที่คนเชื่อถือในแพลทฟอร์มนั้น

อีกวิธีการหนึ่งที่คือการตรวจสอบว่าแพลทฟอร์ม DeFi นั้นมีบริษัท Audit เข้ามาตรวจสอบหรือไม่ โดยเราสามารถดูได้ใน Blog หรือ Documentation ของโครงการนั้นอย่างไรบางครั้งก็มี Team Audit ที่ไม่ค่อยมีชื่อเสียงเท่าไหร่ที่ทำการตรวจสอบโครงการนั้น แม้ว่าจะดีกว่าไม่มีแต่มันก็ไม่ได้แปลว่าน่าเชื่อถือซะทีเดียว

Note: แพลทฟอร์ม IceCreamSwap นั้นมีทีมที่ Audit ซึ่งเป็น Team No Name ซึ่งสุดท้ายโครงการก็มีช่องโหว่เกิดขึ้น

Note2: แม้ว่าจะเป็นทีมที่น่าเชื่อถือก็ไม่ใช่ว่าจะไม่มีข้อผิดพลาดอย่างทีม Certik ที่เป็น Audit ที่มีชื่อเสียงก็เคยตรวจโครงการ Cover และสุดท้ายก็มีช่องโหว่ที่หลุดรอดไป

การตรวจสอบ Contract Code ขั้นพื้นฐาน

Note: แม้จะตรวจสอบตาม Guide นี้แล้วก็ไม่ได้แปลว่าแพลทฟอร์มปลอดภัย เป็นเพียงการยกตัวอย่างเท่านั้น

ก่อนอื่นแล้วเราสามารถดูโค้ดที่เป็น Contract ของ DeFi แพลทฟอร์มได้ด้วยการเข้าไปที่ Bscscan หรือ Etherscan แล้วค้นชื่อ Contract นั้นซึ่งถ้าไม่แน่ใจสามารถหา Contract ได้จาก Coinmarketcap หรือ Coingecko  (แต่ส่วนมากแล้วแพลทฟอร์มเปิดใหม่จะยังไม่ลิสขึ้นแพลทฟอร์มเหล่านี้อาจจะต้องค้นเอาจากใน Doc หรือตัว Contract โดยตรง)

ตัวอย่าง Pancake Swap Contract 

จุดที่ต้องสังเกตุ

  • ตรวจสอบว่า Contract Verify หรือยังซื่งถ้ายังไม่มีการ Verify มันจะมีความเสี่ยงที่เป็น Scam เช่นกรณี Wine Swap ที่ทำการ Exit Scam ไป
  • ตรวจสอบ DELEGATECALL ฟังชั่น `delegatecall()` เป็นฟังชั่นที่จะทำการเรียกฟังชั่นจาก Contract อื่นอีกทีซึ่ง Contract นั้นอาจจะเป็น Contract ของคนอื่น ซึ่งอาจทำให้การทำงานของ Contract เดิมเปลี่ยนไป ตัวอย่างเช่น Multi.financial ที่ทำการ Rugpull ไป (Rugpull หมายถึงการดึงพรมหรือหมายถึงการขโมยเงิน)

    ดูรายละเอียดที่ https://bscscan.com/address/0x99f7f724c6e943b231acf06a95585d252941bc70#code

อีกตัวอย่างหนึ่งคือการอัพเกรด Proxy ที่ทำให้แอดมินสามารถเปลี่ยน Logic ได้ตลอดเวลา

  • Migrate Function ฟังชั่นนี้เป็นฟังชั่นที่ต้องระวังมากเพราะมันเป็นฟังชั่นที่สามารถทำให้เงินของคุณถูกโอนไปที่อื่นได้ เช่น https://bscscan.com/address/0x584527ded17aceb3dc617c40b04e8fe9afc57096#code
  • ตรวจสอบว่ามี Timelock ไหมโดยปกติแล้วในโครงการ DeFi ใหม่ ๆ นั้นจะให้สิทธิแอดมินแทบจะเด็ดขาดรวมถึงแก้ไขเปลี่ยนแปลงโค้ด ซึ่งทำให้เป็นเรื่องอันตรายหากใคร Contract มีฟังชั่น Migrator ที่จะนำเงินของเราออกไปได้ แต่อย่างไรก็ตามแพลทฟอร์มที่ดีจะมี Timelock ที่จะทำให้การเรียกใช้ฟังชั่นหรือเปลี่ยนแปลงโค้ดนั้นจะมีผลหลังจากเวลาที่กำหนดเช่น 24 ชั่วโมงเป็นต้น โดยเราสามารถตรวจสอบได้จาก Contract ของ Owner

https://bscscan.com/address/0x73feaa1ee314f8c655e354234017be2193c9e24e?fbclid=IwAR2hz-oPDxAA23ed6xDXDSoVgMnqFS2cBm911UoK2GxtYb9kXse8gnJJjog#code

ตัวอย่างเช่น Contract ของ PancakeSwap ให้เราดูที่ Contract Owner ให้เราคลิกเข้าไป

เราจะพบกับ Contract ชื่อ Timelock ให้เราหาฟังชั่น Delay ว่ามีค่าเท่าใดแล้วหารด้วย 3600 จะได้เท่ากับชั่วโมงของ Timelock

การถอน LP ผ่าน Smart Contract 

ในกรณีที่หน้าเวปหรือ UI ของแพลทฟอร์ม DeFi นั้นเกิดปัญหาใดๆเกิดขึ้นหาก Smart Contract ทำงานอย่างถูกต้องเงินของเราจะไม่ได้หายซึ่งเราสามารถยิง Contract ไปถอน LP และถอนออกมาเป็นคู่เหรียญได้

โดยหลักการแล้วเวลาเราเอา LP ไป Stake ที่ Farm DeFi ใดๆก็ตาม เราจะต้องทำการ Interact กับ Contract ตัวหนึ่งซึ่งใน Contract นี้มักจะมีฟังชั้น Emergency Withdraw อยู่ให้เราสามารถถอน LP ได้โดยเราต้องหาเลข Pool ID ที่เราลง LP ให้เจอแล้วไปสั่งให้คำสั่ง Excute

โดยเราจะยกตัวอย่าง apeswap (ปัจจุบันโดน Audit แล้วมีความปลอดภัยระดับหนึ่ง) ว่าถ้าเรา Stake LP เข้าไปจะถอนผ่าน Smart Contract ยังไง

1.ก่อนอื่นคือให้เราเปิด BSCScan แล้วหา Transaction ที่เราทำการ Stake LP เข้าไปให้เจอครับ

2. ทีนี้สิ่งที่เราต้องทำคือการหาเลข Pool ID ที่ตรงกับ LP ที่เราฝากเข้าไป โดยเข้าไปตรง Read แล้วดูที่ช่อง Pool Info ซึ่งเราต้องลองใส่เลข 0 1 2 ไปเรื่อยเพื่อหาว่า  Pool ID ที่เราลง LP คือเลขอะไร

3. เราสามารถหาเลข Contract ของ LP ได้ใน transacion เดียวกันกับที่เรา Stake จำไว้และให้ลองใส่เลข 0 1 2 จนกว่าจะเจอ Contract ที่ตรงกัน

4. จากในตัวอย่างผมฝาก BNB-BANANA ซึ่งตรงกับ Pool ID 1 จะเห็นว่าเลข LP Token ตรงกับ Contract ของ LP

5. ไปที่ Write ในหน้า Contract เดียวกันมองหากด Connect web 3.0 ด้วย Metamask แล้วมองหา Functtion ที่ชื่อว่า emergencyWithdraw ใส่เลข pool id ลงไปจากตัวอย่างคือ 1 แล้วกด Write

6. Confirm ใน Metamask แล้วรอ Confirm เราจะได้ LP กลับมาเอาไปถอนใน pancake ได้

อย่างไรก็ตามอันนี้เป็นกรณีที่แพลทฟอร์มนั้น Contract เขียนมาอย่างถูกต้องและอนุญาตให้ถอนได้เท่านั้น บางแพลทฟอร์มอาจจะสอดไส้อย่างกรณี Bullfarm และ Meerkat

และสำหรับใครที่รู้สึกว่ายุ่งยาก ได้มีคนไทยในคอมมูนิตี้ DeFi ได้สร้างแพลทฟอร์มที่ชื่อว่า JediYield ขึ้นมาเพื่อแก้ปัญหากรณีต่างๆที่เกิดขึ้นลองไปเล่นกันได้ที่ https://jediyield.com/

กรณีศึกษาเรื่องความเสี่ยงของ Smart Contract 

ทีนี้เราจะมาดูกรณีศึกษาเรื่องการที่ Smart Contract เกิดปัญหากันหน่อยดีกว่าว่าแต่ละรูปแบบมีผลกระทบออะไรอย่างไรบ้าง 

MakerDao

ช่วง Black Friday ในเดือนมีนาคม 2020 ที่ผ่านมาได้เกิดการ Crash ของตลาด Crypto ครั้งใหญ่ส่งผลทำให้ราคา Crypto มากมายปรับตัวลดลง ทำให้เกิดหนี้เสียใน MakerDao เนื่องจาก Ethereum ที่ค้ำประกันนั้นเกิดการ Liquidate จากการที่มันราคาลดลงกระทันหัน

โดยปกติอัตราส่วนของ Ethereum จะมากกว่าเหรียญ Dai ที่กู้เพื่อป้องกันการ Liquidate แต่เมื่อราคา Ethereum ลดลงอย่างรวดเร็วทำให้เกิดการ Liquidate และนำ Ethereum นั้นไปประมูลขาย ปรากฎว่าเนื่องจากในเวลานั้นราคา Ethereum นั้นผันผวนมากทำให้มีช่องว่างให้คนสามารถประมูล Ethereum จำนวนหนึ่งไปที่ราคา 0 ได้

ผลก็คือเกิดหนี้เสียราว 28 ล้านดอลลาร์ขึ้นมาในระบบ โดยเครือข่ายของ MakerDao แก้ไขปัญหานี้ด้วยการเสกเหรียญ MKR ขึ้นมาแล้วขายในจำนวนเทียบเท่ากับหนี้เสีย ซึ่งวิธีนี้คล้ายกับการที่เมื่อรัฐบาลก่อหนี้ก็สร้างพันธบัตรมารองรับหนี้หรือปล่อยให้มันกลายเป็นหนี้สาธารณะ 

Asuka Finance

Asuka finance เป็นแพลทฟอร์ม DeFi ที่เปิดตัวได้ไม่นานใน Ethereum โดย Fork มาจาก YFI ซึ่งการที่จะฟาร์มได้ต้องฝากเหรียญ Asuka:Dai ในอัตราส่วน 98:2 โดยในตัว Contract ของ Asuka นั้นไม่มีปัญหาอะไร Contract ถูกเขียนไว้อย่างถูกต้อง

หลังจากเจ้าของเปิดแพลทฟอร์มได้ไม่นานก็ทำการปิด UI หน้าเวปทิ้ง แม้ว่าเงินส่วนใหญ่นั้นสามารถยิง Smart Contract เพื่อถอน LP ออกมาได้แต่เนื่องจากคนส่วนมากไม่มีความรู้เจ้าของจึงใช้ช่วงเวลานั้นเทขายเหรียญ Asuka คนเดียว

BullFarm

Bullfarm เป็นแพลทฟอร์ม DeFi ที่เปิดตัวได้ไม่นานใน Binance Smart Chain เจ้าของ BullFarm เรียกฟังชันหนึ่งที่แอบใส่ไว้ใน Smart Contract ที่ทำให้สามารถโอนเงินในกระเป๋าของผู้เสียหายได้แล้วสั่งโอน vBTCB ออกจากกระเป๋าผู้เสียหาย คนร้ายนำเหรียญ vBTCB ที่ขโมยมา ไปแลกคืนเป็น BTCB ที่เว็บ Venus แล้วขายทิ้งทำให้ผู้ใช้งานเสียเงินไปกว่า 5 BTC

MeerKat Finance

Meerkat เป็นแพลทฟอร์ม DeFi ที่เปิดตัวได้ไม่นานใน Binance Smart Chain โดยส่วนใหญ่แล้วเจ้าของโครงการ DeFi จะสามารถแก้ไข Contract ของแพลทฟอร์มได้แต่จะมี Timelock ว่าต้องรอเวลานานเท่าไหร่กว่าโค้ดจะทำงาน  เจ้าของ Meerkat ตั้งใจวางกับดักด้วยการเนียนแก้ตัวแปรใน Timelock จาก “0” เป็น “O”

เจ้าของจึงสามารถแก้ไขแพลทฟอร์มสร้างช่องโหว่ทำให้สามารถขโมยเงินไปได้ อย่างไรก็ตามดูเหมือนว่าเรื่องจะไปถึง Binance และมีการเพ่งเล็ง Address ที่ทำการขโมยเงินทำให้เจ้าของต้องประกาศคืนเงินที่ขโมยมาในภายหลัง

สรุปกรณีศึกษาทั้ง 4 อย่าง 

  • ไม่ควรใช้งาน DeFi Platform ที่ยังไม่ได้ Audit หรือมีความน่าเชื่อถือต่ำ
  • แม้แพลทฟอร์มจะมีการ Audit แล้วก็ไม่ได้แปลว่าปลอดภัย 100%
  • แพลทฟอร์มที่ตั้งใจทำมาอย่างถูกต้องแม้เกิดความเสียหายก็มักจะไม่ได้เสียหายทั้งหมดบางครั้งก็มีความพยายามเยียวยา
  • แม้ว่า Smart Contract ของแพลทฟอร์มนั้นจะทำงานอย่างถูกต้องก็ยังมีความเสี่ยงที่เหรียญจะโดน Dump

อ่านย้อนหลังตอนก่อนหน้า

DeFi WTF!! Guide Book เส้นทางสู้การเป็นชาวนาดิจิทัล ตอนที่ 1 ปรับ Mindset ก่อนลงทุนใน DeFi

DeFi WTF!! Guide Book เส้นทางสู่การเป็นชาวนาดิจิทัล ตอนที่ 2 : ลงทุนความเสี่ยงต่ำด้วย Stablecoin ที่ให้ผลตอบแทนดีกว่าธนาคาร

DeFi WTF!! Guide Book เส้นทางสู่การเป็นชาวนาดิจิทัล ตอนที่ 3 : การฟาร์มด้วย Cryptocurrency และการคำนวณ Impermanent loss

Share on facebook
Share on twitter
Share on linkedin

Radius

ผู้เชี่ยวชาญการเขียนข่าว บทความ ที่เกี่ยวข้องกับ Bitcoin , คริปโตเคอเรนซี่ และ Blockchain ทั้งในไทยและต่างประเทศ อัพเดทราคา มุมมองการลงทุน ใหม่ล่าสุดทุกวัน
ข่าวต่อไป