Merkle root สร้างขึ้นอย่างไร?
เริ่มจาก ID ของธุรกรรมทุกตัวในบล็อก ซึ่งก็คือแฮช SHA-256 แบบสองรอบ เรียงตามลำดับ โดยให้ coinbase อยู่ก่อน จับคู่รายการที่อยู่ติดกันแล้วแฮชแต่ละคู่ ตอนนี้จะมีแฮชเหลือครึ่งหนึ่ง ทำซ้ำไปเรื่อย ๆ จนเหลือแฮชเดียว นั่นคือ Merkle root
ถ้าระดับหนึ่งมีแฮชจำนวนคี่ แฮชตัวสุดท้ายจะจับคู่กับตัวเอง หากเปลี่ยนธุรกรรมใดก็ตาม แม้เพียงหนึ่ง satoshi แฮชทุกตัวตามเส้นทางไปจนถึงด้านบนก็จะเปลี่ยน รวมถึง root ด้วย ลองดูในเดโมด้านบน
ทำไมต้องใช้ต้นไม้แทนแฮชก้อนใหญ่ก้อนเดียว?
การพิสูจน์ หากต้องการแสดงว่าธุรกรรมหนึ่งอยู่ในบล็อก คุณต้องใช้แค่แฮชตามกิ่งของธุรกรรมนั้น ไม่ต้องใช้ทั้งบล็อก บล็อกที่มีธุรกรรมประมาณ 4,000 รายการต้องใช้แฮชเพียง 12 ตัว ซึ่งมีขนาดแค่ไม่กี่ร้อยไบต์ ไวท์เปเปอร์ของ Satoshi อธิบายถึงไลต์วอลเล็ตที่ตรวจสอบการชำระเงินด้วยวิธีนี้ โดยเก็บไว้เฉพาะส่วนหัวบล็อก
สิ่งนี้สำคัญต่อการขุดด้วย เมื่อคนขุดเปลี่ยน extra nonce ในธุรกรรม coinbase ค่า Merkle root ก็จะเปลี่ยน และส่วนหัวบล็อกจะได้ชุด nonce ใหม่ให้ลอง
แหล่งข้อมูล
- บิตคอยน์: ระบบเงินสดอิเล็กทรอนิกส์แบบเพียร์ทูเพียร์ · Satoshi Nakamoto, 2008
- ข้อมูลอ้างอิงเกี่ยวกับบล็อกเชน: ส่วนหัวบล็อก, Merkle tree, เป้าหมาย · เอกสารนักพัฒนา Bitcoin
- Merkle tree · Bitcoin Wiki
ตัวเลขเรียลไทม์ในหน้านี้มาจาก API ของ CloudMineCrypto และข้อมูลบล็อกเชนสาธารณะ ซึ่งอัปเดตเป็นประจำและมีป้ายกำกับกำกับไว้ ใช้เพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำทางการเงิน