นี่คือบทบรรณาธิการความคิดเห็นโดย Shinobi นักการศึกษาที่เรียนรู้ด้วยตนเองในพื้นที่ Bitcoin และโฮสต์พอดคาสต์ Bitcoin ที่เน้นด้านเทคโนโลยี
น่าประหลาดใจมากที่ Bitcoiners โต้เถียงกันอย่างรุนแรงเกี่ยวกับข้อเสนอ การเปลี่ยนแปลงที่จะรวมอยู่ใน Bitcoin Core รุ่นถัดไป Opt-in replace-by-fee (RBF) เป็นฟีเจอร์นโยบาย mempool ที่เสนอในปี 2015 เพื่อให้ผู้ใช้มีเครื่องมือในการจัดการกับค่าธรรมเนียมที่เพิ่มขึ้นอย่างรวดเร็วซึ่งนำไปสู่การทำธุรกรรมที่ค้างอยู่ใน mempool เป็นเวลานาน
เห็นได้ชัดว่านี่จะเป็นปัญหาสำหรับการใช้ Bitcoin ใด ๆ หากปริมาณธุรกรรมโดยเฉลี่ยเพิ่มขึ้นอย่างต่อเนื่องสูงกว่าจำนวนธุรกรรมที่สามารถประมวลผลในบล็อกเชนได้ ดังนั้น เว้นแต่คุณคิดว่าจะไม่เกิดขึ้น นี่เป็นฟังก์ชันที่จำเป็นในเครือข่าย
การแทนที่ธุรกรรมนั้นมีอยู่จริงและเป็นไปได้ในซอฟต์แวร์รุ่นดั้งเดิมก่อนที่ Satoshi Nakamoto จะหายตัวไป ในที่สุดเขาก็ปิดการใช้งานคุณลักษณะนี้เนื่องจากวิธีที่เขาใช้งานในตอนแรกสร้างเวกเตอร์สำหรับการโจมตีแบบปฏิเสธการให้บริการกับโหนด การใช้งานของเขาทำให้สามารถเปลี่ยนธุรกรรมใด ๆ โดยไม่ต้องจ่ายค่าธรรมเนียมที่สูงขึ้น ซึ่งโดยพื้นฐานแล้วจะอนุญาตให้ผู้ใช้ส่งธุรกรรมแล้วเริ่มออกอากาศจำนวนการแทนที่ไปยังเครือข่ายได้ไม่จำกัด เห็นได้ชัดว่าจะทำให้เกิดการสแปมโหนดที่มีข้อมูลจำนวนมหาศาลซึ่งไม่จำเป็นต้องมีการพิสูจน์การทำงาน และจะทำให้ต้นทุนในการรันโหนดเพิ่มขึ้นอย่างต้องห้าม
ในช่วงหลายปีที่ผ่านมา ข้อเสนอที่แตกต่างกันสำหรับการเปลี่ยนธุรกรรมที่ปรับปรุงใหม่และปลอดภัยยิ่งขึ้น มีการหารือเกี่ยวกับโครงการ เราจะผ่านสิ่งเหล่านี้อย่างรวดเร็ว
Full RBF
ตัวแปรที่ง่ายที่สุดของ RBF ธุรกรรมใดๆ สามารถถูกแทนที่ได้ตราบใดที่การเปลี่ยนธุรกรรมเดิมนั้นจ่ายค่าธรรมเนียมที่สูงกว่าธุรกรรมที่กำลังเปลี่ยน ด้วยวิธีนี้ ธุรกรรมสามารถเปลี่ยนได้ทั้งหมด แต่ข้อกำหนดในการจ่ายค่าธรรมเนียมที่สูงขึ้นทุกครั้งที่คุณเปลี่ยน จะป้องกันสแปมเวอร์ชันใหม่ที่ไม่สิ้นสุดของโหนดโอเวอร์โหลดธุรกรรม
First-Seen-Safe RBF
ข้อเสนอนี้อนุญาตให้เปลี่ยนธุรกรรมทั้งหมดใน mempool โดยมีข้อแม้พิเศษเพียงข้อเดียว เอาต์พุตทั้งหมดในธุรกรรมเดิมจะต้องรวมอยู่ในธุรกรรมการเปลี่ยน รวมถึงเอาต์พุตการเปลี่ยนแปลงด้วย ยังคงต้องเพิ่มค่าธรรมเนียมเพื่อแทนที่ธุรกรรม แต่ข้อกำหนดในการรักษาผลลัพธ์เดิมหมายความว่าคุณต้องเพิ่มอินพุตใหม่และเอาต์พุตการเปลี่ยนแปลงที่สอง เนื่องจากไม่สามารถเปลี่ยนแปลงเอาต์พุตดั้งเดิมได้ ส่งผลให้มีการทำธุรกรรมขนาดใหญ่ขึ้นซึ่งต้องเสียค่าธรรมเนียมเพิ่มเติมทั้งหมดเพื่อให้แน่ใจว่าการทดแทนจะจ่ายค่าธรรมเนียมในอัตราที่สูงขึ้น
RBF ที่ล่าช้า
นี่คือข้อเสนอเพื่ออนุญาตให้เปลี่ยนธุรกรรมใดๆ ใน mempool แต่หลังจากผ่านบล็อกจำนวนหนึ่งไปแล้วเนื่องจากโหนดเห็นธุรกรรมดั้งเดิม แนวคิดก็คือสิ่งนี้จะทำให้ธุรกรรมที่ค้างอยู่ในสภาพแวดล้อมที่มีค่าธรรมเนียมสูงสามารถถูกแทนที่และยืนยันได้เร็วขึ้น แต่การหน่วงเวลาในการเปลี่ยนได้เร็วจะช่วยป้องกันความพยายามในการใช้จ่ายซ้ำซ้อนที่ไม่มีการยืนยันเป็นศูนย์
Opt-In RBF
นี่คือสิ่งที่นำมาใช้ในปี 2016 ตามที่กำหนดไว้ใน BIP 125 ธุรกรรมสามารถเปลี่ยนได้ก็ต่อเมื่อพวกเขาตั้งค่าสถานะเฉพาะในการทำธุรกรรมที่เลือกที่จะเปลี่ยนหรือถ้าบรรพบุรุษของพวกเขาทำในกรณีของการทำธุรกรรมที่ไม่ได้รับการยืนยันเพื่อให้ผู้ที่ได้รับเงินทราบว่าธุรกรรมที่ไม่ได้รับการยืนยันจะเป็นหรือไม่ เปลี่ยนได้ใน mempool
การโต้เถียงครั้งใหญ่ในวันนี้คือ Core รุ่นถัดไป 0.24 ถูกตั้งค่าให้แนะนำแฟล็กนโยบาย RBF mempool แบบเต็ม สิ่งนี้หมายความว่า? มันจะให้ตัวเลือกแก่ผู้ใช้ที่กำหนดค่าได้เพื่อเปลี่ยนนโยบาย mepool ในพื้นที่จาก opt-in RBF เป็น RBF แบบเต็ม โดยค่าเริ่มต้น ตัวเลือกจะถูกปิดไว้ (โหนดจะใช้ RBF แบบเต็ม) เหตุใดผู้คนจึงอยู่ในอ้อมแขนของการเปลี่ยนแปลงนี้? ธุรกิจที่ยอมรับธุรกรรมการยืนยันเป็นศูนย์ขึ้นอยู่กับ mempools ของโหนดส่วนใหญ่ที่ปฏิเสธที่จะแทนที่ธุรกรรมที่ไม่ได้เลือกใช้ RBF ด้วยแฟล็กธุรกรรม พวกเขาทำเช่นนี้โดยการเชื่อมต่อโหนดของพวกเขากับโหนดอื่น ๆ จำนวนมากที่กระจายไปทั่วเครือข่าย วิธีนี้ช่วยให้พวกเขาสามารถตรวจพบการทำธุรกรรมแบบทวีคูณบนเครือข่ายได้อย่างรวดเร็ว เนื่องจากต้องทำเกือบจะในทันทีหากธุรกรรมไม่ได้ถูกตั้งค่าสถานะเป็น RBF เพื่อให้มีโอกาสที่ดีในการทำให้นักขุด นอกจากนี้ยังควรชี้ให้เห็นว่าทุกธุรกิจในเครือข่ายไม่สามารถทำได้หากไม่มีsybilingเครือข่าย. ธุรกิจเหล่านี้อ้างว่า RBF เต็มรูปแบบ”ทำลาย”รูปแบบธุรกิจของตนในการใช้ RBF บางคนถึงกับวิพากษ์วิจารณ์นักพัฒนาหลักว่า”บังคับ”การเปลี่ยนแปลงที่ส่งผลเสียต่อธุรกิจเหล่านี้
ความจริงง่ายๆ คือ การใช้จ่ายซ้ำซ้อนมีและจะเป็นไปได้เสมอ การเลือกรับ RBF หรือ RBF แบบเต็มไม่ได้ทำอะไรเพื่อเปลี่ยนแปลงสิ่งนี้ นอกจากนี้ เพียงแค่สร้างตัวเลือกเพื่อเปลี่ยนนโยบาย mepool ในพื้นที่ของคุณเอง (ซึ่งถูกตั้งค่าเป็นปิดโดยค่าเริ่มต้น) ไม่ได้กำหนดการเปลี่ยนแปลงให้กับใครเลย แต่เป็นตัวเลือกที่ผู้ใช้จะตัดสินใจเลือกด้วยตนเอง ในตอนท้ายของวันเมื่อธุรกรรมใดที่จะรวมอยู่ในบล็อกถัดไป mempools เดียวที่สำคัญคือคนงานเหมือง mempools ของโหนดผู้ใช้แต่ละรายไม่ได้เป็นเพียงสายโซ่เดซี่ของหน่วยความจำที่จัดเก็บโดยมีเป้าหมายสูงสุดในการเผยแพร่ธุรกรรมที่ไม่ได้รับการยืนยันทั้งหมดไปยังผู้ขุดเพื่อให้สามารถรวมไว้ในบล็อกได้ในที่สุด
นโยบาย Mempool ใช้เป็นกลไกความปลอดภัยแบบนุ่มนวลเพื่อป้องกันการโจมตีแบบปฏิเสธการให้บริการบนโหนด และปกป้องผู้ใช้จากการยิงตัวเองด้วยธุรกรรมและสคริปต์ที่ซับซ้อน ธุรกรรมหลายประเภทถูกต้องโดยฉันทามติ ได้รับอนุญาตให้รวมอยู่ในบล็อก แต่จะไม่ถูกถ่ายทอดโดยนโยบาย mempool เริ่มต้นของโหนด อย่างไรก็ตาม สิ่งนี้ไม่ได้ช่วยหยุดผู้ใช้ที่กำหนดจากการส่งต่อธุรกรรมที่โหนดบนเครือข่ายจะถูกละเว้นโดยตรงไปยังผู้ขุด
นั่นคือปมของเรื่อง สิ่งที่ต้องทำคือนักขุดตั้งค่า API เพื่อส่งธุรกรรมโดยตรง ซึ่งหลายคนมีอยู่แล้ว และข้อจำกัดของนโยบาย mempool ในเครือข่ายก็ไม่สำคัญ คุณสามารถทำธุรกรรมโดยตรงกับผู้ขุดและข้ามกฎทุกข้อเมื่อบางสิ่งสามารถแทนที่ได้ใน mempool ของโหนดอื่น ลองนึกถึงสิ่งจูงใจของสิ่งนั้น — ถ้ามีเงินที่จะทำโดยการขุดธุรกรรมบางประเภท แต่ mempools ทั่วทั้งเครือข่ายจะไม่ส่งต่อสิ่งเหล่านี้ คุณจะทำอย่างไรในฐานะนักขุด เพียงแค่ยอมรับพวกเขาโดยตรง ยิ่งเงินอุดหนุนลดลงและค่าธรรมเนียมการทำธุรกรรมเพิ่มขึ้นเป็นเปอร์เซ็นต์ของรายได้จากการขุด ยิ่งเป็นสิ่งที่หลีกเลี่ยงไม่ได้ที่นักขุดจะยอมรับการเปลี่ยนโดยตรงที่จ่ายค่าธรรมเนียมที่สูงขึ้นหากโหนดบนเครือข่ายไม่ส่งต่อโดยอ้อม มันหลีกเลี่ยงไม่ได้
การเปลี่ยนแปลงนี้ไม่ได้เปลี่ยนนโยบาย mempool เริ่มต้นสำหรับ Bitcoin Core เพียงแต่นำเสนอตัวเลือกสำหรับตัวดำเนินการโหนดแต่ละเครื่องเพื่อเปลี่ยนนโยบาย Mempool ในพื้นที่หากพวกเขาเลือก
และฉันขอเพิ่มเติมว่า นี่เป็นตัวเลือกที่มีให้เสมอหากผู้ใช้เลือกที่จะแก้ไขไคลเอ็นต์ของตน ทั้งหมดที่ทำได้คือทำให้ตัวเลือกที่ผู้ใช้ทำได้ง่ายขึ้นมาโดยตลอด สิ่งจูงใจจะนำไปสู่สถานะที่ธุรกรรมทั้งหมดจะถูกแทนที่อย่างหลีกเลี่ยงไม่ได้ หากนักขุดดำเนินการอย่างมีเหตุผลทางเศรษฐกิจ เป็นสิ่งที่หลีกเลี่ยงไม่ได้ คำถามเดียวของเรื่องนี้คือ ซอฟต์แวร์ควรสะท้อนถึงสิ่งจูงใจเหล่านั้น โดยให้ผู้ใช้แต่ละคนตัดสินใจด้วยตัวเองว่าจะใช้นโยบายใดสำหรับ mempool ของตน หรือผู้คนควรนั่งเฉยๆ และปล่อยให้การแพร่กระจายของธุรกรรมรวมศูนย์โดยส่งตรงไปยังคนงานเหมือง ตัวพวกเขาเอง?
ผลลัพธ์ที่ได้ก็เหมือนเดิม แต่การรอให้นักขุดโน้มน้าวให้ส่งธุรกรรมโดยตรงจะส่งผลในทางลบอย่างมาก มันจะมีผลกระทบต่อความเป็นส่วนตัวสำหรับผู้ที่ออกอากาศธุรกรรมไปยังเครือข่าย และอาจส่งผลเชิงลบอย่างมากต่อความสามารถของผู้ใช้ในการตัดสินใจว่าจะจ่ายค่าธรรมเนียมใดสำหรับการทำธุรกรรม หากธุรกรรมที่รอดำเนินการส่วนใหญ่ไม่ได้เผยแพร่ต่อสาธารณะในเครือข่ายอีกต่อไป ผู้ใช้จะมีมุมมองที่ไม่สมบูรณ์ว่าตนกำลังเสนอราคากับใครเพื่อรวมไว้ในบล็อก คนงานเหมืองอาจโกหกเรื่องการจ่ายค่าธรรมเนียมเพื่อจูงใจให้ผู้ใช้จ่ายเงินมากกว่าที่ต้องจ่าย
ข้อเสียเพียงอย่างเดียวที่ทำให้ตัวเลือกนี้ใช้งานได้คือ RBF แบบเต็มอาจไม่ทำงานอย่างสม่ำเสมอ หากเครือข่ายจำนวนเล็กน้อย รวมถึงผู้ขุด เลือกที่จะเปิดใช้งาน RBF แบบเต็ม อย่างไรก็ตาม โดยพื้นฐานแล้วสิ่งนี้ไม่แตกต่างกันในแง่ของการเปลี่ยนผ่านจากการอัปเกรดเป็น SegWit ในช่วงเวลาการเปลี่ยนแปลงนั้น โหนดที่ไม่ได้อัปเกรดจะไม่ถ่ายทอดธุรกรรม SegWit เนื่องจากไม่สามารถตรวจสอบความถูกต้องได้ ดังนั้นในช่วงเวลาดังกล่าว การแพร่กระจายแบบไดนามิกจะไม่สอดคล้องกันจนกว่าผู้ใช้จะอัปเกรดเพียงพอ แต่ท้ายที่สุดแล้ว นั่นไม่ได้เปลี่ยนความจริงที่ว่าการอัปเกรดเป็นการตัดสินใจของผู้ใช้แต่ละราย
ในท้ายที่สุดการต่อสู้กับ RBF อย่างเต็มรูปแบบเป็นเพียงการปฏิเสธความเป็นจริงของสิ่งจูงใจในเครือข่าย ไม่มีการบังคับใคร ตัวเลือกการกำหนดค่าเป็นเพียงการนำเสนอตัวเลือกให้ผู้ใช้แต่ละคนทำด้วยตัวเอง ฉันพบว่ามันแปลกที่พร้อมๆ กัน ผู้คนจำนวนมากต่างก็เพิกเฉยต่อความเป็นจริงของสิ่งจูงใจในการโต้แย้งว่าวิธีการรับการชำระเงินที่ไม่ปลอดภัยสามารถถูกเก็บไว้อย่างปลอดภัยเพื่อต่อต้านสิ่งจูงใจ เช่นเดียวกับที่ผู้คนกำลังโต้แย้งว่าผู้ใช้ซอฟต์แวร์ไม่ควรได้รับอนุญาตให้เลือกวิธี เพื่อกำหนดค่าซอฟต์แวร์ของตนเอง
โหนดของฉัน กฎของฉัน ใช่ไหม
นี่คือแขกโพสต์โดย Shinobi ความคิดเห็นที่แสดงออกมานั้นเป็นความคิดเห็นของตนเองทั้งหมดและไม่จำเป็นต้องสะท้อนความคิดเห็นของ BTC Inc หรือ Bitcoin Magazine