۲۹ فروردین ۱۴۰۴ اخبار
  1. بررسی دلایل احتمال سقوط سنگین پای کوین
تلگرام ثبت‌نام در رمزینکس

درخت مرکل چیست؟ بررسی ساختار هش باینری و نقش آن در بلاکچین  

 
۱۴ اسفند ۱۴۰۳   ۱۲ اسفند ۱۴۰۳
  10 دقیقه
درخت مرکل چیست

درخت مرکل ساختاری با داده‌های رمزنگاری شده است که برای تأیید سریع و ایمن داده‌ها در سیستم‌های بلاکچینی استفاده می‌شود. این ساختار با استفاده از توابع هش، داده‌ها را به صورت سلسه مراتبی طبقه‌بندی می‌کند و امکان تأیید صحت اطلاعات را بدون نیاز به بررسی کل داده‌ها فراهم می‌کند. در این مقاله به بررسی کامل درخت مرکل، تاریخچه آن، ساختار و اجزای تشکیل‌دهنده‌اش، کاربردهای آن در بلاک‌چین و سیستم‌های غیر بلاک‌چینی، و همچنین مزایا و آینده این فناوری می‌پردازیم. در ادامه، تفاوت‌های درخت مرکل با درخت ورکل (Verkle Tree) و نقش آن در افزایش امنیت و کارایی شبکه‌های بلاک‌چینی نیز بررسی خواهد شد.

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

درخت مرکل (Merkle Tree) ساختاری از داده‌های رمزنگاری شده است که به شکل یک درخت واقعی نشان داده می‌شود. شبکه‌های دیجیتالی با استفاده از درخت مرکل داده‌های بلاکچینی را مدیریت می‌کنند. درخت مرکل از یک الگوریتم هش استفاده می‌کند تا داده‌ها را پردازش کند و یک هش جدید تولید کند که تمامی داده‌ها را درون خود جای داده است.

روش مدیریت داده‌های درخت مرکل را بلاکچین‌هایی مانند بیت کوین استفاده می‌کنند تا تراکنش‌های ارز دیجیتال را با سرعت و امنیت بالاتری پردازش و تأیید کنند. در این روش چندین هش درون یک دیگر ادغام شده و به صورت «ریشه مرکل» در می‌آیند. ریشه مرکل برای ایجاد هش بلاک استفاده می‌شود تا هر بلاک شناسه منحصر به فرد خود را داشته باشد.

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

تاریخچه و تکامل درخت مرکل

درخت مرکل در سال ۱۹۸۷ توسط شخصی به نام رالف مرکل (Ralph Merkle) اختراع شد. اختراع رالف مرکل اکنون کاربرد بسیاری در سیستم رمزنگاری مدرن دارد. مرکل در همان سال مقاله‌ای تحت عنوان امضای دیجیتال گواهی شده (A Certified Digital Signature) منتشر کرد و در آن جزئیات ساختار درخت مرکل را توضیح داد. در ابتدای راه ساختار هش درخت مرکل برای امضای دیجیتال استفاده می‌شد اما با پتانسیل بالای خود به مرور زمان به راه حلی برای مشکلات امنیتی تبدیل شد. با ظهور بیت کوین در سال ۲۰۰۹ این ساختار برای مدیریت داده‌های تراکنش در هر بلوک بلاک‌چین مورد استفاده قرار گرفت. امروزه کاربرد درخت مرکل از فناوری بلاک‌چین نیز فراتر رفته و در سیستم‌های ابری نیز مورد استفاده قرار می‌گیرد.

درخت مرکل به یاد سازنده آن رالف مرکل نام‌گذاری شده است.

ساختار درخت مرکل: اجزا و عملکرد

همان‌طور که از نامش پیداست ساختار درخت مرکل به درخت واقعی شباهت بسیاری دارد. البته در نظر داشته باشید درخت مرکل برخلاف درخت واقعی در دنیای عینی از شاخه‌ها شروع شده و به ریشه درخت منتهی می‌شود. با این اوصاف می‌توان گفت ساختار هش باینری بیشتر به درختی وارونه شباهت دارد. برای درک بهتر این موضوع اجزای درخت مرکل را به طور کامل بررسی خواهیم کرد. 

شاخه‌ها و برگ‌ها: اجزای تشکیل‌دهنده درخت مرکل

