*ส่งต่อชื่อดั้งเดิม:สำรวจ Canonical Ethereum Bridge และระบบพิสูจน์ของ Eclipse
Eclipse ประกอบด้วยสามชั้น:
แผนภาพด้านล่างแสดงให้เห็นว่าโมดูลเหล่านี้โต้ตอบกันอย่างไร:
ส่วนที่เหลือของบทความนี้จะเน้นไปที่ Ethereum Bridge ของ Eclipse ดังที่แสดงในแผนภาพ Blobstream จะส่งการรับรองที่ลงนามโดยเครื่องมือตรวจสอบความถูกต้องของ Celestia เพื่อรับรองกับ Ethereum ว่าข้อมูลสำหรับชุดสล็อตของ Eclipse ได้รับการเผยแพร่อย่างถูกต้อง ซึ่งช่วยให้บริดจ์ของ Eclipse สามารถตรวจสอบข้อมูลที่ให้ไว้สำหรับการพิสูจน์การฉ้อโกงกับรากข้อมูลที่ลงนามจาก Celestia ในส่วนที่เหลือของส่วนนี้ เราจะสรุปกระบวนการโดย:
ขั้นตอนเมื่อผู้ใช้ฝากเข้าสู่ Eclipse ผ่านทาง Ethereum Bridge ดั้งเดิมสรุปได้ดังนี้:
แผนภาพด้านล่างแสดงปฏิสัมพันธ์ระหว่าง Ethereum, Celestia และ SVM Executor ในระหว่างขั้นตอนการฝากเงินที่อธิบายไว้ข้างต้น:
โฟลว์สำหรับการเผยแพร่แบทช์ของสล็อตของ Eclipse ไปยัง Celestia เนื่องจาก data blobs สรุปไว้ด้านล่าง:
แผนภาพด้านล่างจาก Celestia อธิบายว่าความมุ่งมั่นของข้อมูลภายในบล็อก Celestia ที่กำหนดถูกจัดเก็บไว้ในส่วนหัวของบล็อกอย่างไร:
เช่นเดียวกับ L2 อื่นๆ ที่ใช้หลักฐานการฉ้อโกง (Arbitrum, Fuel และอื่นๆ อีกมากมาย) การถอนออกจาก Eclipse ต้องใช้ระยะเวลาที่ท้าทาย ซึ่งผู้ตรวจสอบสามารถส่งหลักฐานการฉ้อโกงได้ในกรณีของการเปลี่ยนสถานะที่ไม่ถูกต้อง:
ในส่วนสุดท้ายนี้ เราจะให้รายละเอียดเกี่ยวกับการออกแบบระบบป้องกันการฉ้อโกงของ Eclipse ซึ่งได้รับแรงบันดาลใจจาก Anatoly Yakovenko และ John Adler โดยทั่วไป สำหรับการพิสูจน์การฉ้อโกง ผู้ตรวจสอบจะต้อง:
ในกรณีของ Eclipse (1) Celestia รวบรวมกลุ่มของบล็อกที่ผู้ดำเนินการ SVM ของ Eclipse โพสต์ เพื่อให้สามารถพิสูจน์การรวมธุรกรรมผ่านพยานของ Merkle สำหรับ (2) ซึ่งแตกต่างจาก L2 ที่ใช้ EVM ซึ่งโพสต์ Merkle root ไปยังแผนผังสถานะส่วนกลาง ด้วยเหตุผลด้านประสิทธิภาพ Eclipse จะไม่อัปเดตแผนผังสถานะส่วนกลางแบบทีละธุรกรรม แต่เราจะอธิบายว่าเรามั่นใจได้อย่างไร ความถูกต้องของอินพุตโดยละเอียดเพิ่มเติมด้านล่าง สุดท้าย ในกรณีของ (3) ตัวตรวจสอบของ Eclipse จะสร้าง zk-proof ของเอาต์พุตสำหรับธุรกรรมที่กำหนด ซึ่งแตกต่างจาก แนวทางเกมการตรวจสอบเชิงโต้ตอบ ที่ใช้กันทั่วไปใน L2 ที่ใช้ EVM
ธุรกรรม Eclipse ทั้งหมดสามารถแสดงเป็นรายการบัญชีอินพุต ดำเนินธุรกรรม และสร้างรายการบัญชีเอาต์พุตที่เป็นผลลัพธ์:
ข้อสังเกตที่สำคัญสำหรับการออกแบบป้องกันการฉ้อโกงของเราคือสำหรับการดำเนินการธุรกรรม จะเป็นกรณีที่ S_InputAccount ใดๆ ต้องเป็น S_OutputAccount ของธุรกรรมก่อนหน้าบางรายการเสมอ สิ่งนี้ช่วยให้เราสามารถอ้างอิงธุรกรรมล่าสุดในห่วงโซ่ที่สร้างบัญชีอินพุตที่กำหนด แทนที่จะให้พยาน Merkle แก่แผนผังสถานะทั่วโลก จากการออกแบบของเรา เราได้แนะนำประเภทข้อกล่าวหาเรื่องการฉ้อโกงเพิ่มเติม เช่น การอ้างอิงถึงธุรกรรมก่อนหน้านี้ไม่ถูกต้อง หรือบัญชีอินพุตถูก "ใช้" ไปแล้วโดยธุรกรรมบางรายการในภายหลัง เราอธิบายกระบวนการนี้โดยละเอียดด้านล่าง:
นอกจากนี้ ชุดข้อมูลธุรกรรมที่โพสต์ไปยัง Celestia ยังมีข้อผูกพันที่ถ่ายทอดไปยังสัญญา Ethereum ข้อผูกพันประกอบด้วย:
ตามที่อธิบายไว้ข้างต้น มีหลายวิธีที่จะพบว่าแบทช์ไม่ถูกต้อง:
หากพบว่าชุดข้อผูกพันใดๆ ไม่ถูกต้อง สัญญาบริดจ์ Eclipse จะย้อนกลับบริดจ์กลับไปเป็นชุดข้อผูกมัดที่ถูกต้องที่พิสูจน์ได้ล่าสุด โปรดทราบว่าธุรกรรมจะไม่ถูกลบออกจากห่วงโซ่ แม้ในกรณีของการฉ้อโกง ดังนั้นจึงจำเป็นต้องคำนวณข้อผูกมัดใหม่เท่านั้น
บทความนี้มีวัตถุประสงค์เพื่อให้คำแนะนำระดับสูงเกี่ยวกับบริดจ์ที่ลดความน่าเชื่อถือของ Eclipse บน Ethereum และอธิบายรายละเอียดบางอย่างเกี่ยวกับการออกแบบที่ป้องกันการฉ้อโกงของเรา เนื่องจากลักษณะโมดูลาร์ของ L2 ของเราและการก่อตั้งกลุ่มเทคโนโลยีของเรา เราจะเผยแพร่บทความและเอกสารประกอบเกี่ยวกับแง่มุมต่างๆ ของ Eclipse ต่อไปในอีกไม่กี่สัปดาห์ข้างหน้า
หากต้องการมีส่วนร่วมกับ Eclipse Testnet โปรดปฏิบัติตามคำแนะนำของเรา ที่นี่ คุณสามารถติดต่อเราได้ทาง Twitter หรือ Discord หากมีคำถามเฉพาะเกี่ยวกับ Testnet, Bridge หรือคำถามด้านเทคนิค
[1]: โหนดที่คำนวณผลลัพธ์ของธุรกรรม SVM และใช้เอาต์พุตสุดท้ายกับสถานะใหม่ของ Eclipse
[2]: ตัวดำเนินการที่ส่งผ่านเหตุการณ์ออนไลน์ระหว่าง Ethereum และ Eclipse
[3]: โปรดทราบว่าผู้ดำเนินการ ไม่ใช่ซีเควนเซอร์ โพสต์สิ่งนี้ หากรวมอยู่ในข้อมูลที่โพสต์โดยซีเควนเซอร์ มันจะเพิ่มความยุ่งยากที่ซีเควนเซอร์สามารถข้ามไปนับได้ ทำให้เป็นไปไม่ได้ที่ผู้ดำเนินการจะทำงานได้อย่างถูกต้อง สิ่งนี้สามารถชดเชยได้ในการออกแบบที่ป้องกันการฉ้อโกง แต่จะเพิ่มความซับซ้อนเป็นพิเศษ ข้อได้เปรียบประการที่สองของการมีเพียงผู้ดำเนินการที่โพสต์การนับคือ ช่วยให้สามารถโพสต์การแทนที่ธุรกรรมไปยัง Celestia ได้อย่างง่ายดาย หากต้องการ
[4]: บัญชี SVM สามารถแสดงด้วยแฮชที่ไม่ซ้ำใคร วิธีเดียวที่จะแก้ไขแฮชนี้คือผ่านธุรกรรม
[5]: เพื่อดำเนินการนี้โดยไม่ต้องมีการแฮชมากเกินไป เราจะเรียกใช้การติดตามในแต่ละโปรแกรมที่ดำเนินการเพื่อดูว่าส่วนใดของ sysvar ที่ใช้แต่ละอันที่เข้าถึงได้จริง สิ่งนี้เป็นไปได้ แต่จะต้องมีการแก้ไขล่าม BPF ของ Solana
[6]: รวมถึงข้อมูลสำหรับธุรกรรมที่พยายามดำเนินการซึ่งล้มเหลวในการดำเนินการ
*ส่งต่อชื่อดั้งเดิม:สำรวจ Canonical Ethereum Bridge และระบบพิสูจน์ของ Eclipse
Eclipse ประกอบด้วยสามชั้น:
แผนภาพด้านล่างแสดงให้เห็นว่าโมดูลเหล่านี้โต้ตอบกันอย่างไร:
ส่วนที่เหลือของบทความนี้จะเน้นไปที่ Ethereum Bridge ของ Eclipse ดังที่แสดงในแผนภาพ Blobstream จะส่งการรับรองที่ลงนามโดยเครื่องมือตรวจสอบความถูกต้องของ Celestia เพื่อรับรองกับ Ethereum ว่าข้อมูลสำหรับชุดสล็อตของ Eclipse ได้รับการเผยแพร่อย่างถูกต้อง ซึ่งช่วยให้บริดจ์ของ Eclipse สามารถตรวจสอบข้อมูลที่ให้ไว้สำหรับการพิสูจน์การฉ้อโกงกับรากข้อมูลที่ลงนามจาก Celestia ในส่วนที่เหลือของส่วนนี้ เราจะสรุปกระบวนการโดย:
ขั้นตอนเมื่อผู้ใช้ฝากเข้าสู่ Eclipse ผ่านทาง Ethereum Bridge ดั้งเดิมสรุปได้ดังนี้:
แผนภาพด้านล่างแสดงปฏิสัมพันธ์ระหว่าง Ethereum, Celestia และ SVM Executor ในระหว่างขั้นตอนการฝากเงินที่อธิบายไว้ข้างต้น:
โฟลว์สำหรับการเผยแพร่แบทช์ของสล็อตของ Eclipse ไปยัง Celestia เนื่องจาก data blobs สรุปไว้ด้านล่าง:
แผนภาพด้านล่างจาก Celestia อธิบายว่าความมุ่งมั่นของข้อมูลภายในบล็อก Celestia ที่กำหนดถูกจัดเก็บไว้ในส่วนหัวของบล็อกอย่างไร:
เช่นเดียวกับ L2 อื่นๆ ที่ใช้หลักฐานการฉ้อโกง (Arbitrum, Fuel และอื่นๆ อีกมากมาย) การถอนออกจาก Eclipse ต้องใช้ระยะเวลาที่ท้าทาย ซึ่งผู้ตรวจสอบสามารถส่งหลักฐานการฉ้อโกงได้ในกรณีของการเปลี่ยนสถานะที่ไม่ถูกต้อง:
ในส่วนสุดท้ายนี้ เราจะให้รายละเอียดเกี่ยวกับการออกแบบระบบป้องกันการฉ้อโกงของ Eclipse ซึ่งได้รับแรงบันดาลใจจาก Anatoly Yakovenko และ John Adler โดยทั่วไป สำหรับการพิสูจน์การฉ้อโกง ผู้ตรวจสอบจะต้อง:
ในกรณีของ Eclipse (1) Celestia รวบรวมกลุ่มของบล็อกที่ผู้ดำเนินการ SVM ของ Eclipse โพสต์ เพื่อให้สามารถพิสูจน์การรวมธุรกรรมผ่านพยานของ Merkle สำหรับ (2) ซึ่งแตกต่างจาก L2 ที่ใช้ EVM ซึ่งโพสต์ Merkle root ไปยังแผนผังสถานะส่วนกลาง ด้วยเหตุผลด้านประสิทธิภาพ Eclipse จะไม่อัปเดตแผนผังสถานะส่วนกลางแบบทีละธุรกรรม แต่เราจะอธิบายว่าเรามั่นใจได้อย่างไร ความถูกต้องของอินพุตโดยละเอียดเพิ่มเติมด้านล่าง สุดท้าย ในกรณีของ (3) ตัวตรวจสอบของ Eclipse จะสร้าง zk-proof ของเอาต์พุตสำหรับธุรกรรมที่กำหนด ซึ่งแตกต่างจาก แนวทางเกมการตรวจสอบเชิงโต้ตอบ ที่ใช้กันทั่วไปใน L2 ที่ใช้ EVM
ธุรกรรม Eclipse ทั้งหมดสามารถแสดงเป็นรายการบัญชีอินพุต ดำเนินธุรกรรม และสร้างรายการบัญชีเอาต์พุตที่เป็นผลลัพธ์:
ข้อสังเกตที่สำคัญสำหรับการออกแบบป้องกันการฉ้อโกงของเราคือสำหรับการดำเนินการธุรกรรม จะเป็นกรณีที่ S_InputAccount ใดๆ ต้องเป็น S_OutputAccount ของธุรกรรมก่อนหน้าบางรายการเสมอ สิ่งนี้ช่วยให้เราสามารถอ้างอิงธุรกรรมล่าสุดในห่วงโซ่ที่สร้างบัญชีอินพุตที่กำหนด แทนที่จะให้พยาน Merkle แก่แผนผังสถานะทั่วโลก จากการออกแบบของเรา เราได้แนะนำประเภทข้อกล่าวหาเรื่องการฉ้อโกงเพิ่มเติม เช่น การอ้างอิงถึงธุรกรรมก่อนหน้านี้ไม่ถูกต้อง หรือบัญชีอินพุตถูก "ใช้" ไปแล้วโดยธุรกรรมบางรายการในภายหลัง เราอธิบายกระบวนการนี้โดยละเอียดด้านล่าง:
นอกจากนี้ ชุดข้อมูลธุรกรรมที่โพสต์ไปยัง Celestia ยังมีข้อผูกพันที่ถ่ายทอดไปยังสัญญา Ethereum ข้อผูกพันประกอบด้วย:
ตามที่อธิบายไว้ข้างต้น มีหลายวิธีที่จะพบว่าแบทช์ไม่ถูกต้อง:
หากพบว่าชุดข้อผูกพันใดๆ ไม่ถูกต้อง สัญญาบริดจ์ Eclipse จะย้อนกลับบริดจ์กลับไปเป็นชุดข้อผูกมัดที่ถูกต้องที่พิสูจน์ได้ล่าสุด โปรดทราบว่าธุรกรรมจะไม่ถูกลบออกจากห่วงโซ่ แม้ในกรณีของการฉ้อโกง ดังนั้นจึงจำเป็นต้องคำนวณข้อผูกมัดใหม่เท่านั้น
บทความนี้มีวัตถุประสงค์เพื่อให้คำแนะนำระดับสูงเกี่ยวกับบริดจ์ที่ลดความน่าเชื่อถือของ Eclipse บน Ethereum และอธิบายรายละเอียดบางอย่างเกี่ยวกับการออกแบบที่ป้องกันการฉ้อโกงของเรา เนื่องจากลักษณะโมดูลาร์ของ L2 ของเราและการก่อตั้งกลุ่มเทคโนโลยีของเรา เราจะเผยแพร่บทความและเอกสารประกอบเกี่ยวกับแง่มุมต่างๆ ของ Eclipse ต่อไปในอีกไม่กี่สัปดาห์ข้างหน้า
หากต้องการมีส่วนร่วมกับ Eclipse Testnet โปรดปฏิบัติตามคำแนะนำของเรา ที่นี่ คุณสามารถติดต่อเราได้ทาง Twitter หรือ Discord หากมีคำถามเฉพาะเกี่ยวกับ Testnet, Bridge หรือคำถามด้านเทคนิค
[1]: โหนดที่คำนวณผลลัพธ์ของธุรกรรม SVM และใช้เอาต์พุตสุดท้ายกับสถานะใหม่ของ Eclipse
[2]: ตัวดำเนินการที่ส่งผ่านเหตุการณ์ออนไลน์ระหว่าง Ethereum และ Eclipse
[3]: โปรดทราบว่าผู้ดำเนินการ ไม่ใช่ซีเควนเซอร์ โพสต์สิ่งนี้ หากรวมอยู่ในข้อมูลที่โพสต์โดยซีเควนเซอร์ มันจะเพิ่มความยุ่งยากที่ซีเควนเซอร์สามารถข้ามไปนับได้ ทำให้เป็นไปไม่ได้ที่ผู้ดำเนินการจะทำงานได้อย่างถูกต้อง สิ่งนี้สามารถชดเชยได้ในการออกแบบที่ป้องกันการฉ้อโกง แต่จะเพิ่มความซับซ้อนเป็นพิเศษ ข้อได้เปรียบประการที่สองของการมีเพียงผู้ดำเนินการที่โพสต์การนับคือ ช่วยให้สามารถโพสต์การแทนที่ธุรกรรมไปยัง Celestia ได้อย่างง่ายดาย หากต้องการ
[4]: บัญชี SVM สามารถแสดงด้วยแฮชที่ไม่ซ้ำใคร วิธีเดียวที่จะแก้ไขแฮชนี้คือผ่านธุรกรรม
[5]: เพื่อดำเนินการนี้โดยไม่ต้องมีการแฮชมากเกินไป เราจะเรียกใช้การติดตามในแต่ละโปรแกรมที่ดำเนินการเพื่อดูว่าส่วนใดของ sysvar ที่ใช้แต่ละอันที่เข้าถึงได้จริง สิ่งนี้เป็นไปได้ แต่จะต้องมีการแก้ไขล่าม BPF ของ Solana
[6]: รวมถึงข้อมูลสำหรับธุรกรรมที่พยายามดำเนินการซึ่งล้มเหลวในการดำเนินการ