وقتی تراکنشی را روی بلاک چین انجام می دهید، باید منتظر بمانید تا نهایی شود. این تاخیر بسته به مکانیسم اجماع و مکانیسم شبکه به طور کلی می تواند از چند ثانیه تا چند روز متغیر باشد، به این بازه زمانی فاینالیتی (Finality) می گویند. البته نهایی بودن در تجارت مالی سنتی نیز استفاده می شود و مفهومی صرفاً مربوط به بلاک چین نیست. در این مقاله به بررسی نهایی شدن در بلاک چین خواهیم پرداخت. برای آشنایی بیشتر تا انتهای مقاله با ما همراه باشید.
آشنایی با نهایی شدن در بلاک چین
نهایی شدن در بلاک چین یعنی تضمین برگشت ناپذیری و تغییرناپذیری تراکنش های بلاک چین. اگر تا به حال تراکنش انجام داده باشید، متوجه شده اید که تراکنش در کیف پول یا حساب صرافی شما ظاهر نمی شود تا زمانی که تعداد معینی از بلاک ها تأیید شود. این مشکل دقیقا به دلیل وجود مشکلی به نام Finality است. Time to Finality (TTF) یک گزینه مهم برای تخمین و تأیید سرعت بلاک چین است.
در امور مالی سنتی، این مفهوم به معنای تسویه مبالغ تلقی می شود. این یک سوال حیاتی است؛ زیرا هر چه مدت زمان بیشتری طول بکشد تا یک تراکنش تسویه شود، احتمال وقوع خطرات و اقدامات مخرب مختلف از سوی عوامل مخرب بیشتر است.
فاینالیتی تسویه معاملات، تضمین می کند که معاملات در نهایت در نقطه ای کامل می شوند و به ما آرامش می دهد که مطمئن هستند؛ این عاملی است که اعتماد کاربران را به میزان قابل توجهی افزایش می دهد. آیا می توانید به بانکی اعتماد کنید که به راحتی به تاریخچه تراکنش شما دسترسی داشته باشد و آن را ویرایش کند؟ بنابراین مقصود معادل قطعیت کامل عملیات و عدم امکان برگشت پذیری است. بنابراین حتی خود بانک نیز نمی تواند چیزی را تغییر دهد.
همچنین شایان ذکر است که زنجیره بلاکی که تعداد زیادی از تراکنشها را در یک بلاک میزبانی میکند، ممکن است TPS بالایی (تراکنش در ثانیه) داشته باشد اما این مشکل لزوماً به معنای سریع بودن این بلاک چین از نظر کاربر نیست. همچنین به یاد داشته باشید که تراکنش ها را نمی توان نهایی در نظر گرفت فقط به این دلیل که در بلاک های جدید تأیید شده اند.
انواع نهایی شدن در بلاک چین
مفهوم نهایی شدن در بلاک چین کمی متفاوت از آن چیزی است که به نظر می رسد. از آنجایی که هیچ واسطه ای در بلاک چین وجود ندارد، ما به چیزی نیاز داریم که ما را از برگشت ناپذیری و تکمیل تراکنش ها آگاه کند. ما می دانیم هنگامی که یک بلاک به بلاک چین اضافه می شود، نمی توان آن را اصلاح یا لغو کرد. کاربر باید صبر کند تا تعداد معینی از بلاک ها تایید شود که نشان دهنده تکمیل تراکنش است.
انواع نهایی سازی به طور کلی بر اساس مکانیسم اجماع طبقه بندی می شوند. علاوه بر این، بلاک چین های لایه دو مکانیسم نهایی سازی متفاوتی دارند. در ادامه در مورد انواع هدف کمی توضیح می دهیم.
فاینالیتی در شبکههای اثبات کار (PoW)
در شبکههای PoW، زمانی که بلاکهای بیشتری ایجاد میشوند، نهایی شدن در بلاک چین به دست میآید. معکوس کردن پرداخت های انجام شده در بلاک های قدیمی دشوار است. بنابراین با عمیقتر شدن تراکنشها (یعنی بلاکهای جدید ایجاد میشوند)، احتمال بازگرداندن تراکنش کمتر میشود. در اثبات کار با مفهومی به نام طولانی ترین یا سنگین ترین زنجیره سروکار داریم. در این مکانیسم، زمانی که ماینرها یک بلاک را استخراج می کنند، آن را به طولانی ترین زنجیره موجود اضافه می کنند. این موضوع یادآور این است که در هر زمان ممکن است بیش از یک کانال وجود داشته باشد. در چنین شرایطی، زنجیره را می توان به دو فورک مختلف و بلاک های معدنی مختلف برای ماینرها به طور همزمان در هر زنجیره تقسیم کرد.
هنگامی که دو ماینر یک بلاک واحد را به طور همزمان منتشر می کنند، دو مسیر مجزا ایجاد می شود. در این شرایط، هر دو فورک به اعتبارسنجی بلاک ها ادامه می دهند و بلاک های جدید به زنجیره ها اضافه می شوند. بلاک های جدید به شبکه اضافه می شوند تا زمانی که یک زنجیره از دیگری طولانی تر شود. زمانی که طولانی ترین زنجیره شناسایی شد، رسما پذیرفته می شود. به این ترتیب تراکنش های کوتاه ترین زنجیره رد می شود. البته این امکان نیز وجود دارد که تراکنش های رد شده در کوتاه ترین زنجیره، در بلاک های زنجیره های دیگر قرار گیرند. زنجیره بلند، زنجیره ای است که دارای معتبرترین بلاک ها است. در مورد بیت کوین، کاربران باید 6 بلاک منتظر بمانند تا تراکنش کامل شود که حدود یک ساعت طول می کشد. پس از این مدت، هدف در این شبکه محقق خواهد شد. در شبکه های مبتنی بر زنجیره (مانند بیت کوین) از اصطلاح نهایی بودن احتمالی نیز برای این مدل نهایی استفاده می شود.
فاینالیتی در شبکه های اثبات سهام(Pos)
بلاک چین هایی که بر اساس اثبات سهام کار می کنند مکانیسم های مختلفی برای دسترسی به نهایی دارند. Proof of Stake را می توان به روش های مختلفی مانند DPoS، PoA یا موارد دیگر پیاده سازی کرد که بسته به مکانیسم هر کدام نیز می توانند به هدف خود دست یابند. در اتریوم، نهایی بودن به معنای اطمینان از این است که یک بلاک نمیتواند بدون سوزاندن حداقل 33 درصد از کل اتر موجود، اصلاح یا حذف شود. در این شبکه با مفهومی به نام SSF روبرو هستیم که مخفف Single Slot Finality و به معنای نهایی بودن در یک اسلات است. در اتریوم، 15 دقیقه طول می کشد تا هر بلاک نهایی شود و مفهوم SSF به این موضوع اشاره دارد که به جای 15 دقیقه انتظار، می توان بلاک ها را در همان اسلات ارائه و نهایی کرد.
اتریوم به این سوال پاسخ داد که چرا نهایی سازی سریعتر اهمیت دارد. با افزایش فاصله بین پیشنهاد بلاک و نهایی، مهاجم می تواند برخی از بلاک ها را سانسور کرده یا MEV را استخراج کند. زمان تکمیل کوتاهتر نیاز به قدرت محاسباتی بالاتر برای هر گره دارد زیرا فرآیند تایید بلاک باید سریعتر باشد.
در چنین مکانیزمی، نهایی شدن در بلاک چین زمان می برد. دلیل آن این است که اعتبارسنجی هایی که دو سوم اترهای موجود در شبکه را نمایندگی می کنند باید به بلاک (تأیید) رای دهند تا این بلاک، نهایی در نظر گرفته شود. هر گره اعتبارسنجی باید گره های دیگر را بررسی کند تا ببیند آیا به این دو سوم رسیده اند یا خیر. برای معکوس کردن یک بلاک کامل شده، مهاجم باید حداقل یک سوم اترهای استیک شده خود را از دست بدهد. چون گفتیم نهایی شدن نیاز به دو سوم آرای اکثریت اعتباردهنده دارد و اگر مهاجمی بخواهد از این مشکل جلوگیری کند باید حداقل نیمی از آن دو سوم را در وسط قرار دهد.
نهایی بودن در شبکه های اثبات سهام، قطعیت مطلق نیز نامیده می شود که بر اساس تحمل خطای عملی بیزانسی (pBFT) است. در این سیستم ها به محض اعتبارسنجی بلاک و تراکنش ها، قطعیت حاصل می شود.
فاینالیتی در لایه دوها
راهکارهای لایه 2 نیز بسته به مکانیسمی که استفاده می کنند، روش متفاوتی دارند. Rollup ها با گروه بندی تراکنش ها در یک گروهی از بلاک ها کار می کنند. این بلاکی است که به بلاک چین اضافه می شود. اکنون، برای تکمیل تراکنشها با سرعت بالا، باید از تکنیکهای رمزگذاری خاص مانند Snark یا اثبات دانش صفر استفاده کنند. هنگامی که تراکنش ها خارج از زنجیره پردازش می شوند، زمان مورد نیاز برای تایید بلاک ها کاهش می یابد. به جای اینکه منتظر بمانید تا یک بلاک به زنجیره اضافه شود، نتایج تراکنش تقریباً بلافاصله در زنجیره اصلی منتشر می شود. این مشکل به عنوان نهایی شدن سریع در رول آپ ها شناخته می شود که یکی از ویژگی های کلیدی این فناوری است.
برای کاهش زمان تا نهایی شدن، شبکه آربیتروم از اعتبارسنجی برای تایید تراکنش های خود استفاده می کند؛ یعنی به جای اینکه منتظر بمانیم تا بلاک استخراج و به زنجیره اضافه شود، تعدادی اعتبارسنجی برای پردازش تراکنش ها و ارسال نتیجه به زنجیره اصلی انتخاب می شوند. به طور معمول، در لایه دو که از rollup استفاده می کند، تراکنش ها باید منتظر بمانند تا در نهایت از لایه دو به لایه یک منتقل شوند. در واقع، به اصطلاح نهایی بودن در لایه دو، مدت زمان انتقال از لایه دو به لایه پایه است. در شبکه ای مانند متیس که از جمع آوری های خوش بینانه استفاده می کند، این زمان طولانی تر است که به دلیل مکانیسم این جمع بندی ها است.
در چنین مکانیزمی با استفاده از اثبات خطا (که قبلاً به عنوان اثبات تقلب شناخته می شد)، کاربران باید منتظر دوره آزمایشی باشند که حدود هفت روز طول می کشد. در مجموعه های خوش بینانه، فرض بر این است که بازیگران صادق و دارای صداقت هستند مگر اینکه خلاف آن ثابت شود. در طول این دوره هفت روزه، کاربران میتوانند نتایج تراکنش یک جمعآوری را به چالش بکشند. در صورت موفقیت آمیز بودن اثبات خطا، تراکنش مذکور حذف شده و تراکنش صحیح دیگری جایگزین می شود. این کار برای حفظ امنیت شبکه و اطمینان از صحت فرآیند تایید تراکنش انجام می شود.
در شبکه هایی که از جمع آوری دانش صفر استفاده می کنند، سرعت نهایی سازی بلاک بسیار بالاتر است. در شبکه های مبتنی بر دانش صفر، تراکنش های لایه دو در صورتی نهایی تلقی می شوند که قرارداد لایه یک اثبات اعتبار را بپذیرد. در چنین شبکه هایی اعتبارسنجی از طریق Validity Proof انجام می شود که برای اثبات صحت یک تراکنش به زمان بسیار کمتری نیاز دارد، دلیل آن تفاوت این دو رولاپ است. در حالی که در مکانیسم خوش بینانه، نیازی به ارسال همه این داده ها نیست؛ این موضوع زمان اعتبارسنجی را کاهش می دهد.