بلاک یتیم چیست؟ آشنایی با orphan block در ساختار بلاکچین
بلاک یتیم (Orphan Block) به بلاکی گفته میشود که یا بلاکهای اصلی را ندارد یا اینکه بلاکهای آن شناخته شده نیستند. در واقع بلاکهای یتیم از اعتبار لازم برخوردار هستند و شرایط لازم برای اینکه به بلاکچین اضافه شوند را دارند، اما مورد پذیرش قرار نمیگیرند.
در این مقاله به بررسی این موضوع که بلاک اورفن چیست و چطور به وجود میآید، میپردازیم. اگر در مورد این اصطلاح مهم در دنیای ارزهای دیجیتال ابهاماتی دارید، خواندن این مقاله را از دست ندهید.
بررسی مفهوم بلاک یتیم
به طور کلی بلاکهای اورفن ارتباط مستقیمی با ارز دیجیتال بیت کوین (Bitcoin) دارند. به بلاک یتیم، بلاک جدا شده نیز میگویند. همانطور که گفتیم، این بلاکها کاملا معتبر هستند و میتوانند به شبکه بلاکچین اضافه شوند، اما این اتفاق رخ نمیدهد. در این رابطه پای استخراج کنندهها در میان است.
در بیت کوین، به طولانیترین زنجیره، «زنجیره اصلی» گفته میشود. بلاکهایی که روی زنجیره اصلی هستند، به عنوان بلاکهای معتبر شناخته میشوند. به همین ترتیب بلاکهایی که روی زنجیره اصلی قرار نمیگیرند، به عنوان بلاکهای نامعتبر و یتیم شناخته میشوند.
نکته مهمی که باید بدانید این است که بیت کوین به عنوان یک ارز دیجیتال برای باز کردن یک بلاک جدید در بلاکچین اعطا میشود. وقتی بلاک یتیم میشود آن را دور میریزند، اما بیت کوین نمیتواند یتیم شود.
بلاک یتیم چطور ایجاد میشود؟
بلاکهای اورفن زمانی شکل میگیرند که دو استخراج کننده به صورت همزمان باعث ایجاد یک بلاک میشوند. انتقال اطلاعات در گرهها با سرعت بالایی انجام نمیشود. برای اینکه بلاکهای ایجاد شده بتوانند اعتبار لازم را به دست آورند، باید با سرعت به همه نودها و در سرتاسر شبکه فرستاده شوند.
اما امکان دارد که در نودها شاهد رخ دادن تأخیر زمانی باشیم. این تأخیر زمانی به یک ماینر دیگر فرصت میدهد که در زمان کاملا مشابه بتواند بلاک خودش را در شبکه انتشار دهد. این تأخیر زمانی و منتشر کردن بلاک جدید، یک دوگانگی را به وجود میآورد. البته این دوگانگی به صورت موقت خواهد بود. نودها در این دوگانگی یکی از بلاکها را برای تکمیل شدن انتخاب میکنند.
در این بین مسئلهای با عنوان تأییدیه کار یا الگوریتم اثبات کار (proof of work) وجود دارد. اینکه نودها کدام بلاک را انتخاب کنند به اثبات انجام کار مربوط میشود. انتخاب نودها هوشمندانه و بر اساس بزرگی تأییدیه کار بلاکها صورت میگیرد. هر بلاکی که از تأییدیه قویتر برخوردار باشد، توسط نودها برای تکمیل شدن انتخاب میشود.
نودها برای اینکه به قدرت تأییدیه کار پی ببرند، به این توجه میکنند که برای یک بلاک چقدر انرژی مصرف شده است. به این ترتیب اگر بلاکی انرژی مصرفی پایینی داشته باشد آن را انتخاب نمیکنند و آن بلاک را به عنوان بلاک یتیم در نظر میگیرند. اگر برای ایجاد یک بلاک انرژی بیشتری مصرف شده باشد، در این صورت توسط نودها انتخاب میشود.
وضعیت بلاکهای یتیم بعد از دور ریخته شدن
یک استخر با عنوان «استخر بلاک یتیم» وجود دارد. وقتی از ورود بلاکهای یتیم به بلاکچین خودداری میشود، به صورت موقت بلاکها را در استخر بلاک یتیم ذخیره و نگهداری میکنند. در این استخر این بلاکها را به عنوان یک لیست از بلاکهایی که بخشی از بلاکچین به حساب نمیآیند، نشان میدهند.
اینطور نیست که بلاکهای یتیم همیشه در استخر باقی بمانند، این موضوع موقتی است. وقتی بلاکهای یتیم را به استخرهای حافظه میفرستند برای این است که آنها را اعتبارسنجی کنند تا بتوانند به زنجیره اصلی اضافه شوند.
پاداش بلاک یتیم چگونه است؟
اولین استخراج کنندهای که موفق به باز کردن یک بلاک جدید شود، میتواند پاداش بلاک را دریافت کند به این ترتیب اولین تراکنش را روی بلاک جدید مینویسد. بلاکی که تازه شکل گرفته است کلیه اطلاعات مربوط به بلاک قبلی و همچنین تراکنشهای جدید را ذخیره میکند.
به طور کلی برای استخراج یک بلاک یتیم یا قدیمی پاداشی در نظر گرفته نمیشود. البته این موضوع در مورد اتریوم (Ethereum) صدق نمیکند. بلاکهای یتیم در اتریوم با عنوان بلاکهای آنکل (Uncle Blocks) شناخته میشوند.
بلاکهای آنکل از نظر تکنیکال همان بلاکهای یتیم محسوب میشوند، اما در جزئیات آنها تفاوتهایی وجود دارد. در اورفن بلاکها به ماینرها پاداشی داده نمیشود، اما بلاکهای آنکل به ماینرها پاداشهایی میدهند. به چند علت این پاداشها به ماینرها تعلق میگیرند:
- تشویق کاربران برای افزایش تعداد تراکنشها
- بالا بردن امنیت شبکه
- خنثی کردن تأخیر شبکه در توزیع پاداش استخراج
اینکه ماینرها به خاطر اورفن بلاک پاداشی دریافت نمیکنند از نظر بسیاری از آنها موضوع درستی نیست. چون یک ماینری که بلاک یتیم را تولید میکند میخواهد زمان و هزینههایی که کرده است جبران شود؛ ولی این اتفاق نمیافتد.
تراکنشهای بلاک یتیم
برخی از افراد این سؤال را میپرسند که برای تراکنشهایی که در بلاک یتیم قرار میگیرند، چه داستانی پیش میآید؟ حتی اگر این تراکنشها روی بلاکهای یتیم قرار بگیرند، یعنی تراکنشهایی که بدون قصد تخریب انجام میشوند، میتوانند به صورت همزمان به زنجیره اصلی ورود کنند.
البته وقتی بیت کوین دریافت میکنید، باید حواستان را جمع کنید. اگر بیت کوینی را که در زنجیره اصلی قرار دارد و شما آن را دریافت کردهاید، تأیید نکنید، احتمال دارد به هنگام استفاده از آن، بیاعتبار شود.
بلاک یتیم و کاهش امنیت
در این مقاله به بررسی اورفن بلاک / orphan block و علت به وجود آمدن آن پرداختیم. در صورتی که در یک بلاکچین، بلاکهای یتیم زیادی ایجاد شوند، مسئلهای به نام دو بار خرج کردن (Double Spending) شکل میگیرد. این موضوع تأثیر زیادی روی کاهش امنیت بلاکچین و افزایش مصرف انرژی دارد. به همین دلیل اگر بلاکهای یتیم زیادی ایجاد شوند این موضوع نه برای ماینرها و نه برای بلاکچین، مفید نخواهد بود.