زمانی که چیزی را از یک فروشگاه میخرید، پول نقد را پرداخت میکنید و در ازای آن کالایی را که خریدهاید تحویل میگیرید؛ یعنی انتقال ارزش کاملا مشخص است. در بانکداری دیجیتال، مانند پرداخت با کارت اعتباری یا دبیتکارت، بانک با فروشنده ارتباط برقرار میکند تا مطمئن شود مبلغ موردنظر از حساب شما کسر شده است.
اما در ارزهای دیجیتال، این فرایند به این سادگی قابل مشاهده نیست. همین موضوع این سوال را ایجاد میکند که شبکه بلاک چین چگونه از خرج کردن دوباره یک ارز دیجیتال جلوگیری میکند؟ پاسخ این پرسش تا حد زیادی به قابلیتی در فناوری بلاک چین مربوط میشود که به آن نهایی شدن بلاک یا Block Finality گفته میشود.
نهایی شدن یا فینالیتی بلاک چیست؟
نهایی شدن یا فینالیتی بلاک به حالتی گفته میشود که یک تراکنش پس از ثبت روی بلاک چین، بهصورت دائمی در شبکه باقی بماند. برخلاف سیستمهای مالی سنتی که در برخی شرایط امکان برگشت تراکنش وجود دارد، تراکنشهای بلاک چینی پس از رسیدن به فینالیتی دیگر قابل برگشت نیستند. این ویژگی برای حفظ یکپارچگی شبکه اهمیت دارد، زیرا پس از نهایی شدن تراکنش، هیچ مشارکتکنندهای نمیتواند سوابق ثبتشده را دستکاری یا تغییر دهد.
زمانی که یک تراکنش به فینالیتی میرسد، به سازوکار الگوریتم اجماع همان بلاک چین بستگی دارد. شبکهها با استفاده از روشهایی مانند اثبات کار (PoW)، اثبات سهام (PoS) یا سایر مدلهای اجماع، مشخص میکنند که یک تراکنش چه زمانی تایید شده و بهصورت دائمی در بلاک چین ثبت میشود.
نهایی شدن بلاک چگونه انجام میشود؟
مفهوم نهایی شدن بلاک (Block Finality) که یکی از پایههای اصلی امنیت شبکه محسوب میشود، در همه بلاک چینها وجود دارد و هر شبکه با روش متفاوتی به آن دست پیدا میکند.
سازوکار اجماع که وظیفه تایید تراکنشها و حفظ امنیت یک شبکه غیرمتمرکز را بر عهده دارد، نقش اصلی را در تعیین زمان و نحوه نهایی شدن تراکنشها ایفا میکند.
این سازوکارها مشخص میکنند تراکنشها چگونه تایید شوند و چه زمانی به مرحله نهایی برسند؛ یعنی زمانی که تراکنش بهصورت دائمی در بلاک چین ثبت شده و دیگر امکان برگشت آن وجود نداشته باشد.
فینالیتی بلاک در اثبات کار (PoW)
بیت کوین از سازوکار اثبات کار (PoW) استفاده میکند. در این روش، ماینرها برای حل مسائل محاسباتی پیچیده با یکدیگر رقابت میکنند تا تراکنشها را تایید و بلاکهای جدید را به شبکه اضافه کنند. یکی از ویژگیهای مهم PoW که مستقیما با نهایی شدن تراکنشها ارتباط دارد، «قانون طولانیترین زنجیره» (Longest Chain Rule) است.
بر اساس این قانون، زنجیرهای که بیشترین میزان کار محاسباتی روی آن انجام شده باشد، بهعنوان زنجیره معتبر در نظر گرفته میشود. بنابراین، هرچه پس از ثبت یک تراکنش، بلاکهای بیشتری به زنجیره بیت کوین اضافه شوند، احتمال تغییر یا برگشت آن تراکنش کاهش پیدا میکند و اطمینان نسبت به نهایی شدن آن افزایش مییابد.
فینالیتی بلاک در اثبات سهام (PoS)
در شبکههای مبتنی بر اثبات سهام (PoS)، مانند اتریوم پس از انتقال این شبکه به PoS، فرایند نهایی شدن متفاوت است. در این مدل، بهجای ماینرها، اعتبارسنجها یا Validatorها مسئول تایید تراکنشها و تولید بلاکهای جدید هستند. این اعتبارسنجها بلاکهای جدید را پیشنهاد میدهند و در فرایند تایید آنها مشارکت میکنند.
پس از تایید و اضافهشدن یک بلاک به شبکه، تغییر یا برگشت آن به هماهنگی تعداد زیادی از اعتبارسنجها نیاز دارد. همین فرآیند باعث میشود برگشت یک تراکنش پس از رسیدن به فینالیتی بسیار دشوار و پرهزینه باشد. به این ترتیب، شبکههای PoS با استفاده از مشوقها و جریمههای اقتصادی، امنیت و نهایی شدن تراکنشها را تضمین میکنند.

