درخت مرکل (Merkle Tree) فرآیند ذخیره هش های تراکنش را در یک بلاک چین ساده میکند. این مفهوم، همهی تراکنشها را در یک بلوک جمع میکند و به طور موثر آنها را برای ذخیره ایمن تر و سریع تر در قالب یک هش، رمزگذاری میکند. با استفاده از Merkle Tree، اعتبار دادهها را میتوان به سرعت از طریق یک هش نهایی ارزیابی کرد. این فرآیند، ذخیره سازی دادهها را ساده کرده اما یکپارچگی امنیتی را نیز حفظ میکند.
مفهوم درخت مرکل
عبارت درخت مرکل دو ریشه دارد. بخش اول آن مرکل، به رالف مرکل، دانشمند کامپیوتر و ریاضیدان آمریکایی اشاره دارد که سهم زیادی در رمزنگاری با کلید عمومی داشته است. مرکل در ابتدا درختان هش باینری را در سال ۱۹۸۷ در مقالهای با عنوان "یک امضای دیجیتال بر اساس یک تابع رمزگذاری مرسوم" پیشنهاد کرد. مرکل همچنین هش رمزنگاری را اختراع کرد که در Merkle Tree استفاده میشود. قسمت دوم عبارت درخت مرکل از ساختار آن نشات میگیرد. Merkle Tree یا درخت هش باینری یک ساختار دادهای به حساب میآید که تا حدودی شبیه یک درخت است. درختان مرکل حاوی شاخه و برگ هستند که هر برگ یا شاخه حاوی هش یک بلوک داده است.
درختان مرکل به منابع محاسباتی زیادی نیاز ندارند. در واقع، آنها فضای ذخیره سازی مورد نیاز برای دادهها را با کامپایل کردن چندین هش تراکنش، تنها در یک تراکنش کاهش میدهند. استفاده از منابع مدت هاست که محل مناقشه در صنعت کریپتو بوده است. دلیل آن هم این است که شبکه های بلاک چین میتوانند فضای ذخیره سازی و قدرت زیادی را تخلیه کنند. بنابراین، استفاده از درختان مرکل به کاهش پیدا کردن این مشکل کمک میکند. از طرفی دیگر، ذخیره سازی داده های روی زنجیره میتواند گران باشد. بنابراین استفاده از درختان Merkle برای کاهش حجم دادهها میتواند به پلتفرمهای بلاک چین در صرفه جویی در هزینه کمک کند.
علاوه بر موارد ذکر شده، فرآیند Merkle Tree خیلی طول نمیکشد که این، خبر خوبی در مورد کارایی به شمار میآید. از این گذشته، بسیاری از بلاک چینها برای مدت زمان طولانی تراکنش (از جمله بیت کوین) در نظر گرفته شدهاند، بنابراین هر فرآیندی که بتواند به این موضوع کمک کند، یک امتیاز مثبت به حساب میآید. درختان مرکل در بسیاری از زمینه های محاسباتی به ویژه رمزنگاری و رمزگذاری استفاده میشوند اما اغلب به دلیل حضورشان در بلاک چینهای ارزهای دیجیتال شناخته میشوند. جالب است بدانید بیت کوین، اتریوم، دوج کوین و همهی ارزهای دیجیتال دیگر از درخت مرکل استفاده میکنند. بنابراین بدون شک این مفهوم، عنصر مهمی در دنیای رمزارزها و بلاک چین به حساب میآید.
درخت مرکل چگونه کار میکند؟
در زیر نموداری از نحوه عملکرد درخت مرکل آورده شده است. توجه داشته باشید که در واقعیت، تراکنش ها و هشهای بیشتری در هر درخت وجود خواهد داشت اما این تصویر فرآیند را سادهتر نشان داده تا بتوانید ایده ای از مراحل مربوطه به دست آورید.
با نگاه اولیه به این نمودار درختی مرکل، ممکن است همه چیز کمی پیچیده به نظر برسد اما فرآیند هش Merkle Tree در صورت شکسته شدن کاملا ساده است. باید بدانید که چند مرحله وجود دارد که در فرآیند درخت مرکل ایجاد میشود. هش های پایین درخت مرکل به عنوان برگ شناخته میشوند و هشهای وسط درخت شاخه نام میگیرند. گاهی اوقات به شاخهها به عنوان گرههای غیر برگ هم گفته میشود. در پایین نمودار، بلوک های داده یا تراکنش ها نشان داده شده که هش از آنها ظاهر میشود.
ریشه مرکل چیست؟
ریشه مرکل یک روش ریاضی ساده برای تایید حقایق در Merkle Tree به شمار میآید. آنها در ارزهای دیجیتال استفاده میشوند تا اطمینان حاصل شود که بلوکهای ارسال شده از طریق یک شبکه همتا به همتا کامل، سالم و بدون تغییر هستند. ریشه مرکل نقش بسیار مهمی در محاسبات مورد نیاز برای حفظ ارزهای دیجیتال مانند بیت کوین و اتر دارد.
نکاتی در مورد درخت مرکل
درختان مرکل همچنین به عنوان درختان هش باینری شناخته میشوند که نوعی ساختار داده رایج در علوم کامپیوتر هستند. در بیت کوین و سایر ارزهای رمزنگاری شده، از آنها برای رمزگذاری دادههای بلاک چین با روشی کارآمدتر و ایمنتر استفاده میشود. این مفهوم، یک ساختار داده ریاضی است که از هشهای بلوکهای داده مختلف تشکیل شده است که تمام تراکنشهای یک بلوک را خلاصه میکند. همچنین تایید محتوای سریع و ایمن را در مجموعه دادههای بزرگ فعال کرده و سازگاری و محتوای دادهها را تایید میکند.
جهت اطلاع از تاثیر هش ریت بر قیمت بیت کوین، مقاله مربوطه را مطالعه فرمایید.
همانطور که بالاتر گفته شد، درختان مرکل به صورت ویژه در سیستمهای توزیع شده همتا به همتا که در آن دادههای یکسان باید در مکانهای مختلف وجود داشته باشد، مفید هستند. این سیستمها در اجرای خود از درختان مرکل یا واریانتهای روی Merkle Tree استفاده میکنند. جالب است بدانید Git یک سیستم کنترل نسخه محبوب است که عمدتا توسط برنامه نویسان استفاده میشود. همه فایلهای ذخیره شده، همیشه در رایانه هر کاربر ذخیره میشوند. بنابراین، بسیار مهم است که بررسی کنید این تغییرات در رایانه همه یکسان باشد. از طرفی دیگر، بیت کوین یک ارز محبوب آنلاین و ناشناس است و تمامی تراکنش های آن در بلوک های بلاک چین ذخیره میشوند. برگهای درخت مرکل که در بیت کوین استفاده میشود معمولا هش بلوکهای منفرد هستند. هر بار که شخصی میخواهد بلاک چین را تغییر دهد، مثلا با اضافه کردن تراکنشها، این تغییر باید در همه جا منعکس شود.
درختان مرکل را میتوان برای بررسی ناهماهنگیها در مواردی بیش از فایل ها و ساختارهای داده اولیه مانند بلاک چین استفاده کرد. آپاچی کاساندرا و سایر سیستمهای NoSQL از درختان مرکل برای تشخیص ناسازگاری بین نسخههای کل پایگاههای داده استفاده میکنند. وب سایتی را تصور کنید که مردم در سراسر جهان از آن بهره میبرند. آن وب سایت احتمالا به پایگاه دادهها و سرورهای سراسر جهان نیاز دارد تا زمان بارگذاری مناسب باشد. اگر یکی از آن پایگاههای اطلاعاتی تغییر کند، هر پایگاه داده دیگر باید به همان روش تغییر کند. هشها را میتوان از تکههایی از پایگاههای داده ایجاد کرد و درختان Merkle میتوانند ناسازگاریها را تشخیص دهند.
برای کسب اطلاعاتی در زمینه دوره حضوری اسمارت مانی، بر روی لینک کلیک کنید.
ویژگی و پروتکل درخت مرکل
در سیستمهای مختلف توزیع شده و همتا به همتا، تایید دادهها بسیار اهمیت دارد. این مسئله به این دلیل است که دادههای یکسان در چندین مکان وجود دارد. بنابراین، اگر یک قطعه داده در یک مکان تغییر کند، مهم است که دادهها در همه جا تغییر کنند. تایید دادهها برای اطمینان از یکسان بودن دادهها، در همه جا استفاده میشود. با این حال، هر زمان که یک سیستم بخواهد دادهها را تایید کند، بررسی کل هر فایل زمان بر و از نظر محاسباتی گران است. بنابراین از درختان مرکل استفاده میشود. اساسا، ما میخواهیم تا حد امکان مقدار دادههای ارسال شده از طریق یک شبکه مانند اینترنت را محدود کنیم. بنابراین به جای ارسال یک فایل کامل از طریق شبکه، فقط یک هش از فایل را ارسال میکنیم تا ببینیم آیا مطابقت دارد یا خیر. پروتکل به صورت زیر است:
- کامپیوتر A یک هش از فایل را به کامپیوتر B میفرستد.
- کامپیوتر B بررسی میکند که هش در برابر ریشه درخت مرکل وجود دارد.
- اگر تفاوتی وجود ندارد، کار تمام است. در غیر این صورت به مرحله ۴ میرویم.
- اگر تفاوتی در یک هش وجود داشته باشد، کامپیوتر B ریشههای دو درخت فرعی آن هش را درخواست میکند.
- کامپیوتر A هشهای لازم را ایجاد میکند و آنها را به کامپیوتر B میفرستد.
مراحل ۴ و ۵ تا زمانی که بلوکهای داده ناسازگار پیدا شوند، تکرار میشود. ممکن است بیش از یک بلوک اشتباه پیدا شود زیرا احتمال دارد بیش از یک خطا در دادهها وجود داشته باشد.
برای آشنایی با بهترین پروژه های بلاک چین، بر روی لینک کلیک کنید.
وظیفهی درختان مرکل
درخت مرکل تمام تراکنشهای یک بلوک را جمعآوری کرده، یک اثر انگشت دیجیتالی از کل مجموعه عملیات ایجاد میکند و به کاربر اجازه میدهد بررسی کند که آیا تراکنش در بلوک وجود دارد یا خیر. درختان مرکل با هش کردن مکرر جفت گرهها ساخته می شوند؛ تا زمانی که فقط یک هش باقی بماند. این هش با نام Merkle Root یا Root Hash شناخته میشود. در واقع؛ آنها از پایین با استفاده از شناسه تراکنشها ساخته شدهاند. هر گره غیربرگ هش، هش قبلی خود است و هر گره برگ هش دادههای تراکنش است. در ادامه مثال کوچکی از Merkle Tree در بلاک چین را به شما نشان میدهیم تا درک بهتری از این مفهوم پیدا کنید.
برای اطلاع از نحوه انجام تراکنش محرمانه در بلاک چین، بر روی لینک کلیک کنید.
سناریوی مقابل را در نظر بگیرید: A، B، C و D چهار تراکنش هستند که همه در یک بلوک اجرا میشوند. سپس هر تراکنش هش میشود و شما را با موارد زیر باقی میگذارد:
هش A
هش B
هش C
هش D
هش ها با هم جفت میشوند و در نتیجه:
هش AB
هش CD
بنابراین، Merkle Root شما با ترکیب این دو هش تشکیل می شود: Hash ABCD.
به طور کلی درخت مرکل بسیار پیچیدهتر است؛ مخصوصا زمانی که هر شناسه تراکنش 64 کاراکتر طول داشته باشد. با این حال، مثال بالا به شما کمک میکند تا دید کلی خوبی از نحوه کار الگوریتم ها و دلیل موثر بودن آنها داشته باشید.
چرا درخت مرکل برای بلاک چین ضروری است؟
برای آن که به اهمیت درخت مرکل پی ببرید، ابتدا به یک بلاک چین بدون درختان مرکل فکر کنید تا درک کنید که چقدر برای فناوری بلاک چین حیاتی هستند. برای مثال، اگر بیت کوین شامل درختان مرکل نمیشد، هر گره در شبکه باید یک نسخه کامل از هر تراکنش بیت کوین انجام شده را حفظ میکرد. این اطلاعات مسلما دارای اهمیت بالایی است و باید به آنها توجه شود. از آن جایی که هر درخواست احراز هویت در بیت کوین مستلزم حجم عظیمی از دادهها برای انتقال از طریق شبکه است، در صورت نبود Merkle Tree شما باید به تنهایی دادهها را تایید کنید.
درختان مرکل راه حلی برای اعتبارسنجی و محاسبات هستند. به عبارتی دیگر، آنها رکوردها را در حسابداری هش کرده و بدین وسیله اثبات دادهها را از خود دادهها جدا میکنند. همچنین، اثبات این که ارائه مقادیر کمی از اطلاعات در سراسر شبکه تمام چیزی است که برای معتبر بودن یک تراکنش لازم است، توسط درخت مرکل اتفاق میافتد. علاوه بر این، شما را قادر میسازد تا نشان دهید که هر دو تغییرات دفتر کل از نظر توان اسمی کامپیوتر و پهنای باند شبکه یکسان هستند.
توابع هش رمزنگاری شده چیست؟
هر تابع هش توانایی این را دارد که هر نوع داده با هر اندازه و طولی را با اندازهای ثابت از خروجیها تعریف کند. معمولا در امور رمزنگاری در شبکههای بلاک چینی هم از این ویژگی به مقدار زیادی استفاده میشود. توابع هش برای رمزنگاری دارایی ها کاربردی هستند و مسیری که برای آنها تعریف شده، برگشت ناپذیر است. خوب است برای درک بهتر این نوع تابع، مثال زیر را در نظر بگیرید: اگر از الگوریتم SHA256 hash algorithm استفاده و ۱۰۱ بلاک چین بهعنوان ورودی در نظر گرفته شود، خروجیهای زیر حاصل میشود:
fbffd63a60a5874e86a17f712bab874f33ac9
در ادامه تعدادی از ویژگیهای شاخص هر تابع هش را میتوانیم مشاهده کنیم:
- مشخص و قطعی هستند.
- امکان مهندسی معکوسشان وجود ندارد؛
- از نظر محاسباتی کاربردی و مفید هستند؛
- امکان پیداکردن دو داده با خروجی یکسان در آنها ضعیف است.
جهت کسب اطلاعاتی در مورد دوره دکس تریدینگ، بر روی لینک کلیک کنید.
مزایای درخت مرکل در بلاک چین
- اعتبارسنجی یکپارچگی دادهها: میتوان از آن برای تایید صحت دادهها به طور موثر استفاده کرد.
- فضای کمی را اشغال میکند: در مقایسه با سایر ساختارهای داده، Merkle Tree فضای بسیار کمی را اشغال میکند.
- اطلاعات اندک در سراسر شبکهها: درختان مرکل را میتوان برای تایید به قطعات کوچک داده تقسیم کرد.
- تایید کارآمد بودن: فرمت داده کارآمد بوده و تایید یکپارچگی دادهها فقط چند لحظه طول میکشد.