ข้ามไปยังเนื้อหา

ไทม์ล็อก: การหน่วงธุรกรรมและการดำเนินการด้านธรรมาภิบาล

ไทม์ล็อกบังคับให้ธุรกรรมหรือการดำเนินการของสัญญารอจนถึงบล็อก เวลาประทับ หรือช่วงเวลาที่กำหนด เรียนรู้ว่าใครเป็นผู้บังคับใช้และช่องทางใดอาจข้ามการหน่วงได้

อัปเดต

เนื้อหานี้มีวัตถุประสงค์เพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำหรือคำชี้นำด้านการลงทุน การลงทุนอาจก่อให้เกิดผลขาดทุน

คำตอบโดยตรง

ไทม์ล็อกคือกฎที่บล็อกเชนหรือสัญญาอัจฉริยะบังคับใช้ เพื่อไม่ให้ธุรกรรม การใช้จ่าย หรือการดำเนินการของผู้ดูแลมีผลหรือดำเนินการได้ก่อนถึงความสูงบล็อก เวลาประทับ หรือช่วงเวลาที่กำหนด กฎนี้เปลี่ยนว่าเหตุการณ์จะเกิดขึ้นได้ เมื่อใด แต่ไม่ได้ตัดสินว่าการดำเนินการนั้นถูกต้องหรือไม่

คำนี้ครอบคลุมกลไกที่ต่างกัน ไทม์ล็อกระดับธุรกรรมอาจทำให้เหรียญยังใช้จ่ายไม่ได้หรือทำให้ธุรกรรมยังไม่เป็นขั้นสุดท้ายจนกว่าเงื่อนไขบนเครือข่ายจะครบ ส่วนไทม์ล็อกธรรมาภิบาลนำคำสั่งเรียกสัญญาที่ได้รับอนุมัติแล้วเข้าคิว และกำหนดเวลาหน่วงขั้นต่ำก่อนผู้ดำเนินการจะส่งคำสั่งได้ นาฬิกา การเปลี่ยนสถานะ และรูปแบบความล้มเหลวของทั้งสองแบบต่างกัน

คุณค่าด้านความปลอดภัยมาจากการหน่วงที่บังคับใช้ได้ ในธรรมาภิบาล ช่วงเวลานี้เปิดโอกาสให้ผู้เฝ้าระวังและผู้ใช้ตรวจสอบเพย์โหลดในคิว แจ้งเตือน ยกเลิกหรือหยุดผ่านช่องทางที่ได้รับอนุญาต หรือถอนตัวเมื่อมีช่องทางออกจริง ประโยชน์นี้จะหายไปหากมีช่องทางสิทธิพิเศษที่เปลี่ยนระบบเดียวกันได้โดยไม่ผ่านไทม์ล็อก

วิธีทำงาน

  1. กลไกกำหนดนาฬิกา เกณฑ์อาจใช้ความสูงบล็อก เวลาประทับที่ได้จากเครือข่าย หรือเวลาที่วัดจากเหตุการณ์บนเครือข่ายก่อนหน้า ค่าเหล่านี้เป็นค่าของโปรโตคอล ไม่ใช่คำรับรองเวลาจริงที่แม่นยำ
  2. การดำเนินการที่ล็อกผูกกับเงื่อนไข ไทม์ล็อกแบบสัมบูรณ์ระบุความสูงหรือเวลาในอนาคต ส่วนแบบสัมพัทธ์วัดช่วงเวลาจากเหตุการณ์ เช่น การยืนยันเอาต์พุตที่จะใช้จ่าย ตัวควบคุมธรรมาภิบาลบันทึกการดำเนินการที่ตั้งเวลาและเวลาที่พร้อม
  3. ชั้นที่เกี่ยวข้องบังคับให้รอ กฎฉันทามติอาจปฏิเสธธุรกรรมหรือการใช้จ่ายสคริปต์ที่เร็วเกินไป สัญญาอัจฉริยะอาจปฏิเสธการเรียกฟังก์ชันก่อนเวลา การนับถอยหลังบนเว็บไซต์อย่างเดียวไม่ใช่ไทม์ล็อก เพราะผู้ใช้ข้ามส่วนติดต่อได้
  4. การครบกำหนดเปลี่ยนสิทธิ์ ไม่ได้เปลี่ยนเจตนา เมื่อเงื่อนไขครบ การดำเนินการอาจมีผลหรือพร้อม แต่ไม่จำเป็นต้องกระจายหรือดำเนินการโดยอัตโนมัติ ยังต้องมีผู้ส่ง และการตรวจสอบสิทธิ์กับความถูกต้องอื่นยังคงใช้
  5. ขอบเขตการคุ้มครองขึ้นกับอำนาจ สำหรับธรรมาภิบาล ไทม์ล็อกต้องถือกรรมสิทธิ์หรือบทบาทที่จำเป็นในสัญญาเป้าหมาย และช่องทางสิทธิพิเศษที่ให้ผลเทียบเท่าต้องถูกหน่วงด้วย สิทธิ์ของผู้เสนอ ผู้ยกเลิก ผู้ดำเนินการ และผู้ดูแลกำหนดว่าใครตั้งเวลา หยุด ดำเนินการ หรือปรับค่าได้

