คำแนะนำเกี่ยวกับต้นไม้ Merkle

คุณเคยได้ยินเกี่ยวกับต้นไม้ Merkle เมื่อพูดถึงเทคโนโลยีบล็อกเชนหรือไม่? นั่นเป็นเพราะต้นไม้ Merkle เป็นหัวใจหลักของเทคโนโลยี.

มันคืออะไรกันแน่?

ในบทความนี้เราจะพูดถึงต้นไม้ Merkle ในเชิงลึกและทำความเข้าใจกับบทบาทในการทำให้เทคโนโลยีบล็อกเชนประสบความสำเร็จ.

ต้นไม้ Merkle

มาเริ่มกันเลย.

Merkle Tree คืออะไร?

แผนผัง Merkle คือโครงสร้างข้อมูลที่ใช้สำหรับการตรวจสอบความปลอดภัยของข้อมูลในกลุ่มเนื้อหาขนาดใหญ่ นอกจากนี้ยังมีประสิทธิภาพและสม่ำเสมอในการตรวจสอบข้อมูล.

Ethereum และ Bitcoin ต่างก็ใช้ Merkle Trees.

ปัญหา: ที่แกนกลางของเครือข่ายส่วนกลางข้อมูลสามารถเข้าถึงได้จากสำเนาเดียว ซึ่งหมายความว่าพวกเขาไม่ต้องทำอะไรมากในการจัดเก็บหรือเข้าถึงข้อมูล อย่างไรก็ตามเมื่อพูดถึงเครือข่าย blockchain แบบกระจายอำนาจสิ่งต่าง ๆ จะยุ่งเหยิงเมื่อข้อมูลแต่ละรายการถูกคัดลอกระหว่างโหนด ดังนั้นจึงเป็นเรื่องท้าทายในการเข้าถึงข้อมูลอย่างมีประสิทธิภาพ ความท้าทายคือการทำสำเนาข้อมูลและแบ่งปันระหว่างโหนด ยิ่งไปกว่านั้นข้อมูลที่แชร์จะต้องได้รับการยืนยันสำหรับแต่ละโหนดที่รับ.

การแก้ไขปัญหา: Merkle Trees เปิดใช้งานบล็อกเชนแบบกระจายอำนาจเพื่อแบ่งปันข้อมูลตรวจสอบและทำให้พวกเขาน่าเชื่อถือ จัดระเบียบข้อมูลในลักษณะที่ไม่จำเป็นต้องใช้พลังงานในการประมวลผลมากนักในการแบ่งปันและตรวจสอบข้อมูล นอกจากนี้ยังอำนวยความสะดวกในการทำธุรกรรมที่ปลอดภัยด้วยการใช้ฟังก์ชันแฮชและการเข้ารหัส.

Satoshi Nakamoto เป็นคนแรกที่นำ Merkle tree มาใช้ในเทคโนโลยี blockchain ผ่าน Bitcoin การใช้งานของเขาได้เปิดสาขาใหม่ของวิทยาการคอมพิวเตอร์โดยไม่จำเป็นต้องมีการรวมศูนย์อำนาจ นอกจากนี้เขายังใช้ต้นไม้ Merkle ในระดับที่มากเกินไปและใช้ต้นไม้ Fast Merkle.

อย่างไรก็ตามแนวคิดนี้ถูกนำมาใช้ครั้งแรกโดย Ralph Merkle ซึ่งจดสิทธิบัตรในปี 1979 โดยได้รับการตั้งชื่อตามเขา.


นอกจากนี้ยังอ่าน Hyperledger Cactus: กรอบงาน Hyperledger ใหม่

ฟังก์ชันแฮชการเข้ารหัส

ก่อนที่เราจะพูดถึงต้นไม้ Merkle เราจำเป็นต้องทำความเข้าใจเกี่ยวกับฟังก์ชันแฮชการเข้ารหัสให้ดีขึ้น.

