Timelock คืออะไร แบบ คร่าวๆ
Timelock เป็นเครื่องมือที่ใช้สำหรับการหน่วงเวลา ก่อนสั่งการเปลี่ยนแปลงอะไรบางอย่างในอนาคต โดย platform ฟาร์มหลาย platform เลือกใช้ timelock เพื่อแสดงถึงความบริสุทธ์ใจ ก่อนที่เค้าจะทำอะไรลงไป จะต้องมีการ deploy ผ่านตัว timelock เท่านั้น และเมื่อถึงเวลาที่กำหนด timelock ก็จะเป็นตัวที่สั่งงานให้เกิดเหตุการณ์นั้นอีกที ดังนั้น จะไม่มีการสั่งปุ้บ ทำงานปั้บ สั่งขโมยเงินปั้บ เงินหายปุ้บ อะไรแบบนี้ ซึ่งแต่ละที่ ก็จะกำหนด timelock ช่วงเวลาที่แตกต่างกันไป แต่ที่นิยมกันก็คือ ขั้นต่ำที่ 6-24 ชั่วโมง แล้วแต่ platform
ดังนั้น Timelock คือตัวที่บอกว่า กำลังจะมีอะไรเกิดขึ้น ในอนาคตที่จะถึงนี้ ตามที่ timelock กำหนด
หมายความว่า ถ้าเรา monitor การเปลี่ยนแปลงที่เกิดขึ้น ของ timelock ได้ เราก็จะรู้ได้ว่า เค้าจะมีการเปลี่ยนแปลงอะไรยังไงไปบ้างหรือเปล่า
ล่าสุด Rug pull ที่เกิดขึ้นจาก Aladdin defi นั่น ก็มีการใช้งาน Timelock ด้วยเช่นกัน แต่ว่า เค้ามีการสั่งเปลี่ยน owner ทำให้มีคนย้ายเงินออกได้ทัน แต่ส่วนใหญ่ก็ไม่ทัน เพราะหลังจากที่ timelock ทำงาน new owner ก็สั่งตั้งค่า withdraw fee จาก 0% เป็น 100% ทำให้ทุกคนที่ต้องการถอนเงิน จะสูญเงินทั้งหมดทันที (โดนหัก 100%)
เกิดอะไรขึ้นกับ Aladdindefi ทั้งที่มี timelock?
นี่คือ timelock ของ aladdindefi
https://bscscan.com/address/0xbeaafe6128c59136a197992601e1654f3847c33b
(masterChef https://bscscan.com/address/0x141ccd27bbca7524dc6b7eea1eb41e097d7e832d#code)
ซึ่งมีการตั้ง Timelock เอาไว้ 24 ชั่วโมง (86400 วินาที)
ต่อมาจะเห็นว่า tx 0xe868e9c1b9277d21878f0e98c40e9163a23006383c40949d77586f2c3cc570ec ใน block 6631125 นั้นมีการเปลี่ยน ownwership ไปเป็น 0x8027866264596aabacad63e7cedf8ab3c0cc72ec ซึ่งไม่ใช่ timelock แต่นั่นคือ dev address นั่นเอง
โดย deploy เมื่อ Sat Apr 17 2021 01:15:05 GMT+0000
โดยจะมีผลตอน Sun Apr 18 2021 01:16:00 GMT+0000 (อันเนื่องจาก 24 hours timelock)
เมื่อ timelock ทำงานแล้ว หลังจากนั้น 3 ชั่วโมง ใน transaction ของ dev address นี้ https://bscscan.com/txs?a=0x8027866264596aabacad63e7cedf8ab3c0cc72ec ตั้งแต่ block 6647519 ถึง 6663360 เป็นการสั่ง set withdrawfee เป็น 100% และปรับ deposit fee เป็น 0% ครบทุก pool ทั้งหมดใช้เวลา 3 นาทีจบ
หลังจากนั้น ทุกคนรู้ คุณก็รู้ ใครถอน ก็โดน withdraw fee 100% แปลว่า เอาเงินออกไม่ได้ทุกบาททุกสตางค์แล้วนั่นเอง
Timelock ยังคงทำหน้าที่ได้อย่างที่มันควรจะเป็น มันไม่ได้ผิดอะไรเลย ที่ผิดก็คือ เราไม่ได้ monitor มัน ทำให้ไม่รู้ว่าเกิดอะไรขึ้นแล้วบ้าง จน rug pull ในที่สุด
** ผมลองไล่โค้ดดู ทำให้พบว่า emergency withdraw ไม่มีการหัก withdraw fee ดังนั้น จะเอาเงินออกมาได้ผ่าน function นี้ โดยทำขั้นตอนตามนี้ https://bemyblockchain.com/interact-smart-contract-directly-for-farmer แต่เปลี่ยนจาก function withdraw เป็น emergencyWithdraw แทน แล้วใส่ pid อย่างเดียว ทั้งนี้จะไม่ได้ reward token เท่านั้น (จังหวะนี้ใครจะสน reward token เอาเงินต้นออกมาได้ก็ดีแล้ว) **
ดังนั้น ทำอย่างไรให้เรารู้ตัวและมีเวลาเตรียมตัวตัดสินใจได้บ้างล่ะ ว่าเค้าทำอะไร แล้วเราจะอยู่ต่อมั้ย หรือว่าจะออกเลยดี
Monitor timelock คือคำตอบ
วิธีการ Monitor timelock พร้อมเครื่องมือ
เนื้อหาที่ซ่อนอยู่ คือเครื่องมือที่ใช้ tracking การเปลี่ยนแปลง timelock ซึ่งใช้ฟรี และวิธีการเพิ่ม list ของ timelock ซึ่งเราเพิ่มได้สูงสุดถึง 25 contract เลย โดยเครื่องมือนี้ตอนนี้ทำงานบน BSC network เท่านั้น และเครื่องมือนี้สามารถใช้ monitor กระเป๋าเงินของตัวเราเองได้ด้วย (กรณีที่เน้นเก็บยาวๆ และไม่ได้ทำธุรกรรมบ่อยๆ หรือ ใครที่ทำอะไร ต้องไม่ใช่เราแน่นอนก็ใช้ได้เหมือนกัน)
เนื้อหาพิเศษ ต้องแลกด้วย Reach เท่านั้น
เนื้อหาส่วนนี้เป็นเนื้อหาพิเศษ จะต้องใช้ reach ในการเข้าอ่านเนื้อหาจุดนี้ เมื่อแลกด้วย reach แล้วจะสามารถอ่านเนื้อหาที่ซ่อนอยู่เพิ่มเติมได้ หากมี reach แล้วกรุณา login ก่อน อ่านรายละเอียดเพิ่มเติมเรื่อง Reachเสร็จแล้ว ทีนี้ก็อย่าลืมดูอีเมลกันทุกๆ 6 ชั่วโมงก็น่าจะพอแล้ว
หลังจากนี้ เมื่อมี การ deploy มาที่ timelock ก็จะมี email alert มาที่เรา ก็ขอให้รีบเข้ามาดูทันที เวลาเกิดอะไรยังไงขึ้น เค้าทำอะไรกับ timelock ยังไงบ้าง อย่างน้อยเราก็มีเวลาตัดสินใจ 6-24 ชั่วโมงขึ้นอยู่กับ timelock แต่ละที่ ที่กำหนดเอาไว้นั่นเอง
และถ้าอยากเข้าใจว่า Transaction ใหม่ที่เค้า deploy มาบน timelock นั้น มันคืออะไร ลองอ่าน วิธีอ่าน Timelock transaction หลังจากที่มีความเคลื่อนไหว เพื่อตีความ และใช้สำหรับการตัดสินใจต่อไป
หา timelock ไม่เจอ?
บางครั้งกดเข้าไป แต่หา contract , timelock ไม่เจอ ทำยังไง?
นั่นเป็นเพราะว่า platform นั้นไม่มี timelock หรือไม่ได้ใช้งาน timelock นั่นเอง
ซึ่งโดยปกติก็จะเป็น dev address ธรรมดา และเมื่อไม่มี timelock ดังนั้น การแก้ไขหรือทำอะไร ก็จะมีผลทันทีนั่นเอง เพราะไม่มี timelock มา delay แล้ว
อันนี้ capture มาจาก owner polaris อีกหนึ่ง platform ที่ port web farm อยู่ครับ ถ้าเจอแบบนี้ สิ่งที่ต้องไปพิจารณาต่อก็คือ เค้าทำความเสียหายอะไรให้กับเราได้บ้าง เพื่อให้รู้ถึงความเสี่ยงทั้งหมด เมื่อไม่มี timelock แล้ว
Deploy อะไรใหม่ใน timelock ไม่ได้แปลว่า rug pull เสมอไป
การ implement หลายๆอย่างเค้าก็ implement เพื่อการปรับปรุงระบบอะไรต่างๆ เช่น ปรับตัวคูณการแจก reward ปรับ deposit fee หรืออื่นๆ การ deploy อะไรใหม่ใน timelock ไม่ได้หมายความว่าเตรียม rug pull เสมอไป ลองดูอย่าง pancake timelock ก็ได้ https://bscscan.com/address/0xa1f482dc58145ba2210bc21878ca34000e2e8fe4 มี transaction เพียบ แต่อย่างน้อย ถ้าเราไม่เข้าใจ ว่ามีการเปลี่ยนอะไรจาก timelock เราก็แค่กระโดดออกมาตั้งหลักก่อน (เสีย deposit fee 4% ยังไงก็ดีกว่าเสียเงินทั้งหมด 100% แน่นอน คิดยังไงก็คุ้ม) แต่ถ้าอ่านออก เข้าใจได้ ก็จะดีที่สุด
วิธีการ monitor กระเป๋าเงินตัวเอง
เนื้อหาพิเศษ ต้องแลกด้วย Reach เท่านั้น
เนื้อหาส่วนนี้เป็นเนื้อหาพิเศษ จะต้องใช้ reach ในการเข้าอ่านเนื้อหาจุดนี้ เมื่อแลกด้วย reach แล้วจะสามารถอ่านเนื้อหาที่ซ่อนอยู่เพิ่มเติมได้ หากมี reach แล้วกรุณา login ก่อน อ่านรายละเอียดเพิ่มเติมเรื่อง Reachเงินของเรา เราก็ต้องดูแลอย่างใกล้ชิดครับ