به‌طورکلی می‌توان درخت مرکل را به سه بخش برگ‌ها (Leaves)، شاخه‌ها (Branches) و ریشه (root) تقسیم کرد. درخت مرکل ساختاری وارونه دارد و عملیات هش کردن از برگ‌هایش شروع می‌شود که در پایین قرار گرفته‌اند. به‌این‌ترتیب هر تراکنش از طریق فرایند هشینگ (Hashing) به یک هش منحصربه‌فرد تبدیل شده و وارد ساختار درخت مرکل می‌شود. هر یک از این هش‌ها به‌عنوان برگ‌های درخت مرکل شناخته می‌شوند. در نظر داشته باشید که در بلاک‌چین هزاران تراکنش انجام می‌شود و هر یک از این تراکنش‌ها دارای هش مختص به خود هستند. به همین سبب بزرگی درختی مرکل به تعداد داده‌های ورودی بستگی دارد.

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

برای مثال، فرض کنید که ۴ تراکنش A، B، C و D وارد درخت مرکل می‌شوند. در مرحله اول، هر کدام به صورت جداگانه وارد فرآیند هشینگ می‌شوند و هش منحصربه‌فرد خود را دریافت می‌کنند که به این هش‌ها برگ درخت مرکل می‌گویند. در مرحله دوم، هر کدام از هش‌ها به صورت دو به دو با یکدیگر ادغام می‌شوند و هش‌های جدیدی را با نام AB و CD به وجود می‌آورند که به شاخه‌های مرکل معروف است. در نهایت هم به ریشه درخت مرکل می‌رسیم که حاصل ادغام دو هش قبلی است که هش ABCD را به وجود می‌آورد. در تصویر زیر یک درخت مرکل با هشت برگ را می‌بینیم که چگونه برگ‌ها به ساقه و ساقه‌ها به ریشه تبدیل می‌شوند.

ساختار درخت مرکل برای امن‌سازی داده‌های بلاکچینی استفاده می‌شود.

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

ریشه درخت مرکل (Merkle root) بالاترین بخش در ساختار مرکل است. هش‌های حاضر در درخت مرکل به صورت جفت با هم ادغام می‌شوند. فرایند ادغام این هش‌ها تا جایی ادامه پیدا می‌کند که به هش کل برسیم. هش به دست آمده حاصل تمامی تراکنش‌های انجام شده در یک بلاک شبکه است.

ریشه درخت مرکل هش نهایی کل داده‌ها است.

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

تابع هش (Hash Function) الگوریتم‌های ریاضی هستند که ورودی داده‌های بلاکچینی را با هر اندازه و فرمتی دریافت می‌کنند و از طرف دیگر خروجی منحصربه‌فردی را با مقدار ثابت تولید می‌کنند. تابع هش برگشت ناپذیر است؛ یعنی امکان شناسایی داده‌های ورودی با استفاده از خروجی‌ها وجود ندارد. با استفاده از همین قابلیت است که تابع هش تا حد زیادی امنیت بلاکچین را بالا می‌برد.

فرمول توابع هش درخت مرکل اندکی پیچیده است اما در نهایت امنیت داده‌ها را تامین می‌کند.

به‌عنوان‌مثال رمز عبور در شبکه بلاک‌چین (غیرمتمرکز) برخلاف روش سنتی ذخیره داده‌ها، به صورت مستقیم در دیتابیس‌ها (database) ذخیره نمی‌شود. در فرایند ذخیره‌سازی ابتدا رمز با استفاده از تابع هش به فرمولی غیر قابل رمزگشایی تبدیل شده و سپس ذخیره می‌شود. 

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

کاربردهای درخت مرکل در بلاکچین

در نظر داشته باشید استفاده از درخت مرکل در شبکه‌های بلاک‌چین الزامی نیست با این حال بسیاری از شبکه‌ها مانند بیت کوین به دلایل مختلف از این ساختار هش باینری بهره می‌برند. در ادامه به برخی از کاربردهای این ساختار در بلاک‌چین اشاره کرده‌ایم.

۱. تأیید یکپارچگی داده‌ها (Data Integrity Verification)

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

برای تأیید یک داده در درخت مرکل نیاز به درگیر کردن کل بلاکچین نیست

۲. کاهش فضای دیسک (Space Efficiency)

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

۳. تقویت امنیت و جلوگیری از دستکاری (Security and Tamper Resistance)

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

تابع هش درخت مرکل برگشت نا‌پذیر است؛ یعنی امکان حدس ورودی با وجود داده خروجی امکان‌پذیر نیست.

۴. بهبود فرآیند تأیید تراکنش‌ها (Efficient Transaction Confirmation)