انواع نهایی شدن بلاک
بلاک چینهای مختلف روشهای متفاوتی برای رسیدن به نهایی شدن دارند. با توجه به سازوکار اجماع و میزان اطمینانی که شبکه نسبت به دائمی بودن تراکنشها ایجاد میکند، میتوان چند نوع نهایی شدن را در بلاک چینها در نظر گرفت.
انواع مختلف نهایی شدن شامل موارد زیر هستند:
نهایی شدن احتمالی (Probabilistic Finality)
نهایی شدن احتمالی بیشتر در شبکههای مبتنی بر اثبات کار دیده میشود. در این مدل، پس از اضافه شدن یک بلاک به شبکه، نمیتوان با قطعیت کامل گفت که برای همیشه در زنجیره باقی خواهد ماند.
هرچه بلاکهای بیشتری روی بلاک موردنظر ساخته شوند، احتمال تغییر یا کنار گذاشتهشدن آن کمتر میشود و اطمینان نسبت به آن افزایش پیدا میکند. به بیان ساده، در این مدل هر تایید جدید، امنیت تراکنش را بیشتر میکند.
نهایی شدن مطلق (Absolute Finality)
نهایی شدن مطلق بالاترین سطح اطمینان نسبت به دائمی بودن یک تراکنش محسوب میشود. در این حالت، پس از تایید و ثبت تراکنش روی بلاک چین، دیگر امکان تغییر یا برگشت آن وجود ندارد.
این نوع نهایی شدن در برخی شبکهها مانند استلار و ریپل که از سازوکارهای اجماع فدرال استفاده میکنند، دیده میشود. در اجماع فدرال، گروهی از اعتبارسنجها یا اعضای مورداعتماد شبکه وظیفه تایید بلاکها و تراکنشها را بر عهده دارند.
نهایی شدن اقتصادی (Economic Finality)
در نهایی شدن اقتصادی، امنیت شبکه به انگیزههای مالی و هزینه رفتار مخرب وابسته است. این نوع نهایی شدن بیشتر ویژگی شبکههای مبتنی بر اثبات سهام است.
در چنین شبکههایی، اعتبارسنجها برای مشارکت در امنیت شبکه مقداری دارایی را استیک میکنند. اگر یک اعتبارسنج رفتار مخربی داشته باشد، ممکن است بخشی از دارایی استیکشده خود را از دست بدهد. به همین دلیل، تایید بلاکها علاوه بر اجماع، بر پایه مشوقهای مالی و جریمههای اقتصادی نیز انجام میشود.
در شبکههایی مانند اتریوم، هزینه تلاش برای انجام اقداماتی مانند بازگرداندن تراکنشها یا دستکاری سوابق باید آنقدر بالا باشد که رفتار مخرب از نظر اقتصادی توجیهپذیر نباشد. این سازوکار به حفظ امنیت شبکه و نهایی شدن تراکنشها کمک میکند.
نهایی شدن آنی (Instant Finality)
نهایی شدن آنی یکی از بالاترین سطوح فینالیتی است و دستیابی به آن نیز دشوارتر است. در این مدل، تراکنش بلافاصله پس از ثبت و تأیید روی شبکه، نهایی و غیرقابلبرگشت در نظر گرفته میشود.
در عمل، دستیابی به چنین سطحی از نهایی شدن میتواند به تغییرات مهمی در ساختار سنتی بلاک چین و فرایند تایید تراکنشها نیاز داشته باشد. نمیتوان با قطعیت گفت که یک شبکه خاص به نهایی شدن کاملا آنی دست یافته است، اما برخی بلاک چینهایی که از سازوکارهای تحمل خطای بیزانسی یا BFT استفاده میکنند، مانند کازماس، به نهایی شدن تقریبا آنی معروف هستند.
پروتکل Shardeum نیز از شبکههایی است که تلاش میکند با استفاده از سازوکار Proof of Quorum به نتایج مشابهی برسد و یک دفترکل مشترک را برای تایید تراکنشها حفظ کند.
نهایی شدن وضعیت (State Finality)
نهایی شدن وضعیت بیشتر از آنکه فقط یک تراکنش خاص را بررسی کند، به وضعیت کلی خود بلاک چین مربوط میشود. در این مدل، موضوع اصلی این است که آیا تغییرات ایجادشده در وضعیت شبکه، مانند اجرای یک قرارداد هوشمند، پس از نهایی شدن میتوانند تغییر کنند یا خیر.
نهایی شدن وضعیت برای شبکههایی مانند اتریوم و سولانا اهمیت زیادی دارد، زیرا اجرای دائمی و قابلاعتماد قراردادهای هوشمند، بخش مهمی از امنیت و عملکرد برنامههای غیرمتمرکز را تشکیل میدهد.

