ที่มา: Bitcoin Magazine; แปลโดย: วู้จี้, 金色财经
เมื่อเร็ว ๆ นี้โรลอัพได้กลายเป็นจุดสนใจของการปรับขนาด BTC กลายเป็นสิ่งแรกที่ “ขโมยการแสดง” จาก Lighting Network ในแง่ของความสนใจที่กว้างขึ้น Rollups ได้รับการออกแบบให้เป็นเลเยอร์นอกสายโซ่ 2 ที่ไม่ถูก จํากัด หรือ จํากัด โดยข้อ จํากัด สภาพคล่องหลักของ Lighting Network กล่าวคือผู้ใช้ปลายทางต้องการใครสักคนในการจัดสรร (หรือ “ให้ยืม”) เงินล่วงหน้าเพื่อรับเงินหรือ โหนดเส้นทางกลางต้องใช้ยอดคงเหลือของช่องทางเพื่ออํานวยความสะดวกในการไหลของจํานวนเงินที่ชําระจากผู้ส่งไปยังผู้รับ
ระบบเหล่านี้เริ่มต้นการทำงานบนระบบอีเธอร์รัมและระบบทัวริงเสร็จสมบูรณ์อื่น ๆ แต่เมื่อไม่นานมานี้มีการเปลี่ยนโฉมไปใช้งานบนเทคโนโลยีบล็อกเชนที่ใช้ UTXO (เช่น BTC) บทความนี้ไม่ได้ตั้งใจพูดถึงสถานการณ์ที่ปฏิบัติอยู่ใน BTC ในปัจจุบัน แต่เป็นการพูดถึงความสามารถของ Rollup ที่เป็นไปตามความต้องการในระยะยาวของมนุษย์ ซึ่งขึ้นอยู่กับความสามารถในการยืนยัน Zero-Knowledge Proof (ZKP) โดยตรงบน BTC ซึ่งกำลังจะไม่รองรับในปัจจุบัน
โครงสร้างพื้นฐานของ Roll ดังนี้: บัญชีเดียว (UTXO ใน BTC) จะเก็บยอดคงเหลือของผู้ใช้ทั้งหมดใน Rollup บัญชีนี้มีความสัมพันธ์กับสัญญาว่าจะมี Merkle root ของต้นไม้ Merkle ที่เป็นส่วนประกอบของ Rollup และสัญญานี้รวบรวมยอดคงเหลือปัจจุบันของบัญชีทั้งหมดใน Rollup บัญชีเหล่านี้ถูกอนุญาตโดยกุญแจสาธารณะ/รหัสส่วนตัวทั้งหมดดังนั้นเพื่อทำการใช้จ่ายเหรียญฟรีออฟไลน์ผู้ใช้จะต้องใช้กุญแจลับเพื่อเซ็นต์เนื้อหาบางอย่าง ส่วนนี้ของโครงสร้างช่วยให้ผู้ใช้สามารถออกไปได้ทุกเมื่อโดยไม่ต้องขออนุญาต โดยพวกเขาสามารถออกจาก Rollup ได้อย่างเดี่ยวด้วยการสร้างพิสูจน์ธุรกรรมที่แสดงว่าบัญชีของพวกเขาเป็นส่วนหนึ่งของต้นไม้ Merkle และไม่จำเป็นต้องขออนุญาตจากผู้ให้บริการ
ผู้ดำเนินการ Rollup จะต้องรวม ZKP ในธุรกรรมเพื่ออัพเดตรากเมอร์เคิลของยอดเงินในบัญชีบนเชนเมื่อทำธุรกรรม off-chain เสร็จ หากไม่มี ZKP นี้ ธุรกรรมจะเป็นโมฆะ และจึงไม่สามารถรวมอยู่ในบล็อกเชนได้ การพิสูจน์นี้ช่วยให้คนสามารถตรวจสอบได้ว่าการเปลี่ยนแปลงทั้งหมดในบัญชี off-chain ได้รับการอนุญาตจากเจ้าของบัญชีอย่างเหมาะสม และว่าผู้ดำเนินการไม่ได้มีความผิดเพื่ออัพเดตยอดเงินเพื่อขโมยเงินของผู้ใช้หรือแจกจ่ายใหม่ให้กับผู้ใช้อย่างไม่ซื่อสัตย์
ปัญหาคือหากมีเพียงรากของต้นไม้เมอร์เคิลที่เผยแพร่อยู่บนเชือกหรือโซน ผู้ใช้สามารถดูและเข้าถึงได้ แล้วพวกเขาจะวางสาขาของพวกเขาในต้นไม้ได้อย่างไรเพื่อให้สามารถออกจากแบบไม่ต้องขออนุญาตเมื่อพวกเขาต้องการ呢
ใน Rollup ที่เหมาะสม ข้อมูลจะถูกเก็บใน blockchain โดยตรงเมื่อมีการยืนยันธุรกรรม off-chain ใหม่และสถานะของบัญชีใน Rollup มีการเปลี่ยนแปลง ไม่ใช่ต้นไม้ทั้งหมดนั่นเป็นเรื่องไร้สาระ แต่จะเป็นข้อมูลที่จำเป็นต้องสร้างต้นไม้ใหม่ ในการทำงานที่เรียบง่าย Rollup จะรวมข้อมูลสรุปของบัญชีทั้งหมดใน Rollup ซึ่งรวมถึงยอดคงเหลือ และบัญชีจะถูกเพิ่มในธุรกรรม Rollup ที่อัพเดท
ในการใช้งานขั้นสูงจะใช้ความแปรปรวนของเครื่องชั่ง นี่คือบทสรุปของเงินทุนที่เพิ่มขึ้นหรือลดลงในระหว่างกระบวนการอัปเดต สิ่งนี้ทําให้การอัปเดตค่าสะสมแต่ละครั้งมีเฉพาะการเปลี่ยนแปลงยอดคงเหลือของ บัญชี ที่เกิดขึ้นเท่านั้น จากนั้นผู้ใช้สามารถสแกนห่วงโซ่และ “คํานวณ” จากจุดเริ่มต้นของ Rollup เพื่อรับสถานะปัจจุบันของยอดคงเหลือบัญชี ซึ่งช่วยให้พวกเขาสร้างต้นไม้ Merkle ของยอดคงเหลือปัจจุบันขึ้นใหม่ได้
นี้ช่วยประหยัดค่าใช้จ่ายและพื้นที่บล็อก (ซึ่งหมายความว่าประหยัดเงิน) ในเวลาเดียวกันยังอนุญาตให้ผู้ใช้ทำการยืนยันข้อมูลที่จำเป็นสำหรับการออกจากระบบได้โดยไม่มีผลกระทบใด ๆ กฎของ rollup ต้องการให้ข้อมูลเหล่านี้ถูกรวมอยู่ใน rollup ที่เป็นทางการที่ผู้ใช้ได้รับจากเครือข่ายบล็อกไม่รวมถึงธุรกรรมที่ไม่ถูกต้องที่ไม่มีสรุปยอดบัญชีหรือความแตกต่างของบัญชี
วิธีหนึ่งในการจัดการกับปัญหาความพร้อมใช้ของข้อมูลการถอนของผู้ใช้คือการวางข้อมูลไว้ในที่อื่นนอกจากบล็อกเชน นี้ส่งผลให้เกิดปัญหาที่ละเอียดอ่อน โดย rollup ยังต้องให้ความสำคัญในการตรวจสอบว่าข้อมูลพร้อมใช้งานในที่อื่น ๆ แบบดั้งเดิมบล็อกเชนอื่นใช้สำหรับวัตถุประสงค์นี้โดยเฉพาะออกแบบมาเพื่อเป็นชั้นความพร้อมใช้ของระบบ rollup และอื่น ๆ
นี้ก็ทำให้เกิดวิกฤติที่มีการรักษาความปลอดภัยที่แข็งแกร่งเช่นเดียวกัน เมื่อข้อมูลถูกเผยแพร่โดยตรงไปยังโซ่บล็อกBTCฉันทามติสามารถรับประกันได้ว่ามันถูกต้องอย่างแน่นอน อย่างไรก็ตามเมื่อมันถูกเผยแพร่ไปยังระบบภายนอก มันก็สามารถทำได้ดีที่สุดเพียงแค่การยืนยันความเท็จใน SPV ซึ่งหมายความว่าข้อมูลถูกเผยแพร่ไปยังระบบอื่น
นี่ต้องการการยืนยันว่าข้อมูลอยู่ในบล็อกอื่น ๆ บนเชน ที่สุดท้ายนี้เป็นปัญหาเครื่อง Oracle BTC ไม่สามารถยืนยันอย่างสมบูรณ์ว่ามีเหตุการณ์ใด ๆ ที่เกิดขึ้นนอกบล็อก on-chain ของตัวเอง สิ่งที่มันสามารถทำได้ดีที่สุดก็คือการยืนยัน ZKP อย่างไรก็ตาม ZKP ไม่สามารถยืนยันว่าข้อมูล rollup ที่สร้างขึ้นหลังจากนั้นได้ถูกเผยแพร่จริงหรือไม่ มันไม่สามารถยืนยันว่าข้อมูลภายนอกได้ถูกเผยแพร่ให้กับทุกคน
การโจมตีการกักตัวข้อมูลนี้เปิดโอกาสให้สร้างคำสัญญาสำหรับข้อมูลที่จะเผยแพร่และนำมาใช้ในการเปิดrollup แต่ข้อมูลจริงๆ ไม่สามารถใช้งาน นั้นทำให้ผู้ใช้ไม่สามารถถอนเงิน สิ่งที่แก้ไขได้จริงคือการพึ่งพาค่าและโครงสร้างส่งเสริมจาก BTC ที่เป็นแนวทางที่แท้จริง
สิ่งนี้ก่อให้เกิดความลำบากให้กับ rollup โดยทั่วไปเมื่อพิจารณาถึงปัญหาความสามารถในการเข้าถึงข้อมูล มีทางเลือกอยู่สองตัว คือการเผยแพร่ข้อมูลไปยังบล็อกเชน BTC หรือสถานที่อื่น การเลือกนี้มีผลกระทบต่อความปลอดภัยและความเป็นเจ้าของของ rollup และความยืดหยุ่นในการขยายของมัน
ในที่สุดฝ่ายหนึ่งใช้บล็อก BTC เป็นชั้นข้อมูลที่ใช้ได้จะให้ข้อจำกัดที่แน่นอนสำหรับความสามารถในการขยายของ rollup พื้นที่บล็อกจำกัดจำนวน rollup ที่อาจมีอยู่ในครั้งเดียวและจำนวนธุรกรรมทั้งหมดที่ rollup ได้รับการประมวลผลนอกเส้นในบล็อก แต่ละครั้งที่มีการอัปเดต rollup จะต้องมีพื้นที่บล็อกที่สัมพันธ์กับจำนวนบัญชีที่มีความเปลี่ยนแปลงในยอดคงเหลือตั้งแต่การอัปเดตล่าสุดของบล็อก ทศวรรษสารสนเทศอนุญาตให้ข้อมูลถูกบีบอัดเป็นขั้นต่ำ ในที่สุดไม่มีโอกาสขยายออกไปอีก
ในด้านอื่น ๆการใช้ชั้นที่แตกต่างกันเพื่อให้มีความสามารถในการใช้งานของข้อมูลจะกำจัดขีดจำกัดที่เกี่ยวกับความเป็นไปได้ในการขยายของมัน แต่มันก็มาพร้อมกับปัญหาด้านความปลอดภัยและปัญหาที่เกี่ยวกับอำนาจของรัฐบาล ใน Rollup ที่ใช้ BTC เพื่อให้มีความสามารถในการใช้งานของข้อมูล หากผู้ใช้ต้องการดึงข้อมูลที่ไม่ได้เผยแพร่โดยอัตโนมัติบนบล็อกเชน Rollup จะไม่สามารถเปลี่ยนสถานะได้ การใช้ Validiums การรับประกันนี้จะขึ้นอยู่กับความสามารถของระบบภายนอกที่ใช้งานเพื่อต่อต้านการโกงและการซ่อนข้อมูล
ขณะนี้ผู้ผลิตบล็อกในระบบความสามารถในการใช้ข้อมูลภายนอกสามารถโจมตีเงินทุนของผู้ใช้ BTCRollup โดยการผลิตบล็อกแทนที่จะกระจายบล็อกจริง ๆ ซึ่งจะทำให้ข้อมูลสามารถใช้ได้
แล้วถ้าเราจริงๆ ต้องการให้ Rollup บน BTC ทำงานอย่างเหมาะสม และให้ผู้ใช้สามารถถอนเงินได้อย่างเดียว มันจะเป็นอย่างไรล่ะ?