درخت مرکل چیست؟ چگونه درخت مرکل به بهبود شبکه بلاک چین کمک میکند؟ عملکرد درخت مرکل چگونه است؟ یکی از تکنولوژیهای مهم و مورد استفاده در شبکه بلاک چین، درخت مرکل یا merkle tree است. درخت مرکل (merkle tree) که به درخت هش (hash tree) معروف است، شامل استفاده از تعداد بالایی دیتا و اطلاعات است تا بتواند آنها را برای پردازش بهتر، مدیریت کند.
در تکنولوژی بلاک چین، مرکل تری برای مدیریت و ساماندهی به تراکنشهای شبکه استفاده میشود تا شبکه مقدار منابع کمتری را برای پردازش مصرف کند. درخت مرکل یا merkle tree با ایجاد یک ساختار پلکانی و مرحلهای، اعتبارسنجی و بررسی اطلاعات دیتاها و اطلاعات را انجام میدهد. در این مقاله قصد داریم تا با مفهوم سیستم مرکل تری، مزایا و نحوه عملکرد آن صحبت کنیم.
درخت مرکل (merkle tree)
درخت مرکل نوعی ساختار داده است که برای اعتبار سنجی و بررسی اطلاعات دادهها در یک مجموعه استفاده میشود. سرعت بررسی دیتا در مرکل تری بالا است و معمولا در این سیستم از توابع هش استفاده میشود. هدف از ایجاد درخت مرکل، مدیریت تراکنشهای شبکه بلاک چین است تا بلاک چین بتواند به کمک منابع کمتری، شبکه خود را پردازش کند. درخت مرکل با داشتن ساختار مرحلهای یا پلکانی، به بررسی صحت اطلاعات میپردازد.
در واقع در مرکل تری نودها در بخشهای مختلفی قرار میگیرند و وظیفه مشخصی دارند. به صورت کلی ساختار مرکل تری از اجزای زیر تشکیل شده است که در شکل زیر مشخص است:
1. ریشه مرکل: ریشه مرکل یا مرکل روت (merkle root) یا هش ریشه که به روت هش یا root hash معروف است، بالاترین نود درخت مرکل میباشد. در تصویر زیر، مربع مشکی ریشه مرکل است.
2. نودهای غیربرگ: نودهای غیربرگ یا Non-leaf nodes نودهای هش فرزند در تراکنشهای میانی هستند. در تصویر زیر، مربعهای بنفش نودهای غیربرگ محسوب میشوند.
3. نودهای برگ: نودهای برگ یا leaf nodes نودهای فرزند یا نودهای تراکنشها هستند. در تصویر زیر، مربعهای سبز، نودهای برگ هستند.

وظیفه ریشه مرکل (merkle root)
ریشه مرکل یا مرکل روت (merkle root) یکی از مهمترین اجزای ساختار درخت مرکل را تشکیل میدهد. این بخش در بالاترین سطح معماری درخت مرکل قرار دارد و نوعی تکنیک ریاضیات است که در آن دادهها و اطلاعات مربوط در پیرامون مرکل تری را تایید میکند. ریشه مرکل تری در هر بلاک، عنوان یا هدر بلاک را تشکیل میدهد که باعث میشود تا اطلاعات بلاک غیرقابل تغییر شود و امکان دستکاری در آن وجود نداشته باشد.
نحوه عملکرد درخت مرکل (merkle tree)
قبل از بررسی نحوه عملکرد درخت مرکل، باید اجزای تشکیل دهنده یک بلاک را بشناسیم. به طور کلی یک بلاک از عنوان یا header و بدنه یا body تشکیل میشود. بخش عنوان یا header از بخشهای دیگر تشکیل شده که شامل ریشه مرکل، تایم استمپ (timestamp)، شماره بلاک، هدف سختی ماینینگ و هش بلاک قبلی است. قسمت بدنه یا body دارای تمام تراکنشهای تایید شده بلاک است که در آن ذخیره میشود.
برای شناخت و درک بهتر عملکرد درخت مرکل، به تصویر زیر توجه کنید. فرض کنید 4 تراکنش با نامهای A و B و C و D در یک بلاک قرار دارند و هرکدام از تراکنشها دارای یک هش بلاک مخصوص به خود هستند (HASH A, HASH B, HASH C, HASH D). هر جفت از 4 تراکنش هش شده برای ساخت هش جدید باید با یکدیگر ترکیب شوند.
در این حالت هش A و B با یکدیگر ترکیب شده و هش AB را ایجاد میکنند. این اتفاق در هشهای C و D نیز رخ میدهد و این دو هش با یکدیگر ترکیب شده و هش CD را میسازند. بعد از ایجاد هشهای AB و CD، هشهای ساخته شده به وسیله تابع هش ترکیب میشود و هش ABCD را ایجاد میکنند. هش ABCD ریشه مرکل یا هش ریشه در درخت مرکل است که در بخش هدر قرار میگیرد و اطلاعات مخصوص به خود را نگهداری میکند.

