Merkle Pollard คืออะไร?
พิมพ์ซ้ำโดย Odaily โดยได้รับอนุญาตmediumพิมพ์ซ้ำโดย Odaily โดยได้รับอนุญาต
ชื่อเรื่องรอง
ฟังก์ชันแฮช
คำอธิบายภาพ

-กัญชา-
ต้นเมิร์กเคิล
ต้นเมิร์กเคิล
ต้นไม้ Merkle หมายถึงการรวมกันของค่าอินพุตหลายค่าและค่าแฮชเพื่อบีบอัดเป็นค่าความยาวคงที่
คำอธิบายภาพ

-ต้นแมร์เคิล-
ต้นไม้ Merkle ที่แสดงด้านบนมีค่าอินพุต 8 ค่าและแบ่งออกเป็น 4 ชั้น โหนดรูทคือ 0xd576...ffd9 ที่ส่วนท้ายสุด
คำอธิบายภาพ

-ผลกระทบของการเปลี่ยนแปลงต่อต้น Merkle ทั้งหมด (ดังที่แสดงในส่วนสีเทา)-
ชื่อเรื่องรอง
เส้นทาง Merkel
คำอธิบายภาพ

-"Peach"ชื่อเรื่องรอง
หลักฐานของ Merkel
คำอธิบายภาพ

-เมอร์เคล พรู๊ฟ-
การพิสูจน์ของ Merkle ต้องการสามสิ่ง: ค่าอินพุต (ทำเครื่องหมายด้วยสีแดง), แฮชของสาขาระดับกลาง (ทำเครื่องหมายด้วยสีเขียว) และโหนดรากของ Merkle (ทำเครื่องหมายด้วยสีน้ำเงิน) ชุดของค่าแฮชสาขาระดับกลางที่สอดคล้องกับค่าอินพุตแต่ละค่านั้นแตกต่างกัน
ระบบบล็อกเชนมักใช้การพิสูจน์ของ Merkle เพื่อพิสูจน์ว่ามีค่าอินพุตบางอย่างอยู่ในชุดข้อมูล ดังนั้นชุดข้อมูลทั้งหมดจึงไม่จำเป็นต้องเก็บไว้ในบล็อกเชน สมมติว่ามีรายการที่อนุญาตพิเศษในสัญญา Ethereum และมีเพียงบัญชีในรายการเท่านั้นที่ได้รับอนุญาตให้ซื้อ Ethereum หากข้อมูลของแต่ละบัญชีในรายการที่อนุญาตถูกจัดเก็บไว้ในบล็อกเชน จะต้องเสียค่าใช้จ่ายสูง ในกรณีนี้ เพียงสร้าง Merkle tree และจัดเก็บรูทโหนดบนบล็อกเชน
ตัวอย่างเช่น หากรูทโหนดถูกเก็บไว้ในสัญญาอัจฉริยะ สัญญาอัจฉริยะสามารถพิสูจน์ได้อย่างง่ายดายว่าบัญชีรวมอยู่ในรายการที่อนุญาต: บัญชีจำเป็นต้องระบุแฮชสาขาระดับกลาง (จัดทำโดยเจ้าของสัญญาผ่านวิธีการนอกเครือข่ายบางอย่าง ) ไปยังเจ้าของบัญชี) สัญญาอัจฉริยะจะทำการคำนวณค่าแฮชของบัญชีนี้และค่าแฮชของสาขาระดับกลางตามลำดับ หากผลลัพธ์สุดท้ายสอดคล้องกับโหนดรากของ Merkel แสดงว่าบัญชีนั้นอยู่ในรายการที่อนุญาตจริง
สังเกตความสัมพันธ์ระหว่างเส้นทาง Merkle และแฮชของการพิสูจน์ Merkle ในสองตัวเลขสุดท้าย ในระดับเดียวกันของแผนผังเดียวกัน ค่าแฮชของการพิสูจน์ Merkle มีความสัมพันธ์กับค่าแฮชของเส้นทาง Merkle จากนี้ จะเห็นได้ว่าการพิสูจน์ของ Merkle สามารถปรับรูปร่างเส้นทาง Merkle ของค่าอินพุตใหม่ได้ ซึ่งเป็นสาเหตุที่ผลลัพธ์สุดท้ายคือโหนดรากของ Merkle
จนถึงปัจจุบัน จะเห็นได้ว่าหลักฐาน Merkle มีลักษณะดังต่อไปนี้:
การจัดเก็บหลักฐาน Merkle บนเครือข่ายต้องการพื้นที่น้อยกว่าการเก็บค่าอินพุตโดยตรง
การจัดเก็บหลักฐานของ Merkle บนเครือข่ายแบบสาธารณะจะไม่เปิดเผยค่าอินพุตทั้งชุด
ชื่อเรื่องรอง
พิสูจน์ซ้ำ
ในตัวอย่างข้างต้น แต่ละบัญชีจำเป็นต้องส่งใบรับรองของ Merkle เพื่อตรวจสอบว่าอยู่ในรายการที่อนุญาตหรือไม่
นอกจากนี้ ต้นไม้ Merkle ยังสามารถใช้เป็นหลักฐานพิสูจน์ความน่าจะเป็นของความรู้ (มักเรียกว่า STARK) การพิสูจน์ความรู้แต่ละครั้งสามารถทำให้เรา (เช่น "ผู้ยืนยัน ผู้ท้าชิง") มั่นใจมากขึ้น: ผู้สร้าง Merkle tree (เช่น "ผู้พิสูจน์" ) รู้ค่าองค์ประกอบทั้งหมด ในกรณีนี้ ผู้พิสูจน์มักจะสร้างการพิสูจน์หลายร้อยรายการโดยอิงตามต้นไม้ Merkle ที่มีค่าอินพุตหลายสิบหรือแม้แต่หลายร้อยรายการ การพิสูจน์เหล่านี้จะถูกส่งไปยังตัวตรวจสอบความถูกต้องพร้อมกับโหนดรากของ Merkle เพื่อตรวจสอบความถูกต้อง
คำอธิบายภาพ



-หลักฐานซ้ำของ Merkle Root เดียวกัน-
จะเห็นได้ว่ามีการส่ง Merkle root node ทั้งหมด 1 รายการและใบรับรอง 3 รายการ โดยเพิ่มค่าแฮชได้สูงสุด 10 ค่า: หนึ่งรายการสำหรับโหนดรูทและสามรายการสำหรับแต่ละใบรับรองที่เหลืออีกสามรายการ
คำอธิบายภาพ



-พิสูจน์ซ้ำของโหนด Merkle Root แบบขยาย-
ชื่อเรื่องรอง
ต้นไม้ Merkle ถูกตัด
คำอธิบายภาพ

- ลำดับที่ 1 การตัดทอน Merkel -
คำอธิบายภาพ

- ลำดับที่ 2 การตัดทอน Merkel -
คำอธิบายภาพ

-ข้อดีจากการตัดต้นไม้ Merkle ของคำสั่งต่างๆ-
ชื่อเรื่องรอง
ตัวอย่างการใช้งาน
https://github.com/wealdtech/go-merkletree/ ให้การตัดต้นไม้ Merkle ใช้งานในภาษา Go


