uxto คืออะไร ?

Nattawat Songsom
2 min readApr 30, 2021

--

ผมจะลองสรุป uxto ตามที่ผมเข้าใจ โดยตัดเรื่อง hash, scriptSig และเรื่องอี่นๆออกไป เพื่อให้เข้าใจง่ายขึ้นนะครับ

uxto หรือ unspent transaction output เป็นวิธีในการหา balance ของบัญชี bitcoin โดยที่เราไม่จำเป็นต้องเก็บ balance ของแต่ละบัญชีไว้ใน field ใด field หนึ่ง … เอาละ มาลองดูตัวอย่างกัน

จากภาพด้านบน miner โอนให้ A เป็นจำนวน 5 btc, B โอนให้ A เป็นจำนวน 5 btc … ดังนั้นตอนนี้ A น่าจะมีทั้งหมด 10 btc

แล้วถ้า A ต้องการโอนให้ B เป็นจำนวน 2 btc ทำยังไง ?

ขั้นตอนคือ ให้เอา 5 BTC ที่มีอยู่ แบ่งโอนไป 2 ทางคือ

  1. โอนไปให้ B เป็นจำนวน 2 BTC
  2. โอนกลับไปให้ตัวเอง 3 BTC

แล้วตอนนี้ A เหลือ balance อยู่เท่าไหร่ ?

คำตอบคือ 8 BTC นั่นเอง

จากรูปจะเห็นได้ว่า เราจะเลือกเฉพาะกล่องที่ยังไม่ถูกขีดฆ่า มาคิด balance เท่านั้น เราเรียกกล่องเหล่านั้นว่า unspent transaction output หรือ uxto นั่นเอง

ส่วนประกอบของ transaction

transaction ประกอบด้วย 2 ส่วนใหญ่ๆคือ input และ output

แต่ภาพด้านบนก็ไม่ถูกต้องเท่าไหร่นัก เพราะทุกๆ input จะต้องอ้างอิงมาจาก output ของ transaction อื่นๆ เสมอ ดังภาพด้านล่าง

จากภาพจะเห็นได้ว่ามี output อยู่ 2 สี คือสีแดง และสีเขียว

  1. สีแดง คือ spent transaction output เป็น output ที่ถูก input ของ transaction อื่นชี้อยู่
  2. สีเขียว คือ unspent transaction output เป็น output ที่ยังไม่ถูกชี้โดย input ของ transaction ใดๆ

ดังนั้น balance ของ A จะเท่ากับผลรวมของ amount ของแต่ละ unspent transaction output ( กล่องสีเขียว ) ที่โอนมายัง A ดังภาพด้านล่าง นั่นเอง

สรุปคร่าวๆ uxto ก็คือวิธีในการหา balance ของแต่ละ Account นั่นเอง … โดยจริงๆแล้วใน transaction ของ bitcoin จะมีรายละเอียดที่ลึกลงไปอีกเช่น

  1. หนึ่ง transaction มีได้หลาย input
  2. transaction reward ของ miner ที่ขุดแต่ละ block ได้ จะไม่ได้มี input ชี้ไปยัง output เหมือน transaction ปกติ
  3. ในการโอนจริงๆ จะมีแบ่งค่า fee ให้กับ miner ด้วย

เราจะยังไม่ลงรายละเอียดพวกนั้นก่อนละกัน … หวังว่าโพสต์นี้คงทำให้เข้าใจ concept คร่าวๆ ของ uxto นะครับ แต่ถ้าผมผิดพลาดตรงไหน บอกได้เลยนะครับ ขอบคุณครับ

--

--

No responses yet