Bitcoin แสดงความต่างในระดับธุรกรรม BIP 65 กำหนด CHECKLOCKTIMEVERIFY ซึ่งทำให้เอาต์พุตยังใช้จ่ายไม่ได้จนถึงเงื่อนไขความสูงบล็อกหรือเวลาแบบสัมบูรณ์ BIP 68 ให้ความหมายไทม์ล็อกแบบสัมพัทธ์ที่ฉันทามติบังคับใช้แก่หมายเลขลำดับของอินพุตที่เข้าเกณฑ์ โดยวัดจากอายุของเอาต์พุตที่กำลังใช้จ่าย กฎเหล่านี้ไม่ใช่คิวของสัญญาธรรมาภิบาล

TimelockController ของ OpenZeppelin เป็นตัวอย่างการหน่วงธรรมาภิบาล ผู้เสนอจัดตารางการดำเนินการที่ระบุเอกลักษณ์ด้วยเวลาหน่วงไม่น้อยกว่าค่าขั้นต่ำ เมื่อหมดเวลา สถานะจะเปลี่ยนจากรอเป็นพร้อม แล้วผู้ดำเนินการจึงต้องสั่งดำเนินการ การยกเลิกและการจัดการบทบาทเป็นไปตามกฎของสัญญา และการเปลี่ยนเวลาหน่วงขั้นต่ำก็ต้องผ่านไทม์ล็อกเช่นกัน

ตัวอย่าง

การอัปเกรดโปรโตคอลในคิว

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

การคุ้มครองมีจริงต่อเมื่อไทม์ล็อกควบคุมอำนาจอัปเกรด หากเจ้าของรายอื่น ผู้ดูแลพร็อกซี คณะมนตรีความปลอดภัย หรือโมดูลติดตั้งการอัปเกรดเดียวกันได้ทันที ต้องประเมินช่องทางข้ามนั้นแยกต่างหาก การหน่วงจะมีประโยชน์ต่อเมื่อเฝ้าระวังได้ทัน และการถอนหรือย้ายเสร็จก่อนการดำเนินการ

เส้นทางธุรกรรมที่หน่วงไว้

สคริปต์อาจให้เส้นทางใช้จ่ายก่อนกำหนดเวลาและเส้นทางคืนเงินหลังจากนั้น เครือข่ายบังคับเงื่อนไขเมื่อตรวจสอบการใช้จ่าย การถึงเกณฑ์ไม่ได้ย้ายเงินเอง ผู้มีสิทธิ์ต้องสร้างและกระจายธุรกรรมที่ถูกต้อง และการยืนยันยังขึ้นกับค่าธรรมเนียมและการรวมในบล็อก

ความเสี่ยงและรายการตรวจสอบ

  • อำนาจข้าม: เจ้าของ บทบาท โมดูล กุญแจอัปเกรด หรือช่องทางฉุกเฉินอื่นอาจทำการดำเนินการที่คุ้มครองไว้ได้โดยไม่รอ
  • นาฬิกาหรือขอบเขตผิด: ความสูงบล็อก เวลาเครือข่าย และเวลาที่ผ่านไปใช้แทนกันไม่ได้ ความคลาดเคลื่อนหนึ่งหน่วยอาจทำให้ใช้จ่ายได้เร็วหรือช้ากว่าคาด
  • การหน่วงไม่เพียงพอ: ช่วงรออาจสั้นกว่าเวลาที่ต้องใช้ตรวจพบ วิเคราะห์ สื่อสาร และตอบสนองต่อการดำเนินการ
  • ไม่มีทางออกที่ใช้ได้จริง: การหยุดถอน ความล่าช้าของบริดจ์ สภาพคล่องต่ำ การถอนพันธะ หรือความแออัดอาจทำให้ผู้ใช้ดำเนินการไม่ทันช่วงที่ระบุ
  • บทบาทถูกยึดหรือภาวะชะงัก: ผู้เสนอหรือผู้ดูแลที่ประสงค์ร้ายอาจนำคำสั่งอันตรายเข้าคิว ส่วนการสูญเสียผู้ดำเนินการหรือสิทธิ์ยกเลิกที่กว้างเกินไปอาจขวางการดำเนินการที่ชอบธรรม
  • เพย์โหลดไม่ตรง: ชื่อข้อเสนอที่อ่านง่ายไม่ได้พิสูจน์ว่าเป้าหมาย มูลค่า ข้อมูล การพึ่งพา และ salt ที่ตั้งเวลาไว้ตรงกับสิ่งที่ผู้ลงคะแนนอนุมัติ
  • การติดตั้งต่างกัน: การหมดอายุ การยกเลิก การทำงานเป็นชุด การพึ่งพา การเปิดให้ดำเนินการ และการเปลี่ยนเวลาหน่วงต่างกันตามสัญญาและรุ่น
  • ข้อผิดพลาดในการล็อก: เวลาประทับ ความสูง ลำดับ กิ่งสคริปต์ หรือกุญแจที่ผิดอาจทำให้เข้าถึงสินทรัพย์ไม่ได้ยาวนานกว่าที่ตั้งใจ

ความเข้าใจผิดที่พบบ่อย

ไทม์ล็อกดำเนินการอัตโนมัติเมื่อหมดเวลาหรือไม่

โดยทั่วไปไม่ การครบกำหนดมักเพียงทำให้มีสิทธิ์ดำเนินการ ธุรกรรมยังต้องถูกกระจาย หรือผู้ดำเนินการต้องเรียกสัญญาธรรมาภิบาล

ไทม์ล็อกทำให้ธรรมาภิบาลปลอดภัยหรือไม่

ไม่ ไทม์ล็อกสร้างเวลาตอบสนอง แต่ไม่ได้ตรวจสอบเพย์โหลด ป้องกันกุญแจสิทธิพิเศษ รับประกันการยกเลิก หรือรับรองว่าผู้ใช้จะออกได้ อำนาจคู่ขนานที่ไม่หน่วงอาจทำให้การควบคุมไร้ผล

ไทม์ล็อกทุกแบบใช้เวลาจริงหรือไม่

ไม่ บางแบบใช้ความสูงบล็อก บางแบบใช้เวลาประทับของเครือข่าย และบางแบบใช้อายุสัมพัทธ์ ช่วงห่างบล็อกที่คาดและเวลาประทับไม่ใช่กำหนดการที่แม่นยำ

ไทม์ล็อกธุรกรรมกับไทม์ล็อกธรรมาภิบาลใช้แทนกันได้หรือไม่

ไม่ได้ ทั้งสองแบบมีแนวคิดการหน่วงสิทธิ์เหมือนกัน แต่กฎธุรกรรมฉันทามติ เงื่อนไขสคริปต์ และคิวธรรมาภิบาลคุ้มครองการดำเนินการต่างกัน จึงต้องตรวจตามข้อกำหนดของแต่ละแบบ

หัวข้อที่เกี่ยวข้อง

แหล่งที่มา

การนำทาง

ค้นหาในวิกิ...