Merkle Tree เป็นโครงสร้างข้อมูลแบบ Binary ที่มีลักษณะคล้าย Hash Tree ใน Binary Tree นั้นโหนดสามารถมีโหนดลูก (Parent Node) ได้สูงสุดสองโหนด คือโหนดทางซ้ายและโหนดทางขวา แต่ละ Leaf Node ของ Merkle Tree จะเก็บค่าแฮช (Hash Value) ขององค์ประกอบข้อมูล เมื่อเรารู้ข้อมูลของโหนดซ้ายและโหนดขวา เราก็จะสามารถคำนวณข้อมูลที่สมบูรณ์ของโหนดหลัก (Parent Node) ซึ่งข้อมูลที่ครอบคลุมนี้ประกอบด้วยสองส่วน ได้แก่ ข้อมูลยอดคงเหลือของที่อยู่วอลเล็ตและข้อมูลแฮช
- ข้อมูลยอดคงเหลือ: บนพื้นฐานของโครงสร้างข้อมูลของ Binary Tree ข้อมูลยอดคงเหลือของโหนดหลักสามารถประกอบด้วยข้อมูลยอดคงเหลือของทั้งโหนดซ้ายและขวาภายใต้โหลดหลักนี้เท่านั้น
- ข้อมูลแฮช: แต่ละโหนดประกอบด้วยข้อมูลยอดคงเหลือ ข้อมูลลำดับชั้นของ Binary Tree (เส้นประในรูป) และข้อมูลแฮชของโหนดลูก (ข้อมูลของโหนดซ้ายและโหนดขวาจะถูกเก็บไว้ใต้โหนดแต่ละโหนด)
Merkle Tree ได้รับการตรวจสอบโดยการคำนวณ เช่น ส่วนสีเขียว (B และ D) ที่คำนวณได้ในภาพด้านบน และโดยเกณฑ์สองเกณฑ์ต่อไปนี้:
1. ตรวจสอบว่ายอดคงเหลือตรงตามหลักการแบ่งหรือไม่
2. ตรวจสอบว่าแฮชถูกต้องตามกฎหมายหรือไม่
Merkle Tree ใช้ฟังก์ชันแฮช ซึ่งช่วยให้ผู้ใช้สามารถตรวจสอบว่าเป็นส่วนหนึ่งของ Tree ที่สมบูรณ์โดยไม่ทราบข้อมูลในโหนดสีม่วง การพิสูจน์ของ Merkel จะไม่ซ้ำกันสำหรับผู้ใช้แต่ละราย ในกรณีของ Merkle Tree ที่มี 24 ระดับ ผู้ใช้จะต้องมีอาร์เรย์ยอดคงเหลือที่มีความยาวขององค์ประกอบ 24 รายการเพื่อยืนยันข้อมูลยอดคงเหลือ และอาร์เรย์นี้จะใช้เพื่อยืนยันยอดคงเหลือของผู้ใช้เท่านั้น
ตราบใดที่ข้อมูลที่ได้รับจากผู้ใช้ไม่เกิน 50% ของข้อมูลผู้ใช้ทั้งหมดใน Merkle Tree ผู้ใช้จะไม่สามารถสร้างโครงสร้างข้อมูลทั้งหมดขึ้นใหม่ตามข้อมูลที่แยกเป็นส่วนๆ ของตนเองได้ ดังนั้น สำหรับบริษัทแล้ว Merkle Tree จึงมั่นใจได้ว่าข้อมูลสินทรัพย์โดยรวมของบริษัทจะไม่รั่วไหลและปกป้องความเป็นส่วนตัวของบัญชีผู้ใช้
Bybit มีวิธีการยืนยันสองวิธีดังนี้:
การยืนยันผ่านแพลตฟอร์ม Bybit
คุณสามารถไปที่หน้านี้เพื่อเข้าสู่หน้ายืนยันบัญชีของฉันและดูเส้นทาง Merkle ของคุณ เราแสดงภาพขั้นตอนการคำนวณโหนดของการยืนยัน Merkle Tree เพื่อให้คุณดูยอดคงเหลือของสินทรัพย์ได้ง่ายขึ้น
ผ่านเครื่องมือการตรวจสอบด้วยตนเอง หรือก็คือโค้ดโอเพนซอร์ส
Bybit ได้เผยแพร่ซอร์สโค้ดการสร้าง Merkle Tree และรหัสยืนยันบน GitHub เพื่อช่วยให้ผู้ใช้ในกระบวนการตรวจสอบยอดคงเหลือของตนเอง โดยกระบวนการคำนวณของ Merkle Tree เกี่ยวข้องกับการคำนวณข้อมูลขนาดใหญ่ของผู้ใช้ ซึ่งมักจะใช้ Big Data และ Java โดยการโค้ด Java เปิดให้ผู้ใช้ตรวจสอบได้อย่างสมบูรณ์
ประวัติความเป็นมา
Bybit ได้ทำการโอเพนซอร์สโค้ดต่อไปนี้สำหรับผู้ใช้มืออาชีพในการตรวจสอบด้วยตนเอง ผู้ใช้สามารถคลิกที่คัดลอกข้อมูลจากหน้า Proof of Reserves เพื่อคัดลอกข้อมูลไปยังไฟล์หลักฐาน Merkle Tree บนคลิปบอร์ดระบบการเขียนโปรแกรมของตนเอง และจัดเก็บเป็นไฟล์ชื่อ myProof.json บนไดรฟ์ในเครื่องของตน
วิธีดำเนินการ
1. สร้างไฟล์ที่ประมวลผลได้ของคุณ
โปรดดาวน์โหลดไฟล์ซอร์สโค้ดล่าสุดและตรวจสอบให้แน่ใจว่าได้ติดตั้ง JDK (เวอร์ชัน 1.8 และสูงกว่า) และ Maven ในเวิร์กสเตชันหรือแล็ปท็อปของคุณแล้ว
- แก้ปัญหา dependencies, คอมไพล์ และแพคเกจ
- ตรวจสอบแพคเกจ jar ที่คอมไพล์ดังนี้ ในโฟลเดอร์ปัจจุบันของโปรเกจต์
2. ดำเนินการยืนยันของคุณ
- คุณสามารถวางไฟล์หลักฐานที่คัดลอกจากเว็บไซต์ Bybit ลงในไฟล์ใหม่ในโฟลเดอร์ปัจจุบัน และตั้งชื่อไฟล์ว่า myProof.json จากนั้นเรียกใช้คำสั่งต่อไปนี้:
- จากนั้น คุณสามารถเรียกใช้โปรแกรมที่ได้รับการยืนยันแล้วและสังเกตข้อมูลเอาต์พุตของโปรแกรม