بلاکچین یکی از فناوری های مهم است که از زمان پیدایش خود تا به حال توانسته در بخش های مختلف پیشرفت های شگفتی به وجود آورد. مهم ترین نتیجه این فناوری تامین امنیت شبکه بیت کوین و دیگر رمزارزهای مشابه است. درخت مرکل یکی از اصلی ترین ساختارهای داده در فناوری بلاکچین محسوب می گردد که امکان پردازش حجم زیادی از داده ها را توسط بلاکچین فراهم می کند. ساختار داده ای درخت مرکل کاملا شبیه به درخت بوده و تشکیل شده از چند هش مختلف که کلیه اطلاعات تراکنش ها در آن قرار دارد. در واقع اصلی ترین ستون های حفظ امنیت و کارایی شبکه های بلاکچینی نظیر بیت کوین که با ساختارهای بزرگ داده در ارتباط هستند درخت مرکل نام دارند. در این مطلب می خواهیم به طور کامل به بررسی درخت مرکل، نحوه عملکرد درخت مرکل و اهمیت آن در بلاکچین بپردازیم.

آشنایی با درخت مرکل (Merkle Tree) در بلاکچین

نام دیگر درخت مرکل، درخت هش (Hash Tree) است. این درخت دارای ساختار داده ای مشابه یک درخت وارونه است و قادر است مقدار زیادی از داده ها را با حفظ امنیت پردازش کرده و خلاصه سازی کند. این درخت کاربردهای زیادی در علوم رایانه ای و رمزنگاری دارد. بلاکچین هم از این مفهوم استفاده می کند.

بلاکچین به منظور پردازش و کاهش حجم داده های رمزنگاری شده به صورت ایمن و موثر از درخت مرکل استفاده می کند.  درون هر بلاک داده های گوناگون و تراکنش های زیادی قرار می گیرند. درخت مرکل برای ایجاد شاخه جدید مقدار هش تراکنش ها(Hash Value) یا شناسه تراکنش ها(Transaction ID) را جداگانه در نظر گرفته و آنها را با هم ترکیب کرده تا به این صورت شاخه ای جدید به وجود آورد.

برای درک بهتر چگونگی عملکرد درخت مرکل می توانید هش تراکنش ها را همانند برگ های درخت تصور کنید. هر دو برگ درخت با یکدیگر جفت شده و زیر تابع هش قرار می گیرند. از ترکیب این دو هش جدیدی به وجود می آید که ردپای دو هش قبلی است. در ادامه این فرآیند درخت هش جدید به وجود آمده را با هش جدید دیگری که از دو تراکنش دیگر به دست آمده جفت کرده تا هش جدیدتری به وجود آید.

این فرآیند تا زمانی که به یک هش واحد به نام ریشه مرکل (Merkle Root) برسیم ادامه می یابد. این هش همان هش اصلی بلاک است. هش نهایی یک خلاصه از تمام داده های تراکنش ها را پردازش کرده و اثر انگشت هر کدام از تراکنش ها را درون خود جای داده است.

درخت مرکل در بلاکچین چیست

بیشتر بخوانید: مفهوم هش در بلاکچین

تاریخچه پیدایش درخت هش یا مرکل

درخت مرکل در سال 1989 ابداع شد و نام آن به افتخار استاد دانشگاه استنفورد، رالف مرکل، "مرکل" نامگذاری شد. بنابراین قدیمی تر از فناوری بلاکچین محسوب می گردد. درخت مرکل به عنوان روشی برای محاسبه حجم زیادی از داده ها و صرفه جویی در مصرف حافظه بود. استفاده از درخت مرکل به عنوان یک روش معتبر برای اعتبارسنجی داده های هش درون پایگاه های داده ای است که حجم زیادی از اطلاعات را در اختیار دارند. در وایت پیپر بیت کوین مقاله مرکل جزو اجزای اصلی این شبکه محسوب شده و جالب این است که رالف مرکل هم از رمزارزها و سازمان های خودگردان غیرمتمرکز و دائوها حمایت می کند.

نحوه عملکرد درخت مرکل

در این روش، هش تمامی تراکنش های مرتبط به صورت دو به دو با هم در زیر تابع هش قرار گرفته تا در آخر به هش نهایی به نام ریشه مرکل برسند. برای این منظور لازم است تعداد ورودی های هش زوج باشند. در صورتی که تعداد هش ها فرد باشد هش آخر یک بار تکرار شده و در نهایت با خودش جفت می شود.

در نظر بگیرید 200 تراکنش در انتهای درخت مرکل قرار دارد که در ابتدا و زیر تابع هش به 50 هش، بعد از آن به 10 و در ادامه به 5 و 1 هش خلاصه می شوند. هش نهایی به عنوان ریشه مرکل نامیده می شود و نماینده تمامی 200 هش قبلی گروه به شمار می رود. دلیل آن این است که هر گونه تغییر کوچک در تراکنش ها احتمال دارد نتیجه آخر ریشه مرکل را دچار تغییر کند. در این صورت امکان دستکاری تراکنش ها وجود ندارد.

