درخت مرکل (درهمسازی) در بلاک چین چیست و چه کاربردی دارد؟
اگر مدتی از شروع فعالیت شما در عرصه ارزهای دیجیتال میگذرد و در مورد مسائل فنی این حوزه کنجکاوید، به احتمال زیاد چشمتان به اصطلاح «درخت مرکل» خورده است. اگر چنین است و هنوز فکر میکنید منظور از درخت مرکل درخت کریسمسی است که بهخاطر صداعظم آلمان، آنجلا مرکل، نامگذاری شده است، پس حتما در ادامه مقاله با ما همراه باشید!
حتی در بین افراد حرفهای فعال در حوزه بلاک چین رمزارزها هم درخت مرکل میتواند مفهومی پیچیده بهنظر بیاید ولی واقعیت این است که درک آن چندان هم سخت نیست. اگر بخواهیم همین ابتدای کار یک توضیح ساده از درخت مرکل ارائه دهیم، میتوان آن را اینگونه تعریف کرد: درخت مرکل روشی برای طبقهبندی داده است که به کمک آن میتوان حجم عظیمی از اطلاعات را از نظر درستی با سرعت و کارایی بالا بررسی کرد.
درخت مرکل خود را به عنوان بخش مهمی از فناوری بلاک چین و در حالت کلی، ارزهای دیجیتال معرفی کرده است. از این رو در این مقاله با زبانی ساده و با جزئیات به بیان مفاهیم اصلی آن خواهیم پرداخت.
درخت مرکل چیست؟
«درخت مرکل» (Merkle Tree) در سال ۱۹۷۹ میلادی و توسط آقای «رالف مرکل» (Ralph Merkle) معرفی شد و هیچ ربطی هم به صدراعظم آلمان ندارد! آقای مرکل در این سال وقتی در دانشگاه استنفورد حضور داشت، مقالهای تحت عنوان «امضای دیجیتال مجاز» نوشت و بدین ترتیب بدون اینکه خودش بداند، بخش مهمی از فناوری بلاک چین را بنا نهاد. در این مقاله آقای مرکل روش کاملا جدیدی را برای اثبات درستی دادهها ارائه نمود. به عبارت دیگر، او پروسهای را طراحی کرد که بتوان به کمک آن درستی دادهها را با سرعت تایید کرد.
ایدهی آقای مرکل که امروزه با نام درخت مرکل شناخته میشود، بهکلی دنیای رمزنگاری را تغییر داد. به همین دلیل استفاده از درخت مرکل در طول این سالها به محبوبیت زیادی رسیده است، بهویژه در دنیای رمزارزها که استفاده زیادی از آن میشود. حتی ساتوشی ناکاموتو، خالق بیت کوین، در مقاله معروف معرفی بیت کوین هم چندین بار به استفاده از درخت مرکل اشاره کرده است. در کدهای بیت کوین هم در چندین مورد از مزایای این درختها بهره برده شده است. نه تنها بیت کوین، بلکه دیگر ارزهای دیجیتال مثل اتریوم هم از درخت مرکل استفاده میکنند که در ادامه بیشتر در مورد آن توضیح خواهیم داد.
توابع هش
قبل از اینکه بخواهیم در مورد نحوه کار درخت مرکل و چگونگی استفاده از آن در بلاک چین صحبت کنیم، باید ابتدا مفاهیم اولیه بلاک چین و مهمتر از آن توابع هشگذاری را مرور کنیم.
همانطور که میدانید در بلاک چین هر تراکنش شناسه مخصوص خود را دارد. در بیشتر بلاک چینها این شناسه یک رشته کد ۶۴ کاراکتری است که ۲۵۶ بیت (یا همان ۳۲ بایت) از حافظه را اشغال میکند. حال وقتی به این موضوع فکر کنید که بلاک چینها از صدها هزار بلاک تشکیل شدهاند که هر بلاک خودش چندین هزار تراکنش را در خود جای میدهد، کاملا برایتان مشخص میشود که موضوع حافظه و قدرت پردازشی دو مشکل عمده این فناوری هستند.
بنابراین بهترین کار این است که تا میتوانیم از دادههای کمتری برای پردازش و تأیید تراکنشها استفاده کنیم. نه تنها این کار باعث کاهش مصرف پردازنده مرکزی میشود، بلکه امنیت را هم به شکل قابل ملاحظهای بالا میبرد.
این دقیقا همان کاری است که درخت مرکل انجام میدهد. در بخش بعدی بیشتر دراینباره توضیح خواهیم داد. فعلا باید با یک مفهوم مهم دیگر هم آشنا شویم. این مفهوم مهم همان «توابع هش» (Hash Function) هستند. یک تابع هش تابعی است که هرچقدر داده به آن بدهید همواره یک خروجی با اندازه ثابت تولید خواهد کرد. برای مثال فرض کنید شما متن یک داستان ۱۰ صفحهای را به تابع هش میدهید و این تابع یک خروجی با اندازه ثابت ( ۶۴ کاراکتر) تحویل شما میدهد.
حال اگر یک کلمه از این داستان تغییر کند، خروجی که تابع هش بازمیگرداند به کلی با خروجی قبلی متفاوت خواهد بود. نکته مهم دیگر در مورد توابع هش این است که با داشتن خروجی بههیچوجه نمیتوان فهمید ورودی اولیه چه بوده است. به همین دلیل است که از این توابع به شکل گستردهای در رمزنگاری استفاده میشود.
حال با در نظر داشتن این مفاهیم میتوانیم نحوه کار درخت مرکل را راحتتر درک کنیم. در بخش بعدی به این موضوع خواهیم پرداخت.
درخت مرکل چگونه کار میکند؟
درخت مرکل درواقع درختی است که ساختار داده را نمایش میدهد. در درخت مرکل هر «گره غیربرگ» یک هش را در خود ذخیره میکند که از روی دادههای گرههای زیرین خود تولید شده است. برای درک بهتر موضوع به شکل زیر توجه کنید:
در شکل بالا گرههای L1 تا L4 «گرههای برگ» هستند که دادهها را در خود جای میدهند. گره Hash 0-0 تنها یک هش در خود دارد که با دادن محتوای گره L1 به عنوان ورودی به تابع هش ایجاد شده است. به همین ترتیب گره Hash 0-1 نیز از روی محتوای گره L2 تولید شده است. همچنین گره Hash 0 از روی دادههای گرههای Hash 0-0 و Hash 0-1 که گفتیم تنها حاوی هش هستند، ایجاد شده است. در نهایت هم گره Top Hash را داریم که به آن «ریشه» گفته میشود.
پس در هر درخت مرکل، سه نوع گره داریم: «ریشه»، «گرههای برگ» و «گرههای غیربرگ». برای درک اینکه چرا از واژههایی مثل گره و ریشه استفاده میکنیم، میتوانید تصویر بالا را بهصورت برعکس تصور کنید که گره Top Hash نقش ریشه را دارد و گرههای دیگر از آن رشد کردهاند. در درخت معمولی ما یک ریشه داریم که از آن بدنه درخت ایجاد میشود، از بدنه شاخهها رشد میکنند و انتهاییترین عضو آن برگها هستند.
بنابراین هر درخت مرکل میتواند به تنهایی یک تراکنش را در خود خلاصه کند. از آنجایی که گفتیم در توابع هش با تغییر یک کاراکتر از ورودی، خروجی به کل تغییر میکند، به همین دلیل تنها با داشتن ریشه درخت مرکل که حاوی یک هش است، میتوان از درستی گرههای برگ و محتوای آنها اطمینان حاصل کرد؛ زیرا اگر تغییری در هر کدام از گرهها اتفاق افتاده بود، هش ریشه درخت مرکل هم بهکلی عوض میشود.
کاربرد درخت مرکل در بیت کوین
تابع هشی که بیت کوین از آن استفاده میکند، SHA-256 نام دارد. خروجی این الگوریتم همواره یک رشته کاراکتر ۲۵۶بیتی است. کاربرد درخت مرکل در بیت کوین هم در این است که تراکنشهای هر بلاک را به شکل فشرده در خود ذخیره میکند.
همانطور میدانید بلاکهای هر بلاک چین با داشتن هش بلاک قبلی خود به یکدیگر متصل هستند. در بیت کوین هر بلاک حاوی مجموعهای از تراکنشها و یک سرتیتر است که این سرتیتر خودش شامل موارد زیر میشود:
- شماره بلاک
- هش بلاک قبلی
- زمان و تاریخ
- سختی استخراج
- نانس (Nounce)
- هش ریشه درخت مرکل
تراکنشهای صورتگرفته در شبکه بیت کوین، توسط ماینرها به داخل بلاک افزوده میشوند و بعد از هشگذاری درخت مرکل، در نهایت هش ریشهای که به دست میآید در سرتیتر بلاک نوشته میشود.
بدین ترتیب لازم نیست که کل اطلاعات تراکنش به شکل کامل در بلاک ذخیره شوند، زیرا با داشتن هش ریشه درخت مرکل میتوان درستی تراکنشهای قبلی را تأیید کرد.
درخت مرکل در دیگر ارزهای دیجیتال
با اینکه بیت کوین اولین ارز دیجیتالی بود که از درخت مرکل استفاده کرد ولی دیگر بلاک چینهایی که طی سالهای بعد از بیت کوین معرفی شدند هم از درخت مرکل کمک میگیرند. البته ناگفته نماند که پیادهسازی آنها ممکن است پیچیدهتر و متفاوتتر از پیادهسازی آن در بیت کوین باشد.
اتریوم که بعد از بیت کوین دومین ارز دیجیتال برتر جهان شناخته میشود، یکی دیگر از بلاک چینهایی است که از درخت مرکل با یک پیادهسازی متفاوت استفاده میکند. از آنجایی که در شبکه اتریوم میتوان اپلیکیشنهای پیچیده توسعه داد، از نسخه پیشرفتهتر درخت مرکل که به آن «درخت مرکل پاتریشیا» (Merkle Patricia Tree) میگویند، استفاده شده است.
درواقع در درخت مرکل پاتریشیا، از سه درخت مرکل برای سه شیء مختلف استفاده شده که صحبت در مورد آن خارج از محدوده این مقاله است ولی میتوانید با یک جستجوی ساده اطلاعات بیشتری درمورد آن به دست بیاورید.
مزایای استفاده از درخت مرکل
- قابلیت تأیید درستی دادهها
- سرعت بیشتر
- کاهش مصرف حجم حافظه برای ذخیره اطلاعات
- کاهش زمان لازم برای تأیید تراکنشها
مهمترین مزیت استفاده از درخت مرکل همانطور که اشاره کردیم قابلیت تأیید درستی دادهها با سرعت و کارایی بیشتر است. دلیل آن هم این است که نیازی نیست همه دادهها بررسی و تأیید شوند، اگر هش ریشه درخت درست باشد نشاندهنده درستی اطلاعات گرههای آن درخت است.
مزیت دیگر کاهش چشمگیر مصرف حافظه است. بیت کوین در حال حاضر که از درخت مرکل استفاده میکند هم از نظر حجم و مقیاسپذیری با مشکل روبهرو است. حال فرض کنید اگر از درخت مرکل استفاده نمیشد، چقدر مصرف حافظه بالا میرفت و شاید اصلا نمیتوانست دوام بیاورد.
و مورد آخر هم که همراستا با مزیتهای دیگر درخت مرکل است، کاهش زمان لازم برای تأیید تراکنشهاست. از آنجایی که حجم دادهها پایین میآید، زمان سپری شده برای تأیید آنها نیز به همان نسبت کاهش مییابد.
همانطور که میبینید استفاده از درخت مرکل در بیت کوین یکی از تصمیمات خوب و مهم ساتوشی ناکاموتو بوده که ارزهای دیگر هم آن را دنبال کردهاند.
سخن پایانی
به جرأت میتوان گفت اگر آقای رالف مرکل در آن سال درخت مرکل را معرفی نمیکرد، اکنون شاهد فناوری بلاک چین و ارزهای دیجیتال نبودیم. البته این ادعا در صورتی درست از آب درمیآمد که روش جایگزینی برای آن کشف نمیشد. بههرحال بدون استفاده از درخت مرکل، مقدار حافظه مورد نیاز و قدرت پردازشی بهقدری افزایش مییافت که هیچکس توان مالی اجرای آن را نداشت.
اگر به این موضوع فکر کنید میفهمید که چقدر جالب است که فناوریای که در سال ۱۹۷۹ میلادی اختراع شده، چگونه توانسته باعث ایجاد و پیشرفت فناوریهای جدید در این سالها شود.
در نهایت باید گفت که درخت مرکل عضو جداییناپذیر بلاک چین و ارزهای دیجیتال است که اجازه تأیید سریع تراکنشها را میدهد. درک مفهوم درخت مرکل و کاربرد آن در عملکرد ارزهای دیجیتال میتواند قدم بزرگی در شناخت نحوه کار فناوری بلاک چین و رمزارزها باشد. فناوریای که روزبهروز در حال پیشرفت و متنوعتر شدن است.
برای دریافت مشاوره تخصصی رایگان از کارشناسان ما، اطلاعات خواسته شده رو تکمیل فرمایید.