Bitcoin Magazine
ประเด็นหลัก: Cluster Mempool ปัญหาแก้ง่ายขึ้นเมื่อแบ่งเป็นส่วนย่อย
Cluster Mempool1 คือการปรับปรุงโครงสร้างใหม่ทั้งหมดของวิธีที่ mempool จัดการและจัดเรียงธุรกรรม ซึ่งถูกคิดค้นและพัฒนาโดย Suhas Daftuar และ Pieter Wuille การออกแบบนี้มีเป้าหมายเพื่อทำให้สถาปัตยกรรมโดยรวมเรียบง่ายขึ้น ปรับปรุงตัวตรรกะการจัดเรียงธุรกรรมให้สอดคล้องกับแรงจูงใจของนักขุดมากขึ้น และเพิ่มความปลอดภัยสำหรับโปรโตคอลชั้นที่สอง มันถูกรวมเข้ากับ Bitcoin Core ใน PR #336292 เมื่อวันที่ 25 พฤศจิกายน 2025
Mempool คือชุดธุรกรรมที่รอดำเนินการขนาดใหญ่ที่โหนดของคุณต้องติดตามด้วยเหตุผลหลายประการ: การประมาณค่าธรรมเนียม การตรวจสอบการเปลี่ยนธุรกรรม และการสร้างบลอกหากคุณเป็นนักขุด
นี่คือเป้าหมายที่แตกต่างกันมากมายสำหรับฟังก์ชันเดียวของโหนดของคุณที่ต้องให้บริการ Bitcoin Core จนถึงเวอร์ชัน 30.0 จัดระเบียบ mempool ในสองวิธีที่แตกต่างกันเพื่อช่วยในฟังก์ชันเหล่านี้ ทั้งสองจากมุมมองสัมพัทธ์ของธุรกรรมใดๆ: อัตราค่าธรรมเนียมรวมที่มองไปข้างหน้าของธุรกรรมและลูกหลาน (อัตราค่าธรรมเนียมลูกหลาน) และอัตราค่าธรรมเนียมรวมที่มองย้อนหลังของธุรกรรมและบรรพบุรุษ (อัตราค่าธรรมเนียมบรรพบุรุษ)
สิ่งเหล่านี้ถูกใช้เพื่อตัดสินใจว่าจะขับไล่ธุรกรรมใดออกจาก mempool ของคุณเมื่อเต็ม และจะรวมธุรกรรมใดก่อนเมื่อสร้างเทมเพลตบลอกใหม่
เมื่อนักขุดกำลังตัดสินใจว่าจะรวมธุรกรรมในบลอกของพวกเขาหรือไม่ โหนดของพวกเขาจะดูธุรกรรมนั้น และบรรพบุรุษใดๆ ที่ต้องได้รับการยืนยันก่อนเพื่อให้มันถูกต้องในบลอก และดูอัตราค่าธรรมเนียมเฉลี่ยต่อไบต์ทั้งหมดรวมกัน โดยพิจารณาค่าธรรมเนียมแต่ละรายการที่พวกเขาจ่ายเป็นหนึ่งเดียว หากกลุ่มธุรกรรมนั้นพอดีภายในขีดจำกัดขนาดบลอกในขณะที่แข่งขันกับรายการอื่นๆ ในด้านค่าธรรมเนียม มันจะถูกรวมอยู่ในบลอกถัดไป สิ่งนี้จะทำกับทุกธุรกรรม
เมื่อโหนดของคุณกำลังตัดสินใจว่าจะขับไล่ธุรกรรมใดออกจาก mempool เมื่อเต็ม มันจะดูธุรกรรมแต่ละรายการและลูกหลานใดๆ ที่มี โดยขับไล่ธุรกรรมและลูกหลานทั้งหมดหาก mempool เต็มไปด้วยธุรกรรม (และลูกหลานของพวกเขา) ที่จ่ายอัตราค่าธรรมเนียมที่สูงกว่า
ดูกราฟตัวอย่างของธุรกรรมด้านบน อัตราค่าธรรมเนียมแสดงไว้ในวงเล็บ (อัตราค่าธรรมเนียมบรรพบุรุษ, อัตราค่าธรรมเนียมลูกหลาน) นักขุดที่ดูธุรกรรม E น่าจะรวมมันไว้ในบลอกถัดไป ธุรกรรมขนาดเล็กที่จ่ายค่าธรรมเนียมสูงมากพร้อมบรรพบุรุษขนาดเล็กเพียงรายการเดียว อย่างไรก็ตาม หาก mempool ของโหนดกำลังเต็ม มันจะดูธุรกรรม A ที่มีลูกหลานขนาดใหญ่สองรายการที่จ่ายค่าธรรมเนียมสัมพัทธ์ต่ำ และน่าจะขับไล่มันหรือไม่ยอมรับและเก็บมันไว้หากเพิ่งได้รับมา
การจัดอันดับหรือการเรียงลำดับทั้งสองนี้ขัดแย้งกันโดยสิ้นเชิง Mempool ควรเผยแพร่สิ่งที่นักขุดจะขุดได้อย่างน่าเชื่อถือ และผู้ใช้ควรมั่นใจว่า mempool ในเครื่องของพวกเขาคาดการณ์สิ่งที่นักขุดจะขุดได้อย่างแม่นยำ
Mempool ที่ทำงานในลักษณะนี้มีความสำคัญต่อ:
พฤติกรรมปัจจุบันของ mempool ไม่สอดคล้องกับความเป็นจริงของแรงจูงใจการขุดอย่างสมบูรณ์ ซึ่งสร้างจุดบอดที่อาจเป็นปัญหาสำหรับความปลอดภัยชั้นที่สองโดยสร้างความไม่แน่นอนว่าธุรกรรมจะไปถึงนักขุดหรือไม่ รวมถึงแรงกดดันสำหรับช่องทางการออกอากาศที่ไม่เป็นสาธารณะไปยังนักขุด ซึ่งอาจทำให้ปัญหาแรกแย่ลง
นี่เป็นปัญหาโดยเฉพาะอย่างยิ่งเมื่อต้องเปลี่ยนธุรกรรมที่ยังไม่ได้รับการยืนยัน ไม่ว่าจะเป็นเพียงเพื่อจูงใจให้นักขุดรวมการเปลี่ยนแทนเร็วขึ้น หรือเป็นส่วนหนึ่งของโปรโตคอลชั้นที่สองที่ถูกบังคับใช้บนเชน
การเปลี่ยนแทนตามพฤติกรรมที่มีอยู่กลายเป็นสิ่งที่คาดเดาไม่ได้ขึ้นอยู่กับรูปร่างและขนาดของเว็บธุรกรรมที่ธุรกรรมของคุณติดอยู่ ในสถานการณ์การเพิ่มค่าธรรมเนียมแบบง่ายๆ สิ่งนี้อาจล้มเหลวในการเผยแพร่และเปลี่ยนธุรกรรม แม้ว่าการขุดการเปลี่ยนแทนจะดีกว่าสำหรับนักขุด
ในบริบทของโปรโตคอลชั้นที่สอง ตรรกะปัจจุบันอนุญาตให้ผู้เข้าร่วมอาจทำให้ธุรกรรมบรรพบุรุษที่จำเป็นถูกขับไล่ออกจาก mempool หรือทำให้ผู้เข้าร่วมอื่นไม่สามารถส่งธุรกรรมลูกที่จำเป็นไปยัง mempool ภายใต้กฎปัจจุบันเนื่องจากธุรกรรมลูกที่ผู้เข้าร่วมที่เป็นอันตรายสร้างขึ้น หรือการขับไล่ธุรกรรมบรรพบุรุษที่จำเป็น
ปัญหาทั้งหมดเหล่านี้เป็นผลมาจากการจัดอันดับการรวมและการขับไล่ที่ไม่สอดคล้องกันเหล่านี้ และความไม่สอดคล้องกันของแรงจูงใจที่พวกเขาสร้างขึ้น การมีการจัดอันดับทั่วโลกเดียวจะแก้ไขปัญหาเหล่านี้ได้ แต่การจัดเรียงใหม่ทั้ง mempool ทั้งหมดสำหรับทุกธุรกรรมใหม่นั้นไม่สามารถทำได้จริง
ธุรกรรมที่ขึ้นต่อกันคือกราฟ หรือชุด "เส้นทาง" ที่มีทิศทาง เมื่อธุรกรรมใช้จ่ายเอาต์พุตที่สร้างโดยธุรกรรมอื่นในอดีต มันจะเชื่อมโยงกับธุรกรรมในอดีตนั้น เมื่อมันใช้จ่ายเอาต์พุตเพิ่มเติมที่สร้างโดยธุรกรรมในอดีตที่สอง มันจะเชื่อมโยงธุรกรรมประวัติศาสตร์ทั้งสองเข้าด้วยกัน
เมื่อยังไม่ได้รับการยืนยัน โซ่ของธุรกรรมเช่นนี้ต้องมีธุรกรรมก่อนหน้านี้ได้รับการยืนยันก่อนเพื่อให้ธุรกรรมที่มาภายหลังถูกต้อง ท้ายที่สุดแล้ว คุณไม่สามารถใช้จ่ายเอาต์พุตที่ยังไม่ได้สร้างขึ้น
นี่เป็นแนวคิดที่สำคัญสำหรับการทำความเข้าใจ mempool มันถูกจัดเรียงตามทิศทางอย่างชัดเจน
มันเป็นเพียงกราฟ
ใน cluster mempool แนวคิดของคลัสเตอร์คือกลุ่มธุรกรรมที่ยังไม่ได้รับการยืนยันที่เกี่ยวข้องโดยตรงกัน กล่าวคือ การใช้จ่ายเอาต์พุตที่สร้างโดยรายการอื่นในคลัสเตอร์หรือในทางกลับกัน สิ่งนี้กลายเป็นหน่วยพื้นฐานของสถาปัตยกรรม mempool ใหม่ การวิเคราะห์และจัดเรียง mempool ทั้งหมดเป็นงานที่ไม่สามารถทำได้จริง แต่การวิเคราะห์และจัดเรียงคลัสเตอร์นั้นจัดการได้มากกว่า
แต่ละคลัสเตอร์จะถูกแบ่งออกเป็นชิ้นส่วน ชุดเล็กๆ ของธุรกรรมจากคลัสเตอร์ ซึ่งจากนั้นจะถูกเรียงลำดับจากอัตราค่าธรรมเนียมสูงสุดต่อไบต์ไปยังต่ำสุด โดยเคารพการพึ่งพาทิศทาง ตัวอย่างเช่น สมมติว่าจากอัตราค่าธรรมเนียมสูงสุดไปยังต่ำสุด ชิ้นส่วนในคลัสเตอร์ (A) คือ: [A,D], [B,E], [C,F], [G, J] และสุดท้าย [I, H]
สิ่งนี้ช่วยให้สามารถเรียงลำดับชิ้นส่วนและคลัสเตอร์ทั้งหมดล่วงหน้า และการเรียงลำดับ mempool ทั้งหมดที่มีประสิทธิภาพมากขึ้นในกระบวนการ
ตอนนี้นักขุดสามารถคว้าชิ้นส่วนที่มีอัตราค่าธรรมเนียมสูงสุดจากทุกคลัสเตอร์และใส่ลงในเทมเพลตของพวกเขา หากยังมีพื้นที่พวกเขาสามารถไปที่ชิ้นส่วนที่มีอัตราค่าธรรมเนียมสูงถัดไป ดำเนินการต่อจนกว่าบลอกจะเต็มพอสมควรและเพียงแค่ต้องหาธุรกรรมสุดท้ายไม่กี่รายการที่สามารถใส่ได้ นี่คือวิธีการสร้างเทมเพลตบลอกที่เหมาะสมที่สุดโดยประมาณ สมมติว่าสามารถเข้าถึงธุรกรรมที่มีทั้งหมด
เมื่อ mempool ของโหนดเต็ม พวกเขาสามารถคว้าชิ้นส่วนที่มีอัตราค่าธรรมเนียมต่ำสุดจากทุกคลัสเตอร์ และเริ่มขับไล่พวกมันออกจาก mempool จนกว่าจะไม่เกินขีดจำกัดที่กำหนดค่าไว้ หากนั่นยังไม่เพียงพอ มันจะไปต่อที่ชิ้นส่วนที่มีอัตราค่าธรรมเนียมต่ำถัดไป และอื่นๆ จนกว่าจะอยู่ภายในขีดจำกัด mempool ทำด้วยวิธีนี้จะลบกรณีขอบแปลกๆ ที่ไม่สอดคล้องกับแรงจูงใจการขุด
ตรรกะการเปลี่ยนแทนก็ถูกทำให้เรียบง่ายอย่างมาก เปรียบเทียบคลัสเตอร์ (A) กับคลัสเตอร์ (B) ซึ่งธุรกรรม K ได้แทนที่ G, I, J และ H เกณฑ์เดียวที่ต้องปฏิบัติตามคือชิ้นส่วนใหม่ [K] ต้องมีอัตราค่าธรรมเนียมชิ้นส่วนสูงกว่า [G, J] และ [I, H], [K] ต้องจ่ายค่าธรรมเนียมรวมมากกว่า [G, J, I, H] และ K ไม่สามารถเกินขีดจำกัดบนของจำนวนธุรกรรมที่กำลังแทนที่
ในกระบวนทัศน์คลัสเตอร์ การใช้งานที่แตกต่างกันทั้งหมดเหล่านี้สอดคล้องกัน
สถาปัตยกรรมใหม่นี้ช่วยให้เราทำให้ขีดจำกัดกลุ่มธุรกรรมเรียบง่ายขึ้น ลบข้อจำกัดก่อนหน้านี้ว่าธุรกรรมใน mempool สามารถมีบรรพบุรุษที่ยังไม่ได้รับการยืนยันได้กี่รายการ และแทนที่ด้วยขีดจำกัดคลัสเตอร์ทั่วโลกที่ 64 ธุรกรรมและ 101 kvB ต่อคลัสเตอร์
ขีดจำกัดนี้มีความจำเป็นเพื่อรักษาต้นทุนการคำนวณของการเรียงลำดับคลัสเตอร์และชิ้นส่วนล่วงหน้าให้ต่ำพอที่จะสามารถทำได้จริงสำหรับโหนดในการดำเนินการอย่างต่อเนื่อง
นี่คือข้อมูลเชิงลึกที่สำคัญที่แท้จริงของ cluster mempool โดยการรักษาชิ้นส่วนและคลัสเตอร์ให้มีขนาดค่อนข้างเล็ก คุณสามารถสร้างเทมเพลตบลอกที่เหมาะสมที่สุดได้อย่างประหยัด ทำให้ตรรกะการเปลี่ยนธุรกรรม (การเพิ่มค่าธรรมเนียม) เรียบง่ายขึ้น และด้วยเหตุนี้จึงปรับปรุงความปลอดภัยชั้นที่สอง และแก้ไขตรรกะการขับไล่ พร้อมกันทั้งหมด
ไม่มีการคำนวณแบบทันทีที่แพงและช้าสำหรับการสร้างเทมเพลต หรือพฤติกรรมที่คาดเดาไม่ได้ในการเพิ่มค่าธรรมเนียม โดยการแก้ไขความไม่สอดคล้องของแรงจูงใจในวิธีที่ mempool จัดการการจัดระเบียบธุรกรรมในสถานการณ์ต่างๆ mempool ทำงานได้ดีขึ้นสำหรับทุกคน
Cluster mempool เป็นโครงการที่ใช้เวลาหลายปีในการสร้าง และจะส่งผลกระทบอย่างมีนัยสำคัญในการรับรองว่าเทมเพลตบลอกที่ทำกำไรเปิดกว้างสำหรับนักขุดทุกคน ว่าโปรโตคอลชั้นที่สองมีพฤติกรรม mempool ที่มั่นคงและคาดเดาได้ในการสร้างบน และ Bitcoin สามารถทำงานต่อไปเป็นระบบการเงินแบบกระจายอำนาจ
สำหรับผู้ที่สนใจที่จะเจาะลึกในรายละเอียดปลีกย่อยของวิธีการใช้งานและทำงานของ cluster mempool ภายใต้ประทุน นี่คือสองเธรด Delving Bitcoin ที่คุณสามารถอ่าน:
ภาพรวมการใช้งานระดับสูง (พร้อมเหตุผลการออกแบบ): https://delvingbitcoin.org/t/an-overview-of-the-cluster-mempool-proposal/393
วิธีการทำงานของแผนภาพอัตราค่าธรรมเนียม Cluster Mempool: https://delvingbitcoin.org/t/mempool-incentive-compatibility/553
รับสำเนาของ The Core Issue วันนี้!
อย่าพลาดโอกาสของคุณที่จะเป็นเจ้าของ The Core Issue — ที่มีบทความที่เขียนโดย Core Developers จำนวนมากที่อธิบายโครงการที่พวกเขาทำงานด้วยตัวเอง!
บทความนี้เป็นจดหมายจากบรรณาธิการที่ปรากฏในฉบับพิมพ์ล่าสุดของ Bitcoin Magazine, The Core Issue เรากำลังแบ่งปันที่นี่เป็นการมองล่วงหน้าไปยังแนวคิดที่สำรวจตลอดฉบับเต็ม
[1] https://github.com/bitcoin/bitcoin/issues/27677
[2] https://github.com/bitcoin/bitcoin/pull/33629
โพสต์นี้ The Core Issue: Cluster Mempool, Problems Are Easier In Chunks ปรากฏครั้งแรกบน Bitcoin Magazine และเขียนโดย Shinobi


