การจัดระเบียบเชน Bitcoin ใหม่และงานสะสม: ความหมายของการยืนยัน
เรียนรู้ว่าเหตุใดโหนดจึงเห็นปลายเชนต่างกันชั่วคราว งานสะสมเลือกเชนที่ถูกต้องอย่างไร และการจัดระเบียบใหม่กระทบธุรกรรมอย่างไร
ในคู่มือนี้บล็อกที่ถูกต้องสองบล็อกอาจทำให้เชนแยกชั่วคราว
สรุปสั้น
เมื่อบล็อกที่ถูกต้องมาถึงใกล้เคียงกัน โหนด Bitcoin อาจเห็นปลายเชนต่างกันชั่วคราว แต่ละโหนดตรวจสอบบล็อกและติดตามเชนที่ถูกต้องซึ่งตนรู้จักและมีงานพิสูจน์การทำงานสะสมมากที่สุด หากแขนงอื่นแซงเชนที่ใช้อยู่ การจัดระเบียบใหม่จะถอดบล็อกบางส่วนและเชื่อมแขนงใหม่ ทำให้สถานะการยืนยันของธุรกรรมเปลี่ยนได้ การยืนยันที่เพิ่มเป็นหลักฐานของงานที่เพิ่มขึ้น แต่ไม่รับประกันความสิ้นสุดเด็ดขาด
บล็อกที่ถูกต้องสองบล็อกอาจทำให้เชนแยกชั่วคราว
ผู้ขุดสร้างบล็อกถัดไปต่อจากปลายเชนที่ตนรู้จัก หากพบบล็อกที่ถูกต้องสองบล็อกซึ่งอ้างถึงบล็อกแม่เดียวกันในเวลาไล่เลี่ยกัน โหนดหนึ่งอาจได้รับข่าวของบล็อกหนึ่งก่อน ส่วนอีกโหนดได้รับบล็อกคู่แข่งก่อน โหนดจึงอาจแสดงบล็อกต่างกันที่ความสูงเดียวกัน แม้ทั้งสองบล็อกจะถูกต้องได้
ความสูงบล็อกบอกตำแหน่งหลังบล็อกกำเนิด ไม่ใช่ตัวระบุเฉพาะ บล็อกคู่แข่งที่ความสูงเดียวกันมีแฮชส่วนหัวและธุรกรรมต่างกัน คู่มือ Block Chain สำหรับนักพัฒนา Bitcoin อธิบายบล็อกที่เกิดพร้อมกัน ฟอร์ก และแขนงที่ล้าสมัย ฟอร์กสั้นเป็นผลปกติจากความล่าช้าในการเผยแพร่ ไม่ใช่หลักฐานว่าเครือข่ายแบ่งถาวร
Bitcoin เปรียบเทียบงานสะสม ไม่ใช่แค่จำนวนบล็อก
บล็อกผู้สมัครต้องผ่านเป้าหมาย proof-of-work และกฎฉันทามติที่เกี่ยวข้องทุกข้อ แต่ละบล็อกที่ถูกต้องเพิ่มงานตามเป้าหมายของตน งานสะสมของเชนคือผลรวมงานของบล็อกทั้งหมด การนับบล็อกอย่างเดียวจึงอาจทำให้สรุปผิด โดยเฉพาะเมื่อแต่ละแขนงมีเป้าหมายความยากต่างกัน
แขนงสองแขนงที่แยกจากบล็อกแม่เดียวกันอาจมีความสูงเท่ากันแต่งานสะสมไม่เท่ากัน เมื่อแขนงที่ถูกต้องสะสมงานมากกว่าและกลายเป็นตัวเลือกที่แข็งแกร่ง โหนดอาจเปลี่ยนไปใช้แขนงนั้น Bitcoin Core 31.0 แสดงงานรวมของเชนที่ใช้อยู่ในฟิลด์ chainwork ของ getblockchaininfo ให้เปรียบเทียบแฮชบล็อกและข้อมูลเรื่องงาน ไม่ใช่ดูความสูงเพียงอย่างเดียว
“งานมากที่สุด” หมายถึงเชนที่ถูกต้องซึ่งโหนดของคุณรู้จัก
proof-of-work ไม่ทำให้บล็อกที่ไม่ถูกต้องกลายเป็นบล็อกที่ถูกต้อง โหนดเต็มตรวจสอบบล็อกผู้สมัครตามกฎฉันทามติของตน แล้วจึงเปรียบเทียบงานของแขนงที่ผ่านการตรวจ จำนวนแฮชที่มากกว่าไม่บังคับให้โหนดยอมรับธุรกรรมที่ผิด ลายเซ็นไม่ถูกต้อง หรือการสร้างเหรียญเกินกฎ
คำว่าเชนที่มีงานมากที่สุดยังขึ้นอยู่กับข้อมูลที่โหนดได้รับ โหนดเรียนรู้ส่วนหัวและบล็อกจากเพียร์ ความล่าช้าของเครือข่ายจึงทำให้มุมมองต่างกันได้ชั่วคราว โหนดที่ขาดการเชื่อมต่อ ยังซิงก์ไม่เสร็จ หรือใช้ซอฟต์แวร์ฉันทามติรุ่นเก่า อาจไม่รู้จักแขนงที่โหนดปัจจุบันรู้จัก คู่มือเครือข่าย P2P ของ Bitcoin อธิบายการประกาศและส่งต่อบล็อก การตรวจสอบของโหนดกับการรับข้อมูลจากเครือข่ายเป็นคนละเรื่อง
การจัดระเบียบใหม่ถอดแขนงหนึ่งและเชื่อมอีกแขนง
เมื่อโหนดรู้จักแขนงที่ถูกต้องและมีงานมากกว่า จะหาบรรพบุรุษร่วมของสองแขนง จากนั้นถอดบล็อกของเชนที่ใช้อยู่หลังจุดนั้น แล้วตรวจสอบและเชื่อมบล็อกของแขนงที่เลือก การจัดระเบียบใหม่หนึ่งบล็อกเปลี่ยนปลายเชนหนึ่งบล็อก ส่วนกรณีลึกกว่านั้นแทนที่ช่วงยาวกว่า งานสะสมเป็นตัวตัดสิน ดังนั้นความสูงใหม่อาจเท่าเดิมหรือต่างไป
นี่คือการเปลี่ยนมุมมองเชนที่ใช้อยู่ของโหนดนั้น ไม่ได้หมายความว่ากระเป๋าเงิน ตัวสำรวจ ร้านค้า หรือทุกโหนดอัปเดตพร้อมกัน ระหว่างการเผยแพร่ บริการหนึ่งอาจแสดงปลายเชนใหม่ ขณะที่อีกแห่งยังแสดงปลายเชนเดิม บล็อกในแขนงที่ถูกแทนจะไม่อยู่ในเชนที่ใช้อยู่ แต่อาจยังเก็บข้อมูลในเครื่องเพื่อการตรวจสอบ
สมมติว่ามีสองแขนงที่ถูกต้องแยกจากบรรพบุรุษร่วม แขนงหนึ่งมีธุรกรรมชำระเงิน ส่วนอีกแขนงสะสมงานมากกว่าในภายหลัง โหนดที่รู้จักและตรวจสอบแขนงที่แข็งแกร่งกว่าจะถอดบล็อกเก่าแล้วเชื่อมบล็อกของแขนงคู่แข่ง การชำระเงินจึงเสียการยืนยันจากบล็อกเดิมบนเชน active ของโหนดนั้น แม้ความสูงที่แสดงจะเท่ากัน สถานะต่อไปขึ้นอยู่กับว่า input ยังไม่ถูกใช้ในแขนงที่เลือกหรือไม่ การกลับเข้า mempool ในเครื่องไม่เกิดขึ้นโดยอัตโนมัติ และบริการที่ยังซิงก์ไม่ทันอาจแสดงสถานะเดิมอยู่

