ผลลัพธ์การทำธุรกรรมที่ยังไม่ได้ใช้ของบิตคอยน์ (UTXO) คืออะไร?

คู่มือสำหรับผู้เริ่มต้นเกี่ยวกับโมเดล UTXO ของ Bitcoin 📕
ผลลัพธ์การทำธุรกรรมที่ยังไม่ได้ใช้ (UTXO) เป็นเทคนิคที่โปรโตคอล Bitcoin ใช้เพื่อติดตามยอดเงินขณะที่มันเคลื่อนที่ระหว่างกระเป๋าเงินคริปโต
เมื่อพูดถึงการติดตามและจัดการยอดเงินคริปโตแต่ละรายการ โปรโตคอลที่ใช้บล็อกเชนมักจะใช้หนึ่งในสองโมเดลการบัญชีที่แตกต่างกัน
หนึ่งในนั้นเรียกว่า โมเดลบัญชี/ยอดเงิน โครงการต่างๆ เช่น Ethereum, Tezos และ EOS ใช้โมเดลนี้เพื่อติดตามยอดเงินขณะที่ผู้ใช้บล็อกเชนทำธุรกรรม อีกโมเดลหนึ่งเรียกว่า ผลลัพธ์การทำธุรกรรมที่ยังไม่ได้ใช้ (UTXO)
Bitcoin และสกุลเงินดิจิทัลอื่นๆ เช่น Litecoin, Cardano และ Dogecoin ใช้โมเดล UTXO
แต่จริงๆ แล้วมันคืออะไร มันทำงานอย่างไร และข้อดีของ UTXO เมื่อเปรียบเทียบกับโมเดลบัญชี/ยอดเงินคืออะไร?
การทำความเข้าใจโมเดล UTXO 💻
ประวัติ
Adam Back และ Hal Finney ที่ล่วงลับไปแล้วเป็นสมาชิกสองคนของกลุ่ม Cypherpunk การเข้ารหัสลับ ที่ผู้เขียน เอกสารไวท์เปเปอร์ Bitcoin Satoshi Nakamoto เคยไปเยือนบ่อยครั้ง ทั้งสองคนได้รับเครดิตในการพัฒนาโมเดล UTXO อย่างอิสระระหว่างปี 1997 ถึง 2004 ตามลำดับ
เมื่อผู้สร้าง Bitcoin Satoshi Nakamoto เปิดตัวโปรโตคอลในปี 2009 มันกลายเป็นระบบสกุลเงินดิจิทัลที่ใช้งานได้จริงเป็นครั้งแรกที่นำโมเดล UTXO มาใช้
ทั้ง Hal Finney และ Adam Back ถูกสงสัยมานานว่าเป็น Satoshi Nakamoto แม้ว่าจะไม่มีการพิสูจน์อย่างแน่นอน
UTXO โดยรวม
เมื่อคุณส่ง Bitcoin ให้กับใครบางคน จะมีหลายขั้นตอนที่เกิดขึ้นโดยอัตโนมัติ หนึ่งในขั้นตอนแรกในกระบวนการทำธุรกรรมคือกระเป๋าเงิน สกุลเงินดิจิทัล ของคุณจะสแกน บล็อกเชน เพื่อหาจำนวนเงินที่คุณมี เงินเหล่านี้เรียกว่า ผลลัพธ์การทำธุรกรรมที่ยังไม่ได้ใช้ (UTXOs).
คุณสามารถคิดว่า UTXOs เป็นเงินทอนที่เหลือจากการทำธุรกรรม Bitcoin ก่อนหน้า
เงินเหล่านี้ถือว่า "ยังไม่ได้ใช้" เพราะมันสามารถใช้ส่งให้ใครบางคนหรือย้ายไปยังกระเป๋าเงินอื่นได้อย่างอิสระ มันถูกเรียกว่า "ผลลัพธ์การทำธุรกรรม" เพราะมันถูกสร้างขึ้นจากธุรกรรมก่อนหน้า
ถ้าคุณใช้เงิน $12 สำหรับอาหารกลางวันโดยใช้ธนบัตร $20 คุณจะมีธนบัตร $8 เหลืออยู่ ในตัวอย่างนี้ เงินที่เหลือ $8 จะเป็นผลลัพธ์การทำธุรกรรมที่ยังไม่ได้ใช้. มันจะกลับไปในกระเป๋าเงินของคุณพร้อมที่จะใช้ซื้อสิ่งอื่น.
นี่คือวิธีการทำงานของ bitcoin UTXOs. เมื่อคุณทำธุรกรรม ผลลัพธ์จากธุรกรรม bitcoin ก่อนหน้านี้ คือ เงินทอน bitcoin ของคุณ จะถูกใช้เป็นข้อมูลนำเข้าสำหรับธุรกรรมใหม่.
การเปรียบเทียบที่สำคัญอีกประการหนึ่งระหว่างธุรกรรมเงินสดจริงและ UTXOs คือ ทั้งสองต้อง ใช้จ่ายทั้งหมด และ ไม่สามารถแบ่งย่อยได้. หากคุณมี UTXO bitcoin 5 และต้องการส่งให้ใครสักคน 1 BTC คุณจะต้องส่ง UTXO ทั้งหมดที่มีมูลค่า 5 bitcoin และรับ UTXO ใหม่กลับมามูลค่า 4 BTC ลบค่าธรรมเนียม.
เหมือนกับในตัวอย่างข้างต้นที่คุณส่งมอบธนบัตร $20 ทั้งหมดเพื่อจ่ายค่าอาหารกลางวัน $10.
เมื่อ UTXO ถูกใช้จ่าย มันจะถือว่าถูก "บริโภค" และจะถูกลบออกจากการหมุนเวียน.
เงินทอนที่เหลือจะถูกสร้างขึ้นเป็น UTXO ใหม่ทั้งหมด. ส่วนนี้ของระบบ UTXO คือวิธีที่ Bitcoin แก้ปัญหา ปัญหาการใช้จ่ายซ้ำ.
เช่นเดียวกับที่คุณไม่สามารถให้ธนาคาร $5 แก่เจ้าของร้านค้าแล้วให้ธนาคาร $5 เดียวกันแก่คนอื่น ผู้ใช้ bitcoin ไม่สามารถใช้ผลลัพธ์การทำธุรกรรมที่ยังไม่ได้ใช้เดียวกันในธุรกรรมดิจิทัลสองรายการได้.
เมื่อบุคคลพยายามใช้ UTXO เดียวกันสองครั้ง ธุรกรรมทั้งสองจะไปอยู่ใน mempool — ห้องรอสำหรับธุรกรรมที่รอดำเนินการ. พวกเขาจะอยู่ที่นี่จนกว่าผู้ขุดที่ประสบความสำเร็จซึ่งชนะการแข่งขัน proof-of-work จะรวมพวกเขาเข้าในบล็อกใหม่.
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับกระบวนการนี้ในบทความของเราในศูนย์การเรียนรู้ Kraken การขุด bitcoin คืออะไร?
แม้ว่าธุรกรรมทั้งสองจะถูกจัดกลุ่มในสองบล็อกแยกกันและประมวลผลพร้อมกัน แต่เนื่องจากการตั้งเวลา ธุรกรรมหนึ่งจะถูกตรวจสอบก่อนอีกธุรกรรมหนึ่ง. หลังจากที่มีการยืนยันจำนวนหนึ่ง (บล็อกใหม่ถูกเพิ่มลงใน blockchain) โหนดอื่น ๆ จะทำเครื่องหมายธุรกรรมที่สองว่าไม่ถูกต้องและปฏิเสธมัน.
การทำธุรกรรม Coinbase
เวลาที่ bitcoin transaction ไม่มีข้อมูลนำเข้าสคือเมื่อ BTC ที่ถูกสร้างขึ้นใหม่จากการขุด.
เรียกว่า ธุรกรรม coinbase นี่คือธุรกรรมแรกในแต่ละบล็อกใหม่.
ทุก satoshi (หน่วยย่อยของ bitcoin) ที่อยู่ในหมุนเวียนสามารถติดตามกลับไปยังธุรกรรม coinbase ที่โปร่งใสได้.
ทำไม Bitcoin ถึงใช้โมเดล UTXO?
ยอดเงินในบัญชี
เพื่อระบุยอดเงินของผู้ใช้ ซึ่งเรียกว่าเซ็ต UTXO ซอฟต์แวร์กระเป๋าเงินคริปโตจะสแกนบล็อกเชนเพื่อค้นหา UTXO ทั้งหมดที่เกี่ยวข้องกับที่อยู่กระเป๋าเงินสาธารณะที่ตรงกัน
ผลรวมทั้งหมดของ UTXO จะให้ข้อมูลที่ถูกต้องเกี่ยวกับจำนวนคริปโตที่เจ้าของกระเป๋าเงินควบคุม
เมื่อ UTXO ถูกใช้จ่าย ที่อยู่กระเป๋าเงินสาธารณะของผู้รับจะถูกกำหนดให้กับจำนวนเงินและ UTXO ใหม่จะถูกบันทึกในบล็อกเชนเมื่อดำเนินการเสร็จสิ้น
การจัดเก็บ
UTXO ของ Bitcoin จะถูกบันทึกในธุรกรรมต่างๆ ที่ถูกเก็บในบล็อกบนบล็อกเชนของ Bitcoin อย่างไรก็ตาม ข้อมูลนี้ไม่ได้ถูกจัดทำดัชนีอย่างชัดเจน ดังนั้นจึงอาจเป็นเรื่องยากที่จะค้นหาและรวบรวมข้อมูลเมตาได้อย่างรวดเร็ว
เมื่อใช้ซอฟต์แวร์กระเป๋าเงินเช่นไคลเอนต์ Bitcoin Core ข้อมูลเมตา UTXO จะถูกเก็บและจัดทำดัชนีโดยใช้ฐานข้อมูล LevelDB LevelDB เป็นระบบจัดเก็บข้อมูลแบบโอเพนซอร์สที่สร้างโดย Google ในปี 2011 และทำให้การค้นหา UTXO เร็วขึ้นมาก
ไคลเอนต์ Bitcoin Core เป็นซอฟต์แวร์ยอดนิยมที่ใช้เชื่อมต่อกับเครือข่ายบล็อกเชนของ Bitcoin เดิมทีสร้างโดย Satoshi Nakamoto Bitcoin Core ปัจจุบันได้รับการดูแลโดยชุมชนของนักพัฒนาที่สมัครใจ
UTXOs ภายใน 🚗
ในระดับที่มีเทคนิคมากขึ้น มีส่วนหลักสี่ส่วนในธุรกรรม:
- เวอร์ชัน: นี่จะแจ้งให้โหนดเครือข่ายทราบว่าใช้เวอร์ชันใดของซอฟต์แวร์ไคลเอนต์ เวอร์ชันที่แตกต่างกันจะปฏิบัติตามกฎที่แตกต่างกันในการตรวจสอบข้อมูลธุรกรรม
- เวลาล็อค: นี่คือระยะเวลาที่กำหนดว่าเร็วแค่ไหนธุรกรรมจะถูกเพิ่มลงในบล็อกเชน ข้อมูลนำเข้าชี้ให้เห็นว่าเวลาที่เร็วที่สุดที่ธุรกรรมจะถูกประมวลผลโดยโหนดการขุดคือเมื่อใด
- ข้อมูลนำเข้า: ข้อมูลที่ชี้ไปยังแหล่งเงินทุนหรือธุรกรรมก่อนหน้าที่ UTXO ถูกสร้างขึ้น. ข้อมูลนำเข้าก็มีสิ่งที่เรียกว่า "สคริปต์ปลดล็อค" ด้วย.
- ผลลัพธ์: ข้อมูลเกี่ยวกับมูลค่าที่ถูกโอน, กระเป๋าเงินที่การเป็นเจ้าของเงินทุนถูกโอนให้และ UTXOs ใหม่ที่ถูกสร้างขึ้น. ผลลัพธ์ยังมี "สคริปต์ล็อค" ด้วย.
UTXOs แตกต่างจากเงินสดจริงอย่างไร
ความแตกต่างหลักระหว่างการเปรียบเทียบธนบัตรจริงและโมเดล UTXO คือ bitcoin และคริปโตที่ใช้ UTXO อื่น ๆ ไม่ถูกจำกัดด้วยจำนวนที่ตั้งไว้ เช่น $5, $10, $15 เป็นต้น. จำนวน bitcoin ใด ๆ (สูงสุดถึงแปดตำแหน่งทศนิยม) สามารถเป็นผลลัพธ์ของธุรกรรมที่ยังไม่ได้ใช้.
ตัวอย่างเช่น คุณอาจมี 0.0003847 BTC ที่เหลือจากธุรกรรม.
จำนวนนี้จะกลายเป็น UTXO ใหม่ที่ต้องใช้ทั้งหมดหากถูกใช้และไม่สามารถแบ่งเป็นจำนวนที่น้อยกว่าได้.
สมมติว่า John มียอดเงินในกระเป๋าเงินคริปโต 1 bitcoin. ยอดเงินของเขาและองค์ประกอบของยอดเงินนั้นเป็นสองสิ่งที่แตกต่างกัน, คล้ายกับที่คุณอาจมี $100 ในกระเป๋าเงินของคุณแต่สามารถประกอบด้วยธนบัตร $20 สี่ใบ, ธนบัตร $5 สองใบและธนบัตร $10 หนึ่งใบ.
สมมติว่าองค์ประกอบของยอดเงิน 1 BTC ของ John ประกอบด้วย UTXOs ที่ยังไม่ได้ใช้ 5 รายการ.
- 0.138 BTC
- 0.1 BTC
- 0.004 BTC
- 0.73 BTC
- 0.028 BTC
John ต้องการส่ง 0.6 BTC ให้ Jane. เพื่อทำเช่นนี้, ซอฟต์แวร์กระเป๋าเงินของ John จะรวม UTXOs ใด ๆ ที่เขาควบคุมเพื่อครอบคลุมธุรกรรมนี้รวมถึงค่าธรรมเนียมของนักขุดที่เกี่ยวข้องในการประมวลผล.
ในตัวอย่างนี้, สมมติว่าซอฟต์แวร์กระเป๋าเงินของเขาส่ง UTXO ของ John ที่มีมูลค่า 0.73 BTC ไปยัง Jane และส่งคืนจำนวนที่เหลือลบค่าธรรมเนียมธุรกรรมให้ John เป็น UTXO ใหม่.
จำนวนนี้จะถูกส่งไปยังที่อยู่เปลี่ยนโดยอัตโนมัติ; ที่อยู่แยกต่างหากที่เชื่อมโยงกับ กระเป๋าเงินคริปโต ของคุณ.
สคริปต์ล็อกและปลดล็อก 🔒
เมื่อ UTXOs ถูกสร้างขึ้น, พวกมันจะถูกล็อคโดยใช้ที่อยู่กระเป๋าเงินสาธารณะของผู้รับ. เพื่อใช้ UTXO นั้นเป็นข้อมูลนำเข้าในธุรกรรมใหม่, มันต้องถูกปลดล็อคก่อนโดยใช้ลายเซ็นดิจิทัลของผู้ส่ง.
นี่คืออีกสิ่งที่สำคัญที่ต้องเข้าใจเกี่ยวกับการทำธุรกรรมของบิตคอยน์ เมื่อมีการทำธุรกรรม บิตคอยน์จะไม่ได้ถูกย้ายทางดิจิทัลจากบัญชีหนึ่งไปยังอีกบัญชีหนึ่ง แทนที่จะเป็นเช่นนั้น มันจะถูกปลดล็อก โอนให้เจ้าของใหม่ และจากนั้นก็ถูกล็อกกลับอีกครั้ง
นี่หมายความว่าเฉพาะเจ้าของใหม่เท่านั้นที่สามารถปลดล็อกเงินทุนโดยใช้ลายเซ็นดิจิทัลของพวกเขาและโอนมันไปที่อื่น; ไปยังบุคคลอื่นหรือไปยังกระเป๋าเงินอื่นที่อยู่ภายใต้การควบคุมของพวกเขา
สคริปต์คือภาษาการเขียนโปรแกรมที่ใช้โดยบิตคอยน์ในการประมวลผลธุรกรรม รวมถึงการล็อกและปลดล็อก UTXOs
- สคริปต์ล็อก (ScriptPubKey): เมื่อ UTXO ถูกล็อก สคริปต์ล็อก (ที่เรียกว่า ScriptPubKey) จะกำหนดเงื่อนไขที่ต้องปฏิบัติตามก่อนที่ UTXO จะสามารถใช้เป็นข้อมูลนำเข้าได้ โดยปกติจะเกี่ยวข้องกับการพิสูจน์ว่าคุณเป็นเจ้าของกุญแจส่วนตัวที่ตรงกับที่อยู่กระเป๋าเงินสาธารณะที่ใช้ล็อก UTXO โดยการให้ลายเซ็นดิจิทัล
- สคริปต์ปลดล็อก (ScriptSig): ในการปลดล็อก UTXO คุณต้องปฏิบัติตามเงื่อนไขที่กำหนดโดยสคริปต์ล็อก เช่น ให้ลายเซ็นดิจิทัลที่พิสูจน์ว่าคุณควบคุมกุญแจส่วนตัวที่ตรงกับกุญแจสาธารณะที่ใช้ล็อก UTXO
นี่ป้องกันไม่ให้คนอื่นสามารถเข้าถึงและใช้จ่ายเงินทุนเหล่านั้นได้
บิตคอยน์ดัสต์คืออะไร?
บิตคอยน์ดัสต์หมายถึง UTXOs ที่มีปริมาณน้อยมากของซาโตชิที่เหลือจากธุรกรรมก่อนหน้า
ด้วยตัวมันเอง ปริมาณเล็กน้อยเหล่านี้ของ BTC จะมีค่าธรรมเนียมการทำธุรกรรมที่สูงกว่าที่จะประมวลผลมากกว่าที่มันมีค่า และดังนั้นมันมักจะนั่งอยู่ในที่อยู่เปลี่ยนรอที่จะถูกรวมเข้ากับ UTXOs อื่นและใช้จ่าย
การโจมตีแบบดัสติ้งคืออะไร?
การโจมตีด้วยดัสต์หมายถึงการหลอกลวงที่ส่งดัสต์ไปยังที่อยู่กระเป๋าเงินหลายแสนที่แตกต่างกัน แนวคิดเบื้องหลังคือการระบุเป้าหมายที่อาจเกิดขึ้นสำหรับการโจมตีทางสังคมวิศวกรรม
ผู้หลอกลวงจะเฝ้าดูที่อยู่ที่มีดัสต์ที่พวกเขาส่ง รอให้เจ้าของทำธุรกรรมที่รวม UTXOs จากที่อยู่ต่างๆ ที่เชื่อมโยงกับกระเป๋าเงินของพวกเขา เนื่องจาก UTXOs ดัสต์มีขนาดเล็กมาก มีโอกาสดีที่พวกมันจะถูกรวมเข้ากับคนอื่นและใช้เป็นข้อมูลนำเข้า
เมื่อสิ่งนี้เกิดขึ้น ผู้หลอกลวงสามารถได้แนวคิดเกี่ยวกับเงินทุนที่บุคคลนั้นมี พวกเขาสามารถเลือกที่จะฝังข้อความฟิชชิงในธุรกรรมที่เชิญเจ้าของให้คลิกที่ลิงก์ที่ดาวน์โหลดมัลแวร์ หรือเยี่ยมชมเว็บไซต์ปลอมที่เลียนแบบหน้าแลนดิ้งที่ถูกต้องและขอข้อมูลส่วนบุคคล
การโจมตีแบบดัสติ้งของบิตคอยน์อันตรายแค่ไหน?
การโจมตีแบบดัสติ้งไม่ให้ผู้หลอกลวงเข้าถึงเงินของคุณ
มันเพียงแค่ช่วยให้แคบลงว่าที่อยู่ใดที่ถูกควบคุมโดยกระเป๋าเงินคริปโตเฉพาะ
เพื่อที่จะลดความเสี่ยงจากการโจมตีแบบดัสติ้ง ควรหลีกเลี่ยงการคลิกที่ลิงก์หรือเยี่ยมชมเว็บไซต์ที่แนบมากับธุรกรรมดัสติ้ง
เริ่มซื้อบิตคอยน์
ตอนนี้ที่คุณได้เรียนรู้เกี่ยวกับโมเดลผลลัพธ์การทำธุรกรรมที่ยังไม่ได้ใช้แล้ว คุณพร้อมที่จะเดินต่อในเส้นทางคริปโตของคุณและซื้อบิตคอยน์หรือยัง?
ตรวจสอบคู่มือศูนย์การเรียนรู้ของ Kraken ของเราเพื่อข้อมูลเพิ่มเติมเกี่ยวกับ วิธีการซื้อบิตคอยน์ (BTC) และ ลงทะเบียนสำหรับบัญชีกับ Kraken วันนี้