تاریخچه درخت مرکل
ساختار درخت مرکل اولین بار توسط رالف مرکل (Ralph Merkle) طراحی شد. رالف مرکل (Ralph Merkle) دانشمند حوزه علوم کامپیوتر است که سالهای زیادی را بر روی رمزنگاری کلیدهای عمومی تحقیق و پژوهش کرده است. در دهه 80 میلادی دانشمندان ریاضی تلاش کردند تا مدلی برای سازماندهی و مدیریت دیتاها ارائه دهند؛ اما اکثر مدلهای ارائه شده کاربردی نبود.
در نهایت در سال 1979 رالف مرکل (Ralph Merkle) توانست ساختار مرکل را طراحی کند. ساختاری که در حال حاضر برای مدیریت و ساماندهی اطلاعات و تراکنشها در شبکههای بلاک چین بسیار کاربردی است.

درخت مرکل و استفاده از آن در شبکه بیت کوین
شبکه بیت کوین اولین شبکه بلاک چین است که از ساختار درخت مرکل برای شبکه خود استفاده کرد. شبکه بیت کوین برای افزایش امنیت و عدم بازگشت پذیری مقادیر هش، از الگوریتم هشینگ SHA-256 استفاده میکند. در الگوریتم هشینگ SHA-256، مقادیر در خروجی دارای هش 256 بیت هستند.
در این الگوریتم درختهای مرکل برای ذخیره سازی داده و همچنین پردازش تراکنشها استفاده میشوند. در بلاکهای شبکه بیت کوین بلوکها به وسیله مقادیر هش به یکدیگر متصل و دارای هدر یا عنوان بلاک هستند. در هدرهای هر بلاک اطلاعاتی همچون هش ریشه مرکل، شماره بلاک، تایم استمپ، هش بلاک قبلی و غیره در آن وجود دارد.
یکی از مهمترین مزایای استفاده از مرکل تری در شبکه بیت کوین، استفاده از روش SPV یا simple payment verification است. SPV گروهی از نودها هستند که تنها بلندترین زنجیرههای هدرهای بلوک را دانلود میکنند و کاربران دیگر نیازی ندارند تا تمامی بلاک چین را دانلود کنند و تراکنش خود را انجام دهند.
در واقع در روش SPV که به کمک مرکل تری در شبکه بیت کوین اجرا میشود، تنها هدرهای ذخیره شده در بلندترین زنجیره تایید میشود. این موضوع باعث آسان شدن فرآیند استخراج نیز میشود.

