#WenMerge EP 2: The Merge Starter Guide w/ Anthony Sassano & Tim Beiko

[#WenMerge คือซีรีส์คอนเทนต์สำหรับมือใหม่โดยมือใหม่ที่จะมาทำความรู้จักและทำความเข้าใจ The Merge 🐼 ของอีเธอเรียม ผ่านบทสนทนาและข้อมูลจากนักพัฒนาและคนหน้างานโดยตรง มาเตรียมความพร้อมก่อนที่จะเกิดการอัพเกรดซึ่งเป็นหมุดหมายสำคัญของประวัติศาสตร์อีเธอเรียมและบล็อกเชนกัน! อ่าน EP 1 ได้ที่นี่]

[Disclaimer: คนเขียนก็เป็นมือใหม่เหมือนกัน ดังนั้นถ้าใครเห็นข้อผิดพลาดตรงไหน แจ้งผ่าน DM ได้เลยนะคะ ✌]


ใน #WenMerge EP 1 เราได้มาเช็คระยะ The Merge กับคุณ Tim Beiko จากในพอดแคสท์ Bankless ซึ่งได้คลี่คลายประเด็น The Merge ตอนนี้เป็นอย่างไร และ #อีกไกลแค่ไหนจนกว่าฉันจะใกล้บอกที ไปเรียบร้อย

ตอนเราเขียนจบก็รู้สึกเลยว่า “โอ้โห้ อีเธอเรียมและการอัพเกรด The Merge ทำไมมันช่างซับซ้อนซ่อนเงื่อนได้มากมายขนาดเน้!” ข้อมูลก็เทคนิคัลมาก อีเธอเรียมเองก็ซับซ้อน ข้อมูลอัพเดทบ่อยๆ แถมยังอัพเดทกันหลายช่องทางหลายทางอีก ซึ่งให้อภัยได้เพราะอีเธอเรียมไม่ได้มีทีม PR กลางเหมือนเชนอื่นๆ [อีเธอเรียมฟาวน์เดชัน (Ethereum Foundation) เป็นองค์กรไม่แสวงหากำไรที่เกิดขึ้นมาเพื่อสนับสนุนการพัฒนาทางเทคโนโลยีของอีเธอเรียม ไม่ได้มีอำนาจควบคุมอีเธอเรียม ไม่สามารถชี้นิ้วสั่งใครได้ และไม่ได้เป็นเจ้าของอีเธอเรียมอย่างที่เขาล่ำลือกัน] นั่งอ่านข้อมูลเพิ่มไป ฟังพอดแคสท์ ฟัง Core Devs Call ไป บางครั้งก็พาลชวนให้ไมเกรนขึ้น สู้แล้วแต่ Dev สู้กลับ! กด pause, play สลับกับเปิดกูเกิ้ลทุกสามนาที วนไปสิคะ! 🤯

มา EP 2 เลยอยากจะพาทุกคนกลับไปยังจุดเริ่มต้นกันใหม่ มาเท้าความและทำความเข้าใจพื้นฐานภาพรวมเกี่ยวกับ The Merge กันก่อน ตอนแรกก็ไม่แน่ใจว่าจะทำอย่างไรดี เดชะบุญที่ SSV Network ได้จัดซีรีส์พอดแคสท์จำนวน 8 ตอนที่พูดถึง The Merge ฟัง EP แรกไปรู้สึกว่าดีงามมาก ข้อมูลพื้นฐานครบถ้วนเหมาะกับคอนเทนต์ The Merge Starter Guide ที่อยากจะเขียนในตอนนี้ ถ้าใครมีเวลา เราอยากชวนไปฟังพอดแคสท์ฉบับเต็มเลย พอดแคสท์ซีรีส์นี้ได้ชวนคุณแอนโทนี ซาสซาโน่ (Anthony Sassano) จาก The Daily Gwei มาเป็นผู้ดำเนินรายการ ซึ่งเป็นคนที่เข้าใจอีเธอเรียมลึกและข้อมูลเป๊ะมาก มากับแขกรับเชิญพิเศษคือคุณทิม เบโค่ (Tim Beiko) จากอีเธอเรียมฟาวน์เดชัน (Ethereum Foundation - มูลนิธิอีเธอเรียม] คนดีคนเดิมมาเจาะลึกข้อมูลพื้นฐานเกี่ยวกับ The Merge และการพัฒนาระบบอีเธอเรียม นอกจากข้อมูลพื้นฐานเกี่ยวกับ The Merge แล้ว พอดแคสท์ตอนนี้ยังช่วยทำให้เห็นถึงหลักการและเหตุผลในการพัฒนาเครือข่ายอีเธอเรียม และทำให้ว่าการตัดสินใจเลือกทำและไม่เลือกทำอะไรในอีเธอเรียมที่อาจจะไม่ได้เพอร์เฟกต์แต่ก็ได้ผ่านการทดลองและคิดมาเช่นกัน EP นี้เราจะขอข้ามเรื่องสิ่งที่คนเข้าใจผิดบ่อยๆ เพราะพูดถึงไปแล้วใน Bankless ค่ะ

ถ้าใครที่ได้อ่านบทความ EP. 1 ของเรามาแล้ว เราคิดว่า EP นี้จะทำให้ข้อมูลจาก EP. 1 กลมมากขึ้น และช่วยทำให้เห็นที่มาที่ไปได้มากขึ้น สำหรับใครที่มาเริ่มอ่านจาก EP นี้เลย ก็ไม่ต้องกังวล เริ่มจาก EP นี้ก่อนได้เลย แล้วค่อยไปเก็บดีเทลโร้ดแมปของ The Merge ใน EP. 1 ซึ่งจะช่วยให้เข้าใจข่าวและอัพเดทต่างๆ ของ The Merge หลังจากนี้ก็ได้เช่นกันค่ะ ✌


📌ประเด็นสำคัญของพอดแคสท์

[รอบนี้ลองทำสรุปเป็นภาษาไทยด้วยเผื่อใครถนัดอ่านภาษาไทยมากกว่า]

1. คุณทิม เบโค่ - กองกลางกำลังสำคัญของอีเธอเรียม

ก่อนจะเริ่มพูดถึงตัว The Merge อยากขอแนะนำคุณทิม เบโค่ ผู้เล่นคนสำคัญที่เราจะต้องเจอเขาอีกบ่อยๆ

ถ้าเป็นทีมฟุตบอล ตำแหน่งของคุณทิมก็น่าจะเปรียบได้กับกองกลางที่คอยช่วยเหลือและประสานงานทีมต่างๆ ที่ทำงานเกี่ยวข้องกับการพัฒนาเครือข่ายอีเธอเรียม ไม่ว่าจะเป็นทีมนักวิจัย, ทีมนักพัฒนาไคลเอนต์ ทั้งจากฝั่ง Consensus Layer และ Execution Layer, ทีมนักพัฒนาแอป, หรือจะเป็นฝั่งสเต็กเกอร์ (staker), วาลิเดเตอร์ (validator) และโหนด (node) เอง คุณทิมเป็นนักพัฒนาที่ย่างเท้าเข้ามาในโลกอีเธอเรียม ผ่านตำแหน่งผู้จัดการผลิตภัณฑ์ซอฟท์แวร์ไคลเอนท์ (software client) ตัวหนึ่งในบริษัท Consensys ซึ่งเป็นที่มาให้เขาเริ่มเขียนสรุปการประชุม Core Devs Call ลงทวิตเตอร์

หน้าที่หลักๆ ของเขามีอยู่สามสี่อย่าง นั่นก็คือ:

  • เป็นคนที่คอยเช็คใน discord ว่ามีใครกำลังติดขัดและต้องการความช่วยเหลือตรงไหน และคอยส่งต่อให้แก่คนที่เกี่ยวข้อง
  • ติดตามงาน เช็คความคืบหน้าของงาน
  • จัดการประชุมและสรุป Core Devs Call
  • กระจายข้อมูลต่างๆ จากฝั่งทีม Core Dev ออกไปให้กับฝั่งชุมชน เช่น การอัพเกรดต่างๆ เป็นต้น

[Fun Fact: ในอีเธอเรียมฟาวน์เดชันมีคุณ Trent Van Epps [ขอไม่ถอดเสียง เพราะไม่แน่ใจว่าชื่ออ่านว่าอย่างไร] ที่ทำหน้าที่เหมือนกับคุณทิม เบโค่ แต่กลับกันคือคุณ Trent เป็นรวบรวมข้อมูลและความคิดเห็นจากฝั่งชุมชนส่งกลับมาให้ที่ฝั่งนักพัฒนา]


2. The Merge คือการเปลี่ยนจากใช้ระบบ Proof of Work (PoW) มาเป็นระบบ Proof of Stake (PoS) เพื่อมาระบุว่าบล็อกไหนคือบล็อกที่ valid อันต่อไป

อีเธอเรียมมีแผนจะย้ายจากระบบ PoW มาใช้ระบบ PoS ตั้งแต่ช่วงต้นของโปรเจ็กต์แล้ว แต่กระบวนการย้าย (การวิจัยและทดลอง > การออกแบบ > การลงมือโค้ด > ทดลอง) ใช้เวลานานกว่าที่คิดไปมาก

การออกแบบระบบ PoS เริ่มลงตัวในช่วงปี 2019-2020 แต่ในช่วงเวลานั้นก็เริ่มมีกิจกรรมเกิดขึ้นบนอีเธอเรียมเยอะมากแล้ว ซึ่งจะเสี่ยงมากหากจะทำการย้ายระบบกันโดยไม่ได้ทดสอบระบบกันให้ดีก่อน ทีมนักพัฒนาจึงตัดสินใจพัฒนา Consensus Layer (PoS) เป็นเชนแยกออกเป็นก่อนโดยมีชื่อเรียกว่า Beacon Chain ซึ่งในปัจจุบันมีคนนำอีเธอร์ไป stake เอาไว้เพื่อเป็นวาลิเดเตอร์แล้วกว่า 10 พันล้านเหรียญฯ ส่วนอีก

ส่วนฝั่ง Execution Layer คือ เชนอีเธอเรียมที่ตอนนี้พวกเราใช้กันอยู่

The Merge คือการผนวก Consensus Layer ที่รัน PoS รวมกับ Execution Layer เข้าไว้ด้วยกันนั่นเอง


3. ชื่อ “ETH 2.0” ถูกเลิกใช้งานแล้ว เพราะ The Merge เป็นเพียงจุดเริ่มต้นของโร้ดแมปพัฒนาอีเธอเรียม

หลายๆ คนอาจจะเคยได้ยินชื่อ ETH 2.0 ผ่านหูกันมาบ้าง ก่อนหน้านี้มีการเรียกชื่อ Execution Layer ว่า ETH 1.0 และเรียก Consensus Layer หรือ Beacon Chain ว่า ETH 2.0 แต่ปัจจุบันยกเลิกชื่อเรียกนี้ และคงไว้เพียง Execution Layer และ Consensus Layer เพราะสุดท้ายแล้วทั้งสองเลเยอร์ก็ต้องมารวมกันอยู่ดี และ The Merge เป็นเพียงจุดเริ่มต้นของโร้ดแม้ปพัฒนาอีเธอเรียมที่ยาวไกลมากๆ


4. Consensus Layer ถูกแยกออกจาก Execution Layer เพื่อให้คนทำงานสามารถโฟกัสไปตามแขนงที่ตัวเองสนใจได้

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

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


5. ก่อนที่จะมาถึงจุดนี้ มีทำอะไรไปแล้วบ้าง?

ช่วงพฤกษาคม 2021

  • นักพัฒนาและนักวิจัยคิดว่า Beacon Chain เริ่มทำงานได้ดีแล้ว และเริ่มหาวิธีในการผนวกเข้ากับเชนอีเธเอเรียมที่ใช้อยู่ในปัจจุบัน
  • คุณ Protolambda จัด hackathon เพื่อดูว่าตัวโครงสร้างพื้นฐานที่ถูกสร้างมานี้จะสามารถทำงานได้จริงหรือไม่ โดยให้ทีมที่ทำซอฟท์แวร์ไคลเอนต์ฝั่ง Consensus Layer ลอง ping ไปยัง Execution Layer และให้มันสร้างบล็อก และแชร์บนเน็ตเวิร์ก จนกลายเป็นเวอร์ชั่น MVP (Minimum Viable Product) ซึ่งเป็นต้นแบบของอีเธอเรียมหลังจากการ Merge
  • ด้วยความที่มันเป็นเพียงแค่ต้นแบบ มันจึงบั๊กเต็มไปหมด ทีมใช้เวลาทั้งฤดูร้อน 2021 ในการแก้บั๊ก

ฤดูใบไม้ร่วง 2021

  • ทีมไคล์เอนต์ทั้งหมดนัดมาเจอกันตัวเป็นๆ หนึ่งอาทิตย์เพื่อทดลองว่าจะสามารถย้ายจะ PoW ไปยัง PoS ได้หรือไม่ และสามารถทำได้ แต่ผลลัพธ์ยังมีบั๊กเยอะมาก ทีมจึงแยกย้ายกันไปแก้บั๊ก

ก่อนวันหยุดหน้าหนาวตอนคริสมาสต์ 2021

  • ได้ specification ของ The Merge ที่ถึงแม้ว่าจะมีบั๊กแต่ทีมแน่ใจว่ามาถูกทางแล้วมากว่า 80-90% และทำการปล่อย Testnet อันแรกชื่อว่า “Kintsugi” ซึ่งลองทำการ stress test และเอาไว้เพื่อดูผลในระยะยาวว่าเครื่องมือและแอปพลิเคชั่นยังคงทำงานได้ตามที่คาดไว้หรือไม่ เนื่องจาก The Merge ไม่ควรจะเปลี่ยนแปลงตัวสมาร์ตคอนแทรคเลย
  • ติดต่อทีมทำแอปพลิเคชั่นให้ลองมา deploy แอปลงบน Kintsugi และให้ฟีดแบ้กผลลัพธ์กลับไปหากมีปัญหา
  • ปล่อยให้ Kintsugi ทำงานไปอยู่หลายเดือนเพื่อเก็บความเรียบร้อยของ spec และแก้บั๊กต่างๆ

มีนาคม 2022

  • ปล่อย Testnet ตัวที่สองที่ชื่อว่า “Kiln” ซึ่งถือว่าหลายๆ อย่างเริ่มลงตัวแล้ว โดยทีมไม่ได้คิดว่าจะต้องมีการเปลี่ยนแปลงขนานใหญ่แล้วหลังจากนี้ แต่จะเป็นการเก็บรายละเอียดและแก้บั๊กเล็กๆ น้อยๆ
  • ลอง implement ไคลเอนท์ลงใน spec โดยเป็นการหาบั๊ก
  • ทดลองกับคู่คอมโบไคลเอนต์จากฝั่ง Consensus Layer (5 ไคลเอนท์) และ Execution Layer (4 ไคลเอนท์) ทั้งหมด 20 คอมโบว่าทำงานร่วมกันได้ดีหรือไม่
คู่คอมโบของ Consensus Client และ Execution Client
คู่คอมโบของ Consensus Client และ Execution Client

- มีการทดลองทำ Shadow Fork ซึ่งคือการ Merge แต่ทำบนโหนดจำนวนน้อยๆ บนทุกคอมโบเพื่อดูผลลัพธ์ โดยมีการทำ Shadow Fork ไปแล้วประมาณ 11 ครั้ง

  • หลังจากทำ Shadow Fork ไปแล้ว ได้ผลลัพธ์ที่ค่อนข้างน่าพอใจ เลยตัดสินใจทำ Merge บน Testnet ที่มีการใช้งานอยู่จริง โดยเลือก Ropsten เป็น Testnet ตัวแรกเนื่องจากทางทีมมีแผนที่จะยกเลิกการใช้ Ropsten อยู่แล้ว ดังนั้นหากมีปัญหาก็ไม่ได้ส่งผลกระทบอะไรมาก นอกจากนั้นแล้ว Ropsten มีแอปที่ถูก deploy บนนั้นอยู่แล้ว จึงมีสภาพแวดล้อมคล้ายกับ Mainnet จริง
  • ผลลัพธ์การ Merge Ropsten เป็นไปด้วยดี กว่า 80% ของวาลิเดเตอร์สามารถทำได้โดยไม่มีปัญหาใดๆ อีก 2/3 ของคนที่เหลือมีปัญหาด้าน config ซึ่งแก้ได้ด้วยการรีสตาร์ท และที่เหลือ คือเป็นคนที่เจอปัญหาบั๊กของซอฟท์แวร์ไคลเอนต์
  • จริงๆ แล้ว อีเธอเรียม Mainnet สามารถทำงานได้ประมาณ 67% สามารถลงฉันทามติกันได้ แต่อย่างไรก็ดียิ่งได้เยอะกว่านั้นยิ่งดีกว่าอยู่แล้ว และดีกว่าถ้าสามารถแก้บั๊กทั้งหมดได้ก่อนที่จะถึงการ Merge Mainnet

Next Step

  • ขั้นต่อไปคือการ Merge Sepolia Testnet (6 กรกฎาคม) และตามด้วย Gorli Testnet และสุดท้ายขยับไปที่ Mainnet

6. ทำไมถึงต้องให้ความสำคัญกับความหลากหลายของไคลเอนท์ (client diversity)

ด้านโพรโทคอล

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

ด้านคน

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

7. การทำงานภายในระบบกระจายศูนย์คือการหาจุดบาลานซ์ของความต้องการ

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


8. หลังจากจบ The Merge แล้วมีอะไรต่อ?

  1. การถอนอีเธอร์ที่ถูก stake ไว้หลังจาก The Merge
  2. การสเกล L2 - EIP-4844, EIP-4488
  3. EIP-3540 - EVM Object Format

✍️ โน้ตพอดแคสท์

อ่านโน้ตแบบ e-book ได้ที่นี่

หรืออ่านได้ที่นี่:

*Gorli Testnet
*Gorli Testnet
*Gorli Testnet
*Gorli Testnet
Subscribe to Nucha Nucha
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.