UTXO ของ Bitcoin: อินพุต เงินทอน และการรวม
ทำความเข้าใจว่ายอด Bitcoin ประกอบด้วยเอาต์พุตที่ยังไม่ใช้ได้อย่างไร อินพุตกับเงินทอนทำงานอย่างไร และการรวม UTXO ขนาดเล็กส่งผลต่อค่าธรรมเนียมหรือความเป็นส่วนตัวอย่างไร
ในคู่มือนี้ยอดคงเหลือในกระเป๋า Bitcoin คือผลรวมของเอาต์พุตหลายรายการ
สรุปสั้น
ยอดในกระเป๋า Bitcoin มักเป็นผลรวมของเอาต์พุตธุรกรรมที่ยังไม่ใช้หลายรายการ หรือ UTXO การจ่ายจะใช้อินพุตจากเอาต์พุตที่เลือกและสร้างเอาต์พุตใหม่ให้ผู้รับและเงินทอนหากจำเป็น การรวมอาจลดจำนวนอินพุตในการจ่ายครั้งหน้า แต่มีค่าธรรมเนียมตอนนี้และอาจเชื่อมประวัติธุรกรรมสาธารณะเข้าด้วยกัน
ยอดคงเหลือในกระเป๋า Bitcoin คือผลรวมของเอาต์พุตหลายรายการ
กระเป๋าอาจแสดงยอดเดียว แต่บัญชีแยกประเภทของ Bitcoin ไม่ได้บันทึกยอดนั้นเป็นรายการบัญชีธนาคารรายการเดียว กระเป๋าสามารถควบคุมเอาต์พุตจากธุรกรรมก่อนหน้าหลายรายการที่ยังไม่ถูกใช้ หรือ UTXO ได้ ยอดบนเชนแบบง่ายคือผลรวมของมูลค่าเอาต์พุตที่กระเป๋าใช้จ่ายได้ แต่ละเอาต์พุตยังมีเงื่อนไขการใช้จ่าย จึงไม่ใช่เหรียญอิสระที่แยกจากธุรกรรม
ธุรกรรมหนึ่งรายการอาจสร้างเอาต์พุตให้ผู้รับหลายราย จำนวนการจ่ายจึงไม่จำเป็นต้องเท่ากับจำนวน UTXO กระเป๋าอาจแยกยอดที่ยืนยันแล้ว ยอดที่ยังไม่ยืนยัน ยอดที่ล็อกไว้ หรือยอดสำหรับดูเท่านั้น ยอดที่แสดงจึงอาจใช้จ่ายได้ไม่ทั้งหมดในทันที โมเดล UTXO ใช้กับ Bitcoin และระบบลักษณะเดียวกัน ไม่ใช่สินทรัพย์คริปโตทุกชนิด
อินพุตอ้างถึงเอาต์พุตเก่ารายการหนึ่งโดยเฉพาะ
อินพุตของธุรกรรม Bitcoin ระบุเอาต์พุตเดิมด้วย ID ธุรกรรมและดัชนีเอาต์พุต บางครั้งเขียนว่า txid:vout พร้อมข้อมูลที่จำเป็นต่อการผ่านเงื่อนไขการใช้จ่าย ธุรกรรมนั้นจึงสร้างเอาต์พุตใหม่หนึ่งรายการหรือมากกว่า คู่มือนักพัฒนา Bitcoin เรื่องธุรกรรม อธิบายโครงสร้างนี้ ส่วน คู่มือบล็อกเชน อธิบายว่าเอาต์พุตแต่ละรายการใช้จ่ายได้เพียงครั้งเดียว
เอาต์พุตถูกใช้ทั้งก้อน Bitcoin ไม่ได้ใช้เพียงบางส่วนแล้วเหลือยอดไว้ในเอาต์พุตเดิม หากอินพุตมีมูลค่ามากกว่ายอดที่จ่าย ธุรกรรมจะสร้างเอาต์พุตใหม่ให้ผู้รับและสร้างเอาต์พุตสำหรับเงินทอน เอาต์พุตใหม่แต่ละรายการกลายเป็น UTXO แยกกันและนำไปใช้ในธุรกรรมภายหลังได้ตามกฎของกระเป๋า
การจ่ายอาจสร้างเอาต์พุตผู้รับและเอาต์พุตเงินทอน
มูลค่ารวมของอินพุตต้องครอบคลุมมูลค่ารวมของเอาต์พุต ส่วนต่างคือค่าธรรมเนียมธุรกรรม กระเป๋าอาจเลือกอินพุตที่มีมูลค่ารวมมากกว่ายอดจ่าย แล้วส่งส่วนที่เหลือกลับไปยังเอาต์พุตที่กระเป๋าควบคุม นี่คือเงินทอนหรือ change ซึ่งเป็นเอาต์พุตใหม่ตามปกติ ไม่ใช่การคืนเงินนอกเชนหรือการยกเลิกการจ่าย
สมมติว่ากระเป๋าเลือก UTXO มูลค่า 300,000 และ 200,000 sat รวมอินพุต 500,000 sat หากผู้รับได้ 420,000 sat และค่าธรรมเนียม 2,000 sat เงินทอนจะเท่ากับ 78,000 sat: 300,000 + 200,000 = 420,000 + 78,000 + 2,000 นี่เป็นตัวอย่างคำนวณสมมติ ไม่ใช่ค่าธรรมเนียมปัจจุบัน เงินทอนจะเป็นเอาต์พุตใหม่ที่กระเป๋าควบคุมและอาจกลายเป็นอินพุตของธุรกรรมในอนาคต
ไม่ใช่ทุกธุรกรรมจะมีเอาต์พุตเงินทอน อินพุตอาจพอดีกับยอดจ่ายและค่าธรรมเนียม หรือธุรกรรมอาจจ่ายให้ผู้รับหลายราย ตรวจดูตัวอย่างธุรกรรมก่อนลงนาม
อินพุตที่มากขึ้นอาจทำให้ธุรกรรมมีขนาดใหญ่ขึ้น
UTXO ที่เลือกแต่ละรายการกลายเป็นอินพุตและต้องมีข้อมูลให้เครือข่ายตรวจสอบการใช้จ่าย อินพุตที่มากขึ้นจึงมักทำให้ธุรกรรมใหญ่ขึ้น แต่ขนาดจริงขึ้นกับชนิดเอาต์พุตและข้อมูลลายเซ็น โดยทั่วไปค่าธรรมเนียมคำนวณจากขนาดเสมือนและอัตราค่าธรรมเนียม BIP 141 กำหนดน้ำหนักและขนาดเสมือนของธุรกรรม SegWit จำนวน BTC ที่ส่งเพียงอย่างเดียวไม่ได้กำหนดขนาดธุรกรรม
ที่อัตราเดียวกัน ธุรกรรมที่มีอินพุตมากกว่าหรือใหญ่กว่าอาจมีค่าธรรมเนียมสูงกว่า เอาต์พุตเงินทอนก็เพิ่มข้อมูลเช่นกัน ดู คู่มือค่าธรรมเนียมธุรกรรม Bitcoin สำหรับความสัมพันธ์ระหว่างขนาดและ sat/vB
การรวม UTXO ใช้หลายเอาต์พุตเพื่อสร้างเอาต์พุตใหม่หนึ่งรายการ
การรวม UTXO คือการสร้างธุรกรรมที่ใช้เอาต์พุตหลายรายการ แล้วส่งมูลค่ารวมหลังหักค่าธรรมเนียมไปยังเอาต์พุตใหม่ที่กระเป๋าเดิมควบคุม การจ่ายครั้งถัดไปอาจใช้อินพุตเดียวจากเอาต์พุตที่รวมแล้ว แทนการใช้เอาต์พุตเดิมทีละรายการ การรวมเปลี่ยนโครงสร้างและต้นทุนการใช้จ่ายในอนาคต แต่ไม่ได้สร้าง Bitcoin หรือลบประวัติธุรกรรม
สิ่งที่ต้องชั่งน้ำหนักคือเวลา ธุรกรรมรวมมีอินพุตทั้งหมด จึงอาจมีขนาดใหญ่และเสียค่าธรรมเนียมตอนนี้ ธุรกรรมภายหลังก็ยังมีค่าธรรมเนียมของอินพุตและเอาต์พุตของตน แต่อาจใช้อินพุตน้อยลง หากอัตราตอนนี้ต่ำกว่าอัตราในเวลาที่จะใช้เอาต์พุตเหล่านั้น การจ่ายต้นทุนอินพุตบางส่วนล่วงหน้าอาจช่วยได้ แต่ถ้าอัตราปัจจุบันสูง การรวมตอนนี้อาจแพงกว่า ไม่ทราบค่าธรรมเนียมในอนาคต จึงรับประกันการประหยัดไม่ได้
กระเป๋าแต่ละแบบเลือกเอาต์พุตต่างกัน
กระเป๋าส่วนใหญ่เลือก UTXO โดยอัตโนมัติ อัลกอริทึมอาจพิจารณายอดจ่าย ขนาดธุรกรรมโดยประมาณ ค่าธรรมเนียม เงินทอน และข้อจำกัดอื่น เป้าหมายไม่ได้มีแค่ลดจำนวนอินพุตเสมอไป แต่อาจชั่งน้ำหนักค่าธรรมเนียมตอนนี้ ต้นทุนการใช้เงินทอนในอนาคต และกฎด้านความปลอดภัยหรือความเป็นส่วนตัว วิธีทำงานและชื่อเมนูแตกต่างกันตามกระเป๋าและเวอร์ชัน
กระเป๋าบางรุ่นมี coin control ให้เลือกดูหรือยกเว้นเอาต์พุตได้ ซึ่งช่วยแยกเงินคนละวัตถุประสงค์ แต่การเลือกผิดอาจทำให้ธุรกรรมใหญ่ขึ้นหรือเชื่อมโยงเอาต์พุตที่ไม่ต้องการ เครื่องมือ listunspent RPC ของ Bitcoin Core ใช้สำหรับนักพัฒนาในการเรียกดู UTXO ผู้ใช้ทั่วไปไม่จำเป็นต้องใช้ RPC เพื่อทำความเข้าใจยอดคงเหลือ
การใช้อินพุตร่วมกันอาจเผยความเชื่อมโยงด้านความเป็นส่วนตัว
ธุรกรรม Bitcoin เปิดเผยต่อสาธารณะ หากธุรกรรมเดียวใช้อินพุตจากหลายเอาต์พุต ผู้สังเกตเห็นได้ว่าเอาต์พุตเหล่านั้นถูกใช้พร้อมกัน นักวิเคราะห์อาจใช้เป็นข้อบ่งชี้ถึงการควบคุมร่วมกัน แต่ไม่ใช่หลักฐานยืนยันตัวบุคคล ธุรกรรมแบบร่วมมือกันอาจมีผู้เข้าร่วมหลายคน
การรวมเอาต์พุตที่ตั้งใจแยกไว้อาจลดการแยกนั้น เพราะทั้งหมดปรากฏในธุรกรรมสาธารณะเดียวกัน ที่อยู่เงินทอนใหม่ช่วยลดการใช้ที่อยู่ซ้ำ แต่ไม่ได้ซ่อนอินพุตหรือลบประวัติ คำแนะนำความเป็นส่วนตัวของ Bitcoin.org อธิบายว่าธุรกรรมเปิดเผยและติดตามได้ รวมถึงประโยชน์ของที่อยู่ใหม่
เปรียบเทียบค่าธรรมเนียมวันนี้กับการใช้งานในอนาคต
เริ่มจากตัวอย่างค่าธรรมเนียมของกระเป๋าและเอาต์พุตที่เสนอให้ใช้ ลองถามว่าจะใช้เอาต์พุตเล็กหลายรายการพร้อมกันเร็ว ๆ นี้หรือไม่ ค่าใช้จ่ายหากใช้แยกกันสูงเมื่อเทียบกับมูลค่าหรือเปล่า และอัตราปัจจุบันเหมาะกับการรวมหรือไม่ จากนั้นเปรียบเทียบกับจำนวนอินพุตของการจ่ายในอนาคต เนื่องจากไม่ทราบอัตราและรูปแบบธุรกรรมล่วงหน้า การประหยัดที่คาดไว้จึงไม่แน่นอน
พิจารณาความเป็นส่วนตัวและความต้องการใช้งานด้วย เอาต์พุตแยกกันอาจแทนเงินจากแหล่งหรือคู่สัญญาต่างกันที่ไม่ต้องการเชื่อมโยงต่อสาธารณะ การเลือกเองอาจรักษาการแยกนี้ได้ แต่ต้องตรวจสอบผู้รับ เงินทอน และค่าธรรมเนียมให้ละเอียด Lightning ใช้เส้นทางชำระเงินต่างจาก Bitcoin บนเชน อ่าน เปรียบเทียบ Lightning กับการจ่ายบนเชน ก่อนส่งสินทรัพย์อื่น ดู รายการตรวจสอบเครือข่ายและที่อยู่
ตรวจสอบธุรกรรมก่อนลงนาม
ตรวจสอบเครือข่าย ที่อยู่ผู้รับ จำนวนเงิน อินพุตที่เลือกหากแสดง ที่อยู่หรือจำนวนเงินทอน และค่าธรรมเนียมรวม ยืนยันว่าเงินทอนกลับไปยังกระเป๋าที่คุณควบคุม ค่าธรรมเนียมสูงอาจเกิดจากอินพุตจำนวนมาก ไม่ใช่เพราะยอดจ่ายสูง
ก่อนรวม ให้แน่ใจว่าตั้งใจใช้อินพุตที่เลือกทั้งหมดร่วมกันและยอมรับความเชื่อมโยงสาธารณะ การรวมไม่ได้รับประกันว่าค่าธรรมเนียมตลอดช่วงการใช้งานจะลดลง เพราะจ่ายค่าอินพุตตอนนี้และจ่ายธุรกรรมอื่นในภายหลัง ดู คู่มือวลีตั้งต้นและการสำรองกระเป๋า สำหรับแนวคิดการกู้คืน
คำถามที่พบบ่อย
Q1UTXO หนึ่งรายการเท่ากับ Bitcoin หนึ่งเหรียญหรือไม่?
ไม่ใช่ UTXO คือเอาต์พุตที่ยังไม่ใช้ซึ่งมีมูลค่าและเงื่อนไขการใช้จ่าย กระเป๋าหนึ่งใบอาจควบคุม UTXO หลายรายการและแสดงผลรวมเป็นยอดเดียว
Q2การจ่าย Bitcoin ทุกครั้งมีเงินทอนหรือไม่?
ไม่เสมอไป อินพุตอาจพอดีกับยอดจ่ายและค่าธรรมเนียม หรือธุรกรรมอาจจ่ายให้ผู้รับหลายราย ตรวจดูตัวอย่างก่อนส่ง
Q3การรวม UTXO ลดค่าธรรมเนียมเสมอหรือไม่?
ไม่ การรวมมีค่าธรรมเนียมตอนนี้และอาจลดอินพุตภายหลัง ผลลัพธ์ขึ้นกับอัตรา ขนาดธุรกรรม กฎกระเป๋า และเวลา
Q4การใช้งาน UTXO หลายรายการพร้อมกันพิสูจน์ว่าเป็นเจ้าของคนเดียวหรือไม่?
แสดงต่อสาธารณะว่าใช้เอาต์พุตพร้อมกัน แต่การควบคุมร่วมเป็นเพียงข้ออนุมาน ไม่ใช่หลักฐานตัวบุคคล
แหล่งข้อมูลและการอ่านเพิ่มเติม
รายงานปัญหา
เราจะเตรียมอีเมลพร้อมลิงก์บทความนี้ Mark จะได้รับรายงานเมื่อคุณส่งอีเมลแล้วเท่านั้น
ตรวจสอบอย่างรวดเร็ว
อ่านคู่มือจบแล้ว ลองตอบคำถาม 3 ข้อ
คำถาม 01
ธุรกรรมใช้อินพุต 300,000 และ 200,000 sat จ่าย 420,000 sat และเสียค่าธรรมเนียม 2,000 sat เงินทอนเท่าไร?
เลือกคำตอบเพื่อดูคำอธิบาย