درخت مرکل در بلاک چین چیست؟ – Merkle Tree به زبان ساده
درخت مرکل در بلاک چین از اهمیت بالایی برخوردار است. در سیستمهای توزیع شده با کمک درخت مرکل میتوانیم اطلاعات فراوانی را بدون صرف انرژی زیاد بررسی و تأیید کنیم. ممکن است با خواندن کلمه درخت تصویری از درختی با شاخ و برگ را در ذهن تصور کنید. البته در علوم کامپیوتری درخت به ساختارهای داده اشاره دارد. درخت مرکل همانند درختی معکوس است و بیانگر ارتباطی سلسلهوار بین اطلاعات است.
تکنولوژی بلاک چین با ایجاد امکانی برای ذخیره و پردازش اطلاعات بهطور غیرمتمرکز امکانات زیادی را برای کاربران ایجاد کرده است. با توجه به حجم بالایی که تراکنشها در بلاک چین دارند پردازش و دستهبندی آنها به وقت و انرژی زیادی نیاز دارد. با توجه به اینکه درخت مرکل با ایجاد ساختارهایی نظاممند پردازش و جستجو در بین اطلاعات گوناگون را هموار میکند بنابراین ساختار اطلاعاتی و ذخیره و پردازش تراکنشها در بلاک چین به کمک درخت مرکل انجام میشود.
درخت مرکل چیست ؟
«درخت مرکل» (Merkle Tree) یا «درخت هش» (Hash Tree) ساختار دادهای متداول در علوم کامپیوتری است. در شبکههای بلاک چینی و بیت کوین درخت مرکل برای رمزنگاری کارآمدتر و امنتر استفاده میشود. اطلاعات و تراکنشها در بلاک به صورت متنی عادی ذخیره نمیشوند بلکه آنها در ساختاری دادهای بهنام درخت مرکل قرار میگیرند. به عبارت دیگر درخت مرکل در بلاک چین در واقع خلاصهای از تمامی تراکنشها در هر بلاک است.
هر تراکنش در بلاک چین به طور منحصر به فردی توسط یک تابع هش همانند تابع هش SHA-256 هش میشود. هر یک از تراکنشها که هش شدهاند به صورت دوبهدو با هم هش میشوند. این فرآیند تا بدست آمدن تنها یک مقدار هش برای هر بلاک ادامه دارد.
تابع هش در بلاک چین چیست ؟
از پرکاربردترین الگوریتمهای رمزنگاری توابع هش هستند. این توابع بدون در نظر گرفتن طول و اندازه داده ورودی، مقدار خروجی با طولی ثابت را تولید میکنند. داده ورودی به تابع هش میتواند یک کلمه، یک جمله، یک متن و حتی کل یک جزوه یا کتاب باشد. خروجی با طول ثابتی که از تابع هش خارج میشود هش نام دارد. لازم به ذکر است کوچکترین تغییر در ورودی تابع هش، خروجی آن را به طور کامل تغییر میدهد. تابع هش SHA-256 از معروفترین توابع هش است که در بلاک چین بسیار استفاده میشود. تمامی تراکنشها توسط تابع هش بهصورت هش در بلاک چین ذخیره میشوند.
ریشه درخت مرکل در بلاک چین
درخت مرکل همانند یک درخت وارونه است. از لحاظ ساختاری درخت مرکل در بلاک چین همانند یک درخت باینری است که در آن هشهای بهدست آمده از تراکنشها در قسمت پایین ساختار بهنام «نودهای برگ» (Leaf Nodes) شناسایی میشوند. هشهایی که در قسمت میانی درخت مرکل قرار دارند «شاخهها» (Branches) و مقدار هش بالایی به عنوان «ریشه مرکل» (Merkle Root) شناخته میشود. هر بلاک در بلاک چین یک ریشه مرکل دارد.
درخت مرکل و ریشه درخت مرکل نقشی مهم در رمزنگاری شبکههای بلاکچینی ایفا میکنند. درخت مرکل در بلاک چین در پیریزی بیت کوین و دیگر شبکههای بلاکچینی اهمیت زیادی دارد. با توجه به اینکه بلاک چین نوعی دفتر کل توزیع شده است بنابراین اطلاعات در بلاک چین بهطور توزیع شده در اختیار تمامی نودهای شبکه قرار دارد. تمامی تراکنشهای شبکه بهصورت رمزنگاری شده در نودها ذخیره میشوند. چنین ساختاری باید با ساز و کاری مطلوب بتواند در حالی که هماهنگی ساختاری و تمامیت خود را حفظ میکند سیل عظیمی از تراکنشها را مدیریت و ذخیرهسازی کند.
مثالی برای درخت مرکل در بلاک چین
برای اینکه با درخت مرکل در بلاک چین بهتر آشنا شوید فرض کنید چهار تراکنش A و B و C و D داریم. به کمک تابع هش هر کدام از این تراکنشها را هش میکنیم. بنابراین هم اکنون هش A، هش B، هش C و هش D را خواهیم داشت. این هشهای اولیه «نودهای برگ» (Leaf Nodes) نام دارند. سپس هر کدام از این تراکنشهای هش شده را باهم هش میکنیم. در این مثال تراکنش هش شده A را با تراکنش هش شده B با هم ترکیب و هش میکنیم تا هش AB حاصل شود و تراکنش هش شده C را با تراکنش هش شده D ترکیب و هش میکنیم تا هش CD حاصل شود. هش AB و هش CD شاخههای درخت مرکل هستند. در مرحله بعدی هش AB با هش CD با هم به تابع هش میروند تا هش ABCD حاصل شود. هش ABCD ریشه درخت مرکل است.
درخت مرکل با تراکنش های فرد
در درخت مرکل مثال قبلی تعداد تراکنشها زوج بود، بنابراین تعداد نودهای برگ حاصل نیز عددی زوج بهدست میآمد. در واقع مثال اول تنها برای درک مفهوم اصلی درخت مرکل عنوان شد. سوالی که در اینجا مطرح میشود این است که اگر تعداد تراکنشها فرد باشد چه حالتی پیش میآید؟
برای آگاهی از جواب این سوال فرض کنید تراکنشهای D,C,B,A و E را داریم. بنابراین هر کدام، هش جداگانهای خواهد داشت. هشA، هشB، هشC، هشD و هشE. جفت هشهای A و B با هم هش میشوند و هش AB را تشکیل میدهد. از سویی دیگر جفت هشهای C و D نیز با هم هش میشوند و هش CD را تشکیل میدهد. اما هش E جفتی ندارد تا با آن در شاخهای جدید هش شود.
با توجه به اینکه درخت مرکل در بلاک چین ذاتا «دودویی» (Binary) است بنابراین برای عملکرد نیاز دارد تا تعداد نودهای برگ آن عددی زوج باشد. بنابراین در حالتی که هشی بدون جفت بماند، این هش تنها مانده، کپی شده و با کپی خود هش جدید تولید میکند. در این مثال هش E با هش کپی خود هش EE را تولید میکند.
بعد از این هش AB و هش CD با هم هش جدید ABCD را تولید میکنند. از طرفی دیگر هش EE با کپی شده خود هش EEEE را تولید میکند. در نهایت هش ABCD و هش EEEE با هم جفت شده و هش واحدی را تولید میکنند که ریشه درخت مرکل است.
ریشه درخت مرکل کجا ذخیره می شود؟
هر بلاک از دو قسمت بدنه و «سرآیند بلاک» (Block Header) تشکیل شده است. ریشه درخت مرکل در بلاک هدر ذخیره میشود. در بلاک چین بیت کوین تمامی تراکنشها توسط تابع هش SHA256 به هش تبدیل میشوند. با کمک درخت مرکل این هشها ساختاربندی میشوند و به هش نهایی بهنام ریشه درخت مرکل تبدیل میشوند.
اطلاعات داخل بلاک چیست ؟
هر بلاک دارای اطلاعاتی است که در ادامه آنها را شرح خواهیم داد.
- تراکنشها و اطلاعات: اولین قسمت هر بلاک مربوط به اطلاعات و تراکنشها است. اطلاعات مختلفی که در بلاک چین وجود دارد مانند اطلاعات فرستنده و گیرنده و مقدار تراکنش در این قسمت ذخیره میشوند. اطلاعاتی که در هر بلاک ذخیره میشوند با توجه به بلاکچینهای مختلف متفاوت است. به عنوان مثال بلاکچینی که مربوط به زنجیره تأمین مواد غذایی است، اطلاعات مربوط به همان حوزه را در بلاکهای خود ذخیره میکند.
- هش بلاک: هر بلاک حاوی هش منحصر به فرد خود است. این هش معرف بلاک و تمامی اجزای تشکیل دهنده آن بلاک است. برای درک بهتر هش میتوانید آن را همانند اثر انگشت در نظر بگیرید. هش همواره یکتا است و هیچ دو بلاکی هش مشترک ندارند. همزمان با تولید هر بلاک هش مربوط به آن بلاک نیز تولید میشود. دستکاری یک بلاک هش آن را تغییر میدهد. به عبارتی دیگر اگر اثرانگشت یا هش بلاک تغییر کند به این معنی است که آن بلاک دستکاری شده است و دیگر بلاک قبلی نیست. بنابراین هش ابزاری قدرتمند برای متوجه شدن دستکاری و اعمال تغییر در بلاک است.
- هش بلاک قبلی: اطلاعات هش بلاک قبلی در هر بلاک وجود دارد. هش بلاک قبلی باعث میشود هر بلاک همانند زنجیر به بلاکهای دیگر وصل شود و امنیت کل بلاک چین تأمین شود.
- تأیید زمانی: چهارمین بخش ضروری موجود در هر بلاک «تأیید زمانی» (Timestamp) است. تأیید زمانی در واقع اثباتی است مبنی بر وجود اطلاعاتی در زمان و تاریخ مشخص. هر اطلاعات دیجیتالی میتواند تأیید زمانی داشته باشد. هش هر بلاک که حاوی اطلاعات آن بلاک است قبل از انتشار در شبکه دارای Timestamp میشود.
- «نانس» (Nonce): نانس عددی است که ماینرهای شبکه برای حل مسأله پیچیده ریاضی جهت تولید بلاک جدید آن را بهطور تصادفی تولید میکنند. نانس عددی صحیح است که همراه با شماره بلاک، اطلاعات بلاک و هش بلاک قبلی به عنوان ورودی تابع هش بلاک برای محاسبه و تولید هش معتبر بلاک در نظر گرفته میشود. هش معتبر در بلاک به هشی گفته میشود که با سختی تعیین شده از طرف شبکه مطابقت داشته باشد. این سختی تعداد صفرهای قابل قبول در ابتدای هش خروجی را مشخص میکند.
- «شماره نسخه» (Version Number): شماره ورژن برای ردیابی نرمافزار یا پروتکل است و باعث میشود کامپیوترهای موجود در شبکه بتوانند بلاک را درست بخوانند.
- «هش هدف» (Target Hash): هش هدف میزان سختی تولید نانس را تعیین میکند. این هدف سرعت اضافه شدن بلاک جدید به بلاک چین را تنظیم میکند و در هر 2016 بلاک دوباره تنظیم میشود.
- هش ریشه درخت مرکل: تمامی تراکنشها در بلاک چین بهصورت هش ذخیره میشوند. این هشها دوبهدو با هم در ساختار درخت مرکل هش جدید را تولید میکنند. در نهایت تنها یک هش باقی میماند. این هش نهایی ریشه درخت مرکل نام دارد.
اطلاعات بلاک هدر چیست ؟
یکی از اجزای مهم هر بلاک سرآیند بلاک یا بلاک هدر است. هر بلاک هدر اطلاعات مهم زیر را در خود جای داده است.
- شماره ورژن بلاک
- تأیید زمانی
- هش بلاک قبلی
- نانس
- هش هدف
- هش ریشه درخت مرکل
مزایای درخت مرکل در بلاک چین
پردازش و ذخیرهسازی اطلاعات به نحوی که در بلاک چین مشاهده میکنیم با بهرهگیری از درخت مرکل انجام شده است. در ادامه دو مورد از مهمترین مزیتهای بهکارگیری درخت مرکل در بلاک چین را توضیح میدهیم.
درخت مرکل و تغییرناپذیری بلاک چین
هر بلاک دارای هش معتبری است که از ریشه درخت مرکل بدست میآید. هر بلاک هش بلاک قبلی را در خود دارد که موجب ارتباط بین بلاکها در بلاک چین میشود. اگر هر تغییر یا دستکاری در یکی از تراکنشها روی دهد هش مربوط به آن تراکنش تغییر میکند. همانطور که در ساختار درخت مرکل در بلاک چین توضیح داده شد با توجه به این که این هشها همانند شاخ و برگ به هم متصل هستند بنابراین تغییر در هر کدام از هشها باعث تغییر در ریشه درخت مرکل در بلاک چین میشود که این تغییر، بلاک مربوطه را نامعتبر میکند. با توجه به این که هر بلاک دارای هش بلاک قبلی است بنابراین تغییر در هش هر بلاک باعث تغییر هش بلاک بعدی نیز میشود. در این حالت با توجه به متصل بودن بلاکها در بلاک چین کل بلاکها دچار تغییر میشوند. بنابراین برای کوچکترین تغییر باید کل بلاک چین را تغییر دهید که این به صرف انرژی بالایی نیاز دارد و عملا بهصرفه نیست. این ساختار امنیت شبکه بلاک چین را بالا میبرد و دستکاری و هک آن را بسیار دشوار میکند. بنابراین درخت مرکل در بلاک چین باعث تغییرناپذیر شدن تراکنشها در بلاک چین میشود.
درخت مرکل و کارکرد بلاک چین
هر بلاک چین از صدها هزار بلاک تشکیل شده است. هر بلاک در بلاک چین میتواند چندین هزار تراکنش را در خود جای دهد. بنابراین تأمین فضای ذخیرهسازی و قدرت پردازشی کافی برای پردازش و ذخیرهسازی این حجم از اطلاعات از اهمیت بالایی برخوردار است. اگر بلاک چین از درخت مرکل استفاده نمیکرد، هر نود در بلاک چین یک کپی از تمامی تراکنشهایی که از ابتدا در بلاک چین روی داده است را باید در خود ذخیره میکرد. تصور کنید که برای تأیید کردن هر تراکنش هر نود مجبور بود تا خط به خط تراکنشها را با اطلاعات قبلی در بلاک چین مطابقت دهد. در این حالت کامپیوترهایی با قدرت پردازشی بسیار بالایی نیاز بود. درخت مرکل در بلاک چین با کاهش دادن حجم اطلاعات ضروری برای تأیید تراکنشها در بلاک چین این مشکل را حل کرده است. درخت مرکل در بلاک چین با هش تمامی تراکنشها در بلاک چین به نحوی مطلوب، تأییدیه اطلاعات را از خود اطلاعات جداسازی کرده است. بنابراین درخت مرکل در بلاک چین در کاهش توان پردازشی و فضای مورد نیاز برای تأیید تراکنشها بسیار کارساز است.
جمع بندی
از جمله مواردی که باعث افزایش امنیت و جلوگیری از دستکاری در بلاک چین میشود، تغییرناپذیری بلاک چین است. استفاده از درخت مرکل با ساختار دادهای سلسلهوار آن در بلاک چین باعث بالا رفتن امنیت در بستر بلاک چین میشود. از طرفی دیگر با استفاده از درخت مرکل در بلاک چین میتوان پردازش اطلاعات و ذخیرهسازی داده را به نحو مطلوبی در بلاک چین انجام داد. در این مطلب در ابتدا با مفهوم درخت مرکل و تابع هش در بلاک چین آشنا شدیم. در ادامه با مثالی ریشه درخت مرکل در بلاک چین را توضیح دادیم. و در پایان نیز مزایای درخت مرکل در بلاک چین را شرح دادیم.
مطلبی که در بالا مطالعه کردید بخشی از مجموعه مطالب «آموزش ارزهای دیجیتال — راهنمای مفاهیم و اصطلاحات رمزارزها» است. در ادامه، میتوانید فهرست این مطالب را ببینید:
- دفتر کل توزیع شده چیست ؟ — توضیح DLT به زبان ساده
- بلاک چین چیست و چگونه کار می کند؟ — به زبان ساده
- کاربرد بلاک چین چیست ؟ — هر آنچه باید بدانید
- هش در بلاک چین چیست ؟ – به زبان ساده
- آموزش ارز دیجیتال به زبان ساده — بهترین راهنما برای شروع مبتدی ها
- آموزش بلاک چین ، رمزارزها و بیت کوین جادی — رایگان + دانلود همه بخشها
- اصطلاحات ارز دیجیتال که باید بدانید + توضیح به زبان ساده
- رمز ارز چیست ؟ — آموزش کامل به زبان ساده
- استخر نقدینگی چیست ؟ – توضیح Liquidity Pool به زبان ساده
- انواع بلاک چین چیست ؟ — به زبان ساده
- تفاوت های بلاک چین های عمومی و خصوصی — به زبان ساده
- کریپتو چیست ؟ — به زبان بسیار ساده
- راه های کسب درآمد از ارز دیجیتال – ۱۰ روش کلیدی که باید بدانید
- آموزش رمزنگاری رایگان + مفاهیم پایه و منابع یادگیری — به زبان ساده
- ارز دیجیتال چیست ؟ — به زبان ساده
- صرافی ارز دیجیتال — کدام صرافی آنلاین ارز دیجیتال برای ایرانیان بهتر است؟
- بهترین کیف پول ارز دیجیتال کدام است ؟ | راهنمای استفاده تصویری گام به گام
- کیف پول دیجیتال چیست و کدام کیف پول ارز دیجیتال بهتر است؟
- فورک چیست ؟ — انواع و تاثیر روی قیمت به زبان ساده
- وایت پیپر چیست ؟ — اهمیت و کاربرد به زبان ساده
- استخراج ارز دیجیتال چیست ؟ — راهنمای ماینینگ به زبان ساده
- الگوریتم اثبات کار چیست ؟ — Proof of Work به زبان ساده
- اثبات سهام چیست ؟ — Proof of Stake به زبان ساده
- استخراج اتریوم چیست و چگونه اتریوم استخراج کنیم؟ — از صفر تا صد
- انواع ارز دیجیتال چیست؟ — راهنمایی برای سرمایه گذاری آگاهانه
- توکن سوزی چیست ؟ — مفهوم، علت و تاثیر به زبان ساده
- آلت کوین چیست ؟ — توضیح مفهوم به زبان ساده
- شت کوین چیست ؟ — از مفهوم تا ویژگی ها و تشخیص به زبان ساده
- قرارداد هوشمند چیست ؟ — Smart Contract به زبان ساده
- توکن چیست ؟ — کاربرد و اهمیت به زبان ساده
- تفاوت کوین و توکن در ارز دیجیتال چیست ؟ — به زبان ساده
- دیفای چیست ؟ — توضیح مفهوم DeFi به زبان ساده
- فارمینگ ارز دیجیتال چیست ؟ — کشت سود به زبان ساده
- NFT چیست و چطور کار می کند ؟ | همه چیز درباره توکن غیر قابل معاوضه ان اف تی
- ساخت NFT — آموزش کامل و به زبان ساده
- فروش NFT — آموزش از صفر تا صد و کامل
- متاورس چیست ؟ — به زبان ساده
- خرید زمین در متاورس چیست و چگونه است؟ — راهنمایی برای همه
- چگونه وارد متاورس شویم ؟ — راهنمای صفر تا صد
- وب 3 چیست و چه نقشی در آینده اینترنت دارد؟ — نسل سوم وب به زبان ساده
- بیتکوین چیست و چگونه عمل میکند؟
- بهترین روش کسب درآمد از بیت کوین و ارز دیجیتال — راهنمای جامع
- بازار کریپتو چیست ؟ – به زبان ساده + مزایا و معایب
- هودل چیست و HODL کردن به چه معناست؟ — به زبان ساده
- ایردراپ چیست ؟ — آموزش دریافت ارز دیجیتال رایگان
- عرضه اولیه ارز دیجیتال چیست ؟ — هر آنچه باید در مورد ICO بدانید
- بهترین ارزهای دیجیتال در سال 1401 یا 2022 کدام هستند؟
- توکنومیک چیست ؟ – توضیح به زبان ساده
- اصطلاحات ترید ارز دیجیتال که باید بدانید – توضیح 83 اصطلاح کلیدی
- استیکینگ چیست ؟ – استیکینگ در ارز دیجیتال به زبان ساده
- بازار خرسی چیست ؟ – در ارز دیجیتال و بورس
- ماینینگ چیست ؟ – توضیح در ارز دیجیتال و به زبان ساده
- بلاک چین چگونه کار میکند؟ — به زبان ساده
- بازار گاوی چیست ؟ – در ارز دیجیتال و بورس
- ساخت کیف پول بیت کوین بلاک چین — راهنمای تصویری
- الگوریتم اجماع چیست ؟ – به زبان ساده + انواع و کاربردها
- گره در بلاک چین چیست ؟ – توضیح نود Node به زبان ساده
- شاردینگ در بلاک چین چیست ؟ – به زبان ساده
- مقیاس پذیری در بلاک چین چیست ؟ – توضیح به زبان ساده
- نانس چیست ؟ – توضیح عدد nonce در بلاک چین به زبان ساده
- ولیدیتور چیست ؟ – توضیح اعتبار سنج در ارز دیجیتال
- آزادسازی توکن چیست ؟ – توضیح Token Unlock به زبان ساده
- درخت مرکل در بلاک چین چیست ؟ – Merkle Tree به زبان ساده(همین مطلب)
- TXID چیست ؟ – پیگیری تراکنش ارز دیجیتال با شناسه تراکنش
- مارت در ارز دیجیتال چیست ؟ – توضیح روش پله ای به زبان ساده
- چگونه از ارز دیجیتال سود بگیریم؟ – راهنمای صفر تا صد