👤 : ข้อมูลธุรกรรม (Data) ในที่นี้หมายถึงของทั้ง block นั้นที่ miner ต้องรับมา ณ เวลานั้นไหม
หรือแค่ของ user ต่อ user
ไม่เข้าใจตรงนี้ ?
💬 : คำตอบคือ หมายถึง "ธุรกรรมทั้งหมดใน Block นั้น" ครับ
ในรูปที่คุณเล่นอยู่ มันเป็นแค่โมเดลจำลอง (Simulator) เขาเลยสมมติมาแค่ 2 บรรทัด (Alice -> Bob, Bob -> Charlie) เพื่อให้เราเห็นภาพง่ายๆ ครับ
แต่ในความเป็นจริง (Real World Bitcoin):
ช่อง Data ตรงนั้น เปรียบเสมือน " #บัญชีหางว่าว " ที่มัดรวมธุรกรรมทุกรายการที่เกิดขึ้นในช่วง 10 นาทีนั้นครับ
ขอขยายความให้เห็นภาพชัดขึ้นครับ
1. ใน 1 Block ของจริง มีธุรกรรมเป็นพัน
Miner จะไปกวาดธุรกรรมที่รอคิวอยู่ (จาก Mempool) มาใส่ในกล่อง อาจจะมีตั้งแต่ 1,000 - 4,000 รายการ ไม่ใช่แค่ Alice กับ Bob ครับ
2. การ "มัดรวม" ข้อมูล (Merkle Root)
คอมพิวเตอร์ไม่ได้เอาข้อความยาวเหยียดของ 2,000 ธุรกรรมมายัดใส่ช่อง Data ดื้อๆ ครับ (เพราะมันยาวเกินไป) แต่ระบบจะใช้วิธีย่อข้อมูลทั้งหมดให้เหลือบรรทัดเดียว เรียกว่า Merkle Root
- ให้มองว่า Data ในช่องขุดนั้น คือ "สารบัญ" หรือ "ลายนิ้วมือรวม" ของธุรกรรมทั้งหมดในกล่องครับ
3. ทำไมต้องรวมทั้งหมด? (กฎเหล็กของ Blockchain)
นี่คือความเจ๋งของมันครับ การที่ช่อง Data รวมทุกธุรกรรมไว้ด้วยกัน ทำให้เกิดผลลัพธ์แบบ "Butterfly Effect"
- สมมติใน Block นั้นมี 2,000 ธุรกรรม
- ถ้ามีแฮกเกอร์คนหนึ่ง แอบไปแก้ตัวเลขใน ธุรกรรมที่ 1,500 แค่จุดเดียว (เช่น แก้จากโอน 1 BTC เป็น 10 BTC)
- ผลที่ตามมา: " #ลายนิ้วมือรวม " (Data) จะเปลี่ยนไปทันที -> ส่งผลให้ค่า Hash ที่ขุดได้ (บรรทัดล่างสุด) เปลี่ยนไปเป็นคนละเลข -> หลุดเป้าทันที (0 หายหมด)
สรุปสั้นๆ:
ช่อง Data นั้นคือตัวแทนของ "สมุดบัญชีหน้าปัจจุบันทั้งหน้า" ครับ ถ้าขุดสำเร็จ (เข้าเป้า) ก็เท่ากับว่า Miner ได้ประทับตราปิดผนึกบัญชีหน้านั้นทั้งหน้าว่า "ถูกต้อง ห้ามแก้ไข" ครับ
ปล.ขอบคุณจารย์เอ็มสำหรับการขยายภาพความรู้เรื่องการขุดให้ชัดขึ้นครับ 🧡🙏🔐🗂️⛏️📖
#siamstr #geministr #bitcoin #mining #nonce
View quoted note →
