ต้นไม้ Merkle: ความถูกต้องของธุรกรรมในระดับใหญ่
สร้างต้นไม้ Merkle และสร้างบทพิสูจน์การมีสมาชิกอย่างมีประสิทธิภาพ
ต้นไม้ Merkle: ความถูกต้องของธุรกรรมในระดับใหญ่ เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
ปัญหา: การตรวจสอบธุรกรรมอย่างมีประสิทธิภาพ
บล็อกบิตคอยน์หนึ่งบล็อกมีธุรกรรมประมาณ 2,000 รายการ หากต้องการพิสูจน์ว่าธุรกรรม T ถูกรวมอยู่ในบล็อกโดยไม่ดาวน์โหลดธุรกรรมทั้ง 2,000 รายการ เราจำเป็นต้องมีหลักฐานขนาดกะทัดรัด ต้นไม้เมอร์เคิลช่วยแก้ปัญหานี้ โดยหลักฐานมีขนาด O(log n) แฮช แทนที่จะเป็นธุรกรรม O(n) รายการ
การสร้างต้นไม้เมอร์เคิล
ใบ: SHA256d (SHA-256 สองรอบ) ของแต่ละธุรกรรม โหนดแม่: SHA256d(left_child_hash || right_child_hash) ทำซ้ำจนเหลือแฮชรากเพียงหนึ่งค่า หากมีโหนดเป็นจำนวนคี่ ให้ทำสำเนาโหนดสุดท้าย รากนี้คือรากเมอร์เคิลที่จัดเก็บไว้ในส่วนหัวบล็อก (32 ไบต์)
รากเมอร์เคิลด้วย Python
import hashlib def sha256d(x): return hashlib.sha256(hashlib.sha256(x).digest()).digest() def merkle_root(txids): if len(txids)%2: txids.append(txids[-1]) while len(txids)>1: txids=[sha256d(txids[i]+txids[i+1]) for i in range(0,len(txids),2)] return txids[0].hex()
หลักฐานเมอร์เคิล (หลักฐานการรวมอยู่)
เพื่อพิสูจน์ว่าธุรกรรม T อยู่ที่ตำแหน่ง i ให้ส่งแฮชของโหนดพี่น้องในแต่ละระดับ ตั้งแต่ใบของ T ไปจนถึงราก (แฮช O(log n) ค่า) ผู้ตรวจสอบจะคำนวณรากใหม่จาก T และเส้นทางของโหนดพี่น้อง หากรากที่คำนวณได้ตรงกับรากเมอร์เคิลในส่วนหัวบล็อก ก็พิสูจน์ได้ว่า T ถูกรวมอยู่ในบล็อก
ตัวอย่างขนาดหลักฐาน
ธุรกรรม 1024 รายการ → หลักฐานเมอร์เคิล = 10 แฮช = 320 ไบต์ บล็อกเต็ม = ~1 MB ไคลเอ็นต์ SPV ดาวน์โหลดเฉพาะส่วนหัวขนาด 80 ไบต์และหลักฐานเมอร์เคิลขนาด 320 ไบต์สำหรับธุรกรรมที่ต้องการตรวจสอบแต่ละรายการ ซึ่งประหยัดแบนด์วิดท์ได้ 99.97% เมื่อเทียบกับการดาวน์โหลดบล็อกเต็ม
การตรวจจับการแก้ไข
หากธุรกรรมใดในต้นไม้เปลี่ยนแปลง แฮชของใบนั้นจะเปลี่ยนและส่งผลต่อเนื่องขึ้นไปจนทำให้รากเมอร์เคิลเปลี่ยนไปด้วย รากที่ถูกแก้ไขจะไม่ตรงกับส่วนหัวบล็อก ซึ่งมีการผนึกด้วยการพิสูจน์การทำงาน การแก้ไขใดก็ตามจึงตรวจพบได้ด้วยการคำนวณรากจากธุรกรรม
ไทรเมอร์เคิลแบบ Patricia (อีเธอเรียม)
อีเธอเรียมขยายต้นไม้เมอร์เคิลด้วยไทร (ไทรเมอร์เคิลแบบ Patricia): ไทรฐานรากที่เข้ารหัสด้วยคำนำหน้าเลขฐานสิบหก โดยแต่ละโหนดถูกแฮชด้วยเมอร์เคิล ใช้สำหรับ: ไทรสถานะ (ยอดคงเหลือของบัญชี) ไทธุรกรรม และไทรใบเสร็จรับเงิน ช่วยให้พิสูจน์สถานะบัญชีได้อย่างมีประสิทธิภาพโดยไม่ต้องมีข้อมูลจากโหนดเต็มรูปแบบ
โครงสร้างภูเขาเมอร์เคิล
โครงสร้างภูเขาเมอร์เคิล (MMR) คือโครงสร้างเมอร์เคิลแบบเพิ่มข้อมูลได้อย่างเดียวสำหรับข้อมูลลักษณะบันทึก รายการใหม่จะถูกเพิ่มต่อท้าย และจะรักษายอดเขาไว้ ซึ่งเป็นรากของต้นไม้ย่อยที่มีขนาดเป็นกำลังของ 2 โครงสร้างนี้ใช้ใน Grin/MimbleWimble และ ZCash เพื่อสร้างหลักฐานขนาดกะทัดรัดที่มีประสิทธิภาพสำหรับบันทึกแบบเพิ่มข้อมูลได้อย่างเดียว
ต้นไม้ Verkle
ต้นไม้ Verkle จะเข้ามาแทนต้นไม้เมอร์เคิลในแผนงานของอีเธอเรียม (EIP-6800) โดยใช้การผูกมัดเวกเตอร์ (การผูกมัดพหุนาม KZG) แทนแฮช ขนาดหลักฐานคือ O(1) เทียบกับ O(log n) สำหรับต้นไม้เมอร์เคิล ทำให้ไคลเอ็นต์ไร้สถานะสามารถตรวจสอบสถานะได้โดยไม่ต้องจัดเก็บไทรทั้งหมด
ความโปร่งใสของใบรับรองในรูปแบบบันทึกเมอร์เคิล
ความโปร่งใสของใบรับรอง (RFC 6962) ใช้บันทึกเมอร์เคิลแบบเพิ่มข้อมูลได้อย่างเดียว โดยใบรับรองแต่ละใบที่ CA ออกให้เป็นใบหนึ่งรายการ หลักฐานการรวมอยู่ใช้ตรวจสอบว่าใบรับรองถูกบันทึกแล้ว ส่วนหลักฐานความสอดคล้องใช้ตรวจสอบว่าบันทึกเพิ่มข้อมูลได้อย่างเดียวจริง ไม่มีการลบหรือแทรกข้อมูล ผู้ให้บริการเบราว์เซอร์ตรวจสอบ SCT ผ่านบันทึกนี้
แบบจำลองออบเจ็กต์ของ Git
ต้นไม้ของ Git (ภาพสถานะไดเรกทอรี) คือต้นไม้เมอร์เคิล โดยแต่ละโหนดต้นไม้จะแฮชข้อมูลไบนารีของไฟล์และต้นไม้ย่อย แฮชคอมมิตจะระบุสถานะของฐานโค้ดทั้งหมดได้อย่างไม่ซ้ำกัน นี่คือเหตุผลที่ git checkout
ตรวจสอบความเข้าใจ
หลักฐานเมอร์เคิลต้องใช้กี่แฮชเพื่อพิสูจน์การรวมอยู่ในต้นไม้ที่มีใบ 1024 ใบ
สรุปทบทวน
ต้นไม้เมอร์เคิลช่วยให้สร้างหลักฐานการรวมอยู่ขนาด O(log n) บิตคอยน์จัดเก็บรากเมอร์เคิลไว้ในส่วนหัวบล็อก และไคลเอ็นต์ SPV ใช้หลักฐานเหล่านี้ อีเธอเรียมขยายแนวคิดนี้เป็นไทรเมอร์เคิลแบบ Patricia ต้นไม้ Verkle จะเข้ามาแทนต้นไม้เมอร์เคิลเพื่อให้ได้หลักฐานขนาด O(1) บทถัดไป: การขุดด้วยการพิสูจน์การทำงานและความยาก
คำถามที่พบบ่อย
บทเรียน “ต้นไม้ Merkle: ความถูกต้องของธุรกรรมในระดับใหญ่” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ต้นไม้ Merkle: ความถูกต้องของธุรกรรมในระดับใหญ่” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ต้นไม้ Merkle: ความถูกต้องของธุรกรรมในระดับใหญ่”
สร้างต้นไม้ Merkle และสร้างบทพิสูจน์การมีสมาชิกอย่างมีประสิทธิภาพ คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ต้นไม้ Merkle: ความถูกต้องของธุรกรรมในระดับใหญ่” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม
ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สายโซ่แฮชและการเชื่อมโยงบล็อก
- ต้นไม้ Merkle: ความถูกต้องของธุรกรรมในระดับใหญ่
- Proof of Work: การขุดและการปรับความยาก
- สคริปต์ Bitcoin และการตรวจสอบลายมือชื่อ UTXO