0Pricing
Cryptology Academy · บทเรียน

ต้นไม้ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สายโซ่แฮชและการเชื่อมโยงบล็อก
  2. ต้นไม้ Merkle: ความถูกต้องของธุรกรรมในระดับใหญ่
  3. Proof of Work: การขุดและการปรับความยาก
  4. สคริปต์ Bitcoin และการตรวจสอบลายมือชื่อ UTXO
← กลับไปที่ Cryptology Academy