درخت مرکل با هشینگ جفتی داده‌ها و ادغام کردنشان در یک هش جدید سرعت تأیید تراکنش‌ها را افزایش می‌دهد. از آن جا که با استفاده از تعدادی هش می‌توان تراکنش‌های کل بلاکچین را تأیید کرد؛ فرآیند تأیید تراکنش‌ها سریع‌تر و کم‌هزینه‌تر می‌شود. بیت کوین بهترین بلاکچین برای پیاده‌سازی درخت مرکل است تا فرآیند تأیید تراکنش‌ها با سرعت بالاتری اجرا شود.

کاربردهای غیر بلاک‌چینی درخت مرکل

عمده کاربرد شناخته شده درخت مرکل به بلاک‌چین مربوط می‌شود؛ درحالی‌که می‌توان از این ساختار در سیستم‌های ابری و پایگاه‌ها داده نیز بهره برد. در ادامه به برخی از کاربردهای درخت مرکل در سیستم‌های غیر بلاک‌چینی اشاره خواهیم کرد.

۱. سیستم‌های کنترل نسخه (Version Control Systems)

درخت مرکل در سیتم‌های کنترل نسخه برای مدیریت و پیگیری تغییرات کد منبع و فایل‌ها استفاده می‌شود. به‌عنوان مثال، Git یکی از رایج‌ترین سیستم‌های کنترل نسخه برای ردیابی تغییرات در فایل‌های رایانه‌ای است. در این سیستم هر هش به صورت خودکار در یک کامیت (commit) ذخیره می‌شود. هر کامیت شامل هش درخت مرکل مربوط به همان کامیت است که تغییرات را در فایل‌ها مدیریت می‌کند. سیستم Git به توسعه‌دهندگان اجازه می‌دهد تا تغییرات را ردیابی کنند و به نسخه‌های قبلی بازگردند.

۲. پروتکل‌‌های ذخیره‌سازی توزیع‌شده (Distributed Storage Protocols)

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

با استفاده از درخت مرکل می‌توانید داده‌ها را به صورت امن و غیر قابل تغییر طبقه بندی کنید

۳. تضمین محتوای دیجیتال (Digital Content Integrity)

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

حفظ امنیت محتوای دیجیتال در بلاکچین توسط درخت مرکل تامین می‌شود.

۴. بانک‌های اطلاعاتی و همگام‌سازی داده‌ها (Databases and Data Synchronization)

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

درخت مرکل داده‌ها را امن و منظم می‌سازد.

درخت مرکل (Merkle Tree) در مقابل درخت ورکل (Verkle Tree)

درخت ورکل دارای ساختاری مشابه به درخت مرکل است و همانند آن ذخیره‌سازی حجم انبوهی از داده را آسان‌تر می‌سازد. یکی از تفاوت عمده میان این دو ساختار توانایی تولید خروجی‌های کم حجم است. به‌طوری‌که درخت ورکل از لحاظ فشرده‌سازی بهینه‌تر از درخت مرکل عمل می‌کند. برای مثال اگر درخت مرکل برای ذخیره‌سازی یک میلیارد داده به یک کیلوبایت فضا نیاز داشته باشد، درخت ورکل همان عملیات را تنها با استفاده از ۱۵۰ بایت فضا انجام می‌دهد. این ویژگی باعث می‌شود که درخت ورکل گزینه‌ای ایده‌آل برای بلاک‌چین‌های بزرگ و پیچیده مانند اتریوم (Ethereum) باشد. همچنین درخت ورکل به‌طورکلی امنیت بالاتری نسبت به مرکل از خود نشان داده است. لازم به ذکر است درخت ورکل اولین بار در سال ۲۰۱۸ توسط جان کوزمال (John Kuszmaul) معرفی شد و کماکان روند توسعه خود را طی می‌کند.

درخت ورکل فرایند بهینه‌تری برای ذخیره و تامین امنیت داده‌ها دارد.

مزایای استفاده از درخت مرکل

استفاده از درخت مرکل برای تمامی سیستم‌های داده‌ای اختیاری است. حال که اجباری در بهره‌گیری از آن نیست دلیل استفاده گسترده از این درخت باینری چیست؟ برای پاسخ به این سؤال به برخی از ویژگی‌های مثبت این ساختار اشاره خواهیم کرد:

  • انجام بی‌نقص فرآیند تایید یکپارچه تراکنش‌ها 
  • امنیت بالا با ایجاد لایه‌های هش (هش باینری)
  • افزایش سرعت در تأیید تراکنش‌ها
  • ایجاد دسترسی آسان به داده‌های پیچیده برای سیستم‌ها
  • قابل‌استفاده در سیستم‌های ابری و پایگاه‌های داده 

