درخت مرکل (Merkle Tree) که به آن هش تری (hash tree) نیز گفته میشود، یک ساختار دادهای بنیادی در تکنولوژی بلاکچین است. این ساختار برای بررسی کارآمد و امن یکپارچگی و انسجام دادهها استفاده میشود. در زمینه بلاکچین،درختان مرکل نقش مهمی در اطمینان از عدم دستکاری دادههای بلاکها ایفا میکنند.
یک درخت دودویی (binary tree) است که در آن:
۱. گرههای برگ (Leaf Nodes): گرههای پایینترین قسمت درخت که به آنها گرههای برگ گفته میشود، شامل هش دادهها (مثل تراکنشها در بلاکچین) هستند.
۲. گرههای غیر برگ (Non-Leaf Nodes): بالای گرههای برگ، هر گره والد، هش دو گره فرزند خود است. این فرآیند تا بالای درخت ادامه مییابد.
۳. گره ریشه (Merkle Root): بالاترین گره درخت که به آن مرکل روت گفته میشود، هش نهایی است که نماینده کل مجموعه داده است. این هش نهایی یک نمایش فشرده و منحصربهفرد از تمامی دادههای درخت است.
هش کردن داده ها:
1.هر قطعه داده (مثلاً یک تراکنش در یک بلاک) به صورت جداگانه هش میشود تا گرههای برگ درخت مرکل ایجاد شوند. هشینگ یک تابع یکطرفه است که دادهها را به یک رشته کاراکتر با اندازه ثابت تبدیل میکند که برای داده اصلی منحصربهفرد است.
ساختن درخت:
تایید:
تأیید کارآمد دادهها
درختان مرکل امکان تأیید سریع و کارآمد دادهها را فراهم میکنند. به جای بررسی مجدد کل مجموعه تراکنشها، تنها نیاز است که یک زیرمجموعه کوچک بررسی شود که به طور قابل توجهی بار محاسباتی را کاهش میدهد.
اثبات یکپارچگی
مرکل روت در هدر بلاک ذخیره میشود و چون این روت به طور منحصربهفرد نماینده تمامی تراکنشهای بلاک است، هر گونه تغییر در یک تراکنش موجب تغییر در مرکل روت میشود. این امر تشخیص دستکاری را آسان میسازد.
قابلیت مقیاسپذیری
درختان مرکل به مقیاسپذیری بلاکچین کمک میکنند، بهویژه در مورد کلاینتهای سبک (light clients). یک کلاینت سبک میتواند یک تراکنش را بدون نیاز به دانلود کل بلاکچین تأیید کند، با استفاده از Merkle proofها.
امنیت
ویژگیهای رمزنگاری هشهای استفاده شده در درختان مرکل تضمین میکند که این ساختار امن باشد. هر گونه تغییر در دادههای ورودی (حتی کوچکترین تغییر) منجر به تولید یک هش کاملاً متفاوت میشود، که این امر باعث میشود دستکاری دادهها بدون تشخیص تقریباً غیرممکن باشد.
مثال در بیتکوین