انجمن توسعه قرارداد هوشمند

درخت مرکل - Merkle Tree

Merkle Tree / درخت مرکل

درخت مرکل و تاثیر آن در تکنولوژی بلاکچین

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

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

درخت مرکل چیست؟

حدود سال ۱۹۷۹ فردی به نام رالف مرکر از دانشگاه استنفورد مقاله ای با عنوان “گواهی امضای دیجیتال” منتشر نمود و بدون آنکه بداند مهمترین جزء تکنولوژی بلاک چین را پایه گذاری نمود. در این مقاله او شیوه جدیدی را برای اعتبارسنجی داده ها معرفی نمود که اجازه میداد تا سیستمهای کامپیوتری با سرعت بیشتری اعتبار داده ها را تائید کنند .

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

در هر تراکنش در بلاک چین یک هش (ID) منحصر به فرد دارد که در برخی از بلاک چین ها این هش یک عبارت ۲۵۶ بیتی است و همچنین میدانیم که در شبکه بلاک چین تعداد بسیار زیادی بلاک وجود دارد که در هر یک از این بلاک ها نیز تعداد نسبتا زیادی تراکنش قرار گرفته است.
بنابر این مشخص است که در این وضعیت فضای ذخیره سازی و همچنین سرعت پردازش دو مسئله اساسی است. لذا کاملا واضح است که پردازش و اعتبارسنجی حجم کمتری از داده ها در چنین حالتی یک امتیاز محسوب میگردد که نه تنها زمان پردازش سی پی یو را کاهش میدهد بلکه درواقع امنیت بیشتری را نیز تامین میکند.

این دقیقا همان وطیفه ای است که درخت مرکل ایفا مینماید.
درخت مرکل تعداد بسیار زیادی از هش (ID) تراکنش ها را طی یک سری عملیات پیچیده ریاضی به یک عبارت (کد)‌ ۶۴ کاراکتری تبدیل مینماید که این کد هش ریشه (Merkle Root) نامیده میشود. همچنین این هش ریشه برای تشخیص سریع و دقیق وجود یک تراکنش خاص در یک بلاک مورد نظر حیاتی است.

هش ریشه (مرکل روت) :

برای توضیح بیشتر ابتدا لازم است تا شرح مختصری هم از هشینگ داشته باشیم. تابع هشینگ در واقع یک برنامه ای است که یک عبارت ورودی را با استفاده از الگوریتم های ریاضی به یک مقدار خروجی ثابت و یکتا تبدیل مینماید.
بعضی از متداول ترین توابع هشینگ عبارتند از MD5 - SHA3 و SHA256 که این الگوریتم آخر (SHA256) در ساختار بیت کوین استفاده میشود .

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

به عنوان مثال فرض کنید که در یک بلاک تعداد ۴۰۰ تراکنش داریم لذا هش (ID) هر یک از این ۴۰۰ تراکنش به صورت دو به دو دسته بندی شده و مجددا وارد تابع هشینگ میشوند،‌ در مرحله بعد ۲۰۰ کد هش جدید خواهیم داشت که دوباره به صورت دو بدو دسته بندی شده و مجددا هش میشوند و اکنون ۱۰۰ کد داریم. همین چرخه ادامه پیدا میکند تا نهایتا دو کد هش حاصل هشینگ کلیه این عبارت ها تولید شده و در آخرین مرحل این دو کد هش جدید نیز مجددا وارد تابع هشینگ شده و یک کد هش یکتا برای کل این بلاک خاص تولید میکنند که همان هش ریشه (Merkle Root) است.

مزایای درخت مرکل :

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

  • فراهم سازی یک شیوه کاربردی برای سنجش اعتبار و صحت داده ها.
  • کاهش حجم حافظه مورد نیاز برای اعتبارسنجی داده ها.
  • کاهش میزان تبادل اطلاعات مورد نیاز برای این عملیات در شبکه بلاک چین.
  • SPV یا روشی برای صحت سنجی داده های یک بلاک بدون نیاز به دانلود کل محتوای آن بلاک.

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

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

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

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

نتیجه گیری :

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

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

منبع : Merkle Tree

تصویر برداشته شده از : ویکیپدیا .

3 Likes