บทความนี้คัดลอกมาจาก: Decentralized Financial Community; ผู้แต่ง: ChinaDeFi; พิมพ์ซ้ำโดยได้รับอนุญาต
Arbitrum Rollup เป็นโปรโตคอลนอกเครือข่ายที่ควบคุมโดยสัญญา Ethereum บนเครือข่าย นักพัฒนา dApp มีชุดสัญญาที่เขียนด้วย Solidity ซึ่งนักพัฒนารวบรวมไว้ใน Arbitrum virtual machine (VM) เพื่อรันบน Arbitrum Rollup เราต้องการให้พวกเขาวิ่งเร็ว
พื้นฐานของ Rollups
เริ่มจากพื้นฐานกันก่อน สถานะของ VM ถูกจัดระเบียบเป็น Merkle tree ดังนั้นจึงสามารถคำนวณแฮชการเข้ารหัสของสถานะ VM ได้ ณ จุดใดก็ตามในโปรโตคอล สถานะบางอย่างของ VM จะได้รับการยืนยันโดยสมบูรณ์ แฮชของมันถูกเก็บไว้ในห่วงโซ่
ผู้เข้าร่วมโปรโตคอลสามารถทำการยืนยันแบบโต้แย้ง (DA) ซึ่งอ้างว่าเริ่มต้นด้วยสถานะแฮชที่แน่นอน ภายใต้ข้อกำหนดเบื้องต้นทางเทคนิคบางประการ VM สามารถดำเนินการขั้นตอนการคำนวณตามจำนวนที่ระบุ ส่งผลให้เกิดแฮชสถานะใหม่ที่ระบุ และ VM ทำการชำระเงินที่ระบุและปล่อยเหตุการณ์บันทึกที่ระบุระหว่างการคำนวณนั้น DA อาจถูกต้อง (เช่น จริง) หรือไม่ถูกต้อง ฝ่ายที่สร้าง DA จะต้องฝากความถูกต้องของ DA
การยืนยันที่โต้แย้งสร้างจุดตัดสินใจสำหรับโปรโตคอล
ดังที่แสดงทางด้านซ้าย การยืนยันที่โต้แย้งจะสร้างจุดตัดสินใจเชิงตรรกะซึ่งในที่สุดโปรโตคอลจะต้องได้รับการแก้ไข หาก DA ถูกต้อง ระบบจะป้อนสถานะใหม่ที่มุมขวาบน พร้อมแฮชสถานะใหม่ และผลข้างเคียง (การชำระเงินและบันทึก) ที่ระบุใน DA หรือในสาขาอื่น DA ไม่ถูกต้อง มันถูกปฏิเสธและสถานะยังคงเหมือนเดิม
โปรโตคอลอนุญาโตตุลาการก่อนหน้านี้
โปรโตคอลอนุญาโตตุลาการดั้งเดิมจะจัดการการยืนยันข้อพิพาททีละรายการ DA จะถูกอ้างสิทธิ์โดยใครบางคน จากนั้นช่วงการท้าทายจะผ่านไปในระหว่างที่ทุกคนสามารถท้าทาย DA หากไม่มีการคัดค้าน DA จะได้รับการยืนยัน มิฉะนั้น โปรโตคอลข้อพิพาทจะถูกเรียกใช้และ DA จะถูกยกเลิก
นี่เป็นเรื่องง่าย แต่มีข้อเสียสองประการ ประการแรก เนื่องจากสามารถเปิดใช้งาน DA ได้ครั้งละหนึ่งรายการเท่านั้น ความเร็วของการประมวลผลของ VM จะถูกจำกัด โดยพื้นฐานแล้ว กระบวนการจะต้องหยุดลงในแต่ละความท้าทาย ประการที่สอง ผู้ประสงค์ร้ายสามารถหยุดการทำงานของ VM ได้โดยการจงใจท้าทาย DA ทั้งหมดที่สร้างโดย VM นั้น การทำเช่นนี้จะทำให้ผู้โจมตีเสียค่าใช้จ่ายหลายระดับ แต่ถ้าพวกเขายินดีจ่ายค่าใช้จ่ายดังกล่าว พวกเขาอาจทำให้ความคืบหน้าล่าช้าเป็นเวลานาน อย่างน้อยก็ในบางกรณี
ใหม่ ปรับปรุงโปรโตคอล Arbitrum
โปรโตคอล Arbitrum Rollup ใหม่แก้ไขข้อบกพร่องทั้งสองนี้ DA หลายตัวสามารถ "ไปป์ไลน์" เพื่อให้ VM สามารถดำเนินการได้เร็วที่สุดเท่าที่การคำนวณของโปรแกรมตรวจสอบจะจำลอง VM ประการที่สอง ดังที่เราจะเห็นด้านล่าง "ผู้ไม่ประสงค์ดีไม่สามารถชะลอความคืบหน้าได้ พวกเขาสามารถชะลอการรับรู้ผลลัพธ์แบบออนไลน์ที่ "ไม่น่าเชื่อถือ" อยู่แล้วสำหรับผู้กระทำการที่ซื่อสัตย์ได้ชั่วคราวเท่านั้น
เป็นไปได้อย่างไร?
แต่ละรัฐสามารถมี DA ตามหลังรัฐได้สูงสุดหนึ่งแห่ง หาก DA ไม่เป็นไปตามสถานะ ทุกคนสามารถสร้าง DA ที่ติดตามสถานะนั้นได้ ซึ่งจะเป็นการสร้างจุดสาขาใหม่ ผลลัพธ์อาจเป็นต้นไม้ในอนาคตที่เป็นไปได้
จำนำ
จำนำ
ส่วนที่สำคัญอีกประการหนึ่งของโปรโตคอลคือการปักหลัก ทุกคนสามารถเดิมพันในกล่องสี่เหลี่ยมบนต้นไม้ ผู้ใช้สามารถยืนยันได้ว่าในที่สุดสี่เหลี่ยมจัตุรัสจะได้รับการยืนยันโดยโปรโตคอล ผู้ใช้ยืนยันว่ามีสาขาที่ถูกต้องในแต่ละ DA บนเส้นทางจากสถานะปัจจุบันไปยังช่องสี่เหลี่ยมที่เขาวางไว้ เข้าใจผิดและผู้ใช้อาจสูญเสียเงินเดิมพันของคุณ
ไม่สามารถเพิกถอนการดำเนินการจำนำได้ ผู้ใช้สามารถย้ายเงินฝากของตนไปทางขวา—ขึ้นหรือลงที่จุดสาขาแต่ละแห่ง—แต่ไม่ใช่ไปทางซ้าย เนื่องจากจะเท่ากับการยกเลิกคำมั่นสัญญาก่อนหน้านี้
ฝ่ายที่ทำการอ้างสิทธิ์ที่มีข้อโต้แย้งจะต้องเดิมพันกับผู้สืบทอด "DA ที่ถูกต้อง" ของ DA โดยปกติแล้ว พวกเขาสามารถตอบสนองความต้องการนี้ได้โดยการย้ายสิ่งที่มีอยู่ไปทางขวาเพื่อวางไว้บนตารางถัดไปที่ต้องการ (ในกรณีที่หายาก พวกเขาไม่สามารถทำเช่นนี้ได้ พวกเขาสามารถเดิมพันส่วนเพิ่มพิเศษในช่องสี่เหลี่ยมที่ต้องการ แต่โปรดทราบว่าพวกเขาจะวางเดิมพันในสองเส้นทางที่ไม่ตรงกัน ดังนั้นในที่สุดพวกเขาจะต้องสูญเสียอย่างน้อยหนึ่งในสองเส้นทาง คำมั่นสัญญา - ไม่ควรขัดแย้งกับตัวเอง)
รายละเอียดอื่นๆ เกี่ยวกับการจำนำคือ: หากบล็อกที่ผู้ใช้ให้คำมั่นสัญญาได้รับการยืนยันและกลายเป็นบันทึกประวัติศาสตร์ที่ยอมรับ ผู้ใช้สามารถเลือกถอนเงินฝากที่จำนำได้ ซึ่งหมายความว่าหากผู้ใช้ถูกต้อง พวกเขาสามารถรักษาเงินเดิมพันของตนไว้และรอให้ระบบ "ตามทัน" ด้วยตัวเอง จากนั้นผู้ใช้จะสามารถรับเงินเดิมพันคืนได้
ต้นไม้สถานะทั่วไป - ชุดของการยืนยันที่แท้จริง
ณ จุดนี้ ผู้ใช้อาจกังวลว่าต้นไม้ความเป็นไปได้อาจมีขนาดใหญ่มากและแตกกิ่งก้านสาขา สิ่งนี้ไม่น่าจะเกิดขึ้นในทางปฏิบัติ เนื่องจากต้องมีหลายฝ่ายที่ต้องเดิมพันกับผลลัพธ์ที่ไม่สอดคล้องกัน มีเพียงหนึ่งเดียวเท่านั้นที่สามารถถูกได้ และคนอื่นๆ ทุกคนจะสูญเสียเดิมพันของตน เป็นไปได้มากว่า "ต้นไม้" นั้นเป็นห่วงโซ่ DA ที่ถูกต้อง ทีละอัน เดิมพันในผลลัพธ์เดียวกันทั้งหมด
กำหนดเวลาจำนำ
เราต้องการให้ระบบตัดสินใจเกี่ยวกับการยืนยันที่มีข้อโต้แย้งแต่ละข้อก่อนที่จะใช้เวลานานเกินไป ดังนั้น เมื่อมีการเพิ่ม DA ในห่วงโซ่ การสร้างจุดสาขา วันหมดอายุจะเชื่อมโยงกับ DA นี้ ในอนาคต เมื่อเส้นตายยาวพอ ทุกคนจะมีเวลาตรวจสอบว่า DA นั้นถูกต้องหรือไม่ และถ้าพวกเขาเลือกที่จะทำเช่นนั้น รับธุรกรรมออนไลน์จากผลลัพธ์ของ DA หากผู้ใดต้องการดำเนินการเพื่อสนับสนุนหรือคัดค้านความถูกต้องของ DA นี้ จะต้องดำเนินการก่อนกำหนด (เงินฝากเดิมพันยังคงสามารถนำมาใช้ได้หลังจากกำหนดเส้นตาย แต่จะไม่เกี่ยวข้องกับการตัดสินใจว่าจะสนับสนุน DA หรือไม่) เมื่อถึงกำหนดเส้นตาย เงินฝากจำนำทั้งหมดที่เกี่ยวข้องกับการตัดสินใจของ DA จะเป็นที่รู้จัก
ข้อพิพาท
หากอลิซและบ็อบเดิมพันในช่องสี่เหลี่ยมที่แตกต่างกัน หนึ่งในสองสิ่งจะเป็นจริง ทั้งสองจะมีเส้นทางไปทางขวา จากเส้นทางหนึ่งไปยังอีกเส้นทางหนึ่ง หมายความว่าการอ้างสิทธิ์ของพวกเขาสอดคล้องกัน หรือจะไม่มีเส้นทางดังกล่าว ถ้าไม่มีทางเลื่อนขวาที่เชื่อมระหว่างช่องสี่เหลี่ยมของอลิซและบ็อบ พวกเขาก็ต้องแยกทางไม่ทางใดก็ทางหนึ่ง จะมีจุดขัดแย้งระหว่างกันเสมอ - DA เฉพาะที่การเดิมพันหนึ่งถูกต้องในขณะที่การเดิมพันอื่นไม่ถูกต้อง
อลิซและบ็อบกำลังเตรียมโต้เถียงกัน
เมื่อเกิดข้อพิพาทระหว่างสองฝ่าย ระบบสามารถเริ่มต้นโปรโตคอลการระงับข้อพิพาทแบบโต้ตอบระหว่างสองฝ่าย
ผลของข้อตกลงการระงับข้อพิพาทจะพบว่าฝ่ายใดฝ่ายหนึ่งไม่ถูกต้อง ฝ่ายนั้นจะสูญเสียพันธบัตรจำนำของตน พันธบัตรจำนำจะถูกล้างออกจากตารางที่เปิดอยู่ ส่วนหนึ่งจะตกเป็นของอีกฝ่ายในการโต้เถียง และส่วนที่เหลือจะถูกเผา
ข้อพิพาทหลายรายการสามารถดำเนินการได้ในเวลาเดียวกัน แต่ผู้วางเดิมพันแต่ละรายสามารถมีส่วนร่วมในข้อพิพาทได้สูงสุดครั้งละหนึ่งรายการเท่านั้น การโต้แย้งแต่ละครั้งจะลดจำนวนความขัดแย้งในระบบลง เนื่องจากเงินเดิมพันของผู้แพ้จะถูกล้าง ฝ่ายที่สูญเสียเงินฝากจำนำสามารถเดิมพันใหม่ได้หากต้องการ แต่เงินฝากจำนำใหม่จะไม่สามารถส่งผลกระทบต่อ DA ที่เลยระยะเวลาจำนำ ผลลัพธ์ของสิ่งนี้คือหลังจากช่วง Stake ของ DA ผ่านไป ข้อพิพาทจะค่อยๆ ขจัดความไม่ลงรอยกันใดๆ เกี่ยวกับวิธีปฏิบัติต่อ DA
ตรวจสอบผลลัพธ์
เมื่อเส้นตายการเดิมพันของ DA ผ่านไปและการเดิมพันที่เหลืออยู่ทั้งหมดตามเวลาที่กำหนด (ก่อนเส้นตายที่กำหนดไว้) อยู่บนทางแยกเดียวกันของ DA นั้น ระบบจะสามารถยืนยันผลลัพธ์ของ DA นั้นได้ DA ได้รับการยอมรับหรือปฏิเสธ และสถานะปัจจุบันจะย้ายไปยังช่องสี่เหลี่ยมที่เหมาะสมทางด้านขวาของ DA หาก DA ได้รับการยืนยันว่าถูกต้อง ผลข้างเคียง (เช่น การชำระเงิน) จะถูกนำไปใช้ในเครือข่าย และนี่คือวิธีที่สถานะของ VM ก้าวไปข้างหน้า
โดยปกติแล้ว ฝ่ายต่างๆ จะดำเนินการอย่างตรงไปตรงมาเพราะไม่ต้องการเสียผลประโยชน์จากการอ้างสิทธิ์ที่เป็นเท็จ ในห่วงโซ่เดียว เฉพาะ DA ที่ถูกต้องเท่านั้นที่จะถูกยืนยัน และไม่มีใครจะเดิมพันกับ Fork ของ DA ที่ไม่ถูกต้อง ในกรณีนี้ DA แต่ละรายการจะได้รับการยืนยันทันทีเมื่อระยะเวลาเดิมพันหมดลง
ทำไมมันไม่น่าเชื่อถือ
คุณสมบัติที่สำคัญของ Arbitrum Rollup คือไม่มีความน่าเชื่อถือ - ฝ่ายที่ซื่อสัตย์สามารถบังคับให้ VM ทำงานได้อย่างถูกต้องและสร้างความก้าวหน้าได้ ลองนึกภาพว่าอลิซมักจะเดิมพันในสาขาจริงของ DA แต่ละแห่ง และถ้าต้นไม้ว่าง เธอก็ยืนยัน DA
เนื่องจากอลิซถูกเดิมพันด้วยสาขาที่แท้จริง เธอจึงชนะทุกข้อโต้แย้งที่เธอเข้าร่วม หากผู้อื่นไม่เห็นด้วยกับอลิซ พวกเขา (ก) อาจสูญเสียพันธะในข้อพิพาทที่ไม่เกี่ยวข้องกับบุคคลที่สาม หรือ (ข) ลงเอยด้วยการโต้เถียงกับอลิซและสูญเสียพันธะที่มีต่อเธอ ไม่ว่าจะด้วยวิธีใด ทุกคนที่ไม่เห็นด้วยกับอลิซจะต้องสูญเสียเดิมพัน เฉพาะผู้ที่เห็นด้วยกับอลิซเท่านั้นที่จะอยู่รอด ดังนั้นเส้นทางของอลิซผ่านต้นไม้จะเป็นเพียงผู้เดียวที่ชิงเวลาได้ในที่สุด - เส้นทางของอลิซจะได้รับการยืนยันเช่นกัน
ถ้าอลิซเป็นคนซื่อสัตย์ ไม่ว่าคนอื่นจะทำอะไร สี่เหลี่ยมสีเขียวจะได้รับการยืนยันในที่สุด
เนื่องจากระบบไม่ไว้วางใจในกรณีนี้ หากอลิซวางเดิมพันบนจัตุรัสและเธอรู้ว่าเส้นทางไปยังจัตุรัสนั้นมีอยู่จริง อลิซจึงมั่นใจได้ว่าจัตุรัสที่เธออยู่จะได้รับการยืนยันในที่สุด สำหรับอลิซ เส้นทางนี้ดีพอ ๆ กับเส้นทางสุดท้าย
แม้ว่าผู้ใช้จะไม่ได้เดิมพันบนเส้นทางใด หากเขาเห็นคนหลายคนกำลังเดิมพันบนเส้นทางนั้น และผู้ใช้เองเชื่อว่าอย่างน้อยหนึ่งคนเหล่านั้นซื่อสัตย์ เส้นทางนี้ดีพอๆ กับเส้นทางสุดท้าย
ประโยชน์ของผลลัพธ์ที่ไม่ไว้วางใจ
เหตุใดผลลัพธ์ที่ไม่น่าเชื่อถือจึงมีค่า ตัวอย่างคลาสสิกนี้มาจากการอภิปรายก่อนหน้านี้เกี่ยวกับโปรโตคอลการยกเลิกอื่นๆ สมมติว่า VM ต้องการจ่ายเงินให้อลิซ เหตุการณ์การชำระเงินเกิดขึ้นบนเส้นทางที่ซื่อสัตย์ แต่จะใช้เวลาสักครู่ก่อนที่จะมีการยืนยันออนไลน์ของช่องที่มีการชำระเงินเกิดขึ้น
ผลลัพธ์ของความไม่ไว้วางใจทำให้อลิซเข้าถึงเงินของเธอได้ทันที หาก Bob มีเงินที่ไม่ได้เดิมพัน เขาสามารถมอบให้กับ Alice ได้ทันทีเพื่อแลกกับที่ Alice จะกำหนดการชำระเงินที่ยังไม่ยืนยันในอนาคตให้กับ Bob (รวมทั้งจ่ายค่าธรรมเนียมขั้นต่ำให้กับ Bob) Bob สามารถรับประกันสิ่งนี้ได้ด้วยการวางเดิมพันในผลลัพธ์ที่ซื่อสัตย์ จากนั้นเขาสามารถรอการยืนยันการชำระเงินในท้ายที่สุดได้อย่างมั่นใจ ไม่ใช่แค่บ๊อบเท่านั้นที่ทำได้ ใครก็ตามที่มีพันธะสามารถให้อลิซและคนอื่นๆ เช่นเธอยืมได้ด้วยวิธีเดียวกัน คนเหล่านี้สามารถแข่งขันกันเองโดยเสนอค่าธรรมเนียมที่ต่ำกว่า ลดต้นทุนในการรับพันธบัตรของอลิซ
ประเด็นก็คือความมีชีวิตของกลไกตลาดนี้ขึ้นอยู่กับผลลัพธ์สุดท้ายของความไม่ไว้วางใจ หาก "ทุกคน" รู้อยู่แล้วว่าบางสิ่งจะได้รับการยืนยันในที่สุด ความล่าช้าในการยืนยันแบบออนไลน์จะไม่สร้างความรำคาญให้น้อยลง
สิ่งนี้ไม่เพียงนำไปใช้กับการชำระเงินเท่านั้น แต่ยังรวมถึงสิ่งอื่นๆ ที่ VM ทำเช่นกัน หาก VM ปล่อยรายการบันทึกเพื่อแจ้งว่ามีบางอย่างเกิดขึ้น ผลลัพธ์ที่ไม่น่าเชื่อถือหมายความว่าทุกคนสามารถมั่นใจได้ว่ารายการบันทึกจะถูกระบุในเครือข่าย
การโจมตีล่าช้า
เนื่องจากระบบไม่น่าเชื่อถือ ผู้ประสงค์ร้ายจึงไม่สามารถบังคับผลลัพธ์ที่ไม่ถูกต้องได้ สิ่งที่พวกเขาทำได้คือทำให้กระบวนการช้าลง การทำเช่นนี้ทำให้พวกเขาต้องเสียสละเงินเดิมพันซึ่งอาจมีราคาแพงหากเงินเดิมพันมีจำนวนมาก
สมมติว่ามีคนต้องการเปิดการโจมตีล่าช้า พวกเขาเต็มใจที่จะเสียสละพันธะสัญญา ความเสียหายที่เลวร้ายที่สุดที่พวกเขาสามารถทำได้คืออะไร?
สิ่งแรกที่ควรทราบคือผู้ประสงค์ร้ายไม่สามารถขัดขวางผู้ซื่อสัตย์ไม่ให้สร้างกิ่งก้านสาขาที่ซื่อสัตย์ต่อไปได้ นอกจากนี้ยังไม่สามารถป้องกันผู้ไว้วางใจที่ซื่อสัตย์จากการได้รับความไว้วางใจที่ไม่น่าเชื่อถือ เมื่อในที่สุดพวกเขาก็ยืนยันส้อมที่ซื่อสัตย์
สิ่งที่ผู้โจมตีทำได้คือเดิมพันกับสาขาปลอมเพื่อชะลอการยืนยันเส้นทางที่ซื่อสัตย์บนเครือข่าย ทุกๆ เดิมพันที่พวกเขาวางไว้จะสร้างความขัดแย้งมากขึ้นสำหรับผู้กระทำการที่ซื่อสัตย์ ซึ่งเป็นผู้ถอนเงินเดิมพันส่วนใหญ่ของผู้โจมตี เมื่อยึดผลประโยชน์ของผู้โจมตีทั้งหมดแล้ว กระบวนการออนไลน์จะดำเนินต่อไป
จะเป็นอย่างไรหากผู้โจมตีวางความเสี่ยงหลายอย่างกับผลลัพธ์ที่ไม่ถูกต้อง จากนั้น เงินฝากที่จำนำเหล่านี้จะถูกถอนออกไปทีละรายการในข้อพิพาท หากมีคนหลายคนเข้าร่วมในผลลัพธ์ที่เที่ยงตรง คนเหล่านั้นก็สามารถเปิดข้อพิพาทกับผู้โจมตีได้ โดยถอนพันธะสัญญาของผู้โจมตีไปพร้อมกัน โปรดทราบว่าทุกคนจะมีมุมมองที่ชัดเจนเกี่ยวกับสิ่งที่เกิดขึ้น และหลายคนต้องการเข้าร่วมในการดำเนินการ โดยวางเดิมพันในผลลัพธ์ที่แท้จริง เพื่อที่พวกเขาจะได้เข้าร่วมกับกลุ่มคนที่ใช้การโต้เถียงเพื่อปล้นผู้โจมตีกลางงาน บ้าจำนอง หากมีคน K เดิมพันในด้านที่ซื่อสัตย์ ผู้โจมตีจะใช้เงินฝาก K ที่เดิมพันเพื่อซื้อการระงับข้อพิพาท สิ่งนี้สามารถดึงดูดนักวางเดิมพันที่ซื่อสัตย์มากขึ้น หากผู้โจมตีวางเงินเดิมพันที่มากขึ้น นี่เป็นไดนามิกที่ไม่ดีสำหรับผู้โจมตี
การเพิ่มประสิทธิภาพ
การปรับให้เหมาะสมต่างๆ มีศักยภาพในการลดปริมาณการทำบัญชีบนเครือข่ายที่จำเป็นในการดำเนินการโปรโตคอล และลดต้นทุนก๊าซในเครือข่าย


