# คุณกำลังเข้าใจทุกเรื่องของ Rollups ผิด

By [thesleeper (✨🔴_🔴✨)](https://paragraph.com/@thesleeper) · 2023-09-21

---

ฉีกทุกความเชื่อ! ทำลายทุกกฏเกณฑ์ที่คุณเคยรู้เกี่ยวกับ Rollups ที่ไม่ได้ทำงานในแบบที่เราเคยคิด และไม่ได้ยึดติดกับวิธีการ Proof เลย จริงๆ แล้ว Rollups ทำงานยังไง (ทั้งฝั่ง ORU และ ZKR) [**Kelvin Fichter**](https://twitter.com/kelvinfichter) อธิบายไว้แบบครบๆ อ่านจบรับรองว่าต้องช็อก

จั่วหัวแบบเรียกทัวร์

### **ZK Rollups ไม่มีจริง**

หรือจริงๆ แล้วควรพูดว่า Rollups ทั้งหมดไม่มีจริง คำๆนี้อาจเป็นแค่คำเก๋ๆ ไว้ให้ทีมมาร์เกตติ้งใช้โปรโมท แล้วเชนทั้งสองฝั่งนี้มีวิธีการทำงานยังไง เรามาค่อยๆ ทำความเข้าใจไปพร้อมๆ กัน เครดิตบทความ \*\*[Jon Charbonneau](https://twitter.com/jon_charb) \*\*ที่ย่อยไว้อย่างละเอียดยิบ

![](https://storage.googleapis.com/papyrus_images/dd2ea15aef24220ce0df6ceb3c633b0c80dd32f0266d41ae0b0792008b4e4a6b.png)

จริงๆ แล้ว Rollups ทำงานยังไง?
------------------------------

ต้องปูพื้นฐานกับไปที่ Blockchain101 ซึ่ง **Jon Charbonneau** ได้อธิบายหลักการทำงานของ Blockchain คือ Replicated state machine หรือเครื่องบันทึกสถานะ (State)

![](https://storage.googleapis.com/papyrus_images/08b71c9919d3879332b93410a08ff84f96cd635fe0fd5ba3749b38b44bc3c9a7.png)

**Replicated** ใช้ nodes จำนวนมากบันทึกและถือ state ของ blockchain ไว้  
**State -** สถานะเหมือนการ snapshot ข้อมูลในวันนั้นๆ (เช่น มีใครบ้าง ใครมีเงินเท่าไหร่)  
**Machine -** blockchain ทำหน้าที่บันทึกข้อมูลต่อๆ กันไปตลอดเวลา ทุกๆ คนสามารถอัปเดตผ่าน “state transition function” (STF)

**state transition function” (STF)** นี้เองคือสิ่งสำคัญและจะเป็นตัวการันตีว่า Node ทุก Node จะได้รับข้อมูลและผลลัพธ์เดียวกันเสมอ

มาต่อกันที่ Rollups 101

จากข้อมูลที่เรารู้ๆ กัน Rollups คือ blockchains ที่โพสต์ข้อมูลบล็อกของตัวเองไปยัง blockchain อื่น และยังใช้ **consensus** และ **data availability** (DA) ของ blockchain นั้นๆ

![](https://storage.googleapis.com/papyrus_images/ea1755f06c785098ca7603860ae19f04dcf5dfbef89c6f8de735c2014d600458.png)

นอกจากนี้ Rollups ประกอบด้วย  
\- **Input Data** คือ **ordered array** ของ input data ที่โพสต์ไปยัง blockchain อื่น (DA layer)  
\- **Function** คือสิ่งที่ rollup node software ตกลงร่วมกันเพื่อใช้ในการรัน input data  
**\- Output Data** คือการรัน function บน inputs ให้เป็น outputs เพื่อหา current state

จะเห็นว่าส่วนประกอบของ Rollups ทั้งหมดมีแค่ 3 อย่างนี้  
แต่สิ่งที่แต่ละเจ้าต่างกันคือรายละเอียดในการทำ Implementation ซึ่งแตกต่างกันไประหว่าง Rollups ทั้งสองแบบคือ Smart Contract Rollups และแบบ Sovereign Rollups

**Smart Contract Rollups**
--------------------------

หรือ **Rollups แบบคลาสสิก** ซึ่งจะโพสต์ข้อมูล Tx ลงบน ETH โดยการมัดรวม data availability (DA) และจัดเรียงใหม่ Rollups แบบนี้จะทำงานโดย

**1- Data Availability** การมี DA เพื่อให้มั่นใจว่าสถานะของเชนปลอดภัยและสามารถกู้คืนได้ตลอดเวลา เพราะถ้าคุณไม่รู้ว่า Input คืออะไร ก็ไม่สามารถประมวลผลได้จริงมั้ย?

เทียบ DA ถ้า Data หาย  
**Optimistic rollups (ORUs)** คุณไม่สามารถสร้าง fault proof เพื่อ challenge หา state transition ที่ผิดปกติได้ ถ้า data หายไป  
**ZK-rollups (ZKRs) proof** ทำให้มั่นใจว่า state transition ถูกต้องแต่เราไม่สามารถสร้าง rollup’s state ได้ถ้าเราไม่รู้ data ข้างหลัง

**2- Data Ordering** - การจัดเรียง Data ก็สำคัญแต่ไม่ค่อยมีคนพูดถึงเพราะมันได้มาจากการทำงานของ DA layers เมื่อรัน function ไปยัง Data orderings ที่ต่างกันย่อมได้ outputs ที่ต่างกัน

![](https://storage.googleapis.com/papyrus_images/261f69c648e77172132c514c80aaeb5995d85c1f6482921b3d163e03d48b14e4.png)

**3- Settlement** - rollups เหล่านี้จะทำการ deploy L1 smart contracts บน ETH เพื่อรัน onchain light clients ของ rollup เพื่อ..

*   รองรับ validity proofs/arbitrate fault proofs
    
*   ทำให้สามารถตรวจสอบการบริดจ์ระหว่าง ETH <> Rollups ที่เป็น trust-minimized
    
*   กำหนด “canonical” ให้เชน
    

![](https://storage.googleapis.com/papyrus_images/f3d8ed3a9f2292bb8d99c578d0a0beaaf300efdbc5c5a7babc4804311430eee6.png)

Standard light clients จะเชื่อใน chain’s consensus ส่วนใหญ่ แต่ Rollup light clients พิเศษกว่า เพราะมันจะตรวจสอบความถูกต้องของ rollup’s state transition ถ้ามี sequencer ที่ไม่ซื่อสัตย์ส่ง block ที่มี invalid state transition = Contract Rollups จะ Reject เพื่อปกป้อง Rollups

![](https://storage.googleapis.com/papyrus_images/970afd96d70d899fe7820d2f6ee73c1baa4604b54d8370a8a3c7054e9e14eb2c.png)

Sovereign Rollups
-----------------

เป็น Rollups ที่พึ่งพา Base Layer (ETH หรือ Celestia) เพื่อทำ DA และจัดเรียงบล็อก Rollups กลุ่มนี้จะไม่มี L1 smart contract เพื่อกำหนด canonical chain แต่ใช้ Rollups Node กำหนดได้เอง  
  
วิธีการทำงาน เช็ก DA บน LA > ชี้ canonical (พิสูจน์ fork-choice rule)

**ความแตกต่าง เทียบอย่างกว้างๆ**  
Sovereign Rollups จะรับความปลอดภัย\*บางส่วน\* จาก L1  
แต่ Smart contract rollups จะเหมือนกัน แต่เพิ่มเติมเรื่อง censorship resistance และ Validity ความถูกต้องจาก L1

**Censorship Resistance** Tx ของ User การันตีว่าจะถูกยัดใส่ canonical chain ส่วนนี้มีคนถกว่า sovereign rollups ก็สามารถใช้ DA layer บังคับให้ใส่ Tx ได้ แต่ไม่การันตีว่าจะถูกใส่ใน canonical rollup ส่วน Smart contract rollups จะการันตีให้เข้า canonical เพราะ Base Layer เป็นคนเลือก

![](https://storage.googleapis.com/papyrus_images/1159f0252ee26955de8601115327043c4c99d26134741ccd45b286a0f8697fc6.png)

Validity การ Execute จะเป็นไปตาม state transition function (STF) ของ protocol (สั่งผ่านการทำ validity หรือ fault proofs checked โดยใช้ smart contract)

### นี่คือสิ่งที่เราๆ เชื่อกัน (ผมด้วย) ถ้าไล่เรียงเหตุผลตามนี้ Rollups จะต้องเลือกระหว่าง:

*   Sovereignty (rollup nodes กำหนด canonical chain เองได้)
    

หรือ

*   Trust-minimized composability กับ L1
    

ถ้าเลือกแบบล่างเท่ากับว่า **"Rollup ถูกนิยามการทำงานโดยใช้ validating bridge”**

อธิบายเบสิคการทำงานมายืดยาว โดยเฉพาะในเรื่อง Settlement ที่เป็นตัวกำหนดความเป็น Rollups จาก Proof หลายๆ คนน่าจะพอเข้าใจข้อมูลส่วนนี้อยู่แล้วเตรียมเข้าสู่ด้านมืด ที่บอกว่าสิ่งที่เล่ามาทั้งหมด ไม่ใช่เรื่องจริง และไม่ใช่วิธีการทำงานจริงๆ ของ Rollups เลย **แล้วอะไรล่ะคือความจริง?**

### Settlement เป็นแค่เรื่องเล่า ไม่ใช่เรื่องจริง?

เมื่อพูดถึง Settlement Layer คนส่วนใหญ่หมายถึงการ "Finalize an enshrined bridge" ทำให้มีดราม่าถกเถียงกันมากมาย หลายๆ คนเข้าใจว่า ORU อย่าง Optimism ใช้เวลา Finalize เป็นสัปดาห์จากจุดนี้

จริงๆ แล้ว [Optimism](https://twitter.com/hashtag/Optimism?src=hashtag_click) Finalize ตอนไหน?
----------------------------------------------------------------------------------------------

การทำ **Finality (ยืนยันความถูกต้อง)** ของ ORU ใช้เวลา **7** วันเป็นคำตอบที่ถูกเพียงครึ่งเดียว ระยะเวลา 7 วันที่ Bridge ใช้ในทำ Finalize โดยมี Challenging Windows เป็นการยืนยันความถูกต้องในการ Bridge เท่านั้น โดย **Bridge** จะทำหน้าที่เป็น **"Observer"**

แต่ **Bridge** ไม่ได้เป็น **Observer** เดียวในระบบ และยังมี Observer อื่นๆ ที่คอยทำ **Finalize** ในช่วงเวลาที่ต่างกัน การ Finality ของ Bridge จึงไม่สามารถนิยามความเป็น Rollups ได้

Observer ที่รัน Ethereum + rollup full nodes จะรับรู้ถึง Finality ที่เร็วกว่า

เพราะว่าพวกเขาแค่เช็ก

1- state transition ของ rollup ถูกต้อง

2- rollup data ที่เกี่ยวข้องถูกโพสต์และจัดเรียงลำดับบน DA layer เรียบร้อย (และ DA layer ได้ finalized การจัดเรียงแล้ว)

จากที่เล่ามาทั้งหมดนี้จึงขอสรุปความจริงอีกด้านของ Rollups ว่า

\*Finalize 7 วันเป็นแค่ความจริงจากมุมของ Bridge เท่านั้น\*
----------------------------------------------------------

---

*Originally published on [thesleeper (✨🔴_🔴✨)](https://paragraph.com/@thesleeper/rollups)*
