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