به طور نمونه ما 4 هش تراکنش A، B، C و D در اختیار داریم. در مرحله اول با جفت شدن این 4 هش دو هش AB و CD خواهیم داشت. در آخر یک هش واحد ABCD یا همان ریشه مرکل که نماینده 4 هش قبلی است را در اختیار داریم. البته این تصویر به طور کامل ساده سازی شده و درخت های مرکل در حالت عادی حجم زیادی از داده ها را پردازش و خلاصه می کنند. با این وجود در مجموعه داده های بزرگ تر با انجام هشینگ متوالی یک هش واحد به دست می آید. در نظر داشته باشید درخت مرکل تنها لیستی از تراکنش ها نیست. شما می توانید بدون نیاز به دسترسی به کلیه تراکنش ها هر شاخه از تراکنش ها را به صورت جداگانه اعتبارسنجی کنید. بنابراین در صورتی که نسخه اولیه معیوب شود امکان بررسی بخش های کوچکتر داده ها وجود دارد.

بیشتر بخوانید: بلاکچین چیست؟

مهم ترین مزیت های درخت مرکل

استفاده از درخت هش یا درخت مرکل مزیت های فراوانی برای سیستم پردازش داده ها به همراه دارد. در ادامه مهم ترین آنها را برای شما عنوان می کنیم:

  • کم کردن میزان حافظه مورد نیاز به منظور نگهداری داده های شبکه
  • به وجود آوردن روشی کاربردی و سریع به منظور اثبات صحت و اعتبار داده ها
  • انتقال سریع و انتشار داده ها به کل شبکه
  • امکان دسترسی به بخش های داده بدون نیاز به بارگیری کلیه اطلاعات
  • قابلیت بررسی بخش های مختلف بلاک ها بدون احتیاج به داشتن تمام اطلاعات
  • کم کردن میزان داده های لازم به منظور صحت سنجی اطلاعات شبکه
  • قابلیت اعتبارسنجی به شیوه پرداخت ساده(SPV) برای مشتری های لایت بیت کوین

درخت مرکل در بلاکچین

کاربردهای درخت مرکل کدام است؟

در حالت کلی می توان گفت درخت مرکل به عنوان روشی مورد استفاده قرار می گیرد تا بتوان داده ها را خلاصه کرد. بنابراین با انجام این کار نیاز به استفاده از حافظه را برای نگهداری داده ها کاهش خواهد داد. این کار منجر به جداسازی اعتبارسنجی داده ها از خود داده ها خواهد شد. بنابراین امکان استفاده از این سیستم برای یک بخش خاص یا کل سیستم توزیع شده وجود دارد.

بر این اساس درخت مرکل به عنوان یک ابزار اصلی کاربران بلاکچین جهت بررسی صحت و اعتبار داده ها محسوب می گردد. علاوه بر این با توجه به اینکه این فناوری به میزان حافظه کمتری نیاز دارد به شبکه های بزرگ تر کمک کرده تا سریع تر و راحت تر به انجام محاسبات بپردازند. همچنین این ساختار امکان انتقال سریع تر داده ها به کل شبکه را فراهم می کند. به این دلیل که مقدار کمی از داده ها می توانند اطلاعات کل شبکه را در برگیرند.یکی از موضوعات مهم و ضروری در فناوری بلاکچین اثبات کامل و سازگار بودن یک ورودی برای دفتر کل است.

درخت های مرکل امکان اعتبارسنجی و ثبت آخرین ورودی ها را به همراه کلیه داده های گذشته خود به صورت کاملا دقیق فراهم می کنند. علاوه بر این برای اینکه درستی ورودی جدید ثابت شود لازم است مشخص کنیم کلیه داده های قبلی بدون هیچ تغییر و دستکاری ای درست بوده و هیچ شاخه یا فورک نامعتبری نیست. درخت مرکل برای اینکه این مسئله را ثابت کند به ماینرها و کاربرهای بلاکچین کمک می کند. دلیل آن این است که کمترین تغییر در یکی از مقادیر هش باعث به هم ریختن کلیه معادلات و نتیجه نهایی این ساختار می شود.

با استفاده از درخت مرکل، ماینرها قادر هستند هش تراکنش ها را به مرور زمان از کاربران دریافت کرده و حساب کنند. کاربران نیز قادر هستند قسمت های جداگانه ای از بلاک ها را مورد بررسی قرار داده و تراکنش های مورد نظر خود را از طریق استفاده از هش دیگر بخش های درخت اعتبارسنجی نمایند. به بیان دیگر درخت مرکل از آنجا که فرآیند اعتبارسنجی داده ها را از خود داده ها جدا می سازد، به بارگیری حجم زیادی از اطلاعات برای بررسی درستی داده ها نیاز نخواهد داشت.

بیشتر بخوانید: مفهوم فورک در ارز دیجیتال

چرا درخت مرکل برای بیت کوین حائز اهمیت است؟

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

می توان گفت درخت مرکل باعث می شود کاربران در زمان بررسی یک تراکنش خاص به جای اینکه به بررسی تمام داده ها نیاز داشته باشند فقط به ریشه مرکل و مسیر آن مراجعه کنند. علاوه بر این کلاینت های لایت بیت کوین تنها با بارگیری هدر بلاک که شامل ریشه مرکل است قادر به دستیابی به اطلاعات بلاک است. بدون اینکه لازم به بارگیری کل بلاکچین باشد.

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

جمع بندی

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