عناوینی که در این مقاله می خوانید
فناوری بلاکچین از آغاز تاکنون، باعث ایجاد تحولات بنیادی در صنایع گوناگون شده و پیشرفتهای خیرهکنندهای در بخشهای مختلف را تجربه کرده است. این فناوری بیشک در تأمین امنیت شبکه بیتکوین و سایر ارزهای دیجیتال مشابه نقش بسیار مهمی دارد. در این فرآیند، به دلیل توانایی پردازش حجیم دادهها در شبکه مالی گسترده مانند بیتکوین، ساختار ریاضی وابسته به علم رمزنگاری و هشینگ (Hashing) به عنوان یکی از ساختارهای اساسی دادهها در فناوری بلاکچین، کارایی بسیار بالایی را در این شبکه تضمین میکند. درخت مرکل، به بلاکچین اجازه میدهد حجم عظیمی از دادهها را پردازش و ذخیره کند.
درخت مرکل به ساختاری شبیه به یک درخت در واقع نمایشی از اطلاعات تراکنشهای قرار گرفته در بلاک چین است که به کمک چندین هش مختلف تشکیل شده است. این ساختار کاربرد فراوانی در شبکههای بلاک چین مانند بیتکوین دارد و نقش اساسی در تأمین امنیت و کارایی این شبکهها با سازماندهی دادهها ایفا میکند. در این مقاله، قصد داریم با پیگیری تاریخچه و مفاهیم مرتبط با درخت مرکل، به توضیح وظایف و اهمیت این ساختار در بلاک چین بپردازیم. در ادامه مطلب، نحوه کارکرد درخت مرکل را توضیح خواهیم داد.
آشنایی با ساختار درخت مرکل (Merkle Tree) و کاربردهای آن در بلاکچین
درخت مرکل، که به طور متداول به عنوان درخت هش نیز شناخته میشود، در واقع ساختاری شبیه به درختی وارونه است که با استفاده از تابع هش قابلیت پردازش و خلاصهسازی حجم زیادی از داده را بهصورت ایمن فراهم میکند. درخت مرکل در حوزه علوم رایانه، به ویژه در زمینه رمزنگاری، کاربردهای متعددی دارد و به دلیل ویژگیهای امنیتی و کارایی، در تکنولوژی بلاکچین نیز به کار میرود.
در تکنولوژی بلاکچین، از درخت مرکل برای پردازش و کاهش حجم دادههای رمزنگاری شده استفاده میشود. هر بلاک شامل تراکنشهای فراوانی است که این ساختار، به بهترین نحو میتواند مقادیر هش (Hash Value) هر تراکنش یا شناسه تراکنش (Transaction ID) را به صورت جداگانه بررسی کند و با ترکیب آنها، یک شاخه جدید را بسازد. در این روش، با ایجاد شاخههای جدید در ساختار درخت مرکل، میتوان اطمینان حاصل کرد که هر تغییر در اطلاعات یک تراکنش، تمام بلاک و شاخههای آنرا تحت تأثیر قرار نمیدهد و امنیت برای کاربران فراهم میشود.
برای بهتر فهمیدن از عملکرد درخت مرکل، میتوانید هش تراکنشها را بهعنوان برگهای درخت در نظر بگیرید. در این ساختار، دو برگ با هم جفت میشوند و پس از اعمال تابع هش (مثلاً تابع SHA256 در بیتکوین) بر روی آنها، حاصل آن دو هش باهم ترکیب میشود و به صورت یک هش جدید ذخیره میشود. این عمل بهتدریج بر روی هشهای جدید صورت میگیرد و درخت مرکل بهوجود میآید. در این ساختار، هرگاه یکی از تراکنشها تغییری کند، شاخه مربوط به آن تراکنش از بین میرود و برای بازسازی درخت مجدداً باید از دادههای قبلی کاملاً متفاوت استفاده کرد. استفاده از درخت مرکل در بلاکچین، به دلیل کارایی و ایمنی آن در برابر حملات، امری اساسی و ضروری است.
بلاک در بلاک چین بیت کوین چیست و در داخل آن چه چیزی وجود دارد؟
بهطور کلی در مرحلهای از روند ساخت بلاکها در بلاکچین، دادهها از انواع مختلفی برای پر کردن بلاک استفاده میشود، از جمله دادههای تراکنشها. برای پردازش این دادهها، یک مسیر هشینگ شروع میشود که با اعمال تابع هش بر روی دادههای تراکنشها، اثرانگشت آنها بسازد. این عملیات بهطور پیوسته ادامه پیدا میکند تا در نهایت بههشی واحد بهنام ریشه مرکل (Merkle Root) برسیم که همان هش اصلی بلاک است. در این مرحله، هش نهایی خلاصهپردازششده از تمام دادههای تراکنشهاست که در خود اثرانگشت هریک از تراکنشها را نگهداری میکند. در واقع ریشه مرکل، مجموعهای از هشهای تراکنشهای موجود در بلاک است که با استفاده از تابع هش، به یک هش جدید تبدیل شده و در مقابل همان تراکنشها مورد استفاده قرار میگیرند. بهاین ترتیب اثبات میشود که تراکنشهای سریعاً و ایمن در بلاک اضافه شدهاند.
تکامل و تاریخچه استفاده از درخت مرکل در بلاکچین ها
درخت مرکل یک ساختار دادهای قدیمیتر از فناوری بلاکچین است که برای کاربردهای مختلفی از جمله ایمنسازی دادهها، استفاده میشود. نام این ساختار بهافتخار رالف مرکل، استاد دانشگاه استنفورد، گذاشته شده است. پدیدآور این ساختار رالف مرکل در سال ۱۹۸۹ مقالهای با نام «یک امضای دیجیتال تأییدشده» منتشر کرد که در آن از درخت مرکل بهعنوان یکی از روشهای محاسبه حجم زیادی از دادهها و صرفهجویی در حافظه استفاده کرد. قبل از اختراع بیتکوین، درخت مرکل بهصورت گسترده در علم رمزنگاری و امنیت دادهها مورد استفاده قرار میگرفت.
فرایند اعتبارسنجی دادههای هش در پایگاههای دادهای با حجم عظیم از اطلاعات، از روشهایی است که برای استفاده در این شبکهها معتبر بهشمار میآید. رالف مرکل، پدیدآور درخت مرکل و نویسنده مقالهای با عنوان «یک امضای دیجیتال تأییدشده» است که در وایت پیپر بیت کوین بهعنوان یکی از اجزای مهم این شبکه مطرح شده است. شخصیتِ رالف مرکل، علاوه بر این که حزبی از رمز ارزهای دیجیتال و حامی سازمانهای خودگران غیر متمرکز یا دائوهاست، در ارتقای اصول و قوانین بیت کوین نقش داشته است. در واقع، درخت مرکل و روش اعتبارسنجی دادههای هش بهعنوان یکی از مهمترین الگوریتمهای استفاده شده در بیت کوین بهشمار میآید.
ریشه مرکل (Merkle Root) در بلاکچینها چیست؟
ریشه مرکل در بلاکچینها، بهعنوان هش واحد و نهایی کل درخت مرکل، خلاصهای از تمام دادههای موجود در بلاک است. در واقع، این هش شامل شخصیتهای اونیکسی از هشهای تمامی تراکنشهای موجود در بلاک است. بهطور کلی، درخت مرکل یک ساختار دادهای است که برای صحت و سلامت دادههای بلاکچین استفاده میشود و شامل چندین لایه از هشهاست. در پایینترین لایه، هشهای تراکنشهای موجود در بلاک قرار میگیرند و سپس این هشها بهتدریج بهصورت درختی با قابلیت بازگشتی به هم چسبانده میشوند. ریشه مرکل بهعنوان خلاصهای از این درخت، در هِدِر یا سربرگ هر بلاک ذخیره میشود و بهعنوان یکپارچگی دادههای بلاک بهکار میرود. با بررسی ریشه مرکل، میتوان نشان داد که تمامی تراکنشها در بلاک بهطور معتبری اجرا شدهاند و هیچ تغییری در آنها ایجاد نشده است.
استفاده از ریشه مرکل به منظور ارزیابی صحت بلاکهای قبلی بسیار ضروری است. هر بلاک در بلاکچین، میتواند دقیقا یک ریشه مرکل داشته باشد. با حتی کوچکترین تغییر در تراکنشهای بلاک، ریشه مرکل آن تغییر میکند. بنابراین، برای بررسی سریع و ساده این که آیا تراکنشی در یک بلاک وجود دارد یا خیر، کافی است تا به ریشه مرکل آن بلاک مراجعه کنیم. به همین دلیل، ریشه مرکل بهعنوان یکی از جزئیات مهم در ساختار بلاکچین شناخته میشود که با افزایش تعداد بلاکهای به کار رفته در بلاکچین، کارایی و صحت آن نیز تضمین میشود.
چگونگی عملکرد درخت مرکل در بلاکچین چیست؟
در روش درخت مرکل، هش تمام تراکنشهای مربوط به بلاک، دو به دو زیر عملگر هش قرار میگیرند تا درنهایت به هشی نهایی به نام ریشه مرکل برسیم. با استفاده از این روش، هشها بهصورت درختی با هم چسبانده میشوند و در هر سطح، فقط هشهایی که دارای همان تعداد ورودیهای هش هستند با هم ترکیب میشوند. به منظور استفاده از این روش، تعداد ورودیهای هشها باید زوج باشند. در صورتی که تعداد هشها فرد باشد، آخرین هش یک بار دوباره با خودش ترکیب شده و سپس با یکی از هشهای قبلی در سطح بالاتر ترکیب میشود. در نهایت، با بهکارگیری ریشه مرکل، میتوانیم صحت و سلامت دادههای بلاک را تایید کنیم.
فرض کنید ۲۰۰ تراکنش در بلاکچین را در نظر داشته باشیم که به ترتیب زیر تابع هش ابتدا به ۵۰، سپس به ۱۰، درادامه به ۵ و در آخر به ۱ هش خلاصه شدهاند. در اینجا ریشه مرکل نماینده تمام ۲۰۰ هش اولیه میباشد و هر گونه تغییر کوچکی در تراکنشها ممکن است باعث تغییر ریشه مرکل گردد. به همین ترتیب، دستکاری در تراکنشها به راحتی شناسایی شده و انجام نمیشود.
برای مثال، در روش درخت مرکل، به هر تعداد تراکنش هش مرتبط با آنها تخصیص داده میشود و سپس این هشها دو به دو تحت تابع هش با هم ترکیب میشوند، تا در نهایت به یک هش واحد به نام ریشه مرکل برسیم که نماینده تمام تراکنشهای قبلی میباشد. برای مثال، در تصویری که در این متن آمده است، به چهار هش مرتبط با تراکنشهای C، B، A و D برخورد میکنیم. با جفت کردن این چهار هش به دو هش AB و CD میرسیم. در نهایت، با جفت کردن هش AB و CD، به هش واحد ABCD دست یافتهایم که ریشه مرکل و نماینده تمام چهار هش است. البته این تصویر بهصورت سادهسازی شدهاست و درخت مرکل در موارد عملی، به پردازش و خلاصهسازی مجموعه بزرگی از دادهها میپردازد.
توجه کنید که روش درخت مرکل فهرستی از تراکنشها نیست؛ بلکه بهعنوان یک ساختمان دادهای برای تراکنشهای موجود در بلاکچین در استفاده میشود. حتی با داشتن دسترسی به تمامی تراکنشها نیز، میتوانید هر شاخه از این درخت را بهصورت مجزا اعتبارسنجی کنید. این به معنی این است که در صورت تغییر هر تراکنش، تنها بخشی که از آن تراکنش و رویای آنابههای درشتتر تشکیل میشود باید بهطور کامل بررسی شده و اعتبارسنجی شود؛ و نیازی به اعتبارسنجی کل ساختار درختی نیست. بهنوعی، طیف ساختاری دادههای موجود در بلاکچین با مرور بخش های گوناگون درخت مرکل، به صورت مجزا بهعنوان یک داده بهراحتی قابل اعتبارسنجی میباشند.
برتریهای استفاده از روش درخت مرکل در بلاکچین
استفاده از روش درخت مرکل در بلاکچین، به عنوان یکی از ساختمان های دادهای مهم، مزایای متعددی را برای سیستم پردازش دادهها به ارمغان میآورد که عبارتاند از:
فراهم کردن روشی کارآمد و سریع برای اثبات صحت و اعتبار دادهها
کاهش میزان داده موردنیاز برای صحتسنجی اطلاعات شبکه
کاهش اندازه پایگاه داده و افزایش سرعت عملیات
امکان اعتبارسنجی با روش تأیید پرداخت ساده (SPV) برای کلاینتهای لایت بیت کوین
سهولت انتقال و انتشار داده به سرتاسر شبکه
امکان بررسی تک تک بخشهای مجزای بلاکها بدون نیاز به دراختیارداشتن تمام اطلاعات
دسترسی به بخشهای مجزای داده بدون نیاز به بارگیری تمام اطلاعات بلاکچین.
تاثیر درخت مرکل در ساختار بلاکچین
در علم رایانه، به کلیه ساختارهای دادهای که از شاخههای همپوشانی دارند، بهعنوان درخت اطلاق میشود. درختهای مرکل از انواع درختهای وارونه با برگهایی در پایین درخت و صرفا ریشهی یکتا واحد در بالای درخت تشکیل میشود. در بلاک معماری بلاکچین، درخت مرکل بهطور کلی از سه قسمت عمده تشکیل شده است:
گرههای برگ یا نودهای برگی که حاوی اطلاعات اصلی بلاک میباشند.
گرههای غیربرگی یا نودهایی که با ادغام گرههای برگی بهوجود میآیند.
ریشه مرکل یا نود اولیهی درخت که بهعنوان ریشهی کل درخت شناخته میشود.
در شاخهی پایینترین بخش درخت مرکل، ما با نودهای برگی سروکار داریم که حاوی هش تراکنش یا همان شناسه تراکنش (TXID) میباشد. اگر به دنبال تراکنش خاصی در شبکه بلاکچین باشید، با این شناسهها روبهرو خواهید شد. با جفت شدن دو نود برگی، به یک نود غیر برگی میرسیم. نودهای غیر برگی دیگر حاوی هش شناسه تراکنش نیستند؛ بلکه فقط هش دو نود برگی پایینتر بهعنوان یک خلاصهی از آنها ذخیره میشود. این نودهای غیر برگی نیز بهصورت تکراری جفت شده و در لایه بعدی دوباره تعداد هشها به نصف در میایند. در پایان، فقط دو نود باقی میماند که ریشه مرکل را شکل دهنده هستند. ریشه مرکل همان نود اولیه درخت است که توسط شبکه بلاکچین ایجاد شده است.
نحوه کار بیت کوین و تراکنشهای آن چگونه صورت میگیرند؟
استفاده از ریشه مرکل برای اعتبارسنجی نودهای برگی، میتواند در شبکه بلاکچین بیت کوین مورد استفاده قرار گیرد. هر بلاک در بیت کوین، فقط شامل یک هش واحد یا به عبارتی هش ریشه (Root Hash) است که از روی ریشه مرکل محاسبه شده است. در واقع، هش ریشه مرکل حاوی خلاصهای از همه تراکنشهای موجود در بخش پایینی تر درخت مرکل است. با توجه به نحوه کار بلاکچین بیت کوین، هَشهای ایجاد شده توسط کاربران قبلی به عنوان ورودی هر بلاک، با هَشهای تراکنشهای جدیدی که کاربر جدید میخواهد وارد شبکه کند، ترکیب شده و با استفاده از الگوریتم هش، هش ریشه مرکل محاسبه میشود. در نهایت، نتیجهی این محاسبه بهعنوان هش واحد بلاک در هدر بلاک ذخیره میشود که میتوان با استفاده از آن، اعتبارسنجی نودهای برگی را انجام داد.
کاربردهای استفاده از درخت مرکل در علم رایانه و شبکههای بلاکچین
درخت مرکل روشی برای خلاصهکردن دادههاست و بدینترتیب، میتواند تا حد زیادی نیاز به حافظه برای نگهداری دادهها را در پایگاهداده معتبری مانند بلاک چین کاهش دهد. این فناوری اعتبارسنجی دادهها را از خودِ دادهها جدا میکند. از این ساختار میتوان برای بخشی خاص یا برای کل سیستمی توزیعشده استفاده کرد.
بدینترتیب، درخت مرکل یکی از ابزار اصلی کاربران بلاک چین برای ارزیابی صحت و اعتبار دادههاست. همچنین، ازآنجاکه این فناوری به حافظه یا فضای دیسک کمی احتیاج دارد، به شبکههای بزرگتر کمک میکند تا با سرعت و سهولت بیشتری محاسبات را انجام دهند. با این ساختار، انتقال دادهها به سرتاسر شبکه هم سریعتر انجام میشود؛ زیرا مقادیر اندکی داده میتوانند دربرگیرنده اطلاعات کلی شبکه باشند.
در فناوری بلاک چین، اثبات کامل و سازگار بودن یک ورودی برای دفترکل موضوعی ضروری است. درختهای مرکل کمک میکنند تا آخرین ورودیها بههمراه تمام دادههای پیشین بهطور منظم و دقیق ثبت و اعتبارسنجی شوند.
همچنین برای اثبات صحت ورودی جدید، باید نشان دهیم که تمام دادههای قبلی بدون تغییر یا دستکاری صحیح هستند و مبدأ ورودی شاخه یا فورکی منشعبشده و نامعتبر نیست. درخت مرکل در اثبات این مسئله به ماینرها و کاربرهای بلاک چین کمک میکند؛ زیرا کوچکترین تغییر در یکی از مقادیر هش، تمام معادلات و نتیجه نهایی این ساختار را به هم میزند.
با بهکارگیری درخت مرکل، ماینرها هش تراکنشها را بهتدریج از کاربران دریافت و محاسبه میکنند. کاربران نیز میتوانند بخشهای مجزایی از بلاکها را بررسی و تراکنشهای مدنظر خود را با استفاده از هش سایر قسمتهای درخت اعتبارسنجی کنند. درواقع، درخت مرکل با جداکردن فرایند اعتبارسنجی دادهها از خود دادهها، نیاز به بارگیری حجم عظیمی از اطلاعات برای صحتسنجی دادهها را از بین میبرد.
اهمیت درخت مرکل برای بیت کوین
درخت مرکل را میتوانیم یکی از ستونهای اصلی زیربنای بیت کوین بدانیم. برای درک اهمیت این ساختار در شبکه بیت کوین، فقط کافی است بیت کوین را بدون این درختها تصور کنید.
تفاوت بیت کوین و بلاک چین چیست؟
بدون درخت مرکل، هر نود بیت کوین باید نسخه کاملی از تمام دادههای مربوط به هر تراکنشی را نگهداری میکرد که تابهحال روی بیت کوین انجام شده است. صرفنظر از فضای ذخیرهسازی و پهنای باند سرسامآوری که این میزان داده احتیاج دارد، مطابقتدادن نسخههای مختلف بلاک چین بهواسطه نودها برای اطمینان از صحت آنها نیز تقریباً غیرممکن میشد.
درواقع، درخت مرکل به کاربران بیت کوین کمک میکند که هنگام بررسی تراکنشی خاص، بهجای نیاز به بررسی تمام دادهها فقط سراغ ریشه مرکل و مسیر آن بروند. همچنین، کلاینتهای لایتِ بیت کوین فقط با بارگیری هِدِر بلاک که حاوی ریشه مرکل است، میتوانند به اطلاعات بلاک دست پیدا کنند، بدون اینکه نیاز داشته باشند کل بلاک چین را بارگیری کنند.
گفتنی است درخت مرکل با کاهش حجم داده زمان موردنیاز برای انتقال دادهها به سرتاسر شبکه را نیز تا حد زیادی کاهش میدهد. درعینحال، حساسیت همین ساختار به کوچکترین تغییری در دادهها سبب میشود این انتقال بهطور کاملاً ایمن انجام شود.
بهغیر از بیت کوین، بسیاری از شبکههای بلاک چینی دیگر هم از ساختار درخت مرکل بهره میبرند؛ اما برخی از آنها روش استفاده متفاوتی از این ساختار داده دارند. بهعنوان مثال، درخت مرکل شبکه اتریوم پاتریشیا (Patricia) نامیده میشود و برای هر بلاک سه ریشه مرکل مختلف تولید میکند.
جمعبندی
درخت مرکل شیوهای کارآمد برای بهبود سرعت پردازش و انجام محاسبات لازم در سیستمهای رمزنگاری شده است. باتوجهبه اهمیتی که این مفهوم در سیستم رمزنگاریشده بلاک چین دارد، در این مطلب سعی کردیم با بیانی ساده، به درخت مرکل و عملکرد آن در بلاک چین نگاهی بیندازیم.
دراینبین، با ریشه مرکل و جایگاه آن در محاسبات شبکههای بلاک چینی آشنا شدیم و به مزایای آن بیشتر پی بردیم. درنهایت، توضیح دادیم که چرا بلاک چین بیت کوین بدون ساختار درخت مرکل نمیتواند به حیات خود ادامه دهد.
درخت مرکل ضامن تغییرناپذیری و یکپارچگی دادههای بلاک چین است. علاوهبراین، این ساختار داده تاحدممکن اطلاعات را فشرده و قابلانتقال میکند. درحقیقت، درخت مرکل را میتوانیم یکی از ستون اصلی بلاک چین بدانیم که به این سیستم اجازه میدهد هرروز بزرگتر و پیچیدهتر شود و درعینحال، دچار نقصان ایمنی نشود.
درک جایگاه درخت مرکل در ظهور و گسترش صنعت بلاک چین و ارزهای دیجیتال ضروری بهنظر میرسد و شاید بهجرئت بتوان گفت بدون ابداع تاریخساز این درخت داده، امروز از انقلاب بیت کوین هم خبری نبود.
نظرات کاربران