آینده درخت هش باینری چگونه خواهد بود؟  

بر اساس اطلاعات موجود در سایت صرافی بیت گت (Bitget) آینده درخت‌های مرکل (Merkle Trees) در حوزه بلاک‌چین امیدوارکننده به نظر می‌رسد. چرا که با رشد روزافزون شبکه‌های بلاک‌چینی روش‌های کارآمدی برای تأیید حجم انبوهی از داده‌ها نیاز است. این ساختار کماکان راه توسعه خود را ادامه می‌دهد و امکان ترکیب آن با فناوری‌های پیشرفته‌تر مانند قراردادهای هوشمند (Smart contract) و سیستم‌های غیرمتمرکز (Decentralized systems) نیز وجود دارد. 

جمع‌بندی

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

سؤالات متداول

آیا درخت مرکل سرعت واکشی داده‌ها را افزایش می‌دهد؟

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

چگونه هزینه‌های محاسباتی در درخت مرکل کاهش می‌یابد؟

درخت مرکل با کاهش حجم داده ها، بهینه‌سازی پهنای باند، افزایش سرعت تأیید تراکنش‌ها و ساده سازی مدیریت داده‌ها هزینه های محاسباتی را کاهش می‌دهد.

آیا درخت مرکل در شبکه‌های غیر بلاکچینی کاربرد دارد؟

بله همان‌طور که اشاره شد می‌توان از ساختار هش درخت مرکل در سیستم‌های ابری و پایگاه‌های داده استفاده کرد. 

کدام کتابخانه‌های متن‌باز برای پیاده‌سازی درخت مرکل موجود است؟

کتابخانه‌هایی مانند MerkleTree.js (جاوا اسکریپت)، Pymerkletools (پایتون) و MerkleTree (Solidity) برای پیاده‌سازی درخت مرکل موجودند.

آیا الگوریتم‌های هش جدید جایگزین مناسبی برای مرکل هستند؟

الگوریتم‌های جدید مانند SHA-3 یا BLAKE3 می‌توانند جایگزین‌های مناسبی باشند، اما درخت مرکل به دلیل سادگی و اثربخشی همچنان پرکاربرد است.

چگونه درخت مرکل امنیت داده‌های ابری را بهبود می‌بخشد؟

درخت مرکل با ایجاد هش‌های منحصربه‌فرد برای داده‌ها و امکان تأیید سریع صحت داده‌ها بدون نیاز به بررسی کل داده‌ها، امنیت را افزایش می‌دهد.

آیا استفاده از درخت مرکل در پروژه‌های کوچک مقرون‌به‌صرفه است؟

بستگی به نیاز پروژه دارد. در پروژه‌های کوچک با داده‌های محدود، ممکن است استفاده از درخت مرکل ضروری نباشد، اما برای امنیت و تأییدپذیری می‌تواند مفید باشد.

چگونه عملکرد درخت مرکل در شرایط بار بالا ارزیابی می‌شود؟

عملکرد درخت مرکل در شرایط بار بالا با معیارهایی مانند سرعت تأیید تراکنش‌ها، مصرف حافظه و توانایی مقیاس‌پذیری ارزیابی می‌شود. درخت مرکل به دلیل ساختار سلسله‌مراتبی، معمولاً عملکرد خوبی در شرایط بار بالا دارد.

منابع:

اینوستوپدیا | بیت گت

به این post امتیاز دهید
علیرضا انجوی - نویسنده تخصصی بازارهای مالی
درباره علیرضا انجوی
من فارغ التحصیل ارشد مترجمی زبان انگلیسی هستم و از سال ۱۴۰۰ وارد دنیای تولید محتوا برای ارز دیجیتال شدم. آشنایی من با ارزهای دیجیتال برمی‌گرده به سال‌های ۹۴ و ۹۵؛ درست زمانی که ویتالیک بوترین ایده ساخت اتریوم به ذهنش رسید. بوترین از نویسندگی درباره بیت کوین آغاز کرد و حالا رهبر انقلابی بزرگ در ارز دیجیتال است. آینده من...
درباره علیرضا انجوی بیشتر بخوانید
دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات کاربران

اولین نفری باشید که نظر می دهید

?>