یکی از ویژگیهای برجسته بلاکچین، قابلیت مدیریت و پردازش تراکنشهای زیادی بدون نیاز به هیچ نهاد متمرکزی است. اما چگونه این امر ممکن است؟ برای درک این مسئله، نیازمند آشنایی با مفهوم درخت مرکل که یکی از اصول اساسی بلاکچین است، میباشیم. در واقع، درخت مرکل از یک ساختار اطلاعاتی با ارتباطات سلسلهمراتبی تشکیل شده است؛ این اطلاعات بر اساس الگوریتم هش و با هدف حفظ یکپارچگی تراکنشها در دفتر کل توزیع شده تولید میشوند. برای درک بیشتر مفهوم درخت مرکل و کاربرد و مزایای آن در بلاکچین، تا انتهای مقاله با ما همراه باشید.
بیشتر بخوانید: فناوری بلاک چین چیست؟
بلاکچین یکی از فناوریهای نوین و پرکاربرد در زمینههای مختلف است که برای انجام تراکنشهای مالی و غیرمالی بین افراد و سازمانها استفاده میشود. اما چگونه بلاکچین میتواند این حجم بزرگ از اطلاعات را به صورت امن و کارآمد مدیریت کند؟ پاسخ این سوال در مفهومی به نام درخت مرکل نهفته است.
درخت مرکل (Merkle Tree)، با کاهش حجم اطلاعات مورد نیاز برای تایید تراکنشها در فناوری بلاکچین، به حل این مشکلات میپردازد. در این روش، با استفاده از توابع هش، دادههای بلاکچین به صورت سلسلهمراتبی و متعادل سازماندهی شده و باعث میشود که تایید تراکنشها به صورت سریع و کمهزینه انجام شوند.
درخت مرکل، یکی از مهمترین ابزارهای امنیتی شبکه بلاکچین است که جلوی تقلب و تغییر دادهها را میگیرد. در واقع، دادهها با استفاده از الگوریتمهای رمزنگاری مانند توابع هش، رمزگذاری میشوند؛ به همین دلیل درخت مرکل، به نام درخت هش (Hash Tree) نیز شناخته میشود.
برای بررسی نقش درخت مرکل در بلاکچین باید نگاه دقیقتری به ساختار بلاکچین داشته باشیم. بلاکچین، زنجیرهای از بلاکها است؛ به طوریکه، هر بلاک از دو بخش بدنه و هدر بلاک (Block Header) تشکیل شده است.
بدنه بلاک، شامل تمام تراکنشهایی است که در آن بلاک ثبت شدهاند. این تراکنشها به صورت یک لیست مرتب شده از دادهها در بدنه بلاک قرار میگیرند.
هدر بلاک (Block Header)، اطلاعاتی همچون هش بلاک (که یک شناسه منحصر به فرد برای هر بلاک است)، هش بلاک قبلی (که ارتباط بین بلاکها را ایجاد میکند)، عدد نانس (که یک عدد تصادفی است که برای حل مسئله محاسباتی بلاکچین استفاده میشود) و ریشه مرکل (که یک خلاصه از تمام تراکنشهای بدنه بلاک است) را دربرمیگیرد.
برای درک و آشنایی بیشتر با این مفاهیم تا ادامه مطالب با ما همراه باشید.
تابع هش در بلاکچین، یک تابع ریاضی است که دادههای ورودی با اندازههای مختلف را به یک دنباله یکتا و ثابت از حروف و اعداد تبدیل میکند. این دنباله هش (Hash) نام دارد. ورودی تابع هش میتواند یک کلمه یا حتی یک کتاب باشد.
خروجی تابع هش برای هر ورودی، فقط یک مقدار دارد و نکتهی حائز اهمیت این است که این فرآیند برگشتپذیر نیست؛ یعتی نمیتوان با داشتن خروجی، به ورودی تابع رسید. این ویژگی باعث میشود که تابع هش برای افزایش امنیت و تغییرناپذیری اطلاعات در بلاک چین مفید باشد.
طول هش، به نوع تابع هش بستگی دارد. برای مثال، تابع SHA1 هشهایی با ۱۶۰ بیت و تابع SHA2 هشهایی با ۲۵۶ بیت ایجاد میکند.
نود ریشه (Root Node)، هشی است که از ترکیب هشهای تراکنشهای یک بلاک در بلاکچین به دست میآید. نود ریشه، در هدر بلاک ذخیره میشود و میتواند برای تایید سریع تمام تراکنشهای بلاک استفاده شود.
به غیر از نود ریشه، در ساختار درخت مرکل، نود برگ (Leaf Node) و نود غیر برگ (Non-leaf Node) نیز وجود دارد.
نودهای برگ، حاوی مقادیر هش دادههای تراکنش هستند. هر تراکنش، در بلاک به هش تبدیل میشود و این مقدار هش (که به عنوان شناسه تراکنش نیز شناخته میشود) در نودهای برگ ذخیره میشود.
درخت مرکل، ماهیت دوتایی دارد، به این معنی که تعداد نودهای برگ باید زوج باشد تا درخت مرکل به درستی ساخته شود. اگر تعداد نودهای برگ فرد باشد، درخت آخرین هش را کپی میکند و تعداد نودهای برگ را زوج میکند.
علت زوج بودن تعداد نودهای برگ دست یافتن به نود غیر برگ یا نود والد میباشد. نودهای والد، هشهای میانی درخت مرکل هستند که از دو هش فرزند به دست میآیند. این نودها، به صورت سلسلهمراتبی از نودهای برگ تا نود ریشه ایجاد میشوند.
هنگام استخراج، ماینرها فقط هدر بلاک را هش میکنند. این کار باعث میشود که فرآیند سریعتر و سادهتر شود. همچنین، اگر کسی بخواهد تراکنشهای یک بلاک را تغییر دهد، ریشه مرکل نیز تغییر میکند و بلاک نامعتبر میشود. بنابراین، ریشه مرکل امنیت و تغییرناپذیری بلاکها را افزایش میدهد.
شبکه بیتکوین بهعنوان نخستین بلاکچین، از ساختار درخت مرکل برای تایید تراکنشها استفاده نموده است. در حال حاضر، در بسیاری از بلاکچینهای دیگر نیز از درخت مرکل یا نسخههای پیچیدهتر از آن میشود.
به عنوان مثال، اتریوم که بهعنوان یک بستر مهم برای ساخت برنامههای غیرمتمرکز شناخته شده است، از ساختاری به نام درخت مرکل پاتریشا (Merkle Patricia Tree) استفاده میکند. این درخت مرکل، از ترکیب سه درخت مرکل مجزا ساخته شده است و از روش کلید و ارزش برای اتصال دادهها به یکدیگر استفاده میکند.
برخی از مزایای استفاده از درخت مرکل، به عنوان یک ساختار داده در بلاکچین در ادامه شرح داده شده است.
بیشتر بخوانید: بیت کوین چیست؟
در درخت مرکل، با استفاده از نودهای سبک (Light Nodes)، تنها هدر بلاکها ذخیره میشود؛ این اقدام منجر به کاهش حجم دادههای انتقالی شده و سرعت شبکه افزایش مییابد. این نودها میتوانند با استفاده از نود ریشه و مسیر مرکل (Merkle Path)، یک تراکنش خاص را تایید کنند.
در بلاکچین بیتکوین، تابع هش SHA256 برای هش تراکنشها استفاده میشود؛ بنابراین، همه تراکنشها بعد از هشینگ، طول ثابتی برابر با ۲۵۶ بیت دارند. از آنجایی که فقط هش ریشه در هدر بلاک ذخیره میشود، میتوان شاخههای غیرضروری درخت مرکل و بلاکهای قدیمی را حذف کرد و فقط بلاکهای مورد نیاز برای اثبات مرکل را نگه داشت.
این ساختار با جایگزینی هش کل بلاک با هش هدر بلاک، امکان اعتبارسنجی سریعتر دادهها را میدهد.
با ساختار سلسله مراتبی، درخت مرکل فشردهسازی دادهها را امکانپذیر میسازد. این ویژگی باعث ذخیره بهینه تراکنشها و بهبود بهرهوری حافظه میشود. همچنین، با ارسال تراکنشها به صورت مجموعهای از دادهها (Batch) به جای ارسال تک تک تراکنشها، حجم دادههای مورد نیاز برای انتقال و پردازش تراکنشها کاهش مییابد.
استفاده از درخت مرکل در بلاکچین به منظور افزایش امنیت و جلوگیری از تغییر در دادهها، امکان تشخیص هر گونه دستکاری را فراهم میکند. در این سیستم، هر تراکنش به صورت هششده در نودهای مختلف درخت مرکل ذخیره میشود و هر تغییر در تراکنش به طور مستقیم با تغییر در ساختار درخت مرکل همراه است.
بنابراین، هر تلاش برای دستکاری در بلاکچین قابل تشخیص خواهد بود. هر تغییر در یک تراکنش، منجر به تغییر ریشه مرکل و در نتیجه ابطال بلاک میشود. در نتیجه، درخت مرکل به عنوان یک مکانیزم حیاتی برای محافظت از امنیت دادهها در بلاکچین عمل میکند.
درخت مرکل، یکی از رازهای موفقیت بلاکچین است؛ پردازش حجم عظیم اطلاعات بلاکچین به قدرت محاسباتی و فضای حافظه زیادی نیاز دارد. با استفاده از روش درخت مرکل، نیاز به ذخیره کامل تراکنشها در هر نود بلاکچین برطرف شده و این امکان فراهم میشود که بهسرعت و با کارآیی بالاتری اطلاعات منتقل شوند. همچنین، استفاده از درخت مرکل بهعنوان یک ساختار داده سلسلهمراتبی در بلاکچین، نقش مهمی در جلوگیری از دستکاری و افزایش اعتماد به سیستم ایفا میکند.
در این مقاله به تعریف و بررسی درخت مرکل و کاربردهای آن در بلاکچین پرداختیم؛ امیدواریم که با مفهوم درخت مرکل آشنایی کافی پیدا کرده و خواندن این مقاله برایتان سودمند واقع شده باشد.
شیما یزدانی نویسنده محتوا و معاملهگر (تریدر) در زمینه ارزهای دیجیتال هستم. دارای مدرک دکتری مکانیک (گرایش تبدیل انرژی) از دانشگاه حکیم سبزواری و 4 سال سابقه در امر ...