درختان مرکل امکان افزایش بهره وری و قابلیت اطمینان را برای بلاکچین فراهم میکنند. درختان مرکل میتوانند به صرفه جویی در حافظه و قدرت پردازشی کمک کرده و در عین حال امنیت را حفظ کنند.
برای درک هر چه بیشتر طرز کار بلاکچین، اول باید با زیرساختهای اساسی آن آشنا پیدا کنید که یکی از آنها درختان مرکل هستند. در این مقاله، با درختان مرکل که یکی از ریشههای اصلی بلاکچین هستند آشنا خواهید شد.
تعریف مسئله
در شبکههای متمرکز، سازمان دهی کارآمد دادهها کار سختی نیست چون تنها یک کپی از این دادهها وجود دارد و عموماً کاربران باور دارند که این کپی معتبر است. اما در یک شبکه بلاکچین غیرمتمرکز، سازماندهی دادهها به نحوی کارآمد و درست بسیار مهم است – همه نودهای شبکه باید در تمامی اوقات حداقل یک کپی از همه دادهها داشته باشند. از آنجایی که در بلاکچین هیچ مقام مرکزی وجود ندارد، کاربران آن باید راهی برای بررسی و تایید این موضوع داشته باشند که آیا اطلاعات دریافتی آنها درست هست یا خیر. درختان مرکل به دستیابی به این هدف کمک میکنند.
درخت مرکل چیست؟
درختان مرکل به بلاکچین امکان میدهند کارایی و قابلیت اطمینان بیشتری داشته باشد. این ساختارها با سازماندهی دادهها به روشی خاص میتوانند به صرفه جویی در حافظه و قدرت پردازشی کمک کرده و در عین حال امنیت را حفظ کنند. این امنیت به کمک توابع هش و رمزنگاری ایجاد میشود که در ادامه به بررسی آنها میپردازیم.
تابع هش
هشینگ یکی از المانهای مهم و حیاتی رمزنگاری و درختان مرکل است. یک تابع هش، فرایند خاصی است که اطلاعات را تبدیل به مجموعهای منحصربفرد از حروف و اعداد میکند. به این رشته منحصربفرد، هش گفته میشود. حتی اگر بخش کوچکی از ورودی تغییر کند، هش خروجی به صورت کامل متفاوت خواهد بود. تابع هش رمزی یک تابع یک طرفه است یعنی به راحتی میتوان اطلاعات را وارد آن کرد اما استخراج این اطلاعات تقریباً غیرممکن است. درختان مرکل برای سازماندهی و اعتبارسنجی دادهها به هر دوی این ویژگیها متکی هستند.
نحوه سازماندهی درختان مرکل
درختان مرکل با تقسیم بندی دادهها به قطعاتی مختلف، باعث مقیاس پذیری هر چه بیشتر بلاکچین میشوند. در ساده ترین شکل، درخت مرکل شبیه یک درخت کریسمس است که هر نود پدر در آن دقیقاً دو نود فرزند دارد. هش نود پدر بر اساس هش دو نود فرزند ایجاد میشود. این فرایند هشینگ در کل درخت به سمت بالا وجود دارد تا وقتی که به نود ریشه برسیم. تقریباً هر مقداری را میتوان در یک درخت مرکل قرار داد اما همیشه این دادهها به هش ریشه در بالای درخت منتهی میشوند.
طرز کار درخت مرکل
در یک درخت مرکل، دادههایی مثل تراکنشهای یک قرارداد هوشمند یا تراکنشهای اجرای شده بین اکانتهای مختلف، هش شده یا به عبارتی تبدیل به رشتهای از حروف و اعداد میشوند. سپس این هش دوباره هش میشود اما این بار در ترکیب با دادههایی که در درخت کنار آن قرار دارد – خواهر یا برادر آن. هش جدید این دو فرزند موجب ایجاد یک هش جدید برای پدر میشود. این فرایند هشینگ برای کل درخت تا ریشه یعنی نودی که بالای درخت قرار دارد، اجرا میشود.
توجه داشته باشید که تغییر هر بخشی از ورودی یک تابع هش، منجر به تغییر قابل توجه خروجی آن میشود. با توجه به این نکته، هر تغییری در دادههای درخت مرکل باعث ایجاد تغییر در هش آن و هش نود پدر آن میشود – و این تغییر تا نود ریشه ادامه دارد. این ویژگی باعث میشود که اطلاعات در درخت مرکل ثابت بوده و قابل تغییر نباشد اما امکان بررسی و اعتبارسنجی آن وجود داشته باشد.
اثبات مرکل چیست؟
درختان مرکل دادهها را به نحوی سازماندهی میکنند که بعداً میتوان آنها را بازیابی کرد اما از اثبات مرکل برای بررسی درست بودن اطلاعات استفاده میشود. اثبات مرکل از اطلاعاتی که در حال بررسی آن هستید و همه انشعابات درخت متصل به آن تا به ریشه استفاده میکند. اگر هش ایجاد شده از شاخه مورد نظر تا ریشه منسجم باشد، در این صورت دادهها مورد تایید هستند در غیر این صورت این دادهها دستکاری شده اند.
اثبات مرکل به جای اعتبارسنجی همه اطلاعات در کل درخت، فقط مستلزم داشتن قدرت پردازشی کافی برای اعتبارسنجی مقدار کمی از دادههاست تا صحت آن را تایید کند.
چه کسی درختان مرکل را ابداع کرد؟
نام درختان مرکل از نام Ralph Merkle دانشمند کامپیوتر و پروفسوری به دست آمده که رمزنگاری کلید عمومی و هشینگ را به همراه خود درختان مرکل ابداع کرد. این مفهوم در سال 1987 ابداع شد.
آیا میدانستید؟
مثال مورد استفاده ما، ساده ترین مدل از درختان مرکل به نام درختان مرکل باینری بود که در آن هر والد تنها دو نود فرزند دارد اما این درختان میتوانند بسیار پیچیده تر باشند و هر نود پدر چندین فرزند داشته باشد. از آنجایی که اتریوم باید تراکنشهای هر قرارداد هوشمند را پردازش کند، از مدل بسیار پیچیده تری از درختان مرکل به نام درختان پاتریشیا استفاده میکند.
ویژگی خاص درختان مرکل
بلاکچینهایی مثل اتریوم باید دادههای حدود 9 میلیون بلاک را ذخیره، پردازش و اعتبارسنجی کنند – که هر بلاک آنها حاوی صدها هزار تراکنش است. حتی یک بلاکچین نسبتاً ساده مثل بیتکوین صدها هزار بلاک و در هر بلاک هزاران تراکنش دارند. درختان مرکل امکان پشتیبانی از چنین ساختاری بدون نیاز به استفاده از قدرت پردازشی بسیار گسترده را فراهم میکنند.
سایر ویژگیهای متفاوت درختان مرکل
از اثبات مرکل در کلاینتهای لایت بلاکچین استفاده میشود. این برنامهها که حافظه زیادی مصرف نمیکنند به کاربران امکان میدهند بدون نیاز به دانلود همه تراکنشها و دادههای همه بلاکها، در بلاکچین مشارکت داشته باشند. کلاینتهای لایت، فقط باید از هش ریشه برای هر بلاک اطلاع داشته باشند و سپس از اثبات مرکل برای اعتبارسنجی اطلاعات در هنگام نیاز استفاده کنند.
آینده
بلاکچینهایی مثل اتریوم هنوز هم مقیاس پذیر نیستند حتی با وجود درختان مرکل بنابراین قرار نیست این ابزار رمزنگاری مهم به این زودی از رده خارج شود. یک جنگل هر چقدر هم که رشد کند باز به ریشههای خودش نیاز خواهد داشت.