درخت مرکل چیست؟ مرکل تری چگونه کار میکند؟ چرا درخت های مرکل برای بلاک چین اهمیت دارند؟ Merkle Tree چه مزایا و کاربردهایی دارد؟
یکی از تکنولوژیهای مهم و مورد استفاده در شبکه بلاک چین، درخت مرکل (merkle tree) است. درخت مرکل که به درخت هش (hash tree) معروف است، شامل استفاده از تعداد بالایی دیتا و اطلاعات است تا بتواند آنها را برای پردازش بهتر، مدیریت کند. در تکنولوژی بلاک چین، مرکل تری برای مدیریت و سازماندهی به تراکنشهای شبکه استفاده میشود تا شبکه مقدار منابع کمتری را برای پردازش مصرف کند.
درخت مرکل با ایجاد یک ساختار پلکانی و مرحلهای، اعتبارسنجی و بررسی اطلاعات دیتاها و اطلاعات را انجام میدهد. در این مقاله قصد داریم تا با مفهوم سیستم درخت مرکل، مزایا و نحوه عملکرد آن آشنا شویم.
درخت مرکل چیست؟
درخت مرکل در بلاک چین نوعی ساختار داده است که برای اعتبار سنجی و بررسی اطلاعات دادهها در یک مجموعه استفاده میشود. سرعت بررسی دیتا در مرکل تری بالاست و معمولا در این سیستم از توابع هش استفاده میشود. هدف از ایجاد درخت مرکل، مدیریت تراکنشهای شبکه بلاک چین است تا بلاکچین بتواند به کمک منابع کمتری، شبکه خود را پردازش کند.
درخت مرکل با داشتن ساختار مرحلهای یا پلکانی، به بررسی صحت اطلاعات میپردازد. در واقع در مرکل تری نودها در بخشهای مختلفی قرار میگیرند و وظیفه مشخصی دارند. به صورت کلی ساختار مرکل تری از اجزای زیر تشکیل شده که در شکل زیر مشخص است:
- ریشه مرکل: ریشه مرکل یا مرکل روت (merkle root) یا هش ریشه که به روت هش یا root hash معروف است، بالاترین نود درخت مرکل میباشد. در تصویر زیر، مربع مشکی ریشه مرکل است.
- نودهای غیر برگ: نودهای غیربرگ (Non-leaf nodes) نودهای هش فرزند در تراکنشهای میانی هستند. در تصویر زیر، مربعهای بنفش نودهای غیربرگ محسوب میشوند.
- نودهای برگ: نودهای برگ (leaf nodes) نودهای فرزند یا نودهای تراکنشها هستند. در تصویر زیر، مربعهای سبز، نودهای برگ هستند.
ریشه مرکل (merkle root) چه وظیفه ای دارد؟
ریشه مرکل یا مرکل روت (merkle root) یکی از مهمترین اجزای ساختار درخت مرکل را تشکیل میدهد. این بخش در بالاترین سطح معماری درخت مرکل قرار دارد و نوعی تکنیک ریاضیات است که در آن دادهها و اطلاعات مربوط در پیرامون مرکل تری را تایید میکند. ریشه مرکل تری در هر بلاک، عنوان یا هدر بلاک را تشکیل میدهد و باعث میشود تا اطلاعات بلاک غیرقابل تغییر شده و امکان دستکاری در آن وجود نداشته باشد.
تاریخچه درخت مرکل در بلاک چین
ساختار درخت مرکل اولین بار توسط رالف مرکل (Ralph Merkle) طراحی شد. رالف مرکل دانشمند حوزه علوم کامپیوتر، سالهای زیادی را به تحقیق و پژوهش درمورد رمزنگاری کلیدهای عمومی پرداخته است. در دهه 80 میلادی دانشمندان ریاضی تلاش کردند تا مدلی برای سازماندهی و مدیریت دیتاها ارائه دهند؛ اما اکثر مدلهای ارائه شده کاربردی نبودند. در نهایت در سال 1979 رالف مرکل (Ralph Merkle) توانست ساختار مرکل را طراحی کند. ساختاری که در حال حاضر برای مدیریت و سازماندهی اطلاعات و تراکنشها در شبکههای بلاکچین بسیار کاربردی است.
مرکل تری چگونه کار میکند؟
قبل از بررسی نحوه عملکرد درخت مرکل، باید اجزای تشکیل دهنده یک بلاک را بشناسیم. به طور کلی یک بلاک از عنوان (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 ریشه مرکل در این درخت است که در بخش هدر قرار میگیرد و اطلاعات مخصوص به خود را نگهداری میکند.
چرا درخت های مرکل برای بلاک چین اهمیت دارند؟
در یک شبکه متمرکز، دادهها از یک نسخه یکتا قابل دسترسی هستند. این بدان معناست که گرهها (نودها) نیازی به نگهداری یک نسخه از دادهها ندارند و دادهها به سرعت قابل بازیابی هستند. اما در یک سیستم توزیع شده، وضعیت اینگونه نیست. فرض کنید بلاکچین از درخت های مرکل استفاده نمیکند. در این صورت، هر گره در شبکه باید یک رکورد از هر تراکنش انجام شده را نگه دارد، چرا که نسخه مرکزی از اطلاعات وجود ندارد. به این معنا که حجم عظیمی از اطلاعات باید در هر گره ذخیره شود و هر نود کپی مخصوص به خود را از دفتر کل خواهد داشت.
اگر یک گره بخواهد یک تراکنش گذشته را تأیید کند، باید درخواستها را به تمام گرهها بفرستد تا نسخههای خود از دفتر کل را ارسال کنند. سپس کاربر باید نسخه خود را با نسخههای دریافتی از گرههای مختلف مقایسه کند. هر نوع عدم تطابق میتواند امنیت بلاکچین را به خطر بیندازد. علاوه بر این، چنین درخواستهایی برای تأیید، نیاز به ارسال حجم زیادی از دادهها در شبکه دارند و کامپیوتری که این تأیید را انجام میدهد، نیاز به قدرت پردازشی زیادی برای مقایسه نسخههای مختلف از دفتر کل خواهد داشت.
بدون درخت مرکل، باید خود دادهها برای تأیید در سراسر شبکه منتقل شوند. درخت های مرکل امکان مقایسه و تأیید تراکنشها را با قدرت محاسباتی و پهنای باند قابل اجرا فراهم میسازند. تنها یک مقدار کوچک از اطلاعات باید ارسال شود و این موضوع حجم عظیمی از دادههای دفتر کل که قبلاً باید مبادله میشد را جبران میکند.
درخت مرکل و استفاده از آن در شبکه بیت کوین
شبکه بیت کوین اولین شبکه بلاک چین است که از ساختار درخت مرکل برای شبکه خود استفاده کرد. شبکه بیت کوین برای افزایش امنیت و عدم بازگشتپذیری مقادیر هش، از الگوریتم هشینگ SHA-256 استفاده میکند. در الگوریتم هشینگ SHA-256، مقادیر در خروجی دارای هش 256 بیت هستند.
در این الگوریتم درخت های مرکل برای ذخیره سازی داده و همچنین پردازش تراکنشها استفاده میشوند. در بلاکهای شبکه بیت کوین بلوکها به وسیله مقادیر هش به یکدیگر متصل و دارای هدر یا عنوان بلاک هستند. در هدرهای هر بلاک اطلاعاتی همچون هش ریشه مرکل، شماره بلاک، تایم استمپ، هش بلاک قبلی و غیره در آن وجود دارد.
یکی از مهمترین مزایای استفاده از مرکل تری در شبکه بیت کوین، استفاده از روش SPV یا simple payment verification است. SPV گروهی از نودها هستند که تنها بلندترین زنجیرههای هدرهای بلوک را دانلود میکنند و کاربران دیگر نیازی ندارند تا تمامی بلاکچین را دانلود کنند و تراکنش خود را انجام دهند. در واقع در روش SPV که به کمک مرکل تری در شبکه بیت کوین اجرا میشود، تنها هدرهای ذخیره شده در بلندترین زنجیره تایید میشود. این موضوع باعث آسان شدن فرآیند استخراج نیز میشود.
مزایای درخت مرکل (Merkle Tree)
مرکل تری یا درخت هش و نحوه کارکرد آن، باعث پیشرفتهای خوبی در عملکرد شبکه بلاک چین شده و سرمایه گذاری در این حوزه را جذاب کرده است. درختهای مرکل به دلیل ایجاد تسهیل اعتبارسنجیها، روشی سریعتر و آسانتر نسبت به سایر روشهای اعتبارسنجی ارائه کردهاند. این درخت با حذف تمامی دادههای غیرضروری و تبدیل سایر دادهها به هش، توانایی فشرده سازی تعداد زیادی از داده و اطلاعات را برای توسعه دهندگان شبکه بلاک چین فراهم میکند. از مهمترین مزایای درخت هش برای شبکه بلاک چین میتوان به موارد زیر اشاره کرد:
- تشخیص سریع دستکاریها در بلوک
وجود ساختار هش در مرکل تری یا درخت هش (hash tree) باعث شناسایی سریع دستکاریها در تراکنشها میشود و ماینرها به سادگی میتوانند از دستکاری بلوک جلوگیری کنند. تمامی تراکنشهای شبکه به صورت هش در درخت مرکل ذخیره میشوند و با تغییر هر کدام از تراکنشها، تغییر اتفاق افتاده قبل از رسیدن به ریشه مرکل، به سطوح بالاتر درخت منتقل میشود. بعد از آن امکان مقایسه ریشه مرکل که در هدر یا عنوان هر بلاک ثبت شده، وجود دارد. بنابراین اگر دستکاری در تراکنش اتفاق بیفتد، سریعا شناسایی میشود. - اعتبارسنجی سریع و آسان دادهها
فرآیند اعتبارسنجی در درخت مرکل در بلاک چین بسیار سریع و آسانتر از سایر روشهای اعتبارسنجی انجام میشود. درخت هش به کاربران شبکه بلاک چین این امکان را میدهد تا بدون نیاز به دانلود تمام بلاک چین، بتوانند هر کدام از تراکنشهای بلاک چین را به سادگی بررسی کنند. در واقع ساختار این درخت همانند پروتکل SPV، به کاربران اجازه میدهد تراکنش مورد نظر خود را در شبکه بلاک چین جستجو کنند. - عدم تاخیر و سرعت بالا
شبکه بلاکچین به دلیل ماهیت غیر متمرکز خود، برای انتقال اطلاعات و تراکنشها نیازمند تایید آن است. در حالت غیر متمرکز این موضوع با سرعت بسیار کمی انجام میشود و به نوعی یک عیب بزرگ برای شبکه بلاک چین محسوب میشود. با استفاده از درخت مرکل انتقال دادهها در شبکه بلاکچین بدون هیچگونه تاخیری انجام میشود. - کاهش منابع مورد نیاز برای ذخیره سازی
شبکه بلاک چین از چندین هزار بلاک ساخته شده که در هر بلاک دارای چندین تراکنش در خود است. این حجم از اطلاعات موجود در شبکه نیازمند فضای ذخیره سازی و قدرت محاسباتی بسیار زیادی است تا بتواند اعتبارسنجی مناسبی بر روی تراکنشها انجام شود. به وسیله درخت مرکل یا درخت هش (hash tree) دیگر گرهها یا نودها (node) مجبور نیستند تا تمامی بلاک چین شبکه را دانلود و در فضای خود ذخیره سازی کنند.
درخت مرکل با هش کردن تمامی سوابق شبکه بلاک چین در دفتر کل، اثبات داده را از خود داده جدا میکند و گرهها و نودها میتوانند به سادگی به تایید بلاکها بپردازند و تراکنشها را بررسی کنند.
کاربرد درخت مرکل چیست؟
ساختار درخت هش در اکثر بلاکچینها و پلتفرمهای رمز ارزها مورد استفاده قرار میگیرد. درخت مرکل توانسته با هموار ساختن برخی از مشکلات تکنولوژی بلاک چین، توجه فعالان بازارهای مالی را برای سرمایه گذاری در حوزه کریپتوکارنسی جلب کند. درخت مرکل با داشتن ویژگیهای منحصر به فرد در بخشهای مختلفی از بلاک چین کاربرد دارد. از جمله مهمترین بخشهای دنیای بلاک چین میتوان به موارد زیر اشاره کرد:
1. ماینینگ
درخت مرکل در فرآیند ماینینگ یا استخراج کاربرد دارد و این فرآیند را برای ماینرها سادهتر میکند. بلوک شبکههای بلاکچینی همانند بیت کوین دارای عنوان یا هدرهایی در بلاک خود هستند که در آنها اطلاعات بزرگ و تراکنشهای زیادی وجود دارد. مجموعه این تراکنشها در بلاک معمولا بزرگتر از خود هدر بلاک است و ماینرها با هش کردن اطلاعات و دادهها، خروجیهای مناسب را میسازند که برای اعتبارسنجی استفاده میشود.
از طرفی ممکن است ماینرها برای پیدا کردن یک بلاک معتبر چندین بار تلاش کنند. ماینرها برای پیدا کردن بلاک مورد نظر خود باید یک شماره از هدر بلاک را تغییر دهند. این کار با وجود هزاران تراکنشهای مجزا در یک بلاک بسیار سخت و تقریبا غیرممکن خواهد بود. ریشههای مرکل این فرآیند را برای ماینرها سادهتر میکنند.
به وسیله این درخت با شروع فرآیند استخراج، شبکه بلاک چین تراکنشها به ساختار درخت مرکل تبدیل میشود و هش ریشه درون هدر بلاک قرار میگیرد. بدین ترتیب ماینرها به جای هش کردن تمامی بلوک شبکه، تنها هدر بلوک را هش میکنند و پردازش سادهتری را انجام میدهند.
2. اعتبارسنجی
مهمترین کاربرد درخت مرکل در بلاک چین، فرآیند اعتبارسنجی ساده آن است. ماینرهایی که با دستگاههای ضعیفتری به شبکه متصل شدند، میتوانند در شبکه فعالیت کنند و ماینر نیازی ندارد تا تمامی شبکه بلاک چین را در فضای ذخیره سازی خود دانلود کند. در عوض با درخواست اثبات مرکل به شبکه، تراکنش مورد نظر در بلاک تایید میشود و با کاهش تعداد هشینگ، اعتبارسنجی سادهتر و بدون نیاز به منابع محاسباتی بالا صورت میگیرد.
3. اتریوم
شبکه بلاک چین اتریوم همانند شبکه بیت کوین، از مرکل تری استفاده میکند. شبکه اتریوم برحسب نسخه اصلاح شده درخت مرکل (merkle patricia tree) کار میکند. در واقع در بلاک چین اتریوم، هر بلوک دارای 3 درخت هش است و هر کدام از 3 ریشه هدف خاص و مجزایی را انجام میدهند. ریشه اول، ریشه مشترک در تمام تراکنشهاست، ریشه دوم وضعیت تراکنش را نشان میدهد و ریشه سوم گیرنده تراکنش است. کاربران شبکه اتریوم به وسیله ریشه مرکل یا merkle root وجود یا عدم وجود یک تراکنش را در یک بلوک خاص تعیین میکنند.
4. کاربردهای غیر بلاکچینی
درخت مرکل علاوه بر شبکه بلاک چین، در حوزههای دیگر نیز کاربرد دارد. همانطور که گفته شد، درخت هش مدلی مناسب برای مدیریت و سازماندهی اطلاعات است. برخی از کاربردهای مرکل تری در فضای غیر بلاک چینی شامل موارد زیر است:
- گیت (Git): گیت یک پلتفرم کنترل پروژه محسوب میشود که در بین برنامه نویسان بسیار محبوب است. گیت برای ساختار فضای ذخیره سازی خود از مدل درخت هش استفاده میکند.
- سیستم IPFS: سیستم IPFS یک پروتکل توزیع شده متن باز و همتا به همتا است که برای ساختار فایلهای خود از مدل درخت هش استفاده میکند.
- تکثیر داده: مرکل تری در پایگاههای داده توزیع شده غیر SQL همانند آمازون مورد استفاده قرار میگیرد.
- گواهیهای قابل تایید: بخشهای گواهی دهنده برای صدور گواهینامههای قابل تایید و بررسی، از مدل مرکل تری در سیستمهای خود استفاده میکنند.
سخن پایانی
«درخت مرکل چیست؟» Merkle Tree یا درخت هش (hash tree) نوعی ساختار داده است که به کمک آن میتوان اعتبارسنجی و بررسی اطلاعات دادهها در یک مجموعه را سریعتر و آسانتر انجام داد. این درخت به کمک توابع هش در ساختار، سرعت مناسبی در پردازش تراکنشها ایجاد میکند. درخت مرکل در بلاک چین باعث میشود تا در بلاکها دستکاری اتفاق نیفتد و کارایی پردازشها افزایش یابد.
همچنین به کمک مرکل تری فرآیند ماینینگ یا استخراج آسانتر انجام میشود. عملکرد مرکل تری تاثیر بسزایی در مقیاس پذیری و سرعت شبکه بلاکچین دارد و باعث جذب سرمایه گذاری در این حوزه شده است. در این مقاله تلاش کردیم تا مفهوم مرکل تری را توضیح داده و به مزایا و کاربردهای آن اشاره کنیم.
سوالات متداول
درخت مرکل به زبان ساده چیست؟
درخت مرکل یا Merkle Tree، یک ساختار داده درختی است که در زمینههای مختلفی مانند کریپتوگرافی، تأمین امنیت اطلاعات و بلاک چین کاربرد دارد. این درخت با استفاده از یک تابع هش، مجموعهای از دادهها یا تراکنشها را به یک هش یکتا (hash root) تبدیل میکند.
چرا باید از درخت مرکل در بلاک چین استفاده کنیم؟
درخت مرکل یک روش هوشمندانه برای ذخیره و بررسی اطلاعات در شبکه بلاکچین است. این درخت با استفاده از تکنیکهای رمزنگاری، اطلاعات را به شکلی ایمن و کارآمد مرتب میکند. یکی از مزایای اصلی این درخت این است که به شما اجازه میدهد تابدون نیاز به بررسی کل اطلاعات از صحت آنها اطمینان حاصل کنید. همچنین، انتقال دادههای بزرگ بین کامپیوترهای مختلف در شبکه بلاک چین را سریعتر میکند.
استفاده از مرکل تری چه مزایایی دارد؟
استفاده از درخت های مرکل در بلاکچین چندین مزیت دارد. اولاً، این امکان را میدهد که تراکنشها به طور کارآمد تایید شوند. به جای اینکه هر تراکنش را به تنهایی بررسی کنیم، یک گره (node) میتواند ریشه مرکل را تایید کند که نمایانگر کل دادههاست. دوماً، این امکان را فراهم میسازد که تراکنشها به صورت فشرده ذخیره شوند. این بدان معناست که با تایید یک عدد یا کد خاص (ریشه مرکل)، میتوان اطمینان حاصل کرد تمام تراکنشها نیز معتبر هستند، و این کار باعث صرفهجویی در زمان و حافظه میشود.