مزایای درخت مرکل
مرکل تری یا درخت هش و نحوه کارکرد آن، باعث پیشرفتهای خوبی در عملکرد شبکه بلاک چین شده و سرمایهگذاری در حوزه تکنولوژی بلاک چین را جذاب کرده است. درختهای مرکل به دلیل ایجاد تسهیل اعتبارسنجیها، روشی سریعتر و آسانتر نسبت به سایر روشهای اعتبارسنجی ارائه کرده است.
درخت مرکل با حذف تمامی دادههای غیر ضروری و تبدیل سایر دادهها به هش، توانایی فشرده سازی تعداد زیادی از داده و اطلاعات را برای توسعهدهندگان شبکه بلاک چین فراهم میکند. از مهمترین مزایای درخت هش برای شبکه بلاک چین میتوان به موارد زیر اشاره کرد:
1. تشخیص سریع دستکاریها در بلوک
وجود ساختار هش در مرکل تری یا درخت هش (hash tree) باعث شناسایی سریع دستکاریها در تراکنشها میشود و ماینرها به سادگی میتوانند از دستکاری بلوک جلوگیری کنند. تمامی تراکنشهای شبکه به صورت هش در درخت مرکل یا درخت هش (hash tree) ذخیره میشود و با تغییر هرکدام از تراکنشها، تغییر اتفاق افتاده قبل از رسیدن به ریشه مرکل، به سطوح بالاتر درخت منتقل میشود. بعد از آن امکان مقایسه ریشه مرکل که در هدر یا عنوان هر بلاک ثبت شده، وجود دارد. بنابراین اگر دستکاری در تراکنش اتفاق بیفتد، سریعا شناسایی میشود.
2. اعتبارسنجی سریع و آسان دادهها
فرآیند اعتبارسنجی در درخت مرکل بسیار سریع و آسانتر از سایر روشهای اعتبارسنجی انجام میشود. درخت هش به کاربران شبکه بلاک چین این امکان را میدهد تا بدون نیاز به دانلود تمام بلاک چین، بتوانند هرکدام از تراکنشهای بلاک چین را به سادگی بررسی کنند. در واقع ساختار مرکل تری همانند پروتکل SPV، به کاربران اجازه میدهد که تراکنش مورد نظر خود را در شبکه بلاک چین جستجو کنند.
3. عدم تاخیر و سرعت بالا
شبکه بلاک چین به دلیل ماهیت غیر متمرکز خود، برای انتقال اطلاعات و تراکنشها نیازمند تایید آن است. در حالت غیر متمرکز این موضوع با سرعت بسیار کمی انجام میشود و به نوعی یک عیب بزرگ برای شبکه بلاک چین محسوب میشود. با استفاده از درخت مرکل انتقال دادهها در شبکه بلاک چین بدون هیچگونه تاخیری انجام میشود.
4. کاهش منابع مورد نیاز برای ذخیره سازی
شبکه بلاک چین از چندین هزار بلاک ساخته شده است که در هر بلاک دارای چندین تراکنش در خود میباشد. این حجم از اطلاعات موجود در شبکه نیازمند فضای ذخیره سازی و قدرت محاسباتی بسیار زیادی است تا بتواند اعتبارسنجی مناسبی بر روی تراکنشها انجام شود. به وسیله درخت مرکل یا درخت هش (hash tree) دیگر گرهها یا نودها (node) مجبور نیستند تا تمامی بلاک چین شبکه را دانلود و در فضای خود ذخیره سازی کنند.
درخت مرکل با هش کردن تمامی سوابق شبکه بلاک چین در دفتر کل، اثبات داده را از خود داده جدا میکند و گرهها و نودها میتوانند به سادگی به تایید بلاکها بپردازند و تراکنشها را بررسی کنند.

کاربرد درخت مرکل
ساختار درخت هش در اکثر بلاک چینها و پلتفرمهای رمز ارزها مورد استفاده قرار میگیرد. درخت مرکل توانسته است با هموار ساختن برخی از مشکلات تکنولوژی بلاک چین، توجه فعالان بازارهای مالی را برای سرمایهگذری بر حوزه کریپتوکارنسی جلب کند. درخت مرکل با داشتن ویژگیهای منحصر به فرد در بخشهای مختلفی از بلاک چین کاربرد دارد. از جمله مهمترین بخشهای دنیای بلاک چین میتوان به موارد زیر اشاره کرد:
1. ماینینگ
درخت مرکل در فرآیند ماینینگ یا استخراج کاربرد دارد و این فرآیند را برای ماینرها سادهتر میکند. بلوک شبکههای بلاک چینی همانند بیت کوین دارای عنوان یا هدرهایی در بلاک خود هستند که در آنها اطلاعات بزرگ و تراکنشهای زیادی وجود دارد. مجموعه این تراکنشها در بلاک معمولا بزرگتر از خود هدر بلاک است و ماینرها با هش کردن اطلاعات و دادهها، خروجیهای مناسب را میسازند که برای اعتبارسنجی استفاده میشود.
از طرفی ممکن است ماینرها برای پیدا کردن یک بلاک معتبر چندین بار تلاش کنند. ماینرها برای پیدا کردن بلاک مورد نظر خود باید یک شماره از هدر بلاک را تغییر دهند. این کار با وجود هزاران تراکنشهای مجزا در یک بلاک بسیار سخت خواهد و تقریبا غیرممکن خواهد بود. ریشههای مرکل این فرآیند را برای ماینرها سادهتر میکنند.
به وسیله درخت مرکل با شروع فرآیند استخراج شبکه بلاک چین تراکنشها به ساختار درخت مرکل تبدیل میشود و هش ریشه درون هدر بلاک قرار میگیرد. بدین ترتیب ماینرها به جای هش کردن تمامی بلوک شبکه، تنها هدر بلوک را هش میکنند و پردازش سادهتری را انجام میدهند.
2. اعتبارسنجی
مهمترین کاربرد درخت مرکل، فرآیند اعتبارسنجی ساده آن میباشد. به طوریکه ماینرهایی که با دستگاههای ضعیفتری به شبکه متصل شدند، میتوانند در شبکه فعالیت کنند و ماینر نیازی ندارد تا تمامی شبکه بلاک چین را در فضای ذخیره سازی خود دانلود کند. در عوض با درخواست اثبات مرکل به شبکه، تراکنش مورد نظر در بلاک تایید میشود و با کاهش تعداد هشینگ، اعتبارسنجی سادهتر و بدون نیاز به منابع محاسباتی بالا انجام میشود.

