آشنایی با بلاک یتیم در بلاکچین
بلاکچین (Blockchain)، زنجیرهای از بلاکها است که این بلاکها با ترتیب خاصی ایجاد میشوند و پشت سر هم قرار میگیرند. بلاکچینهایی که در مکانیزم اجماع خود از الگوریتم اثبات کار (PoW) استفاده میکنند (مانند بیت کوین)، بلاکها توسط ماینرها ایجاد میشود و رقابت شدیدی بین ماینرها (مخصوصاً در بلاکچین بیت کوین) در جهت ایجاد و استخراج بلاک جدید وجود دارد که همین رقابت باعث ایجاد بلاک تنها یا به اصطلاح بلاک یتیم (Orphan Block) میشود. اما میدانید بلاک یتیم چیست و آیا در موردش اطلاعات دارید؟
در این مقاله با بیتفا همراه باشید تا با بلاکهای یتیم و نحوه ایجاد آنها بیشتر آشنا شویم. به نظر شما آیا بلاکهای یتیم ارزشمند هستند؟ آیا ماینرها برای استخراج بلاکهای یتیم پاداشی نیز دریافت میکنند؟ و در نهایت آیا بلاکهای یتیم برای امنیت بلاکچین مضر هستند یا خیر؟
بلاک یتیم (Orphan block) چیست؟
همانطور که بالاتر گفته شد، بلاکچین، زنجیرهای از بلاکهاست؛ اما این زنجیره بلاکها کاملاً هم به صورت سری نیست و احتمال این وجود دارد تا این زنجیره در قسمتهایی از مسیرخود، مانند عکس زیر دوشاخه شود. (البته این اتفاق معمولاً در بلاکچینهایی رخ میدهد که مکانیزم اجماع آنها به صورت اثبات کار است)
ولی زنجیره اصلی بلاکچین، زنجیرهای است بیشترین طول را داشته باشد (اصل Longest chain). بلاکهایی که در طولانیترین زنجیره قرار ندارند، توسط گرهها (Nodes) مورد تایید قرار نمیگیرند. به این بلاکها، بلاکهای یتیم گفته میشود.
این بلاکها از لحاظ ساختاری کاملاً معتبر هستند ولی به دلیل تاخیر در گرهها، مورد تایید قرار نمیگیرند و از زنجیره اصلی خارج میشوند. در ادامه این مقاله به چگونگی ایجاد این بلاکها به طور کامل خواهیم پرداخت. (اگر به عنواع بلاکها در بلاکچین علاقه دارید میتوانید در سایت بیتفا مقاله بلاک جنسیس را نیز مطالعه کنید)
بلاکهای یتیم چگونه ایجاد میشوند؟
اصطلاح بلاک یتیم، معمولاً در بلاکچینهای نسل یک و بلاکچینهایی که از مکانیزم اثبات کار (PoW) استفاده میکنند مورد استفاده قرار میگیرد.
در بلاکچینهایی که از مکانیزم اجماع اثبات کار استفاده میکنند، ماینرها با مصرف انرژی زیاد و توان عملیاتی بالا، تراکنشهایی که در استخر تراکنشهای تایید نشده قرار دارند را تایید کرده و بلاکها را استخراج میکنند. سپس، پس از استخراج یک بلاک توسط یک ماینر، گرههای بلاکچین باید برای تایید این بلاک به اجماع برسند. این به اجماع رسیدن اتلاف زمانی دارد و باعث ایجاد یک اختلاف زمانی بین ایجاد و مورد تایید قرار گرفتن بلاکها میشود. (hگر به نحوه کار بلاکچینها علاقه دارید پیشنهاد میکنم حتماً مقاله نحوه کار بلاکچین را مطالعه کنید.)
در بلاکچینهایی که از الگوریتم اثبات کار در مکانیزم اجماع خود استفاده میکنند، این امکان وجود دارد تا دو ماینر، همزمان یک بلاک را استخراج کنند و یا حتی یک ماینر بلاکی را استخراج کند ولی به دلیل اختلاف زمانی که در بین گرهها وجود دارد، قبل از مورد تایید قرار گرفتن آن بلاک، ماینر دیگری نیز آن بلاک را استخراج کند. در همچین شرایطی گرههای بلاکچین فقط برای تایید یکی از آن دو بلاک به اجماع میرسند و زنجیره بلاکها با آن بلاک ادامه پیدا میکند و بلاک بعدی از زنجیره تصلی بلاکچین خارج شده و به یک بلاک یتیم یا بلاک اورفان تبدیل میشود.
اما گرهها بر چه اساسی برای تایید یکی از آن دو بلاک به اجماع میرسند؟ آیا این اجماع به صورت تصادفی صورت میگیرد؟
گرههای یک بلاکچین چگونه برای تایید یکی از آن دو بلاک به اجماع میرسند؟
در همچین شرایطی که ماینرها باید برای تایید یکی از دو بلاک (دو بلاکی که هر دو معتبر هستند ولی همزمان ایجاد شدهاند) به اجماع برسند، اصولاً معیار انتخاب گرهها، میزان هش صرف شده در جهت ساخت بلاک است. ماینری که میزان هش ببیشتری در جهت استخراج بلاک مصرف کرده است، راحتتر مورد تایید گرهها قرار میگیرد و بلاک آن ماینر به بلاکچین اضافه میشود.
بلاکی که توسط گرهها مورد تایید قرار نمیگیرد، در حالی که یک بلاک تماماً سالم و معتبری بوده است، اما به طور کامل از زنجیره اصلی کنار گذاشته میشود و بلاکچین با بلاک پیروز کار خود را ادامه میدهد.
آیا ماینرها برای استخراج بلاکهای یتیم نیز پاداش دریافت میکنند؟
ماینرها برای استخراج بلاکهای یتیم نیز همانند دیگر بلاکها، انرژی زیادی را مصرف میکنند و استخراج بلاکهای یتیم نیز برای ماینرها هزینه بالایی دارد. اما به دلیل آن که این بلاکها در زنجیره اصلی بلاکچین قرار نمیگیرند، هیچ پاداشی برای ماینرهای خود نیز حاصل نمیکنند پس در نتیجه در بلاکچینی مانند بیت کوین، ماینری که بلاکی را استخراج کرده و آن بلاک تبدیل به بلاکی یتیم شده است، هیچ پاداشی را دریافت نمیکند.
ولی این موضوع در بعضی از بلاکچینها مانند بلاکچین اتریوم کمی تفاوت دارد، در واقع در بلاکچینهایی مانند اتریوم، بلاکهای یتیم کمی متفاوت هستند و به آنها بلاکهای آنکل (Uncle Block) گفته میشود. ولی بلاکهای آنکل چه تفاوتی با بلاکهای یتیم دارند؟
بلاک آنکل (Uncle Block)
بلاکچین اتریوم نیز مانند بلاکچین بیت کوین از الگوریتم اثبات کار استفاده میکند (البته این موضوع موقتی است و اتریوم در حال انتقال مکانیزم اجماع خود از اثبات کار به اثبات سهام است) اما در بلاکچین اتریوم بر خلاف بلاکچین بیت کوین بلاکهای یتیم وجود ندارد و به این بلاکها در بلاکچین اتریوم بلاک آنکل گفته میشود.
بلاک آنکل در بلاکچین اتریوم دقیقاً مانند بلاک یتیم در بلاکچین بیت کوین ایجاد میشود. بلاک آنکل در بلاکچین اتریوم همزمان با یک بلاک دیگر استخراج شده است (همانند اتفاقی که برای بلاک یتیم در بلاکچین یبت کوین پیش میآید) ولی گرهها فقط باید برای تایید یکی از آن دو بلاک به اجماع برسند و بلاک تایید شده از نظر گرهها به زنجیره اصلی انتقال پیدا کند و دیگری به بلاک آنکل تبدیل شود (باز هم اتفاق مشابهی که برای بلاک یتیم پیش میآید). اما تفاوت بلاکهای آنکل با بلاکهای یتیم در آن است که هر دو ماینری که این دو بلاک را استخراج کردهاند، پاداش استخراج بلاک خود را دریافت میکنند اما یکی از آن دو بلاک به زنجیره اصلی انتقال پیدا میکند و بلاک بعدی به بلاک آنکل تبدیل میشود، در واقع ماینرهایی که در بلاکچین اتریوم بلاکهایی از نوع آنکل استخراج کردهاند پاداش دریافت میکند در حالی که ماینرهای بیت کوین در جهت استخراج بلاکهای یتیم هیچ پاداشی دریافت نمیکنند.
چرا در شبکه اتریوم به ماینرهای بلاکهای آنکل نیز پاداش تعلق گرفته میشود؟
اکثر ماینرها در بلاکچینهایی مانند بیت کوین، از تعلق نگرفتن پاداش به استخراج کنندگان بلاکهای یتیم ناراضی هستند و بر عقیده آنها کل تلاش و هزینهای که یک ماینر در جهت ساخت بلاکهای یتیم پرداخته است، بی ارزش میشود.
اما در بلاکچینهایی مانند اتریوم، برای راضی نگه داشتن ماینرها و در نتیجه ایجاد محیطی غیرمتمرکز تر و ایمنتر، به ماینرهای بلاکهای آنکل نیز پاداش تعلق میگیرد.
آیا ایجاد بلاکهای یتیم برای یک بلاکچین مناسب است؟
در بلاکچینی که در آن تعداد زیادی بلاک ارفان یا همان یتیم ایجاد شود، احتمال رخ دادن حمله دوبار خرج کردن (Double Spending) افزایش پیدا میکند. علاوه بر کاهش امنیت، در چنین بلاکچینهایی انرژی زیادی مصرف میشود در حالی که به ماینرهایی که بلاکهای یتیم را استخراج کردهاند، هیچ پاداشی تعلق گرفته نمیشود و این موضوع باعث نارضایتی آنها میشود و اصلاً نکته مثبتی نیست.
جمعبندی
بلاکهای یتیم، بلاکهایی هستند که همزمان با یک بلاک دیگر توسط دو ماینر مختلف استخراج شدهاند، اما گرههای بلاکچین باید برای تایید فقط یکی از آن دو به اجماع برسند و بلاکی که توسط گرهها تایید نمیشود به بلاک یتیم تبدیل میشود. بلاکهای یتیم مانند دیگر بلاکها صلاحیت کامل برای تایید شدن را دارند و فقط به این دلیل تایید نمیشوند چون همزمان با یم بلاک دیگر استخراج شدهاند. به نظر شما آیا ماینری که بلاکی استخراج کرده است اما آن بلاک به بلاکی یتیم تبدیل شده است باید پاداش استخراج خود را دریافت کند یا خیر؟