การวิเคราะห์เชิงลึก: โซลานาถูกบล็อกได้อย่างไร?
ผู้เขียนต้นฉบับ: Nishil Jain (หัวหน้าฝ่ายความร่วมมือเชิงนิเวศน์ที่ Biconomy)
เรียบเรียงโดย: Odaily Azuma

เหตุใดธุรกรรมบน Solana จึงล้มเหลวในปัจจุบัน
มาดูรายละเอียดทีละขั้นตอน โดยเริ่มจากแนวคิดพื้นฐานที่สุด
จากมุมมองของผู้ใช้ เมื่อเราซื้อขายกับ Solana จะมีผลลัพธ์ที่เป็นไปได้สามประการ:
การทำธุรกรรมสำเร็จแล้ว,ทุกอย่างเป็นปกติ;
การทำธุรกรรมล้มเหลวผู้ใช้ได้ชำระค่าธรรมเนียมแก๊สแล้ว แต่ผลการดำเนินการส่งคืนข้อผิดพลาด สิ่งนี้เกิดขึ้นเมื่อไม่ตรงตามเงื่อนไขสำหรับธุรกรรม เช่น โทเค็นที่ผู้ใช้พยายามซื้อถูกขายหมด หรือราคาเคลื่อนไหวเร็วเกินไป (เกินความคลาดเคลื่อนที่กำหนดไว้ล่วงหน้า) ฯลฯ
ธุรกรรมสูญหาย (ลดลง): การทำธุรกรรมไม่มีการติดตาม นั่นคือการทำธุรกรรมล้มเหลวในการเข้าถึง โหนดผู้นำบล็อก (หมายเหตุ Odaily: โหนดหน้าที่ที่หมุนเวียนทุกๆ 4 บล็อค)นี่คือสถานการณ์ที่ผู้ใช้ส่วนใหญ่กำลังเผชิญอยู่ในปัจจุบัน โดยพื้นฐานแล้ว นี่คือปัญหาเลเยอร์เครือข่าย ไม่ใช่ปัญหาเลเยอร์ฉันทามติหรือเลเยอร์การดำเนินการ
ปัญหาการดำเนินการไม่ใช่สาเหตุหลักของความแออัด
ตอนนี้คุณอาจถามว่า Network Layer คืออะไร? เหตุใดธุรกรรมจึงสูญหาย? เหตุใดจึงกล่าวกันว่าเป็นสาเหตุหลักของความแออัดในโซลานาในปัจจุบัน
ให้เราทิ้งปัญหาที่สำคัญที่สุดเหล่านี้ไว้ก่อน อันดับแรกให้พิจารณาธุรกรรมที่ล้มเหลวในการดำเนินการ (เช่น กรณีที่ 2) และอธิบายว่าเหตุใดธุรกรรมที่ล้มเหลวจึงไม่ใช่สาเหตุหลักของความแออัด
เมื่อรวมข้อมูลบนลูกโซ่เข้าด้วยกัน จะเห็นได้ว่ามีเพียงประมาณ 8% ของธุรกรรมทั้งหมดที่ล้มเหลวในการดำเนินการที่ถูกส่งโดยผู้ใช้จริง และส่วนที่เหลือเป็นธุรกรรมการเก็งกำไรที่เริ่มต้นโดยโรบอตบนลูกโซ่

เหตุผลที่ผู้อนุญาโตตุลาการยังคงเริ่มต้นธุรกรรม ขยะ ต่อไปก็เนื่องมาจากต้นทุนของการเริ่มต้นธุรกรรมบ่อยครั้งอาจกล่าวได้ว่าต่ำมากเมื่อเทียบกับผลกำไรที่อาจเกิดขึ้นจากการเก็งกำไรที่ประสบความสำเร็จ
โดยเฉพาะอย่างยิ่ง ผู้อนุญาโตตุลาการสามารถเริ่มธุรกรรมได้อย่างต่อเนื่องภายในหนึ่งวัน ค่าใช้จ่ายในการดำเนินการคือประมาณสองสามร้อยดอลลาร์ต่อวัน (เนื่องจากค่าธรรมเนียมเครือข่ายของ Solana ต่ำ) แต่ตราบใดที่พวกเขาสามารถประสบความสำเร็จในธุรกรรมเดียว พวกเขาอาจได้รับเงินหลายสิบดอลลาร์ . กำไรหลักพัน.
ควรสังเกตว่าธุรกรรมที่ล้มเหลวเหล่านี้ไม่ได้หมายความว่าเครือข่าย Solana ล้มเหลวและ blockchain ยังคงทำงานตามปกติ นี่เป็นเพียงธุรกรรมโรบอตบางส่วนที่ล้มเหลวเนื่องจากไม่ตรงตามเงื่อนไข นี่ไม่ใช่เหตุผลหลักที่ทำให้ประสบการณ์ที่ไม่ดีของโซลานาในปัจจุบัน
อันที่จริงตั้งแต่เดือนพฤศจิกายนปีที่แล้วอัตราความล้มเหลวในการทำธุรกรรมของ Solana ยังคงอยู่ประมาณ 50%