3. اتریوم
شبکه بلاک چین اتریوم همانند شبکه بیت کوین، از مرکل تری استفاده میکند. شبکه اتریوم برحسب نسخه اصلاح شده درخت مرکل (merkle patricia tree) کار میکند. در واقع در بلاک چین اتریوم، هر بلوک دارای 3 درخت هش است و هرکدام از 3 ریشه هدف خاص و مجزایی را انجام میدهد.
ریشه اول، ریشه مشترک در تمام تراکنشها است. ریشه دوم وضعیت تراکنش را نشان میدهد و ریشه سوم گیرنده تراکنش است. کاربران شبکه اتریوم به وسیله ریشه مرکل یا merkle root وجود یا عدم وجود یک تراکنش را در یک بلوک خاص تعیین میکنند.
4. کاربردهای غیر بلاک چینی
درخت مرکل علاوه بر شبکه بلاک چین، در حوزههای دیگر نیز کاربرد دارد. همانطور که گفته شد، درخت هش مدلی مناسب برای مدیریت و ساماندهی اطلاعات میباشد. برخی از کاربردهای مرکل تری در فضای غیر بلاک چینی شامل موارد زیر است:
الف. گیت (Git): گیت یک پلتفرم کنترل پروژه است که در بین برنامه نویسان بسیار محبوب میباشد. گیت برای ساختار فضای ذخیرهسازی خود از مدل درخت هش استفاده میکند.
ب. سیستم IPFS: سیستم IPFS یک پروتکل توزیع شده متن باز و همتا به همتا است که برای ساختار فایلهای خود از مدل درخت هش استفاده میکند.
پ. تکثیر داده: مرکل تری در پایگاههای داده توزیع شده غیر SQL همانند آمازون مورد استفاده قرار میگیرد.
ت. گواهیهای قابل تایید: بخشهای گواهیدهنده برای صدور گواهینامههای قابل تایید و بررسی، از مدل مرکل تری در سیستمهای خود استفاده میکنند.

سخن پایانی
درخت مرکل یا درخت هش (hash tree) نوعی ساختار داده است که به کمک آن میتوان اعتبارسنجی و بررسی اطلاعات دادهها در یک مجموعه را سریعتر و آسانتر انجام داد. مرکل تری به کمک توابع هش در ساختار، سرعت مناسبی در پردازش تراکنشها ایجاد میکند. درخت مرکل در شبکه بلاک چین باعث میشود تا در بلاکها دستکاری اتفاق نیفتد و کارایی پردازشها افزایش یابد.
همچنین به کمک مرکل تری فرآیند ماینینگ یا استخراج آسانتر انجام میشود. عملکرد مرکل تری تاثیر بسزایی در مقیاس پذیری و سرعت شبکه بلاک چین دارد و باعث جذب سرمایهگذاری در این حوزه شده است. در این مقاله تلاش کردیم تا مفهوم مرکل تری را توضیح داده و به مزایا و کاربردهای آن اشاره کنیم.