เทคโนโลยีบล็อกเชนเปิดโอกาสใหม่ๆ ในเรื่องของการกระจายอำนาจ (Decentralized) การเปิดเผยข้อมูลอย่างโปร่งใส (Transparency) และความมั่นคง (Security) แต่มันก็มีปัญหาหนึ่งที่สำคัญคือเรื่องการขยายขนาด ซึ่งเป็นเรื่องท้าทายในการพัฒนาเทคโนโลยีบล็อกเชน
เพราะมีสิ่งที่เรียกว่า “Blockchain Trilemma” กล่าวง่ายๆคือเราไม่สามารถพัฒนาทั้ง 3 ด้านของบล็อกเชน (การกระจายอำนาจ ความโปร่งใส และความมั่นคง) ไปพร้อมกันได้ การแก้ปัญหาดังกล่าวทำได้ด้วยการใช้เครื่องมือเช่น “การแบ่งส่วน” (sharding) อย่างชาญฉลาด
Sharding คืออะไร
Sharding เป็นแนวคิดที่ยืมมาจากการบริหารจัดการฐานข้อมูลแบบดั้งเดิม มันหมายถึงกระบวนการแบ่งฐานข้อมูลขนาดใหญ่เป็นส่วนย่อยที่เล็กกว่าและง่ายต่อการจัดการมากขึ้น ที่เรียกว่า shards (ชาร์ด) การนำมาใช้ในบล็อกเชนมีวัตถุประสงค์เพื่อปรับปรุงประสิทธิภาพในการขยายขนาด โดยยังรักษาหลักการของการกระจายอำนาจไว้
Sharding ทำงานอย่างไร
การจะเข้าใจว่า Sharding ดำเนินการอย่างไรภายในเครือข่ายบล็อกเชน เราต้องมีความเข้าใจเกี่ยวกับวิธีการเก็บและประมวลผลข้อมูลในบล็อกเชนแบบปกติ ซึ่งมีหลากหลายวิธีในการประมวลผลข้อมูล เราจะศึกษาเกี่ยวกับการประมวลผลแบบเรียงตามลำดับ (sequential) และการประมวลผลแบบพร้อมกัน (parallel)
โดยทั่วไปแล้ว แต่ละโหนดบล็อกเชนจะมีหน้าที่รับผิดชอบในการจัดการข้อมูลธุรกรรมทั้งหมดภายในเครือข่าย การประมวลผลข้อมูลแบบนี้เป็นที่รู้จักในชื่อ “การประมวลผลตามลำดับ” หมายถึงว่าทุกโหนดต้องเก็บและรักษาข้อมูลที่สำคัญทั้งหมด เช่น ยอดเงินในบัญชีและประวัติการทำธุรกรรม ในทางปฏิบัติ แต่ละโหนดต้องประมวลผลทุกปฏิบัติการของเครือข่าย ข้อมูล และธุรกรรมทั้งหมด
แม้ว่าการบันทึกรูปแบบนี้จะเสริมความมั่นคงของบล็อกเชนด้วยการบันทึกทุกธุรกรรมในทุกโหนด แต่มันก็ทำให้การประมวลผลข้อมูลช้าลงอย่างมาก นี่คือจุดที่การประมวลผลข้อมูลแบบพร้อมกันก้าวเข้ามา โดยทำให้สามารถดำเนินการหลายงานพร้อมกันได้
ซึ่งการแบ่งส่วน (Sharding) อาจเป็นทางออกที่มีประสิทธิภาพในสถานการณ์ดังกล่าว เนื่องจากมันแบ่งหรือตัดส่วน ภาระการทำงานที่เกี่ยวกับการทำธุรกรรมระหว่างเครือข่ายบล็อกเชน นั่นหมายความว่าไม่ใช่ทุกโหนดจำเป็นต้องจัดการหรือประมวลผลข้อมูลของบล็อกเชนทั้งหมด
แต่การแบ่งส่วนจะแยกภาระการทำงานผ่านการแบ่งส่วนแนวนอน ในกระบวนการนี้ ข้อมูลถูกแบ่งออกเป็นชุดย่อยๆ ทางแนวนอน โดยแต่ละชาร์ดเป็นฐานข้อมูลอิสระที่สามารถประมวลผลธุรกรรมโดยแยกจากชาร์ดอื่น ๆ ได้
การแบ่งส่วนแนวนอน (Horizontal) และการแบ่งส่วนแนวตั้ง (vertical)
การแบ่งส่วนแนวนอนและการแบ่งส่วนแนวตั้งเป็นวิธีการสำคัญสองวิธีในการขยายขนาดฐานข้อมูล แม้ว่าทั้งสองวิธีนี้จะออกแบบมาเพื่อจัดการชุดข้อมูลขนาดใหญ่ให้มีประสิทธิภาพมากขึ้น แต่วิธีการทำงานของมันแตกต่างกันอย่างมาก
ในการแบ่งส่วนแนวนอน เราแบ่งข้อมูลออกเป็นแถวและกระจายไปยังโหนดต่าง ๆ (หรือฐานข้อมูล) แต่ละตัวจะมีชุดข้อมูลย่อยอยู่ภายใน แต่ละแถวในตารางเป็นข้อมูลที่ไม่ซ้ำกัน ดังนั้นการแยกแต่ละแถวจะไม่ทำให้ข้อมูลสูญหาย ตัวอย่างที่มีชื่อเสียงของการแบ่งส่วนแนวนอนที่ใช้งานอยู่คือเครือข่ายบล็อกเชนแบบกระจายอำนาจ เช่น Ethereum และ Bitcoin
ในแบ่งส่วนแนวตั้ง เราแบ่งข้อมูลออกเป็นคอลัมน์แทนที่จะแบ่งเป็นแถว แต่ละส่วนในการแบ่งส่วนแนวตั้งจะมีชุดข้อมูลย่อยหรือชุดข้อมูลทั้งหมด แต่เฉพาะสำหรับชุดข้อมูลบางส่วนเท่านั้น เช่น พิจารณาตารางลูกค้าที่มีคอลัมน์เช่น ชื่อ สถานะ คำอธิบาย และรูปภาพ ในสถานการณ์แบ่งส่วนแนวตั้ง ‘ชื่อ’ และ ‘สถานะ’ อาจถูกเก็บไว้ในตารางหนึ่ง และ ‘คำอธิบาย’ และ ‘รูปภาพ’ อาจถูกเก็บไว้ในอีกตารางหนึ่ง
ประโยชน์ของการแบ่งส่วน (Sharding)
เพิ่มความเร็วในการทำธุรกรรม
การแบ่งส่วนช่วยสนับสนุนการประมวลผลธุรกรรมให้ทำพร้อมกัน แทนที่จะประมวลผลธุรกรรมทีละรายการ การแบ่งส่วนช่วยให้ธุรกรรมสามารถประมวลผลพร้อมกันได้บนชาร์ดต่าง ๆ แต่ละชาร์ดทำงานอิสระต่อกัน ทำให้ความเร็วในการทำธุรกรรมเพิ่มขึ้นอย่างมีนัยสำคัญ นอกจากนี้ยังทำให้เครือข่ายบล็อกเชนสามารถรองรับผู้ใช้งานได้มากขึ้น
ตัวอย่างของเครือข่ายบล็อกเชนที่ใช้เทคโนโลยีการแบ่งส่วนเพื่อแก้ปัญหาการขยายขนาดคือ Ziliqa กลไกการแบ่งส่วนของ Ziliqa ช่วยให้บล็อกเชนประสบความสำเร็จในการทำธุรกรรมได้พันรายการต่อวินาที
ลดต้นทุนการประมวลผลและเก็บข้อมูล
การออกแบบบล็อกเชนแบบดั้งเดิมบังคับให้ทุกโหนดเก็บข้อมูลทุกธุรกรรม ซึ่งทำให้ความต้องการของฮาร์ดแวร์เพิ่มขึ้นเนื่องจากการขยายขนาดของบล็อกเชน แต่ด้วยการแบ่งส่วน แต่ละโหนดจะมีหน้าที่ในการประมวลผลและเก็บข้อมูลเพียงบางส่วนของข้อมูลเครือข่ายทั้งหมด ส่งผลให้ลดทรัพยากรที่ต้องการสำหรับโหนดในการเข้าร่วมกับเครือข่าย
ประสิทธิภาพของเครือข่ายที่ดีขึ้น
การแบ่งส่วน (Sharding) ช่วยเพิ่มประสิทธิภาพของเครือข่ายโดยรวมได้ ในบล็อกเชนรูปแบบเดิม การมีโหนดมากขึ้นในเครือข่ายส่งผลให้ประสิทธิภาพลดลง เนื่องจากความต้องการในการสื่อสารข้อมูลและการประสานงานระหว่างโหนดที่เพิ่มขึ้น
แต่การแบ่งส่วนเข้ามาเปลี่ยนแปลงเรื่องนี้ ด้วยการทำงานของแต่ละชาร์ดแบบอิสระ ระบบสามารถประมวลผลธุรกรรมและการคำนวณได้มากขึ้น เมื่อโหนดใหม่เข้าร่วม ก็สามารถเพิ่มเข้าไปในชาร์ดแทนที่จะเข้าร่วมเครือข่ายทั้งหมด ซึ่งเพิ่มประสิทธิภาพของเครือข่ายในการขยายขนาด ทำให้ประสิทธิภาพเพิ่มขึ้น ซึ่งส่งผลให้การทำธุรกรรมราบรื่นขึ้นและประสบการณ์ของผู้ใช้ดียิ่งขึ้น
Reference : Binance Academy