درخت مرکل چیست؛ درختی تنومند در خاک بلاکچین
در این مقاله میآموزید
درخت مرکل چیست و چگونه باعث عملکرد فوقالعاده بهتر بلاکچین میشود؟!
شاید اگر بگوییم سرعت و کارایی بالای بلاکچینهای امروزی، تا حد قابل توجهی زیر سایه درخت مرکل امکانپذیر است، خیلی اغراق نکرده باشیم.
در این مقاله قصد داریم به عمق بازار ارزهای دیجیتال سفر کنیم و ببینیم در قلب فناوری که حرکتی انقلابی در تغییر و تحول سیستمهای مالی غیرمتمرکز برداشته است چه میگذرد. میخواهیم با نحوه دقیق فعالیت سیستمی که این امکان را برایمان فراهم میکند، بدون نظارت شخص ثالثی سرمایه خود را با سرعت بالا منتقل کنیم، بیشتر آشنا شویم.
اگر به یادگیری آموزشهای بهروز در رابطه با بلاکچین علاقه دارید پیشنهاد میکنیم، مقاله درخت مرکل چیست وبلاگ آموزش ارز دیجیتال در مشهد آکادمی آینده را مطالعه کنید.
در این مقاله میآموزید:
- درخت مرکل چیست؟
- تأثیر تابع هش در درخت مرکل چیست؟
- اولین رمز ارزی که از درخت مرکل استفاده کرد؟
- چه رمز ارزهایی از درخت مرکل استفاده میکنند؟
این مقاله برای چه کسانی مناسب است:
- علاقهمندان به آموزش ارز دیجیتال و بلاکچین.
- افرادی که به صورت تخصصی درباره بنیاد رمز ارزها تحقیق میکنند.
- استخراج کنندگان (ماینرهای) رمز ارزها.
تأثیر تابع هش در درخت مرکل چیست؟
از آنجایی که تابع هش تأثیر مستقیم در بازدهی درخت مرکل دارد؛ قبل از صحبت درباره درخت مرکل، به منظور درک بهتر مکانیزم فعالیت آن، تعریف مختصر و سادهای از تابع هش را بیان میکنیم.
میتوانید تابع هش را یک دستگاه درنظر بگیرید که هرچیزی داخل آن بریزید با اندازه ثابت و معینی از آن خارج میشود. درون این دستگاه (تابع هش) فیلتری وجود دارد که ورودیهایی با اندازه متفاوت را به خروجیهای منحصربهفرد با طول ثابت تبدیل میکند.
خروجیهای تابع هش دو ویژگی مهم دارند:
- منحصربهفرد بودن: هیچ دو ورودی متفاوتی در تابع هش، خروجی یکسانی ندارند. به عبارتی اگر دو جمله ورودی، “علی به سفر رفت” و “علی به سفر مشهد رفت” را به تابع هش بدهیم؛ برای هر ورودی، خروجی منحربهفرد خودش را تحویل میدهد. نکته جالب اینجاست که با وجود اینکه جمله اول و دوم در یک کلمه متفاوت هستند(طول ورودی متفاوت)؛ به واسطه تابع هش خروجی هم اندازه و کاملا متفاوتی دارند.
- خروجی با طول ثابت: همانطور که گفتیم، تفاوتی ندارد که شما بخواهید تمام کلمات موجود در یک روزنامه را هش کنید، یا فقط یک جمله را؛ تابع هشینگ، عبارت هش هر یک از آنها را رمزنگاری کرده و با اندازه یکسانی به شما تحویل میدهد.
همچنین بخوانید: بهترین دستگاه ماینر ارز دیجیتال چه ویژگی هایی دارد؟
درخت مرکل چیست؟
درخت مرکل (Merkle Tree) یا درخت هش باینری (Binary Hash Tree) سیستمی نظاممند برای هشینگ (هش کردن) و پردازش دقیقتر تراکنشها با صرف انرژی کمتر است.
در ادامه مثالی کلی برای بیان ساده علت استفاده از درخت مرکل در هش تراکنشات ارائه میکنیم.
فرض کنید میخواهیم تعداد افرادی که در شهر تهران زندگی میکنند را با خطای اندازهگیری کمی سرشماری کنیم. اگر از یک سمت شهر شروع به سرشماری کنیم و خانه به خانه تحقیقات لازم را انجام دهیم، سریعتر و با صرف انرژی کمتری به هدف خود میرسیم یا اگر چند گروه را برای سرشماری در مناطق مختلف شهر پخش کنیم و آمار بدست آمده از تحقیقات آنها را برای محاسبه تقریبی تعداد کل افراد ساکن در شهر تهران، محاسبه کنیم؟!
بدون شک اگر به چند گروهی تقسیم شویم و در نهایت تعداد کل افراد را براساس آمار تحقیقات محلی محاسبه کنیم، میتوانیم با صرف انرژی کمتری به نتیجه مطلوب برسیم.
در رابطه با هش، اطلاعات ورودی شبکه بلاکچین نیز با فرآیندی مشابه مثال فوق روبهرو هستیم.
درخت مرکل تمام تراکنشات ورودی شبکه را در قالبی مشخص و چند مرحلهای جمعآوری میکند و پس از هش تراکنشات هر مرحله، نتیجه را برای هشینگ به مرحله بعدی ارسال میکند.
به عنوان مثال فرض کنید میخواهیم 100 تراکنش را یک بار بدون استفاده از ساختار درخت مرکل و بار دیگر به وسیله درخت مرکل در تابع هشینگ پردازش کنیم.
برای پردازش ورودیها بدون درخت مرکل، باید هر بار یک ورودی با اندازه متفاوت با دیگر ورودیها به تابع هشینگ بدهیم تا با صرف زمان و انرژی بیشتر نسبت به زمانی که این فرآیند با استفاده از درخت مرکل طی میشود، 100 تراکنش را هش کنیم.
اما هنگام استفاده از درخت هش باینری، ابتدا ورودیها در بلوکهای مجزا طبقهبندی میشوند تا مرحله هش اولیه را پشت سر بگذارند؛ پس از این کار با فرض زوج بودن تعداد ورودیها هر ورودی با ورودی همجوار خود جمع خواهد شد و هش میشود (اگر تعداد ورودیها فرد باشد، ورودی آخر با خودش جمع میشود)، و نتیجه حاصل برای هش مجدد، وارد فاز بعدی هشینگ میشود. این فرآیند تا زمانی که تمام تراکنشات در یک ترانش کلی خلاصهسازی و هش شده باشند ادامه مییابد.
برای مثال 100 تراکنش در ساختار درخت مرکل پس از انجام مرحله اولیه هش، چند بلوک ورودی هش شده داریم که در مرحله بعد تبدیل به 50 تراکنش میشوند. حال هر یک از این 50 تراکنش با تراکنش همجوار خود جمع میشود تا مجدداً هش شود. به ترتیب این الگوریتم تا زمانی ادامه مییابد که تمام ورودیها در یک تراکنش کلی هش شوند.
به تراکنش هش شدهای که در آخرین مرحله ایجاد میشود، ریشه مرکل یا ریشه هش میگوییم.
همچنین بخوانید: اصطلاحات بازار ارزهای دیجیتال (کریپتوکارنسی) چیست؟
ویژگیها و کاربرد درخت مرکل چیست؟
- بررسی آسان تأیید تراکنشات
در صورت نیاز به بررسی صحت هشینگ یک ورودی خاص، اگر برای انجام فرآیند هش کردن از درخت مرکل استفاده شده باشد، به آسانی میتوانیم با استفاده از آدرس ورودیهای تجمیع شده به سرعت ورودی موردنظر را پیدا کنیم و از هش بودن یا نبودن آن اطمینان حاصل کنیم.
- تشخیص تداخلات هشینگ
ساختار منظم و دقیق درخت مرکل، باعث میشود در صورت تداخل هشینگ در تراکنشات؛ با صرف انرژی کم به راحتی منابع موردنیاز برای تأیید تراکنش را فراهم کنیم تا تداخل ایجاد شده رفع شود.
تداخل هشینگ ورودیها براساس تفاوت مقدار هش ریشه مرکل با مجموع هش تراکنشات بلاک سنجیده میشود.
- جلوگیری از متمرکزسازی شبکه
هش و تأیید کلی تراکنشات به قدرت و انرژی زیادی نیاز دارد که میتواند موجب متمرکزسازی صحت سنجی تراکنشات در دست نودها (گرهها) بزرگ و قوی شود.
اما بخشبندی ورودیها شبکه در ساختار درخت مرکل باعث تقسیم انرژی موردنیاز برای هشینگ، بین نودها کوچکتر نیز میشود.
اولین رمز ارزی که از درخت مرکل استفاده کرد
اولین ارز دیجیتالی که شاخههای درخت مرکل در قلب آن سبز شد بیتکوین بود.
در صورت نبود مکانیزنم درخت مرکل در هشینگ تراکنشات شبکه بیت کوین، ممکن بود سالها قبل با بحرانهای جدی برای بهبود مقیاسپذیری و بهینهسازی حجم بلاکچین بیتکوین روبهرو میشدیم.
در بلاکچین بیتکوین هر بلاک دارای تعدادی تراکنش و یک سر بلاک (Header Block) شامل ریشه مرکل از بلاک قبل از خودش است که موجب پیوستگی بلاکها و تعیین بلاکهای قبل از هر بلاک میشود. تابع هش به کار رفته در بلاکچین بیتکوین، SHA-256 یا الگوریتم هشینگ امن (Secure Hashing Algorithm) است که هشهایی با طول ثابت 256 بیت تولید میکند.
برای هش ورودیهای شبکه بیت کوین، ابتدا تراکنشات توسط ماینرها تأیید و در بلاکها قرار میگیرد. پس از هش تراکنشات موجود در بلاکها، نتایج برای ساخت ریشه هش یا همان ریشه مرکل (Merkle Root) وارد درخت مرکل میشود. ریشه هش در سر بلاک ذخیره میشود و به نوعی، خلاصهای از تمام تراکنشات شبکه بیت کوین تا آخرین بلاک است.
وجود این ریشه در سربلاک باعث میشود، کاربران خلاصهای مفید و مختصر از تراکنشات شبکه داشته باشد و در صورت نیاز برای بهینهسازی فضای ذخیرهسازی بلاکچین، تراکنشات اضافه موجود در بلاک چین اصلاح و فراموش شوند.
یکی دیگر از مزایای وجود درخت مرکل در بلاکچین بیتکوین، ایجاد گرهها یا کلاینتهای سبک وزن (Lightweight Clients) است که میتوانند بدون نیاز به دانلود کل بلاکچین بیت کوین، تراکنشات ویژه و موردنیاز را در بلاکها اعتبارسنجی کنند.
چه رمز ارزهایی از درخت مرکل استفاده میکنند؟
پس از بیتکوین، دومین ارز مطرح بازار کریپتوکارنسی، یعنی اتریوم از درخت مرکل برای سازماندهی بهتره دادههای شبکه ERC-20 استفاده کرد. البته کاملاً نمیتوانیم به فناوری که اتریوم از آن استفاده کرد؛ درخت مرکل بگوییم.
اتریوم میزبان اصلی و به نوعی ستون فقرات اکثر اپلیکیشنها و برنامههای غیرمتمرکزی است که امروزه بین کاربران دنیای ارزهای دیجیتال شناخته شده هستند. از این رو ساختار نسبتاً کلاسیک درخت مرکل، جوابگوی تمام نیازهای شبکه اتریوم نبود.
ساختاری که در بلاکچین انریوم به کار رفته، درخت مرکل پاتریشیا (Merklr Patricia Tree) است که از 3 درخت مرکل جداگانه تشکیل شده و هماهنگی بیشتری با پیچیدگیهای برنامههای غیرمتمرکز دارد.
سخن پایانی
اگر به یادگیری علوم نوین و کاربردی مرتبط با بلاکچین و مهندسی ساخت آن علاقهمندید، یادگیری مفاهیمی مانند درخت مرکل جزو مقدمات آموزش ارز دیجیتال و بلاکچین است.
در این مقاله به زبان ساده در سطح مقدماتی با مفهوم درخت مرکل در بلاکچین و مزایای آن برای هشینگ ورودیهای شبکه آشنا شدیم. مقالات آموزشی بیشتر درباره بلاکچین و آموزش ارز دیجیتال را میتوانید در وبلاگ آکادمی آینده مطالعه کنید.
آکادمی آینده به عنوان بهترین آموزشگاه آموزش ارز دیجیتال در مشهد، دوره آموزش ارز دیجیتال و آموزش فارکس در مشهد را با خدمات آموزشی ویژه برگذار میکند.
در کلاس حضوری آموزش ارز دیجیتال در مشهد و آموزش فارکس میتوانید مطالب آموزشی را از صفرتاصد با کیفیت تضمینی، آپدیت رایگان دائمی؛ پشتیبانی مادام العمر و شرایط پرداخت اقساطی دریافت کنید.
برای کسب اطلاعات بیشتر و مشاوره رایگان با واحد پشتیبانی تماس بگیرید.
مطالبی که باید بخوانید
مطالب مرتبط با مقالهای که هم اکنون خواندید...
آکادمی آینده
تیم تولید محتوا آکادمی آینده با هدف ارتقا و بالابردن سطح دانش مخاطبین خود در حوزههای مختلف بازارهای مالی، اقدام به تهیه و گردآوری مقالات مختلف نموده تا شما عزیزان بتوانید به سادگی با استفاده از اطلاعات مفید و ارزشمند سطح معلومات خود را بالا ببرید.
سایر نوشته های آکادمی آینده