ฟังก์ชันแฮชมีหน้าที่ในการแมปข้อมูลรูปแบบใด ๆ โดยพลการที่มีความยาวใด ๆ กับเอาต์พุตที่มีขนาดคงที่ มันเป็นฟังก์ชันการเข้ารหัสและด้วยเหตุนี้จึงใช้กันอย่างแพร่หลายในการเข้ารหัส.

ฟังก์ชันแฮชมีประสิทธิภาพและเป็นที่รู้จักสำหรับคุณสมบัติเดียวนั่นคือฟังก์ชันไม่สามารถย้อนกลับได้ เป็นฟังก์ชันทางเดียวที่ออกแบบมาเพื่อทำงานในลักษณะนี้เท่านั้น.

การแฮชมีประโยชน์หลายอย่างรวมถึง

  • การป้องกันรหัสผ่าน
  • การตรวจสอบความสมบูรณ์ของไฟล์และการยืนยัน
  • Cryptocurrency

มีแฮชหลายตระกูลรวมถึง Message Direct (MD), Secure Hash Function (SHF) และ RIPE Message Direct (RIPEMD).

หากคุณใช้อัลกอริทึมแฮช SHA256 และส่ง 101Blockchains เป็นอินพุตคุณจะได้ผลลัพธ์ต่อไปนี้

fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

เพื่อสรุปคุณสมบัติที่สำคัญของฟังก์ชันแฮช ได้แก่ :

  • มุ่งมั่น
  • ทนต่อภาพก่อน
  • มีประสิทธิภาพในการคำนวณ
  • ไม่สามารถย้อนกลับทางวิศวกรรมได้
  • ทนต่อการชน

หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับฟังก์ชันแฮชของการเข้ารหัสโปรดดูบทความโดยละเอียดที่นี่:

ต้นไม้ Merkle ทำงานอย่างไร?

ตอนนี้เรามีความเข้าใจเกี่ยวกับฟังก์ชัน Hash เป็นอย่างดีแล้วถึงเวลาเรียนรู้เพิ่มเติมเกี่ยวกับ Merkle Trees.

ดังนั้นในทางเทคนิคแล้วต้นไม้ Merkle เป็นโครงสร้างข้อมูลที่โหนดที่ไม่ใช่ลีฟถูกกำหนดให้เป็นค่าแฮชของโหนดลูกตามลำดับ.

นอกจากนี้ยังหมายความว่าต้นไม้ Merkle ถูกคว่ำลงโดยที่โหนดใบไม้เป็นโหนดที่ต่ำที่สุด.

เพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับสิ่งที่ฉันพยายามจะสื่อมาดูตัวอย่างต้นไม้ Merkle:

ต้นไม้ Merkle

ที่มา: Wikipedia

ที่แกนกลางของต้นไม้ Merkle เราต้องเรียนรู้คำศัพท์ที่สำคัญสามคำ มีดังต่อไปนี้:

  • ราก Merkle
  • โหนดใบไม้
  • โหนดที่ไม่ใช่ใบไม้

ถ้าคุณดูที่ต้น Merkle โดยรวมแล้วมันเป็นต้นไม้กลับหัว ต้นไม้สามารถสรุปธุรกรรมทั้งชุดได้ด้วยตัวมันเอง ซึ่งหมายความว่าผู้ใช้สามารถตรวจสอบได้ว่าธุรกรรมเป็นส่วนหนึ่งของบล็อกหรือไม่.

เพื่อให้ต้นไม้ Merkle ทำงานได้จะใช้การแฮช เพียงแค่จับคู่โหนดของการแฮชซ้ำ ๆ จนกว่าจะเหลือค่าแฮชเพียงค่าเดียว ค่าแฮชด้านซ้ายเรียกว่า Merkle Root หรือ Root Hash. ต้นไม้ถูกสร้างขึ้นจากด้านล่างขึ้นบนโดยใช้แฮชธุรกรรมแต่ละรายการ แฮชธุรกรรมแต่ละรายการเรียกอีกอย่างว่ารหัสธุรกรรม.

โหนดลีฟคือโหนดที่มีแฮชข้อมูลธุรกรรม ในกรณีของโหนดที่ไม่ใช่ลีฟพวกเขาจะจัดเก็บแฮชของสองแฮชก่อนหน้านี้.

