یکی از موارد مهم در مبحث بلاکچین درخت مرکل است. ما در بلاکچین برای بررسی اطلاعات مهم و تایید آنها در سیستم توزیع، بدون نیاز به از دست دادن انرژی زیاد میتوانیم از درخت مرکل استفاده کنیم. شاید اکنون که از واژه درخت استفاده میکنیم شما در ذهن خود تصویر یک درخت بزرگ همراه شاخ و برگهای بلند بسازید. اما باید بدانید، در فناوری کامپیوتر برای اشاره به ساختار اطلاعات از درخت استفاده میکنند. بنابراین درخت مرکل در واقع نوعی درخت معکوس است و ارتباط پی در پی مابین دادهها را بیان میکند.
برای تشکیل محیطی که کاربران امکانات بیشتری داشته باشند، فناوری پیشرفتهی بلاک چین، مکانی رو بوجود آورد که ذخیرهی دادهها و پردازش آنها به صورت نامتمرکز امکانپذیر است. با توجه به میزان بالای حجم انتقال دادهها در بلاک چین، نیاز به انرژی بالا برای دستهبندی و پردازش آنها است. وظیفهی درخت مرکل بوجود آوردن شرایطی منظم برای پردازش و پیدا کردن دادههای مختلف به آسانی است. در این مقاله از صرافی فراچنج درباره درخت مرکل و پیرامون آن میپردازیم پس همراه ما باشید.
معنای درخت مرکل (Merkle tree) چیست؟
ساختار اطلاعاتی پیوسته در فناوری کامپیوتر درخت مرکل (Merkle Tree) یا درخت هش است. استفادهی درخت مرکل در شبکههای بلاکچین و همچنین بیت کوین برای کارایی بیشتر و امنیت بالاتر رمزنگاری است. دادههای ذخیره شده در بلاک چین بجای ساده ثبت شدن به شکل متن، در ساختاری از اطلاعات به نام درخت مرکل جایگذاری میگردند. یعنی چکیده ایی از تمام تراکنش و دادههای هر بلاک درون بلاک چین، در درخت مرکل است.
در بلاک چین هر تراکنش به شکل مخصوصی به وسیله یک تابع هش مثل تابع هش SHA-256 هش شده است. در واقع زمانی که یک تراکنش هش شد، به شکل دوتایی بایکدیگر هش میگردند. زمانی که به میزان معنی هش در بلاک رسید، این فرآیند متوقف میگردد.
دربارهی تابع هش در بلاک چین
یکی از کاربردیترین الگوریتم ها، توابع هش در رمزنگاریها هستند. توابع هش میتوانند میزان خروجی همراه طولی ثابت، بدون اینکه اندازه و طول اطلاعات وارد شده را بسنجند تولید کنند. اطلاعات وارد شده در توابع هش هر یک میتواند، جزء مواردی مانند متن، تمام کتاب یا جزوه، یک جمله یا کلمه قرار بگیرد. هش به خروجی همراه طول ثابت از توابع هش میگویند. نا گفته نماند کمترین تغییری که در ورودیهای توابع هش رخ دهد، باعث تغییر کامل خروجی میگردد. SHA-256 جزء مطرحترین توابع هش هست و در بلاک چین استفادهی بالای دارد. هر تراکنشی که به وسیله توابع هش ساخته میگردد، در بلاک چین به شکل هش ذخیره شده است.
بیشتر بخوانید: گره یا نود در بلاکچین چه مفهومی دارد؟
ریشهی درخت مرکل در بلاک چین
درخت مرکل مثل یک درخت برعکس است. از نظر ساختار، درخت مرکل مثل یک درخت باینری در بلاک چین است. درون درخت مرکل، هشهای حاصل از تراکنشها در بخش پایین با اسم نودهای برگ (Leaf Nodes) تشخیص داده میگردند. در قسمت وسط یا همان میانی داخل درخت مرکل، شاخهها (Branches) و در قسمت بالایی هش ریشه مرکل (Merkle Root) قرار دارد. با درنظر گرفتن این مورد که شبکهی بلاک چین نوعی دفتر کل توزیع شده است. پس دادههای داخل بلاک چین به شکل توزیع شده، در دسترس همه نودهای شبکه جای دارد. همه ترکنشها به شکل رمزنگاری داخل نودها ذخیره میگردند. این ساختار با توانایی حفظ هماهنگی در ساختار خود به شکل مناسب برای همهی دادههای منتقل شده، ذخیرهسازی و مدیریت انجام دهد.
مثالی برای Merkle tree در بلاک چین
برای درک درخت مرکل که در بلاک چین قرار دارد مثال میتواند کمک کند. تصور کنید تراکنشهای A، B، C، D را داریم. پس هش A و هشB و هشC و هش D داریم. با استفاده از توابع هش همگی را هش میکنیم. اولین هشها نودهای برگ (Leaf Nodes) نامگذاری میگردند. در مرحله بعد به هش کردن تراکنشهایی که هش شدهاند میپردازیم. در این هنگام، تراکنشهای A و B را بایکدیگر ترکیب و هش کرده تا هش AB تشکیل گردد؛ و C و D را به همین روال طی کرده تا هش CD بوجود آید. شاخههای درخت مرکل را هش AB و هش CD تشکیل میدهد. در مرحلهی بعد از ترکیب دو هش AB و CD هش ABCD تشکیل میگردد. این هش جزء ریشه درخت مرکل قرار دارد.
تراکنشهای فرد و Merkle tree
با توجه به مثالی که زده شد تعداد عددهای تراکنشها درخت مرکل زوج بود؛ پس حاصل میزان نودهای برگ هم زوج هستند. در واقع این یک مثال کلی برای مفهوم درخت مرکل بود. سوال بوجودآمده این است، اگر اندازه ی فرد تراکنشها را تشکیل دهد چه میگردد؟
برای اینکه به این سوال پاسخ دهیم تصور کنید D، C، B، A و E تراکنشهای ما هستند. پس همانطور که میدانیم هریک هش جدا میگیرند. هش A، B، C، D را ساخته است. A و B باهم و D و C باهم تولید هش میکنند. ولی E هشی است که جفتی برای ادغام در شاخه تازه درخت مرکل، ندارد.
از آنجا که تمام تراکنشها در درخت مرکل زوج و دودویی (Binary) است، پس برای ادامه به راه حلی نیاز دارد تا اعداد زوج بوجود آید. درنتیجه در این زمان از هش تنها کپی گرفته شده و همراه کپی خود، هش EE تشکیل میدهد.
سپس هشهای AB و CD هش ABCD را میسازند. از سمت دیگه هش EE همراه کپی خود، هش EEEE را ساخته است. در آخر این دو هش با هم جفت میگردند و یک هش واحد میسازند که جزء ریشه درخت مرکل است.
ذخیرهی ریشهی درخت مرکل
هر بلاک از دو بخش به نام بدنه و سرآینده (Block Header) بوجود آمده است. بلاک هدر محل ذخیرهی ریشهی درخت مرکل است. تراکنشهای بلاک چین بیت کوین به وسیلهی تابع هش SHA256 تبدیل به هش میگردد. درخت مرکل با همراهی باعث تشکیل ساختاربندی هشها شده است و به هش نهایی که ریشهی درخت مرکل است تبدیل میگردند.
اطلاعات داخل بلاک چیست؟
تمامی بلاکها دادههایی را در خود ذخیره میکنند. مانند:
-
تراکنشها و اطلاعات:
در اولین بخش بلاک دادهها و تراکنشها قراردارد. دادههای متفاوتی مثل میزان تراکنشها و اطلاعات گیرنده و فرستنده دراین جا ذخیره شده است. با توجه به این موضوع که بلاک چینهای متفاوت بایک دیگر فرق دارند پس دادههایی که در هریک ذخیره شده است، باهم برابر نیستند. مثلا بلاکچین در رابطه با زنجیرهی مواد غذایی دارای اطلاعات در همان پیرامون را درون بلاکهای خود ذخیره کرده است.
-
هش بلاک:
هر بلاکی هش مخصوص به خود را دارد. در واقع همهی بلاک و اجزای تشکیل دهندهی آن توسط این هش معرفی میگردد. برای اینکه این مطلب را بهتر درک کنید تصور کند هش یک اثر انگشت است. پس فقط یکی از هر هش وجود دارد و امکان تشابه در دو تا بلاک هش نیست. درست زمانی که بلاک هش ساخته میگردد، بلاک آن بوجود میآید. جابه جایی و تغییر در بلاک هش باعث تغییر آن میگردد. یعنی اگر اثر انگشت تغییر کرده پس داخل بلاک آن تغییر بوجود آمده و با بلاک قبلی متفاوت است. در نتیجه هش یک ابزار قوی برای تشخیص دخالت و تغییر در بلاک است.
-
هش بلاک قبلی:
دادههای هش در هربلاک داخل بلاک قبلیاش است. هش بلاک پیشین موجب اتصال بلاکها و تشکیل زنجیره ایی از بلاک میگردد و در تمام بلاک چین امنیت بوجود میآورد.
-
تأیید زمانی:
چهارمین قسمت مهم در هر بلاک، تایید زمانی (Timestamp) قرار گرفته است. در این بخش برای اینکه اطلاعات در زمان و تاریخ مشخص ثبت گردند، تایید زمانی لازم است. در تمامی دادههای زمانی امکان وجود تایید زمانی است. هش در هر بلاک که اطلاعات همان بلاک را دارد، دارای دادههایی است که پیش از انتشار تایید زمانی یا همان Timestamp میگردد.
-
«نانس» (Nonce):
به عددی که به صورت تصادفی برای تولید بلاک جدید و حل کردن مسالههای پرپیچ و خم ریاضی کاربرد دارد عدد نانس میگویند. نانس یک عدد است و در کنار شماره بلاک، دادههای بلاک و هش بلاک پیشین برای ورود به توابع هش و تولید و محاسبهی یک هش با اعتبار استفاده میگردد. هشی که بر اساس سختی معین شده از سمت شبکه در بلاک تطابق دارد، هش معتبر است. این هش میزان صفرهای قابل قبول که در قسمت اول هش خروجی قرار دارد را تعیین میکند.
-
«شماره نسخه» (Version Number):
برای پیدا کردن پروتکل یا نرمافزار از شماره ورژن استفاده میگردد، و خوانده شدن بلاکها در شبکه توسط کامپیوترها را ممکن شده است.
-
«هش هدف» (Target Hash):
اندازه گیری سختی در تشکیل نانس توسط هش هدف بوجود میآید. تنظیم مقداری که یک بلاک به بلک دیگر اضافه میگرددتوسط هش هدف صورت میگیرد و داخل هر درخت ۲۰۱۶ بلاک دوباره بوجود میآید.
-
هش ریشه درخت مرکل:
ذخیرهی همهی تراکنشها داخل بلاک به صورت هش انجام میگیرد. همین هشها به طریق دو به دو داخل ساختار درخت مرکل هش تازه میسازند. در آخر فقط یک هش میماند. به این هش هش ریشه میگویند.
اطلاعات بلاک هدر چیست؟
یکی از اجزای مهم داخل هر بلاک سرآینده بلاک هدر یا همان بلاک است. هریک از بلاک هدرها شامل اطلاعات مهمی هستند. مانند:
- هش ریشه درخت مرکل
- هش هدف
- نانس
- شماره ورژن بلاک
- هش بلاک قبلی
- تأیید زمانی
فواید درخت مرکل در بلاک چین
تجزیه و تحلیل و نگهداری از دادهها به صورتی که میبینید، توسط درخت مرکل صورت میگیرد. همراه ما باشید تا دوگزینه که جزء مهمترین فواید استفاده از درخت مرکل در بلاک چین را بیان میکنیم.
درخت مرکل و تغییرناپذیری بلاک چین
از ریشهی درخت مرکل بلاکی با هش معتبر بوجود میآید. هش پیشین هر بلاک، در هر بلاک وجود دارد که باعث ایجاد ارتباط در بین بلاکهای داخل بلاک چین میگردد. درون هش در هر تراکنش، با تغییر در یک تراکنش، تغییر بوجود میآید. بر اساس توضیح ساختار درخت مرکل درون بلاک چین، با در نظر گرفتن این جریان که هشها مثل شاخ و برگی که بهم وصل هستند پس ایجاد تغییر داخل هر یک ازهشها موجب تغییر در ریشهی درخت مرکل در بلاک چین میگردد، درنتیجه بلاک مورد نظر اعتبارش را از دست میدهد.
با درنظر داشتن این که هربلاک، هش قبلی دارد پس تغییر داخل هش در هر یک از بلاکها را بوجود میآورد. در این زمان بر اساس اتصال بلاکها در بلاک چین تمام بلاک تغییر میابد. در نتیجه برای اینکه کمترین مقدار تغییر باید تمام بلاک چین را تغییر داد که نیاز به انرژی زیادی دارد و منطقی نیست. این ساختار میزان امنیت در شبکههای بلاک چین را افزایش میدهد و هک و دخالت در آن را مشکل میسازد. بنابراین در بلاک چین درخت مرکل موجب تغییر نکردن تراکنشهای درون بلاک چین میگردد.
درخت مرکل و کارکرد آن در بلاک چین
از صدها هزار بلاک، یک بلاک چین بوجود میآید. میتوان داخل هر بلاک از بلاک چین تعداد زیادی تراکنش قرار داد. پس برای به وجود آوردن این شرایط نگهداری و ذخیرهی این مقدار اطلاعات و توانایی پردازش به میزان قابل قبول بسیار مهم است. در صورت استفاده نکردن بلاک چین از درخت مرکل، باید کپی از کل تراکنشهای شبکه از ابتدا را درون بلاک چین داشت.و ذخیرهی آن به وسیلهی هر نود درون بلاک چین انجام میگشت.
مثال :
فکر کنید برای اینکه بتوانید هر تراکنش را تایید کنید، هر نود باید خط به خط تراکنش هارا با دادههای قبل مقایسه کند. در این صورت به بعضی کامپیوتر ها، با قدرت پردازش خیلی زیاد لازم است. با کم شدن مقدار اطلاعات مهم برای تایید ایرادات داخل بلاک چین، توسط درخت مرکل درون بلاک چین ازبین رفته است. هش و درخت مرکل به طریقی مطلوب باعث جدا شدن تاییدیه داده از اطلاعات داخل بلاک چین شده است. پس نتیجه میگیریم، در بلاک چین، درخت مرکل تاثیر زیادی در کاهش قدرت پردازش و محیط لازم در تایید تراکنشها دارد.
کلام پایانی
همانطور که بررسی کردیم، یکی از مواردی که موجب ایجاد امنیت برای اطلاعات ذخیره در بلاک چین شده درخت مرکل است. بهره بری از این درخت به همراه ساختار پی در پی ایی که دارد، موجب افزایش امنیت در محیط بلاک چین میگردد. از سمت دیگر مرکل تری میتواند در بلاک چین، پردازش دادهها و نگهداری یا ذخیرهی اطلاعات را به شکل مطلوب در بلاک چین انجام دهد. دراین مطلب از صرافی فراچنج به مفهوم Merkle tree و اینکه چه تاثیراتی روی بلاک چین دارد و مزایای و مفهوم آن پرداخت شد.
نظرات کاربران