เหตุผลที่แท้จริง: ธุรกรรมถูกทิ้งที่เลเยอร์เครือข่าย
ตอนนี้ เราจะมาพูดถึงสาเหตุที่แท้จริงของความแออัดของ Solana ในช่วงไม่กี่วันที่ผ่านมา – “ธุรกรรมที่สูญหาย”
ตามที่กล่าวไว้ข้างต้น ธุรกรรมเหล่านี้เป็นธุรกรรมที่ไม่สามารถเข้าถึง โหนดผู้นำบล็อกธุรกรรมล้มเหลวที่จะมาถึงเนื่องจากถูกทิ้งที่เลเยอร์เครือข่าย
Network Layer คือเลเยอร์การสื่อสารของอินเทอร์เน็ต ใช้เพื่อส่งแพ็กเก็ตข้อมูลจากจุดสิ้นสุดหนึ่งไปยังอีกจุดหนึ่ง โปรโตคอลเลเยอร์เครือข่ายทั่วไป ได้แก่ TCP, UDP, QUIC (พัฒนาโดย Google) เป็นต้น ก่อนหน้านี้ Solana ได้อัปเกรดโปรโตคอลเลเยอร์เครือข่ายเป็น QUIC ซึ่งช่วยสร้างการเชื่อมต่อระหว่างผู้ใช้และ โหนดผู้นำบล็อก
เนื่องจาก Solana ใช้กลไกการสร้างบล็อกอย่างต่อเนื่อง และไม่มี mempool สำหรับจัดเก็บธุรกรรมที่ไม่ได้รับการยืนยันชั่วคราว ซึ่งหมายความว่าเมื่อการเชื่อมต่อขาดหาย ธุรกรรมจะไม่ถูกรวมไว้ในบล็อกอีก

ข้อดีของโปรโตคอล QUIC คือ โหนดผู้นำบล็อก ได้รับฟังก์ชันการทำงานใหม่:ตัดการเชื่อมต่อของผู้ใช้บางรายหรือจำกัดอัตราการถ่ายโอนข้อมูลตามเกณฑ์เฉพาะ
ความสำคัญของฟังก์ชันนี้คือว่าเมื่อมีความต้องการเครือข่ายสูงสุดเกิดขึ้น โหนดผู้นำบล็อก จะสามารถตัดการเชื่อมต่อบางอย่างในเชิงรุกได้ ซึ่งจะช่วยป้องกันไม่ให้ Solana ปิดตัวลงอย่างสมบูรณ์เนื่องจากกิจกรรมเครือข่ายที่เพิ่มขึ้น
คุณอาจสงสัยอีกครั้งว่าหากการออกแบบโปรโตคอล QUIC นั้นสมบูรณ์แบบมาก ทำไม Solana ถึงยังถูกบล็อกอยู่ตอนนี้?
ปัญหาที่แท้จริงก็คือ แม้ว่า “ผู้นำบล็อก” สามารถเลือกที่จะกลั่นกรองการเชื่อมต่อบางอย่างได้ แต่ตรรกะในการตัดสินใจว่าจำเป็นต้องกลั่นกรองการเชื่อมต่อใดนั้นยังคงเป็นปัญหา

