در چند سال گذشته، ارزهای دیجیتال و فناوری بلاکچین محبوبتر از همیشه هستند، به همین دلیل است که هر سرمایهگذار رمزارز باید درک قوی از فناوریهایی که پلتفرمهای بلاکچین را تقویت میکنند، داشته باشد. ساختاری به نام درخت Merkle برای تأیید و حفظ یکپارچگی تراکنش برای هر معاملهای که در یک دفتر کل غیرمتمرکز قرار دارد ضروری است. در ادامه این مقاله به بررسی درخت مرکل و کارکرد آن در شبکه بلاکچین خواهیم پرداخت.
درخت مرکل چیست؟
درخت مرکل نوعی ساختار است که میتواند برای بررسی سریع یکپارچگی دادهها در یک مجموعه استفاده شود. این ساختار عمدتاً شامل توابع هش است که به طور گسترده در فناوری بلاکچین استفاده میشود. درخت مرکل که به عنوان درخت هش نیز شناخته میشود، اولین بار به عنوان یک مفهوم توسط رالف مرکل در دهه 1980 توسعه یافت. درختان مرکل اغلب با شبکههای همتا به همتا (P2P) به دلیل نیاز به اشتراک گذاری اطلاعات و تایید مستقل استفاده میشوند. هنگامی که به طور خاص به شبکه بیتکوین نگاه میکنیم، از این درختان برای تأیید دادهها به شیوهای کارآمد استفاده میشود. این امر با گنجاندن هش برای نمایش اطلاعات، بر خلاف فایل اطلاعات کامل، امکانپذیر میشود.
ساختار درخت مرکل
برای درک بهتر درختان مرکل، بیایید ساختار آنها را بررسی کنیم. فناوری بلاکچین از هزاران بلوک مجزا تشکیل شدهاست که هر کدام میتوانند دادهها را برای هزاران تراکنش مختلف ذخیره کنند. به دلیل اینکه چه تعداد تراکنش باید در یک بلوک ثبت شود، رسیدگی به نیازهای قدرت محاسباتی و فضای حافظه میتواند چالش برانگیز باشد.
درختان مرکل اجازه میدهند که تراکنشها بدون استفاده از دادههای زیاد تأیید شوند، که به کاهش سرعت پردازش CPU کمک میکند و در عین حال امنیت را افزایش میدهد. وقتی به ساختار درخت مرکل نگاه میکنیم، همه تراکنشها به صورت جفت باهم گروهبندی میشوند. هر جفت دارای یک هش محاسبه شدهاست که مستقیماً در گره والد ذخیره میشود. این گرهها نیز به جفت گروهبندی میشوند و پس از آن هش آنها در سطح بعدی ذخیره میشود. این روند تا رسیدن به ریشه درخت مرکل ادامه دارد.
انواع گره در درخت مرکل
سه نوع گرهای که در درخت مرکل یافت میشوند عبارتند از:
- گره برگ
از مقادیر هش برای دادههای تراکنش تشکیل شدهاست. هر تراکنشی که در یک بلوک قرار دارد از دادههای هش شده، تشکیل شدهاست. سپس مقدار هش در گرههای برگ ذخیره میشود.
- گره غیر برگ
از مقادیر هش فرزندان آنها تشکیل شدهاست. اینها اساساً مقادیر هش میانی هستند که تا زمانی که فرآیند به ریشه درخت برسد استفاده میشود.
- گره ریشه
ریشه درخت Merkle مستقیماً در هدر بلوک ذخیره میشود.
درخت مرکل باینری است، به این معنی که تعداد کل گره های برگ مختلف باید زوج باشد تا درخت به درستی ساخته شود. وقتی تعداد فرد گره برگ وجود داشته باشد، هش قبلی برای ارائه تعداد زوج گره کپی می شود.
خاستگاه درخت مرکل
همانطور که قبلاً ذکر شد، درخت مرکل برای اولینبار در دهه 1980 توسط رالف مرکل، دانشمند کامپیوتری که سالها روی رمزنگاری کلید عمومی کار کردهاست، توسعه یافت. اگرچه بیشتر کارهای پیرامون درخت مرکل در دهه 1980 انجام شد، مفهوم درخت هش برای اولین بار توسط مرکل در سال 1979 ثبت شد.
ریشه مرکل چیست؟
یکی از مهمترین اجزای درخت مرکل، ریشه مرکل است که یک تکنیک ریاضی است که حقایق و دادههای مربوط به درخت مرکل را تایید میکند. هنگامی که برای ارزهای دیجیتال استفاده میشود، ریشه Merkle مطمئن میشود که بلوکهای داده بدون تغییر، آسیب نخورده و کامل هستند.
درخت مرکل چگونه کار می کند؟
درخت Merkle اساساً برای تجزیه قطعات بزرگ داده به قطعات بسیار کوچکتر طراحی شده است، که تضمین میکند که تمام تراکنشها میتوانند به موقع تأیید شوند. درخت مرکل هر تراکنش را با ایجاد یک اثر انگشت کوچک از یک مجموعه خاص از تراکنشها خلاصه میکند، که تأیید در دسترس بودن تراکنشها را برای کاربران آسان تر میکند.
درخت مرکل با هش کردن جفت گرههای مختلف تا زمانی که فقط یک هش باقی بماند، تشکیل میشوند که به آن ریشه مرکل میگویند. این درختها از پایین به بالا ساخته میشوند و هر تراکنش جداگانه از هش تشکیل شدهاست. هر گره برگ یک هش منفرد از دادهها است. در مورد گرههای غیر برگ، این گرهها هشهای هشهای قبلی هستند.
فرض کنید که درخت مرکل از چهار تراکنش تشکیل شده است که با حروف W، X، Y و Z برچسبگذاری شدهاند. هر تراکنش قبل از اینکه هش مستقیماً روی گره برگ ذخیره شود، هش میشود. هنگامی که این اتفاق میافتد، هش W، X، Y و Z ایجاد میشود. سپس هر جفت گره برگ متوالی از طریق هش کردن هش W و هش X در یک گره والد خلاصه میشود که منجر به هش WX میشود. اگر هش Y و هش Z با هم هش شوند، هش YZ ایجاد میشود. هر دوی این هشها یک بار دیگر هش میشوند تا ریشه Merkle ایجاد شود.
این فرآیند را میتوان با مجموعه دادههای گسترده استفاده کرد. ریشه Merkle مسئول خلاصه کردن دادههایی است که در تراکنشهای خاص وجود دارد، که همه آنها مستقیماً در هدر بلوک ذخیره میشوند. این تکنیک باعث میشود که یکپارچگی دادهها به درستی حفظ شود. در صورتی که یکی از جزئیات تراکنش در نقطهای تغییر کند، ریشه Merkle به طور خودکار در کنار آن تغییر میکند.
مزایای درخت مرکل
هنگام استفاده از درخت مرکل برای تأیید تراکنشها، مزایای زیادی برای فناوری بلاکچین و پلتفرمهای ارزهای دیجیتال وجود دارد که شامل همه چیز از تأیید کارآمد تا تشخیص آسان دستکاری میشود.
- فرآیند تأیید داده کارآمد
تأیید یکپارچگی تراکنش در هیچ زمانی آسان است. به دلیل ساختار داده ها، حافظه بسیار کمی باید در طول فرآیند تأیید استفاده شود.
- تشخیص هرگونه دستکاری
ساختار هش تشخیص اینکه آیا دستکاری در تراکنش ها رخ داده است را برای ماینرها آسان می کند. هر تراکنش در درخت Merkle به عنوان هش ذخیره می شود. اگر جزئیات یک تراکنش منفرد تغییر کند، این تغییرات قبل از رسیدن به ریشه مرکل به سطوح بالای درخت پیش می روند. ریشه Merkle که در هدر نمایش داده می شود را می توان با ریشه Merkle موجود در داده ها مقایسه کرد، بنابراین می توان به سرعت دستکاری را تشخیص داد.
- عدم تاخیر
با استفاده از درخت Merkle می توان بدون هیچ تاخیری انتقال داده ها را در سراسر شبکه انجام داد.
چرا درخت مرکل اهمیت دارد؟
ثابت شدهاست که درختان مرکل برای فناوری بلاکچین ضروری هستند زیرا تأیید سریع و آسان را به روشی که با تکنیکهای دیگر امکانپذیر نیست، تسهیل میکنند. این درختان مرکل به توسعهدهندگان این امکان را میدهند که مجموعههای بسیار بزرگی از دادهها را با خلاص شدن از شر همه دادههای غیرضروری فشرده کنند و دادههای باقی مانده را به هش تبدیل کنند. ویژگیهای مختلف ارائه شده توسط درختان مرکل عبارتند از:
- ساختار بسیار سبک
- مقیاس پذیری موثر
- راندمان بالا با سوخت
- تأیید اینکه تراکنشها در یک بلوک خاص گنجانده شدهاند
- احراز هویت اولیه پرداخت
کاربرد درخت و ریشه مرکل در بلاکچین
ساختار درخت مرکل و ریشه مرکل قبلاً به طور گسترده در بسیاری از بلاکچینها و پلتفرمهای ارزهای دیجیتال مورد استفاده قرار گرفتهاند. در زیر سه مورد از این گونه برنامهها را شرح میدهیم.
بیتکوین
بیتکوین از درختان مرکل به روشهای مختلفی استفاده میکند، این درختها را به کل پلتفرم بیتکوین تبدیل میکند. در واقع، این درخت در هر هدر بلوک بیتکوین وجود دارند. هش برای هر تراکنش موجود در بلوک در هدر قرار میگیرد. وقتی صحبت از بیتکوین به میان میآید، ریشه Merkle برای استخراج و همچنین تأیید اهمیت دارد.
استخراج
بلوکهای بیتکوین شامل هدرهایی هستند که حاوی ابرداده و همچنین فهرست گستردهای از تراکنشها هستند. این لیست معمولا بزرگتر از هدر بلوک است. ماینرها دادهها را هش میکنند تا خروجیای ایجاد کنند که به شرایط خاصی پایبند باشد، که هنگام اعتبارسنجی یک بلوک ضروری است. ماینرها میتوانند قبل از اینکه بلاک معتبری پیدا کنند، تلاش جداگانه انجام دهند. هر تلاشی نیاز به تغییر یک عدد در هدر بلوک دارد. حتی اگر هزاران تراکنش جداگانه در یک بلوک وجود داشته باشد، هر یک باید هش شود.
ریشههای مرکل به ماینرها این امکان را میدهد که این فرآیند را بسیار کارآمدتر کنند. هنگامی که فرآیند ماینینگ شروع میشود، تنها چیزی که لازم است این است که تراکنشها بر درخت Merkle انجام شوند، پس از آن میتوان هش ریشه را در هدر بلوک قرار داد. در این مرحله، ماینر فقط باید هدر بلوک را بر خلاف کل بلوک هش کند.
تایید کردن
یکی دیگر از جنبههای ریشه Merkle که با بیتکوین استفاده میشود، اهرمی است که بر مشتریان سبک تمرکز دارد. وقتی یک گره روی دستگاه نسبتا ضعیفی که منابع محدودی دارد کار میکند، کاربران نمیتوانند هر تراکنش را در یک بلوک دانلود و هش کنند. در عوض، میتوان یک اثبات Merkle درخواست کرد، که تأییدی است که تراکنش در یک بلوک وجود دارد. با کاهش تعداد هشهایی که باید در طول فرآیند تأیید انجام شوند، تأیید میتواند بدون استفاده از منابع محاسباتی زیادی انجام شود.
اتریوم
شبکه بلاکچین اتریوم بر اساس یک نسخه تغییر یافته از درخت مرکل است، به همین دلیل است که به آن درخت مرکل پاتریشیا میگویند. هر بلوک در بلاک چین اتریوم از سه درخت مرکل تشکیل شده است، در مقابل یک درخت باینری، که در بلاکهای بیتکوین اتفاق میافتد. هر یک از این سه ریشه هدف خاص خود را دارد.
ریشه اولیه به عنوان ریشه برای هر معامله در نظر گرفته میشود. در مورد ریشه دوم، وضعیت معامله را نشان میدهد. ریشه نهایی وصول معامله است. کاربر میتواند به ریشه Merkle نگاه کند تا مشخص کند آیا تراکنش در یک بلوک خاص یافت میشود یا خیر، و همچنین تعیین میکند که موجودی حساب خود چقدر است.
فابریک هایپرلجر
وقتی به طور خاص به Hyperledger Fabric نگاه می کنیم، این پلتفرم بلاکچین از درخت Merkle برای محاسبه دادههای بلوک به عنوان هش استفاده میکند. مقدار هش وسعت درخت Merkle را مشخص میکند. درختان مرکل در پلتفرم Hyperledger Fabric درست مانند درختان روی پلتفرم بیتکوین کار میکنند.
کلام آخر
درخت مرکل برای پلتفرمهای ارزهای دیجیتال که میخواهند مطمئن شوند فرآیند تأیید تراکنششان تا حد امکان آسان و کارآمد است، بسیار مفید هستند. بدون این ساختار، تأیید، فرآیندی زمانبر خواهد بود زیرا دادهها برای تأیید باید در کل شبکه منتقل شوند. پلتفرمهایی که از درختان مرکل استفاده میکنند از پهنای باند و توان محاسباتی کمتری بهرهمند هستند. تا کنون باید به درک درستی از درخت مرکل رسیده باشید؛ اگر درباره این مفهوم و عملکرد آن سوالی دارید، در کامنتها بپرسید.