چرا فینالیتی شدن بلاک اهمیت دارد؟
نهایی شدن بلاک یکی از مفاهیم مهم در بحث امنیت و قابلیت اطمینان شبکههای بلاک چینی است. اهمیت این مفهوم را میتوان بهویژه در قراردادهای هوشمند و جلوگیری از مشکل «دوبار خرج کردن» درک کرد. قراردادهای هوشمند بخش اصلی بسیاری از برنامههای غیرمتمرکز هستند و در شبکههای دیفای (DeFi) مانند اتریوم و سولانا کاربرد گستردهای دارند.
در امور مالی غیرمتمرکز یا DeFi، قراردادهای هوشمند فعالیتهایی مانند وامدهی، دریافت وام و معامله داراییها را بدون نیاز به واسطههای سنتی اجرا میکنند. نهایی شدن بلاک باعث میشود نتیجه این عملیات پس از تایید، قابلاعتماد و غیرقابلتغییر باشد.
برای مثال، زمانی که کاربری در یک صرافی غیرمتمرکز یا DEX مانند یونی سوآپ (Uniswap) یک معامله Swap انجام میدهد، قرارداد هوشمند معامله را اجرا و توکنها را بین طرفین جابهجا میکند.
نهایی شدن بلاک تضمین میکند که پس از تایید و ثبت این تراکنش، نتیجه معامله قابلتغییر نباشد. بدون نهایی شدن، نتیجه اجرای قراردادهای هوشمند میتوانست نامطمئن باشد و امکان سوءاستفاده، اختلاف یا حملات مختلف افزایش پیدا میکرد.
دوبار خرج کردن یا Double Spending چیست؟
یکی دیگر از مواردی که اهمیت نهایی شدن را نشان میدهد، مشکل دوبار خرج کردن یا Double Spending است. دوبار خرج کردن زمانی رخ میدهد که یک فرد تلاش کند یک واحد رمزارز را در بیش از یک تراکنش خرج کند. چنین اقدامی میتواند به مهاجم اجازه دهد یک دارایی را چند بار مورد استفاده قرار دهد.
نهایی شدن بلاک با ثبت دائمی تراکنش در دفترکل، از این اتفاق جلوگیری میکند. پس از اجرای یک تراکنش و رسیدن آن به مرحله نهایی، دفترکل بلاک چین نشان میدهد که آن توکن یا کوین در یک تراکنش مشخص خرج شده است.
برای مثال، پس از تأیید یک تراکنش در شبکهای مبتنی بر اثبات کار، نودهای شبکه سابقه مشترکی از بلاک چین در اختیار دارند که نشان میدهد آن دارایی قبلاً خرج شده است. بنابراین مالک آن نمیتواند همان دارایی را دوباره در قالب یک تراکنش معتبر خرج کند.
نهایی شدن بلاک در شبکههای مختلف لایه اول
نهایی شدن بلاک مشخص میکند که یک تراکنش ثبتشده روی بلاک چین تا چه اندازه دائمی و غیرقابلتغییر است. با این حال، پردازش تراکنش در بلاک چین فقط به نهایی شدن وابسته نیست و عوامل دیگری نیز در این فرایند نقش دارند.
نهایی شدن تنها یکی از مفاهیم مرتبط با پردازش تراکنشها است. عواملی مانند تاخیر شبکه، زمان تولید بلاک و TPS یا تعداد تراکنشهای قابل پردازش در هر ثانیه نیز اهمیت زیادی دارند.
- تاخیر شبکه (Network Latency) به زمانی اشاره دارد که از ایجاد یک تراکنش تا دریافت و تایید آن در شبکه سپری میشود.
- زمان تولید بلاک (Block Time) مدتزمان موردنیاز برای استخراج یا تولید یک بلاک جدید و اضافه کردن آن به شبکه است.
- تعداد تراکنشهای قابل پردازش (Transaction Per Second) نیز گاهی با تاخیر شبکه اشتباه گرفته میشود؛ اما این دو مفهوم یکسان نیستند. TPS نشان میدهد یک شبکه در هر ثانیه چه تعداد تراکنش را میتواند پردازش کند و در واقع معیاری برای سنجش ظرفیت یا Throughput شبکه است.
مفاهیم دیگری مانند ارتفاع بلاک، اندازه بلاک و بلاکهای کنارگذاشتهشده یا Orphan Block نیز در بررسی عملکرد شبکه اهمیت دارند.
اندازه بلاک (Block Height) چیست؟
اندازه بلاک یا Block Height به تعداد بلاکهایی اشاره دارد که پیش از یک بلاک مشخص در زنجیره قرار گرفتهاند. Block Size نیز به مقدار دادهای مربوط میشود که میتوان در یک بلاک ذخیره کرد. برای مثال، اندازه بلاک در شبکه ارز بیت کوین بهطور سنتی حدود ۱ مگابایت در نظر گرفته میشود و ارز اتریوم نیز محدودیتهای مربوط به ظرفیت بلاک خود را بر اساس ساختار گس فنی و سایر عوامل تعیین میکند.
بلاکهای کنارگذاشتهشده (Orphan Block) چیست؟
بلاکهای کنارگذاشتهشده یا Orphan Blockها نیز میتوانند در شبکههایی رخ دهند که از قانون طولانیترین زنجیره استفاده میکنند. زمانی که چند بلاک تقریبا همزمان استخراج شوند، شبکه ممکن است موقتا بین آنها اختلاف داشته باشد. در نهایت زنجیرهای که از نظر قواعد اجماع معتبر باشد ادامه پیدا میکند و بلاکهای دیگر کنار گذاشته میشوند.