คุณสมบัติที่สำคัญอีกอย่างของต้นไม้ Merkle คือมันเป็นเลขฐานสองในธรรมชาติ ซึ่งหมายความว่าต้องใช้โหนดลีฟเพื่อให้ใช้งานได้ ในกรณีที่หากมีโหนดลีฟเป็นจำนวนคี่มันจะทำซ้ำแฮชสุดท้ายและทำให้มันเท่ากัน.

ตัวอย่าง

ลองทำความเข้าใจโดยการยกตัวอย่าง.

merkle-tree- ตัวอย่าง

ตัวอย่าง Merkle Tree

ที่นี่เราจะเห็นว่ามีการทำธุรกรรมสี่รายการในบล็อก ธุรกรรมเหล่านี้มีชื่อว่า X, Y, Z และ W. จากนั้นธุรกรรมจะถูกแฮชแล้วเก็บไว้ในโหนดใบไม้ซึ่งเราตั้งชื่อเป็น Hash X, Hash Y, Hash Z และ Hash W.

เมื่อทำเสร็จแล้วโหนดลีฟของ Hash X, Y, Z และ W จะถูกแฮชอีกครั้งและสร้างเป็นแฮชรวมของ XY และ ZW สุดท้ายแฮชทั้งสองนี้ถูกใช้เพื่อสร้าง Merkle Root หรือ Root Hash.

กระบวนการแฮชทั้งหมดสามารถทำได้บนชุดข้อมูลขนาดใหญ่ซึ่งทำให้โครงสร้างข้อมูล Merkle Trees มีประโยชน์ในกรณีของเครือข่ายแบบกระจายอำนาจ.

ดังที่เราได้กล่าวไปก่อนหน้านี้การใช้อัลกอริทึมการแฮชขึ้นอยู่กับการนำไปใช้งาน อย่างไรก็ตามหนึ่งในฟังก์ชันแฮชที่ใช้บ่อยที่สุดที่ใช้ ได้แก่ ฟังก์ชันแฮชการเข้ารหัส SHA-2.

ดังนั้นจึงสามารถตรวจสอบธุรกรรมได้หากธุรกรรมก่อนหน้านี้สามารถตรวจสอบได้ด้วยค่าแฮช.

สิ่งที่เกี่ยวกับความสมบูรณ์ของข้อมูล?

ต้นไม้ Merkle เหมาะอย่างยิ่งสำหรับความสมบูรณ์ของข้อมูล นอกจากนี้ไม่จำเป็นต้องทำธุรกรรมทั้งหมดเพื่อดูความสามารถในการตรวจสอบได้ ธุรกรรมสามารถตรวจสอบได้ด้วยการใช้ข้อมูลที่เก็บไว้ในส่วนหัวของบล็อก ค่ารูทของ Merkle จะเปลี่ยนไปด้วยโดยขึ้นอยู่กับธุรกรรมก่อนหน้านี้.

นอกจากนี้ยังหมายความว่าค่ารูทมีการเปลี่ยนแปลงบ่อยและสามารถใช้เพื่อตรวจสอบธุรกรรมได้เกือบจะในทันที.

ทั้งหมดนี้อาจฟังดูคล้ายกับรายการแฮชเล็กน้อยอย่างไรก็ตามนี่ไม่เป็นความจริง สำหรับรายการแฮชคุณต้องดาวน์โหลดรายการทั้งหมดเพื่อตรวจสอบธุรกรรมหรือข้อมูล.

ในกรณีของต้นไม้ Merkle คุณสามารถดาวน์โหลดสาขาแล้วใช้เพื่อตรวจสอบธุรกรรมได้.

ไม่จำเป็นต้องดาวน์โหลดโครงสร้างทั้งหมดเพื่อตรวจสอบธุรกรรม นอกจากนี้ยังหมายความว่าโครงสร้างทั้งหมดสามารถแบ่งออกเป็นบล็อกข้อมูลขนาดเล็กซึ่งสามารถใช้ในการตรวจสอบธุรกรรมทั้งหมดในเครือข่ายได้ แนวคิดนี้เป็นที่รู้จักกันในชื่อ หลักฐาน Merkle.

