انواع بلاک های Stale Block (قدیمی)، Orphaned Block (یتیم) و Uncle Block (عمو) در بلاکچین
معرفی سه بلاک Uncle ،Orphan و Stale
اگر در استخراج ارزهای دیجیتال یا استخراج بیت کوین فعال هستید، احتمالاً عباراتی مانند Stale Block (قدیمی)، Orphaned Block (یتیم) و Uncle Block (عمو) را شنیدهاید. این اصطلاحات فنی برخی از انواع Blockها در بلاکچین هستند و در بین ماینرها رایجاند.
سه بلاک Uncle ،Orphan و Stale اساساً Blockهای رها شده یا پذیرفته نشده در زنجیره اصلی هستند و هر شبکه بلاکچین آنها را به روشی متفاوت توصیف میکند. بهعنوان مثال در اتریوم به آن uncle block’s میگویند، در Monero به آنها orphaned block’s میگویند و همچنین stale block’s نیز وجود دارد. این Blockها یکسان نیستند و تفاوت زیادی با هم دارند.
شبکهها مانند بیت کوین، اتریوم، لایت کوین، دش، مونرو و بسیاری دیگر در بلاکچین توزیع شدهاند و ماینرها در سراسر جهان، ایمنسازی و تأیید تراکنشها در بلاکچینها را با مکانیزیم اثبات کار انجام میدهند. برای درک Blockهای Uncle،Orphan و Stale ابتدا باید نحوه عملکرد بلاکچینها و نحوه تولید بلاکها را درک کنیم.
نحوه عملکرد بلاکچینها و نحوه تولید Blockها
بلاکچین در واقع شکلگیری زنجیره در حال رشد متشکل از Blockها است که تراکنشهای مختلف روی بلاکچین را ثبت میکند. چگونه اینها ایجاد شده و به بخشی از بلاکچین تبدیل میشوند؟
ابتدا تمام تراکنشهای تأییدنشده به Mempool میروند، سپس ماینرها تمامی این تراکنشها را انتخاب کرده و آن را به Block بعدی اضافه میکنند. ماینرها در پروسه استخراج با سایر شرکتکنندگان بلاکچین رقابت میکنند و در نهایت یک ماینر برنده میشود. یعنی هر ماینری که سریعترین راهحل اثبات کار را تولید کند، Block خود را به بلاکچین اضافه میکند. برای قرار دادن یک Block جدید در زنجیره، ماینر براساس طرح شبکه پاداش دریافت میکند.
حال اگر دو یا چند ماینر بهطور همزمان یا تقریباً همزمان محاسبات را تکمیل کنند، چه اتفاقی میافتد؟
ممکن است دو Block مختلف کاملاً معتبر ایجاد شود تا Block بعدی در بلاکچین قرار بگیرد. با این وجود فقط یکی از آنها پذیرفته میشود و دیگری باید کنار گذاشته شود. بنابراین، کدام یکی از آنها موفق خواهد بود و کدامیک مقاله Uncle ،Orphan یا Stale خواهد شد؟
همهچیز به این بستگی دارد که چه کسی Block بعدی را استخراج میکند و با اطمینان نمیتوان گفت که برنده کدام ماینر است که البته طولانیترین زنجیره همیشه در چنین شرایطی برنده است.
چه چیزی باعث میشود که زنجیره شکافته شود یا بلاکهای تکراری ایجاد شود؟
علت ایجاد شدن بلاک Uncle ،Orphan و Stale عمدتاً به دلیل پیکربندی شبکه یا تأخیر شبکه است. در ادامه انواع آنها را به تفکیک بررسی خواهیم نمود.
در تصویر فوق مشاهده میکنیم که طولانیترین زنجیره (با مربعهای مشکی) اعتبار بیشتری دارد.
Orphan Block (یتیم)
همانطور که از ترجمه نام این نوع Block پیداست، بهمانند کودکی است که پدر و مادری ندارد. در بلاکچین بیت کوین، بلوک یتیم، بلوکی است که پذیرفته نمیشود یا بخشی از طولانیترین زنجیره نیست و معمولاً زمانی اتفاق میافتد که دو یا چند ماینر یک بلوک را در زمان مشابه حل کنند. درست مانند هر بلوک دیگری، بلوکهای یتیم و تأیید شده، معتبر هستند و در ابتدا توسط شبکه در یک مقطع زمانی پذیرفته شدهاند.
بااینحال، ازآنجاییکه آنها دیگر فعال نیستند و والدین شناختهشدهای برای آنها وجود ندارد، از بلاکچین واقعی کنار گذاشته میشوند. بلوک یتیم همچنین میتواند بهعنوان بلوکهای جدا شده نامیده شود زیرا از شبکه اصلی جدا شده است.
بنابراین، چگونه شبکه تعیین میکند که کدام بلاک معتبر است و کدام یک یتیم؟ بلاکی که دارای مکانیزم اثبات کار (Proof of Work) بیشتر باشد پذیرفته میشود و بلاکی که سهم کمتری از مکانیزم اثبات کار دارد، کنار گذاشته میشود. در نتیجه، ماینری که مسئول بلاک یتیم است، پاداش خود را از دست میدهد. در شبکه بلاکچین بیت کوین هر چند وقت یک بار بلاکهایی وجود خواهند داشت که یتیم میشوند. همچنین، توجه داشته باشید که یک شبکه بلاکچین با بلاکهای یتیم بیشتر میتواند بهطور بالقوه منجر به خطراتی مانند حمله 51 درصدی یا حمله خرج مضاعف شود.
Stale Block (قدیمی)
اکثر ماینرها فکر میکنند که بلوک Stale و بلوک Orphan هر دو یکسان هستند، که البته اینگونه نبوده و متفاوت هستند. بلوکهای یتیم، بلوکهایی در زنجیره کوتاهتر هستند و ازآنجاییکه والد آنها مشخص نیست، نمیتوان آن را تأیید کرد. بلوک Stale کاملاً معتبر است و یک بلوک با موفقیت استخراج شده است، اما درحالحاضر فعال نیستند و در بلاکچین فعلی گنجانده نشدهاند.
در تصویر مشاهده میکنید که Orphan Block بدون والد بوده و از زنجیره کنار گذاشته شده و همچنین Stale Block با وجود اینکه دارای والد است، بهعلت قدیمی بودن از زنجیره فعلی کنار گذاشته شده، زیرا زنجیره طولانیتر مورد تأیید شبکه است. برای درک بهتر این موضوع باید این اصل اساسی را بدانید: اگر شبکه بیت کوین با 2 نسخه مختلف از بلاکچین ارائه شود، طولانیترین زنجیره، نسخه ترجیحی است و کوچکترین زنجیره رد میشود.
همچنین در هر شبکه، طولانیترین زنجیره معتبر است و مورد انتخاب اکثر ماینرها خواهد بود. در هر زمان ممکن است شما یا استخرتان شبکه را تقسیم کنید و در صورت وجود قدرت هش بالاتر، زنجیره اصلی، شاخه تقسیم شده توسط شما خواهد بود؛ زیرا با قدرت هش بالاتر، زنجیره طولانیتر خواهد شد. اکنون ماینرهایی که به کار بر روی بلوک قبلی ادامه میدهند، ماینینگ روی بلوک stale یا قدیمی نامیده میشوند. بلوکهای stale چیزی نیستند جز بلوکهای قدیمی که قبلاً کشف یا استخراج شدهاند. بنابراین، هرکسی که روی بلوک stale کار میکند، واجد شرایط دریافت پاداش استخراج نیست.
Uncle Block (عمو) یا Ommer Block
درحالحاضر Uncle Block شبیه به بلاک یتیم در بلاکچین بیت کوین است، اما تفاوتهایی وجود دارد. برای درک مفهوم Uncle Block، بلاکچین را بهعنوان شجرهنامه در نظر بگیرید. شما، پدرتان و پدرش مانند بلاکهای «درست» هستید که زنجیره بلاکی را تشکیل میدهند. عموها ارتباط نزدیکی با خانواده دارند و وزن خود را دارند، بااینحال، آنها در طولانیترین زنجیره گنجانده نشدهاند.
در یک بلاکچین عمومی مانند بیت کوین و اتریوم، استفاده از روشی که اطمینان حاصل کند دادههای درون بلاکچین تأیید شده و براساس اجماع اضافه میشوند، ضروری است. جلوگیری از تغییر دادهها نیز به همان اندازه مهم است. بسیاری از بلاکچینها از ساختار دادهای به نام درخت مرکل برای انجام این کار استفاده میکنند.
درخت مرکل روابط اجدادی را برای بلاکهای داده ایجاد میکند. اطلاعات بلاکهای قبلی در بلاکهای جدید، مشابه DNA که بین نسلها منتقل میشود، گنجانده میشود. این مفهوم روابط خویشاوندی بلاکها مانند والد، خواهر و برادر و فرزندان، آنها را شبیه به یک نمایش گرافیکی از یک درخت خانوادگی میکند. نحوه کار به این صورت است که اولین بلاک در یک درخت میتواند بلاک A نامیده شود؛ بلاک بعدی که از بلاک A ایجاد میشود فرزند بلاک A در نظر گرفته میشود و شامل اطلاعات A بهعلاوه اطلاعات مربوط به خودش است.
این بلاک جدید را میتوان بلاک B نامید اما میتواند به صورت Ba نمایش داده شود. B نام بلاک جدید است و “a” به دادههای بلاک والد اشاره دارد. این رابطه والد/فرزند همچنان ادامه مییابد و بلاکهای بیشتری با اطلاعات هر بلاک قبلی اضافه میشود. این یک شجرهنامه از نوع درخت مرکل بوده و بلاکچین را ایجاد میکند.
حال در نظر بگیرید که دو بلوک بهطور همزمان از Ba تأیید و ایجاد شدهاند. آنها بلاکهای Cab و Cab2 هستند؛ این دو بلوک به مانند خواهر و برادر از یک بلوک مادر با نام Ba هستند. از این دو Block ایجاد شده فقط یکی را میتوان به بلاکچین اضافه کرد، بنابراین شبکه، Cab را انتخاب میکند. Cab2 یک فورک از بلاکچین اصلی است اما به آن اضافه نشده و مورد تأیید قرار نگرفته است. در نهایت، بلوک دیگری بر روی بلاکچین استخراج میشود که Cab را در خود جای میدهد. این بلوک Dcab است. Cab2 به مانند عمو برای Dcab است، بنابراین Cab2 یک بلوک Ommer یا Uncle است.
در نظر داشته باشید در بلاکچین اتریوم که تحت مکانیسم اجماع اثبات سهام است، بلاکهای Ommer یا Uncle همچنان ممکن است تولید گردند و با کارمزد تراکنشها پاداش داده شوند.
جمعبندی
بلاکهای Uncle ،Orphan و Stale بلاکهایی هستند که بخشی از زنجیره اصلی را تشکیل نمیدهند. بلاکهای Orphan (یتیم) معتبر نیستند زیرا بلاک والد آنها ناشناخته است. بلاک Stale کاملاً معتبر است و یک بلاک با موفقیت استخراج شده است، اما درحالحاضر فعال نیستند و در بلاکچین فعلی گنجانده نشده است. بهعبارتی، زنجیره قدیمی هستند و در نتیجه پاداش استخراج به آن تعلق پیدا نمیکند. بلاکهایUncle (عمو) معتبر هستند زیرا بلاک والد آنها شناختهشده است و Uncles Block’s در بلاکچین اتریوم پاداش میگیرند.