ธุรกรรมในบล็อกที่ถูกถอดต้องตรวจใหม่
เมื่อถอดบล็อกที่มีธุรกรรม ธุรกรรมนั้นจะเสียการยืนยันจากบล็อกดังกล่าวบนเชนที่ใช้อยู่ของโหนด ธุรกรรมอาจกลับเข้า mempool ในเครื่องได้ หากยังถูกต้อง ไม่ขัดกับธุรกรรมในแขนงที่เลือก และผ่านนโยบายการส่งต่อกับ mempool ของโหนดนั้น mempool เป็นข้อมูลเฉพาะโหนดและไม่ได้รับประกันว่าจะถูกขุดอีก
หากแขนงที่เลือกมีธุรกรรมที่ใช้ input เดียวกัน ธุรกรรมที่ถูกถอดอาจไม่ถูกต้องภายใต้สถานะ UTXO ปัจจุบัน ในกรณีอื่นอาจถูกขุดอีกภายหลัง ค้างโดยไม่มีการยืนยัน หรือหายจาก mempool ของโหนดหนึ่ง กระเป๋าเงินและบริการควรตรวจการเชื่อมโยงกับบล็อกและจำนวนการยืนยันใหม่หลังการจัดระเบียบ Bitcoin Core getchaintips แสดงปลายเชนที่โหนดนั้นรู้จัก ไม่ใช่ทั้งเครือข่าย
การยืนยันบอกความลึกของงาน ไม่ใช่ความสิ้นสุด
ธุรกรรมในบล็อก active มักนับบล็อกนั้นเป็นการยืนยันครั้งแรก และแต่ละบล็อกถัดไปเพิ่มจำนวน ตัวเลขนี้บอกว่ามีบล็อกในเชนที่ใช้อยู่ต่อจากบล็อกธุรกรรมกี่บล็อกโดยประมาณ แต่ไม่รับประกันว่างานจากบล็อกที่มีเป้าหมายต่างกันเท่ากัน และไม่ได้หมายความว่าจะไม่มีการจัดระเบียบใหม่ในอนาคต
เมื่อมีงานสะสมต่อจากบล็อกธุรกรรมมากขึ้น แขนงคู่แข่งโดยทั่วไปต้องใช้ความพยายามมากขึ้นเพื่อแทนที่บล็อกนั้น ความเสี่ยงขึ้นอยู่กับแขนงคู่แข่ง สภาพเครือข่าย ทรัพยากรผู้โจมตีหากมีการโจมตี และกฎที่โหนดใช้ ไม่มีจำนวนการยืนยันสากลที่รับประกันความปลอดภัยสำหรับทุกการชำระเงิน คู่มือประมวลผลการชำระเงิน Bitcoin อธิบายเหตุผลที่ร้านค้ากำหนดนโยบายตามความเสี่ยงของตนเอง
บล็อกล้าสมัยทั่วไปต่างจากการจัดระเบียบใหม่ลึก
เมื่อผู้ขุดสองรายพบบล็อกใกล้กัน แขนงหนึ่งอาจได้บล็อกถัดไปก่อนหลังการเผยแพร่ อีกแขนงมักล้าสมัยหลังหนึ่งบล็อก การแข่งขันตามปกตินี้ทำให้จำนวนการยืนยันต่างกันระหว่างโหนดชั่วคราว และอาจต้องนับธุรกรรมในแขนงที่แพ้ใหม่
การจัดระเบียบใหม่ลึกอาจตามหลังการหยุดชะงักของเครือข่าย การส่งต่อบล็อกที่ถูกต้องล่าช้า ปัญหาซอฟต์แวร์หรือการประสานฉันทามติ หรือความพยายามแทนที่ประวัติเดิม สาเหตุและความรุนแรงแตกต่างกัน คำว่า “การโจมตี 51%” มักหมายถึงความพยายามทำงานให้แซงงานที่ซื่อสัตย์ แต่ไม่อาจบังคับโหนดให้รับบล็อกที่ฝ่าฝืนกฎฉันทามติ ในทางกลับกัน โหนดที่ขาดการเชื่อมต่อกับเพียร์ที่ซื่อสัตย์อาจเห็นข้อมูลไม่ครบ จึงไม่ควรวินิจฉัยเครือข่ายจากตัวสำรวจระยะไกลแห่งเดียว
อ่านสถานะโหนดเป็นภาพเฉพาะเครื่อง
Bitcoin Core 31.0 ใช้ getblockchaininfo รายงานชื่อเครือข่าย ความสูงของบล็อกที่ตรวจสอบแล้ว จำนวนส่วนหัว แฮชบล็อกที่ดีที่สุด chainwork ของเชนที่ใช้อยู่ และข้อมูลซิงก์ getchaintips แสดงปลายเชนในต้นไม้บล็อกที่โหนดรู้จัก พร้อมสถานะอย่าง active, valid-fork, valid-headers, headers-only หรือ invalid ช่วยแยกแขนงที่ตรวจครบออกจากส่วนหัวที่ยังประมวลผลไม่เสร็จ
ผล RPC เป็นภาพจากเครื่องเดียว ไม่ใช่คำประกาศของเครือข่ายทั้งหมด ระหว่างซิงก์ครั้งแรกหรือเมื่อการเชื่อมต่อไม่ดี โหนดอาจล้าหลังหรือรู้จักต้นไม้บล็อกเพียงบางส่วน ตรวจชื่อเชน แฮชบล็อกล่าสุด สถานะตรวจสอบและซิงก์ รวมถึงว่าปลายเชนที่เห็นเป็น active หรือไม่ เอกสาร RPC ของ Bitcoin Core 31.0 ระบุเวอร์ชันไว้ ให้ตรวจคำสั่งและฟิลด์ตามรุ่น Core ที่ใช้
ตรวจการรวมธุรกรรมอีกครั้งเมื่อมีรายงานการจัดระเบียบ
เมื่อบริการรายงานการจัดระเบียบ ให้จด transaction ID และแฮชของบล็อกเดิมที่มีธุรกรรม ตรวจปลายเชน active ปัจจุบันจากโหนดที่เชื่อถือและดูว่าบล็อกเก่ายังอยู่ในเชน active ของโหนดหรือไม่ จากนั้นตรวจว่าธุรกรรมอยู่ในบล็อก active ใหม่ ยังไม่ยืนยัน หรือขัดกับการใช้จ่ายอื่น สีหรือสถานะในตัวสำรวจเป็นมุมมองของผู้ให้บริการ ไม่ใช่กฎฉันทามติ
จำนวนการยืนยันตามโปรโตคอลของเงินฝากกับนโยบายเครดิตบัญชีของผู้รับเป็นคนละเรื่อง คู่มือการยืนยันเงินฝาก กล่าวถึงการเครดิตของกระดานซื้อขายและสินทรัพย์ที่รองรับ ส่วนบทความนี้อธิบายการเลือกแขนงของ Bitcoin ดูเรื่องการตรวจสอบโหนด pruning และขีดจำกัดของโหนดในเครื่องได้ที่ [คู่มือ full node ของ Bitcoin](/th/learn/bitcoin-full-node-pruning-archive-storage-validation-wallet-trust-explained) อย่าส่งซ้ำเพียงเพราะหน้าจอเปลี่ยน ให้ตรวจสถานะธุรกรรมและคำแนะนำของบริการก่อน
คำถามที่พบบ่อย
Q1Bitcoin เลือกเชนที่มีบล็อกมากที่สุดเสมอหรือไม่?
ไม่ โหนดที่ตรวจสอบเลือกเชนที่ถูกต้องและมีงานสะสมมากที่สุดเท่าที่ตนรู้จัก ความสูงใช้แทนการเปรียบเทียบงานไม่ได้
Q2ธุรกรรม Bitcoin ที่ยืนยันแล้วอาจเสียการยืนยันได้หรือไม่?
ได้ หากบล็อกของธุรกรรมออกจากเชน active ระหว่างการจัดระเบียบ โหนดจะไม่นับการยืนยันนั้นอีก ธุรกรรมอาจถูกรวมใหม่ภายหลัง แต่ไม่รับประกัน
Q3การจัดระเบียบใหม่หมายถึงกฎฉันทามติของ Bitcoin เปลี่ยนหรือไม่?
ไม่จำเป็น ฟอร์กช่วงสั้นอาจเกิดเมื่อบล็อกที่ถูกต้องเผยแพร่ต่างเวลากัน การจัดระเบียบเปลี่ยนแขนงที่ติดตาม แต่ไม่ได้เปลี่ยนกฎด้วยตัวมันเอง
แหล่งข้อมูลและการอ่านเพิ่มเติม
รายงานปัญหา
เราจะเตรียมอีเมลพร้อมลิงก์บทความนี้ Mark จะได้รับรายงานเมื่อคุณส่งอีเมลแล้วเท่านั้น
ตรวจสอบอย่างรวดเร็ว
อ่านคู่มือจบแล้ว ลองตอบคำถาม 3 ข้อ
คำถาม 01
อะไรเป็นตัวกำหนดว่าโหนดชอบแขนง Bitcoin ที่ถูกต้องแขนงใด?
เลือกคำตอบเพื่อดูคำอธิบาย
อภิธานศัพท์ออปชัน
A call or put whose strike is near the underlying price; it has little intrinsic value and often substantial sensitivity to time and volatility.
อ่านคู่มือฉบับละเอียดCall optionA contract that gives its holder the right, but not the obligation, to buy the underlying at the strike before or at expiration under the contract terms.
อ่านคู่มือฉบับละเอียดPut optionA contract that gives its holder the right, but not the obligation, to sell the underlying at the strike before or at expiration under the contract terms.
อ่านคู่มือฉบับละเอียด