درخت مرکل در بلاکچین چیست و چه کاربردی دارد؟
یکی از مهمترین موضوعاتی که در بلاکچین کاربرد بالایی دارد، درخت مرکل است که به آن درخت هش باینری نیز میگویند. در سیستمهایی که از درخت مرکل استفاده میکنند، مثل ارزهای دیجیتال، میتوان اطلاعات زیادی را در کمترین زمان ممکن بررسی و تأیید کرد. با وجود اینکه شنیدن این اصطلاح، تصویری از یک درخت معمولی را در ذهن تداعی میکند، منظور از درخت در علوم کامپیوتری ساختارهای داده است. به طور کلی و به زبان ساده، درخت مرکل مانند درختی معکوس است که ارتباطی سلسلهوار بین اطلاعات را نشان میدهد. در ادامه این مقاله، برای آشنایی با درخت مرکل، کارکردها، مزیتها و چگونگی استفاده از آن در بلاک چین با ما از صرافی ارز دیجیتال او ام پی فینکس همراه باشید.
درخت مرکل چیست؟
درخت مرکل که به هشتری (hash tree) یا درخت درهمسازی نیز معروف است، درختی محسوب میشود که هریک از برگهای آن با هش رمزگذاریشده از بلاک دادهها نامگذاری شدهاست.
همانطور که اشاره شد، درخت هش باینری، نوعی ساختار داده رایج در علوم کامپیوتر به شمار میآید. در بیت کوین و سایر ارزهای دیجیتال از این درخت برای رمزنگاری موثرتر و امنتر دادههای بلاکچین استفاده میشود. درخت مرکل یک ساختار داده ریاضی است که از هشهای بلاک داده مختلف تشکیل شده و تمام تراکنشهای یک بلاک را در خود خلاصه میکند. علاوه بر این، حجم زیادی از محتوا را به صورت سریع و ایمن به صورت مجموعهای از دادههای بزرگ مورد تایید قرار میدهد.
مطالعه بیشتر: هش ریت یا نرخ هش چیست و چه کاربردی دارد؟
ریشه مرکل یا مرکل روت چیست؟
مرکل روت یا ریشه مرکل، هش تمام تراکنشهایی محسوب میشود که بخشی از یک بلاک در شبکه بلاکچین است. یک بلاکچین از بلاکهای مختلفی تشکیل شده که به یکدیگر مرتبط هستند، از این رو، بلاکچین نامیده میشود. درخت هش یا درخت مرکل، یک روش ریاضی ساده برای تأیید تراکنشها است.
درخت مرکل در ارزهای دیجیتال برای حصول اطمینان از اینکه بلاکهای داده ارسال شده از طریق یک شبکه همتا به همتا کامل، سالم و بدون تغییر هستند، استفاده میشود. طبق این مفهوم، آنها نقش بسیار مهمی در محاسبات مورد نیاز برای حفظ ارزهای دیجیتال مانند بیت کوین و اتریوم دارند.
به عبارت دیگر، ریشه مرکل (Merkle Root)، یک نوع تکنیک ریاضی است که حقایق و دادههای مربوط به درخت هش باینری را مورد تایید قرار میدهد. وقتی که این درخت برای دنیای کریپتوکارنسی و بازار ارزهای دیجیتال مورد استفاده قرار میگیرد، ریشه مرکل باعث میشود تا در مورد عدم تغییر بلاکهای داده، سلامت ساختارشان و کامل بودنشان اطمینان حاصل شود.
این فرآیند تا زمانی تکرار میشود که آخرین مقدار هش به دست آید. به این مقدار، ریشه مرکل میگویند. اندازه ریشه مرکل ۳۲ بایت است و در هر بلاک قرار میگیرد که بیانگر خلاصه ای از اطلاعات تمام تراکنشهاست.
نگاهی به مزیتهای ساختار درخت مرکل
- سهولت بررسی اینکه آیا در تراکنشها مداخلهای صورت گرفته یا خیر
- استفاده بهینه از منابع موجود
- سهولت و تسریع فرایند اضافه شدن تراکنش خاص در بلاک
- مداخلهناپذیر بودن تراکنشها
همانطور که در بالا نیز اشاره شد، یکی از مزایای ساماندهی کردن تراکنشها در ساختار درخت مرکل این است که بسیار راحت و آسان میتوان تایید کرد در هیچ کدام از تراکنشهای داخل بلاک، مداخلهای صورت نگرفتهباشد.
برای مثال، اگر تراکنش TH به تراکنش TXYZ تغییر یابد، مقدار هش آن نیز دچار تغییر خواهد شد. به عبارت دیگر، وقتی که هش به دست آمده با هش همجوار خود ترکیب شود، هش نهایی تغییراتی خواهد کرد که در نهایت باعث میشود ریشه مرکل کاملا متفاوت شود. طبق این توضیحات میتوان اینگونه نتیجه گرفت که وقتی ریشه مرکل تغییر کند، یعنی در یک یا بیش از یک تراکنش مداخله و تغییر ایجاد شدهاست.
انواع گره در ساختار درخت باینری
به طور کلی ۳ نوع گره یا نود در ساختار درخت هش باینری مرکل وجود دارد:
- گره برگ (Leaf node): از مقادیر هش مربوط به دادههای یک تراکنش تشکیل شده. هر تراکنشی که در یک بلاک قرار دارد، از دادههای هششده تشکیل میشود. در نهایت مقادیر هش در گرههای موسوم به Leaf node ذخیره میشوند.
- گره غیر برگ (Non-leaf node): از مقادیر هش میانی تشکیل شدهاند و تا زمانی که فرآیند مورد نظر به ریشه درخت مرکل برسد، مورد استفاده قرار میگیرند.
- گره ریشه (Root node): ریشه هر درخت Merkle مستقیما در بخش هدر (Header) هر بلاک ذخیره میشود.
عملکرد هش در بلاکچین
یک تابع هش، هر نوع داده دلخواه با هر طولی را به یک خروجی با اندازه ثابت مینویسد. این مفهوم معمولا در رمزارزها کاربرد زیادی دارد؛ زیرا یک تابع رمزنگاری است. مهمترین موضوعی که هش را کاربردی و منحصربهفرد میکند، یکطرفه بودن آن است. به عبارت دیگر، این معادله یک تابع یک طرفه محسوب میشود که فقط در یک جهت کار میکند.
بهتر است با ذکر یک مثال، مفهوم این موضوع را واضحتر بیان کنیم. فرض کنید اگر الگوریتم SHA-256 استفاده کنید و ۱۰۱ بلاک چین را به عنوان ورودی ارسال کنید، خروجی زیر را دریافت خواهید کرد.
fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9
در توضیح این الگوریتم باید گفت که این پروتکل دادهها را به بیتهای ۶۴ بایتی (۵۱۲ بیتی) تقسیم و سپس با رمزگذاری مختلط، در نهایت یک هش ۲۵۶ بیتی ایجاد میکند. به این ترتیب یک خروجی ۱۶ کلمهای از دادههای خام تولید میشود. اندازه هر بلاک در این الگوریتم ۶۴ بایت، حداکثر طول پیام ۳۳ بایت، اطلاعات خلاصه پیام ۳۲ بایت، اندازه کلمه ۴ بایت و پارامتر داخلی ۳۲ بایت است و یک چرخه ۶۴ بار تکرار میشود.
مطالعه بیشتر: بلاک چین چیست و چگونه کار می کند؟
در نتیجه، موارد زیر از ویژگیهای کلیدی تابع هش به شمار میآیند:
- قطعی هستند
- از نظر محاسباتی کارآمدند
- برگشت ناپذیرند
- در برابر آسیب مقاومند
کارکرد درخت مرکل در بلاکچین چگونه است؟
درخت مرکل تمام تراکنشهای یک بلاک را جمعآوری و یک اثرانگشت دیجیتالی از کل مجموعه عملیات ایجاد میکند. به این ترتیب، به کاربر این امکان را میدهد تا وجود تراکنش در بلاک را به راحتی مورد بررسی قرار دهد.
درختهای مرکل با هش کردن مکرر جفت گرهها ساخته میشوند تا زمانی که فقط یک هش باقی بماند. این هش با نام Merkle Root یا Root Hash شناخته میشود.
نکته مهم این است که درخت مرکل از پایین به بالا و با استفاده از شناسه تراکنشها ساخته میشود. البته نباید از یاد برد که ساختار درخت مرکل پیچیدگیهایی نیز دارد. مخصوصا زمانی که هر شناسه تراکنش ۶۴ کاراکتر طول داشته باشد. با این حال، این مثال به شما کمک میکند تا دید کلی خوبی از نحوه کار الگوریتمها و دلیل موثر بودن آنها داشته باشید.
در ادامه مثال کوچکی از درخت مرکل در بلاک چین برای درک بهتر این مفهوم آورده شدهاست. سناریوی زیر را در نظر بگیرید که A، B، C و D چهار تراکنش هستند که همه در یک بلاک اجرا میشوند. سپس هر تراکنش هش میشود که در ادامه به شما موارد زیر را ارائه میدهد:
- هش A
- هش B
- هش C
- هش D
سپس هشها با هم جفت میشوند و نتیجه زیر بهدست میآید:
- هش AB
و
- هش CD
و بنابراین، Merkle Root شما با ترکیب این دو هش تشکیل و در نهایت هش ABCD حاصل میشود.
مزایای درخت مرکل در بلاک چین
- اعتبارسنجی یکپارچه دادهها: میتوان از درخت هش باینری به طور موثری برای تایید صحت دادهها استفاده کرد.
حال سوال اینجاست که درخت مرکل چه مزیتی برای بلاکچین به همراه دارد. در پاسخ میتوان به چهار مزیت کلیدی این ابزار اشاره کرد:
- عدم نیاز به فضای زیاد برای ذخیرهسازی: در مقایسه با سایر ساختارهای داده، درخت Merkle فضای دیسک بسیار کمی را اشغال میکند.
- قابلیت استفاده برای تایید اطلاعات کوچک در سراسر شبکه: درخت مرکل را میتوان برای تأیید به قطعات کوچک داده تقسیم کرد.
- تایید کارآمد و موثر: درخت مرکل فرمت دادهها را کارآمدتر میکند و به همین دلیل تأیید یکپارچگی آنها فقط چند لحظه طول میکشد.
چرا درخت هش باینری برای بلاک چین ضروری است؟
یک بلاکچین بدون درخت مرکل را در نظر بگیرید تا درک کنید که این پروتکلها چقدر برای فناوری بلاکچین حیاتی هستند. برای مثال، بیت کوین را در نظر بگیرید؛ زیرا بیتکوین مثال خوبی است که به وضوح میتوان از طریق آن ضرورت استفاده از Merkle Trees برای ارز دیجیتال را نشان داد.
اگر بیت کوین شامل درختان مرکل نمیشد، هر گره در شبکه باید یک نسخه کامل از هر تراکنش بیت کوین انجام شده را حفظ میکرد. اینکه میزان اطلاعات ایجاد شده تا چه اندازه زیاد میشدند، خارج از حد تصور است!
در این صورت، هر درخواست تایید در بیت کوین مستلزم حجم عظیمی از دادهها برای انتقال از طریق شبکه میشد و افراد مجبور بودند برای هر تراکنش بهصورت جداگانه تایید بگیرند.
به این ترتیب، رایانهای که برای اعتبارسنجی استفاده میشود برای تایید اینکه هیچ تغییری در تراکنشها وجود ندارد، به قدرت محاسباتی زیادی نیاز دارد. بنابراین، درختان مرکل راه حلی برای حل این مشکلات هستند.
دسترسی سریع: خرید تتر
نمونههایی از کاربردهای درخت مرکل در بلاکچین
گیت (Git) یکی از معروفترین و محبوبترین سیستم کنترل ورژن (VSC) در جهان به شمار میآید که اکثر برنامهنویسان از آن برای مدیریت پروژههایشان استفاده میکنند. در گذشته، هنگامی که پروژهها بزرگ و بزرگتر شدند و افراد بیشتری به تیمهای توسعهدهنده پیوستند، باگهای غیرمنتظره زیادی بهوجود میآمد.
در نتیجه، مدیریت تغییرات پروژه و مشاهده کدهای گذشته و بازیابی کدهای پروژه برای زمانی خاص تقریبا کار غیرقابل انجامی بود.گیت با امکانات زیادی که دارد، برای حل این چالشها بهوجود آمد و به صورت کاملا رایگان در اختیار کاربران قرار گرفت. بهطورکلی، گیت برای مدیریت منبع پروژه و ثبت و ایجاد تاریخچه تغییرات و انجام پروژههای گروهی مورد استفاده قرار میگیرد.
دینامو دی. بی (DynamoDB) یک سرویس پایگاه داده سریع و انعطافپذیر بر اساس NoSQL است. این پایگاه داده به صورت ویژه برای برنامههایی که به سرعت بالا برای انجام نیاز دارند ایجاد شدهاست. با توجه به توسعه و پشتیبانی این پایگاه داده توسط آمازون، DynamoDB به صورت کاملا آنلاین و ابری تحت سرویسهای وب آمازون در دسترس کاربران قرار میگیرد. مدلهای دادهای قابل انعطاف، عملکرد قابل اعتماد و سرعت بسیار بالا، این پایگاه داده را برای اکثر برنامههای کاربردی روز از جمله بازیها، خدمات وب، اینترنت اشیا و … مناسب ساختهاست.
آپاچی کاساندرا (Cassandra) یک پایگاه داده توزیع شده منبع باز NoSQL است که برای مدیریت حجم زیادی از دادهها در چندین مرکز داده و فضای ابری ساخته شدهاست. کاساندرا دیتابیس در زمینه مقیاسپذیری و در دسترس بودن بدون به خطر انداختن عملکرد، مورد اعتماد هزاران شرکت است. مقیاسپذیری خطی و تحمل خطای اثباتشده در سختافزار یا زیرساخت ابری، کاسندرا را به یک پلتفرم عالی برای دادههای حیاتی تبدیل کردهاست.
پرتکرارترین سوالات درباره درخت مرکل
چرا درخت هش باینری برای بلاک چین ضروری است؟
اگر در ارزهای دیجیتال از درخت مرکل استفاده نمیشد، هر گره در شبکه باید یک نسخه کامل از هر تراکنش انجام شده را حفظ میکرد که باعث میشد حجم اطلاعات به شدت زیاد باشد. به این ترتیب، هر درخواست تایید، نیازمند بررسی حجم عظیمی از دادهها بود.
مزایای درخت مرکل در بلاک چین چیست؟
اعتبارسنجی یکپارچه دادهها، عدم نیاز به فضای زیاد برای ذخیرهسازی، قابلیت استفاده برای تایید اطلاعات کوچک در سراسر شبکه و تایید کارآمد و موثر.
درخت مرکل چیست؟
درخت مرکل که به هشتری (hash tree) هم معروف است، درختی محسوب میشود که هریک از برگهای آن با هش رمزگذاریشده از بلاک دادهها نامگذاری شدهاست.