मर्कल ट्री एक डेटा संरचना है जिसका उपयोग कंप्यूटर विज्ञान अनुप्रयोगों में किया जाता है। बिटकॉइन और अन्य क्रिप्टोकरेंसी में, मर्कल पेड़ ब्लॉकचेन डेटा को अधिक कुशलतापूर्वक और सुरक्षित रूप से एन्कोड करने का काम करते हैं।
उन्हें "बाइनरी हैश ट्री" के रूप में भी जाना जाता है।
मर्कल ट्री को तोड़ना
बिटकॉइन के ब्लॉकचेन में, हैश उत्पन्न करने के लिए एक एल्गोरिथ्म के माध्यम से लेन-देन का एक ब्लॉक चलाया जाता है, जो संख्या और अक्षरों की एक स्ट्रिंग है जो यह सत्यापित करने के लिए उपयोग किया जा सकता है कि डेटा का एक सेट लेनदेन के मूल सेट के समान है, लेकिन लेन-देन का मूल सेट प्राप्त करने के लिए नहीं। बिटकॉइन का सॉफ्टवेयर लेन-देन के डेटा के पूरे ब्लॉक को नहीं चलाता है - एक बार में हैश फ़ंक्शन के माध्यम से - औसतन लेनदेन के 10 मिनट के मूल्य का प्रतिनिधित्व करता है। बल्कि प्रत्येक लेनदेन को हैशड किया जाता है, फिर प्रत्येक जोड़े के लेन-देन को एक साथ समाहित किया जाता है, और इसी तरह जब तक कि पूरे ब्लॉक के लिए एक हैश न हो। (यदि लेनदेन की विषम संख्या है, तो एक लेन-देन दोगुना हो जाता है और इसका हैश स्वयं के साथ समाप्त हो जाता है।)
कल्पना, यह संरचना एक पेड़ जैसा दिखता है। नीचे दिए गए चित्र में, "T" एक लेन-देन नामित करता है, "H" एक हैश। ध्यान दें कि छवि अत्यधिक सरलीकृत है; एक औसत ब्लॉक में 500 से अधिक लेनदेन होते हैं, आठ नहीं।
नीचे की पंक्ति पर मौजूद हैश को "पत्तियों" के रूप में संदर्भित किया जाता है, मध्यवर्ती हैश को "शाखाओं" के रूप में और शीर्ष पर हैश को "रूट" के रूप में संदर्भित किया जाता है। किसी दिए गए ब्लॉक की मर्केल रूट को हेडर में संग्रहित किया जाता है: उदाहरण के लिए, ब्लॉक # 482819 का मर्कल रूट e045b18e7a3d708d686717b4f44db2099aabbad9bebf968de5f7271b458f71c8 है। रूट को अन्य जानकारी (सॉफ्टवेयर संस्करण, पिछले ब्लॉक के हैश, टाइमस्टैम्प, कठिनाई लक्ष्य, और नॉन) के साथ जोड़ा जाता है और फिर ब्लॉक के अद्वितीय हैश का उत्पादन करने के लिए एक हैश फ़ंक्शन के माध्यम से चलता है: 000000000000000000bfb7cf8bf28cbddbbdbafd9aa3c3c3c3333&hl=hi । यह हैश वास्तव में संबंधित ब्लॉक में शामिल नहीं है, लेकिन अगले एक; यह मर्कल जड़ से अलग है।
मर्कल ट्री उपयोगी है क्योंकि यह उपयोगकर्ताओं को पूरे ब्लॉकचेन (अगस्त 2017 के अंत में 130 गीगाबाइट से अधिक) को डाउनलोड किए बिना एक विशिष्ट लेनदेन को सत्यापित करने की अनुमति देता है। उदाहरण के लिए, यह कहें कि आप यह सत्यापित करना चाहते थे कि लेन-देन T D ऊपर दिए गए आरेख में ब्लॉक में शामिल है। यदि आपके पास रूट हैश (H ABCDEFGH) है, तो प्रक्रिया सुडोकू के खेल की तरह है: आप H D के बारे में नेटवर्क को क्वेरी करते हैं, और यह H C, H AB, और H EFGH को लौटाता है । मर्कल ट्री आपको यह सत्यापित करने की अनुमति देता है कि सब कुछ तीन हैश के साथ हिसाब में है: एच एबी, एच सी, एच ईएफजीएच, और रूट एच एबीसीडीईएफएच, एच डी (केवल लापता हैश) को डेटा में मौजूद होना चाहिए।
मर्कले के पेड़ों का नाम राल्फ़ मर्कले के नाम पर रखा गया है, जिन्होंने उन्हें 1987 के पेपर में "ए डिजिटल सिग्नेचर बेस्ड ऑन कन्वेंशनल एनक्रिप्शन फंक्शन" शीर्षक से प्रस्तावित किया था। मर्कले ने क्रिप्टोग्राफिक हैशिंग का भी आविष्कार किया था।