موانع نهایی شدن بلاک
موانع نهایی شدن بلاک به عواملی گفته میشود که میتوانند تایید دائمی تراکنشها را کند یا مختل کنند. مهمترین این موانع شامل هاردفورک، تاخیر ارتباط بین نودهای ارز دیجیتال، آسیبپذیری قراردادهای هوشمند و حملات ۵۱ درصدی است.
هاردفورکها (Hard Fork)
یکی از چالشهای مهم در زمینه نهایی شدن بلاک، وقوع هاردفورک است. هاردفورک زمانی رخ میدهد که یک شبکه بلاک چین در نتیجه تغییرات پروتکل یا اختلافنظر میان مشارکتکنندگان به دو مسیر متفاوت تقسیم شود. در این حالت ممکن است دو نسخه از بلاک چین برای مدتی فعال باشند و هرکدام سابقه متفاوتی از شبکه داشته باشند.
در چنین شرایطی، اطمینان نسبت به دائمی بودن برخی تراکنشها میتواند تحتتاثیر قرار بگیرد. اگر مسیر جدید بهعنوان زنجیره اصلی پذیرفته شود، ممکن است وضعیت برخی تراکنشهای ثبتشده در زنجیره قبلی تغییر کند.
تاخیر شبکه و مشکلات ارتباطی
یکی دیگر از عوامل موثر بر نهایی شدن بلاک، تاخیر در ارتباط میان نودهای شبکه است. در یک شبکه غیرمتمرکز، نودها باید بهصورت مداوم اطلاعات مربوط به تراکنشها و وضعیت بلاک چین را با یکدیگر به اشتراک بگذارند. اگر انتقال این اطلاعات به دلیل فاصله فیزیکی، ازدحام شبکه یا مشکلات ارتباطی با تاخیر انجام شود، فرایند تایید بلاک نیز میتواند کندتر شود.
در شبکههای PoW و PoS، تاخیر در انتشار بلاکها حتی میتواند به ایجاد فورکهای موقت منجر شود و زمان رسیدن تراکنشها به نهایی شدن را افزایش دهد.
آسیبپذیری قراردادهای هوشمند
آسیبپذیری قراردادهای هوشمند نیز میتواند برای نهایی شدن تراکنشها چالش ایجاد کند؛ بهویژه در شبکههایی مانند اتریوم که از برنامههای غیرمتمرکز پشتیبانی میکنند. اگر یک قرارداد هوشمند دارای باگ باشد یا مهاجمی از یک آسیبپذیری سوءاستفاده کند، ممکن است تراکنشهایی که از نظر فنی در بلاک چین نهایی شدهاند، پیامدهای نامطلوبی ایجاد کنند.
البته ساختار بلاک چین برای جلوگیری از دستکاری مستقیم سوابق تراکنشها طراحی شده است، اما پیچیدگی قراردادهای هوشمند لایه دیگری از ریسک را به وجود میآورد.
یکی از مشهورترین نمونهها، هک DAO در سال ۲۰۱۶ بود. در این حادثه، مهاجم از یک آسیبپذیری در کد یک سازمان مستقل غیرمتمرکز یا DAO سوءاستفاده کرد و مقدار زیادی اتر به ارزش حدود ۶۰ میلیون دلار را خارج کرد. اگرچه تراکنشها از نظر فنی روی بلاک چین ثبت و تایید شده بودند، این اتفاق در نهایت به ایجاد یک هاردفورک در شبکه اتریوم منجر شد و دو شبکه Ethereum و Ethereum Classic شکل گرفتند.
حمله ۵۱ درصدی (51% Attack)
حمله ۵۱ درصدی یکی از مهمترین تهدیدها برای فینالیتی بلاک است. در این حمله، یک فرد یا گروه کنترل بیش از نیمی از توان محاسباتی شبکه یا، بسته به سازوکار اجماع، بخش قابلتوجهی از قدرت اعتبارسنجی را در اختیار میگیرد.
چنین کنترلی میتواند به مهاجم اجازه دهد تاریخچه تراکنشها را تا حدی دستکاری کند، زنجیره جایگزین بسازد، برخی تراکنشها را دوباره خرج کند یا بعضی تراکنشهای تاییدشده را بیاثر کند. در نتیجه، اصل نهایی بودن تراکنشها تحت فشار قرار میگیرد. البته اجرای چنین حملاتی در شبکههای بزرگ و بهشدت غیرمتمرکز بسیار دشوار و پرهزینه است، اما برای شبکههای کوچکتر یا کمتمرکزتر همچنان یک تهدید مهم محسوب میشود.
رابطه فینالیتی با مقیاسپذیری بلاک چین چیست؟
سرعتی که یک شبکه تراکنشها را نهایی و تسویه میکند، یکی از بخشهای مهم بحث درباره راهکارهای مقیاسپذیری بلاک چین است. در مفهوم سهگانه بلاک چین یا Blockchain Trilemma که به لزوم ایجاد تعادل میان غیرمتمرکز بودن، امنیت و مقیاسپذیری اشاره دارد، «زمان تا نهایی شدن» یا Time to Finality یکی از معیارهای مهم برای سنجش مقیاسپذیری شبکه محسوب میشود.
زمان تا نهایی شدن (Time to Finality یا TTF) مدتزمان دقیق بین لحظه ارسال یک تراکنش توسط کاربر به شبکه و زمانی است که آن تراکنش بهصورت برگشتناپذیر روی بلاک چین ثبت میشود.
در گذشته، بلاک چینها تراکنشها را بهصورت ترتیبی پردازش میکردند. یعنی هر نود باید تراکنشها را یکییکی و دقیقا به همان ترتیبی که در شبکه قرار گرفته بودند اجرا میکرد. این روش در زمان افزایش شلوغی شبکه به یک گلوگاه جدی تبدیل میشد و باعث افزایش زمان نهایی شدن تراکنشها میشد.
اجرای موازی یا Parallel Execution چیست؟
بلاک چینهای مدرن برای افزایش مقیاسپذیری از مفهوم اجرای موازی یا Parallel Execution استفاده میکنند. در این روش، شبکه تراکنشهایی را که با یک وضعیت مشترک یا یک بخش مشابه از State تعامل ندارند، شناسایی میکند. برای مثال، ارسال توکن از پدرام به نازنین و خرید یک NFT توسط ندا از کیوان به یکدیگر وابسته نیستند و میتوانند همزمان در چند Thread پردازش شوند.
اجرای موازی باعث افزایش چشمگیر ظرفیت پردازش شبکه یا تعداد تراکنشها در هر ثانیه (TPS) میشود و در عین حال زمان نهایی شدن تراکنشها را بسیار پایین نگه میدارد. در نتیجه، شبکه میتواند مقیاسپذیرتر شود بدون اینکه سرعت و تجربه کاربری کاهش پیدا کند.
چند تایید برای نهایی شدن تراکنش کافی است؟
تعداد تاییدهای لازم برای نهایی شدن تراکنش به نوع بلاک چین، ارزش تراکنش و سیاست صرافی یا کیف پول بستگی دارد. یک تایید در بیت کوین یعنی تراکنش در یک بلاک قرار گرفته و با اضافه شدن بلاکهای بعدی، احتمال برگشت آن کمتر میشود.
- ۰ تایید: تراکنش هنوز وارد بلاک نشده و برای مبالغ مهم نباید قابلاعتماد تلقی شود.
- ۱ تایید: تراکنش وارد بلاک شده، اما همچنان احتمال Reorg یا دوبارهسازماندهی زنجیره وجود دارد.
- ۲ تایید: ریسک برگشت تراکنش بسیار کمتر میشود، اما برای تراکنشهای باارزش بالا ممکن است کافی نباشد.
- ۶ تایید: در بیت کوین، این عدد بهطور سنتی برای تراکنشهای مهم و مبالغ بالا بهعنوان سطح محافظهکارانه امنیت در نظر گرفته میشود. همچنین شش بلاک بهطور متوسط حدود یک ساعت زمان میبرد.
نکته مهم این است که تایید با Finality یکی نیست. نهایی شدن در بیت کوین بهصورت احتمالی است و هرچه بلاکهای بیشتری روی تراکنش ساخته شود، احتمال برگشت آن کاهش پیدا میکند. در اتریوم، سازوکار متفاوت است و یک تراکنش زمانی Finalized محسوب میشود که بلاک مربوط به آن در زنجیرهای قرار گرفته باشد که شرایط نهایی شدن اجماع PoS را برآورده کرده است؛ در حال حاضر نهایی شدن کامل اتریوم حدود ۱۵ دقیقه طول میکشد.
کلام آخر
نهایی شدن بلاک یکی از مفاهیم اصلی در فناوری بلاک چین است که مشخص میکند یک تراکنش پس از تایید تا چه اندازه دائمی و غیرقابلبرگشت است. این ویژگی نقش مهمی در امنیت شبکههای رمزارزی و جلوگیری از فعالیتهایی مانند دوبار خرج کردن دارد.
با توسعه شبکههای بلاک چینی، سازوکارهای اجماع جدید و روشهای متفاوتی برای دستیابی به نهایی شدن نیز ایجاد شدهاند. با این حال، عواملی مانند هاردفورک، تأخیر شبکه، آسیبپذیری قراردادهای هوشمند و حملات ۵۱ درصدی همچنان میتوانند چالشهایی برای نهایی شدن ایجاد کنند. به همین دلیل، درک نحوه رسیدن یک شبکه به نهایی شدن برای شناخت امنیت، عملکرد و میزان اطمینانپذیری آن اهمیت زیادی دارد.