คุณยังสามารถตรวจสอบงูหลามต้นไม้ Merkle – การใช้งานต้นไม้ Merkle ใน Python บทความ.

Merkle Trees ทำงานอย่างไรใน Bitcoin

Bitcoin เป็นสกุลเงินดิจิทัลตัวแรกที่ใช้ต้นไม้ Merkle อย่างมีประสิทธิภาพ เพื่อให้แน่ใจว่าค่าแฮชได้รับการป้องกันและไม่สามารถย้อนกลับได้โดยง่ายจึงใช้ Secure Hashing Algorithm SHA-256 ที่มีชื่อเสียง นอกจากนี้ยังหมายความว่าเอาต์พุตค่าแฮชมีความยาว 256 บิต ที่แกนหลักต้นไม้ Merkle ใช้ในการจัดเก็บข้อมูลและตัดการทำธุรกรรมด้วย.

อ่านเพิ่มเติมวิธีเริ่มต้นใช้งาน Blockchain

ใน bitcoin แต่ละบล็อกจะเชื่อมต่อกับบล็อกก่อนหน้าโดยใช้ค่าแฮช นี่คือวิธีสร้างบล็อกเชนทั้งหมด ในบล็อกมีส่วนหัวของบล็อกซึ่งมีข้อมูลสำคัญเช่น:

  • แฮชราก Merkle
  • หมายเลขเวอร์ชันบล็อก
  • การประทับเวลา
  • Nonce
  • เป้าหมายความยากในการขุด
  • ก่อนหน้า Block Hash

เพื่อความเข้าใจที่ดีขึ้นลองดูแผนภาพด้านล่าง มันถูกนำมาจากไฟล์ เอกสารไวท์เปเปอร์ Bitcoin ตัวเอง.

merkle-tree-in-bitcoin

คำบรรยายภาพ: ต้นไม้ Merkle ใน Bitcoin

อย่างที่คุณเห็นต้องใช้คนงานในการรวมธุรกรรมลงในบล็อก เมื่อทำเสร็จแล้วจะถูกแฮชและกลายเป็นส่วนหนึ่งของต้นไม้ Merkle.

การใช้ต้นไม้ Merkle ด้วยวิธีนี้สามารถนำไปสู่ประโยชน์หลายประการ ซึ่งรวมถึงประโยชน์ที่โดดเด่นอย่างหนึ่งนั่นคือ Simple Payment Verification (SPV) SVP เหล่านี้เป็นโหนดที่เรียกได้ว่าเป็นไคลเอนต์ที่มีน้ำหนักเบา แล้วพวกเขาจะทำอย่างไร? พวกเขาเพียงดาวน์โหลดส่วนหัวของบล็อกเชนที่ยาวที่สุดและไม่จำเป็นต้องดาวน์โหลดบล็อกเชนทั้งหมด ในการทำสิ่งเหล่านี้พวกเขาจำเป็นต้องตรวจสอบว่ามีส่วนหัวของบล็อกที่เก็บไว้สำหรับห่วงโซ่ที่ยาวที่สุดหรือไม่ นี่คือวิธีการใช้งาน Merkle tree ใน bitcoin.

ในท้ายที่สุด SPV สามารถใช้ Merkle Proof of Map และตรวจสอบธุรกรรมโดยใช้แฮชรากของต้นไม้ Merkle.

วิธีใช้ต้นไม้ Merkle ใน Ethereum

Ethereum blockchain ยังใช้ต้นไม้ Merkle อย่างไรก็ตามวิธีการที่นี่แตกต่างจากวิธีการใช้ bitcoin ใน Ethereum จะใช้ Merkle Patricia Tree ซึ่งเป็นรุ่นที่ซับซ้อนของ Merkle tree เป็นไปได้เพราะ Ethereum เป็น Turing-complete.

หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการทำงานของต้นไม้ Merkle ใน Ethereum โปรดดูโพสต์โดยละเอียด ที่นี่.

การใช้งาน Merkle Trees อื่น ๆ : กรณีการใช้งาน

แน่นอนว่ามีต้นไม้ Merkle อื่น ๆ ใช้อยู่ที่นั่น หนึ่งในสิ่งที่ได้รับความนิยมมากที่สุดคือ Git – ระบบควบคุมเวอร์ชันแจกจ่าย โปรแกรมเมอร์จากทั่วโลกใช้เพื่อจัดการโครงการของตน.

การใช้งานที่มีประโยชน์อื่น ๆ มีให้เห็นใน ระบบไฟล์ระหว่างดาวเคราะห์ – โปรโตคอลแบบกระจายเพียร์ทูเพียร์ นอกจากนี้ยังเป็นโอเพ่นซอร์สและช่วยให้อุปกรณ์คอมพิวเตอร์สามารถเข้าร่วมและใช้ระบบไฟล์ที่แพร่หลายได้.

แม้แต่ผู้ออกใบรับรองก็ยังใช้ต้นไม้ Merkle เพื่อประโยชน์ของตน พวกเขาใช้มันในกลไกเพื่อสร้างบันทึกความโปร่งใสของใบรับรองที่ตรวจสอบได้ เนื่องจากบันทึกมีขนาดใหญ่ต้นไม้ Merkle จึงทำให้คอมพิวเตอร์สามารถตรวจสอบได้โดยไม่ต้องเสียเวลาและความพยายามมากเกินไป.

กรณีการใช้งานสุดท้ายที่เราจะพูดถึงคือระบบฐานข้อมูลเช่น Amazon DynamoDB และ Apache Cassandra ฐานข้อมูลแบบกระจาย No-SQL เหล่านี้ควบคุมความไม่สอดคล้องกันโดยใช้แผนผัง Merkle ในระหว่างกระบวนการจำลองแบบข้อมูล หากมีปัญหาใด ๆ ก็สามารถอัปเดตหรือซ่อมแซมข้อมูลโดยใช้กระบวนการซ่อมแซมป้องกันเอนโทรปี.

ในระยะสั้นการใช้กรณีของต้นไม้ Merkle ได้แก่

  • การซิงโครไนซ์ข้อมูล
  • การตรวจสอบข้อมูล
  • การตรวจสอบความสอดคล้อง

ประโยชน์ของ Merkle Trees

ในส่วนนี้เราจะมาดูประโยชน์ของต้นไม้ Merkle อย่างรวดเร็ว.

  • ตรวจสอบความสมบูรณ์ของข้อมูล: สามารถใช้เพื่อตรวจสอบความสมบูรณ์ของข้อมูลได้อย่างมีประสิทธิภาพ.
  • ใช้พื้นที่ดิสก์เพียงเล็กน้อย: ต้นไม้ Merkle ใช้พื้นที่ดิสก์เพียงเล็กน้อยเมื่อเทียบกับโครงสร้างข้อมูลอื่น ๆ.
  • ข้อมูลเล็ก ๆ ในเครือข่าย: ต้นไม้ Merkle สามารถแบ่งออกเป็นข้อมูลเล็ก ๆ สำหรับการตรวจสอบ.
  • การตรวจสอบที่มีประสิทธิภาพ: โครงสร้างข้อมูลมีประสิทธิภาพและใช้เวลาเพียงครู่เดียวในการตรวจสอบความสมบูรณ์ของข้อมูล.

สรุป

ต้นไม้ Merkle เป็นหนึ่งในแนวคิดที่สำคัญในวิทยาการคอมพิวเตอร์ มีการใช้กันอย่างแพร่หลายในหลายกรณีการใช้งานและการใช้งานในสกุลเงินดิจิทัลทำให้เกิดเทคโนโลยีที่ปฏิวัติวงการ.

คุณรู้อะไรเกี่ยวกับต้นไม้ Merkle บ้าง? แสดงความคิดเห็นด้านล่างและแจ้งให้เราทราบ.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map