เพื่อให้เข้าใจปัญหานี้อย่างเป็นรูปธรรมมากขึ้น เราสามารถจินตนาการถึงสถานการณ์ที่ โหนดผู้นำบล็อก แต่ละโหนดมีการเชื่อมต่อ X ที่สามารถสื่อสารได้ แต่เมื่อความต้องการเครือข่ายเกิดขึ้นสูงสุด โหนดจะได้รับคำขอการเชื่อมต่อเป็น 10 ถึง 100 เท่าของความสามารถในการรองรับ ... ขณะนี้โหนดจำเป็นต้องเลือกตัดการเชื่อมต่อบางส่วนออก อย่างไรก็ตามสถานการณ์ปัจจุบันเป็นเช่นนั้นไม่มีมาตรฐานที่กำหนดไว้ในการเลือกการเชื่อมต่อที่จะตัด (เช่น ตัดการเชื่อมต่อทั้งหมดที่มีค่าใช้จ่ายน้อยกว่า xxx) และการเชื่อมต่อทั้งหมดจะถูกตัดออกหรือไม่นั้นจะเป็นแบบสุ่ม...
ท้ายที่สุดแล้ว ในสถานการณ์ปัจจุบัน หากคุณต้องการให้ธุรกรรมได้รับการยืนยัน สิ่งที่คุณทำได้คือส่งคำขอธุรกรรมเพิ่มเติม แต่เนื่องจากมีบอทจำนวนมากที่ยังส่งคำขอเชื่อมต่อจำนวนมากไปยังเครือข่ายอยู่ตลอดเวลา ผู้ใช้ทั่วไปจึงสร้าง เชื่อมต่อและทำธุรกรรมให้เสร็จสิ้น กลายเป็นเรื่องยากมากขึ้น
จะแก้ไขได้อย่างไร? ใช้เวลานานเท่าใด?
นี่คือปัญหาที่โซลานาเผชิญอยู่ในขณะนี้
ปัจจุบัน ทีมงานต่างๆ เช่น Jump (ทีมพัฒนาไคลเอนต์ Firedancer), Anza (ทีมพัฒนาไคลเอนต์ Agave), Solana Labs และทีมอื่น ๆ กำลังทำงานเพื่อซ่อมแซมเลเยอร์เครือข่าย การแก้ไขจะค่อยๆ เปิดตัวในสัปดาห์นี้ และการอัปเดตรุ่นหนาบางส่วนคาดว่าจะเปิดตัวในอีกไม่กี่สัปดาห์ข้างหน้า
สิ่งนี้จะแก้ปัญหาได้อย่างมีประสิทธิภาพหรือไม่? โซลานาจะ สู่ดวงจันทร์ อีกครั้งหรือไม่... ไม่มีคำตอบที่แน่นอน
มีสาเหตุหลักสามประการที่ทำให้เกิดความไม่แน่นอนหลายประการ:
ประการแรก ไม่มีใครรับประกันได้ว่าแพตช์ซ่อมที่กำลังจะมีขึ้นจะมีผลหรือไม่ หลังจากที่ใช้งานได้จริงเท่านั้น เราจะเห็นสิ่งที่เกิดขึ้นจริงได้
ประการที่สอง ไคลเอนต์ Firedancer ที่พัฒนาโดย Jump ดูเหมือนว่าจะสามารถแก้ไขปัญหาได้ แต่จะยังไม่เปิดตัวอย่างเป็นทางการจนถึงสิ้นปีนี้
ประการที่สามคือปัญหาของธุรกรรม ขยะ กลไกทางเศรษฐกิจของ Solana ทำให้เครือข่ายยากลำบากในการป้องกันไม่ให้ผู้ไม่ประสงค์ดีทำการโจมตีธุรกรรม ขยะ บนเครือข่ายต่อไป
สุดท้ายนี้ ฉันอยากจะขอให้ทุกคนตระหนักถึงสิ่งหนึ่ง: ฉันเชื่อว่า Solana กำลังต่อสู้เพื่อให้ได้การแลกเปลี่ยนที่ถูกต้อง (หมายเหตุ Odaily: หมายถึงการกำหนดมาตรฐานการแบ่งส่วนการเชื่อมต่อที่สมเหตุสมผล) เช่นเดียวกับ Ethereum ที่เคยกำจัดปัญหามากมาย Solana จะ หมดปัญหาเหล่านี้ไปในที่สุด


