آشنایی با الگوریتم هش از طریق درخت مرکل

نویسنده: بهزاد ایزدی
تاریخ: ۹۸/۱۲/۱۲ | ۰۰:۳۵ تعداد دیدگاه: ۰ زمان تقریبی مطالعه: ۵ دقیقه تعداد بازدید: ۴۰
آشنایی با الگوریتم هش از طریق درخت مرکل

هش یک تابع یک جهته است که در سیستم های بلاکچین و غیرمتمرکز کاربردهای زیادی دارد.  تمام رسانه های دیجیتالی مانند اسناد، فیلم ­ها یا موسیقی فقط رشته هایی از ارقام باینری صفر و یک هستند. 

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

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

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

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

به دلیل آنکه هش یک طرفه است، ماینرها باید روی ترکیب های زیادی از ورودی کار کنند تا هدف هش را ایجاد کرده و مسئله را حل کنند. این کار منابع رایانه ای زیادی از جمله CPU و حافظه رم مصرف می­کند. اولین ماینری که مسئله را حل کند برنده می­شود.

درخت مرکل و الگوریتم هش

درخت مرکل (Markle) بخش اصلی بلاکچین برای یکپارچه سازی داده است. هر بلاک در بلاکچین می تواند تراکنشهای متعددی را با داده‎های مختلف شامل شود. در این مثال 4 تراکنش داریم.

TX1 TX2 Tx3 TX4

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

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

ثبت دیدگاه و سایر نظرات
دیدگاه دیگران
دیدگاهی یافت نشد
دیدگاه خود را با ما در میان بگذارید