وانفینکس

ارتفاع بلاک (Block Height)

11 آبان 1405

318

زمان تقریبی مطالعه: 3 دقیقه

ارتفاع بلاک شماره‌ای است که جایگاه یک بلاک را در زنجیره نشان می‌دهد. در بلاک چین، شمارش از بلاک آغازین، یا جنسیس، با ارتفاع صفر شروع می‌شود. بلاکی که پس از آن قرار می‌گیرد ارتفاع یک دارد و هر بلاک بعدی در همان شاخه، عددی یک واحد بزرگ‌تر از بلاک پیش از خود می‌گیرد. بنابراین ارتفاع یک بلاک برابر است با تعداد بلاک‌هایی که پیش از آن در مسیر زنجیره قرار دارند.

این عدد به کاربر کمک می‌کند جایگاه یک بلاک یا تراکنش را در تاریخچه زنجیره پیدا کند. با این حال، ارتفاع به‌تنهایی نمی‌گوید بلاک چه زمانی ساخته شده، چه تراکنش‌هایی در آن ثبت شده‌اند یا آیا همان بلاک هنوز در شاخه پذیرفته‌شده شبکه قرار دارد. برای فهمیدن این موارد باید اطلاعات خود بلاک و وضعیت زنجیره را نیز بررسی کرد.

advertise blog post start

ارتفاع بلاک چگونه تعیین می‌شود؟

هر بلاک به بلاک پیش از خود ارجاع می‌دهد. وقتی بلاک تازه‌ای به انتهای یک شاخه افزوده می‌شود، ارتفاعش یک واحد بیشتر از ارتفاع بلاک والد است. برای نمونه، اگر ارتفاع والد ۳۲۰ باشد، ارتفاع بلاک بعدی ۳۲۱ خواهد بود. این شمارش به مقدار دارایی جابه‌جا شده یا تعداد تراکنش‌های داخل بلاک بستگی ندارد؛ جایگاه بلاک در زنجیره آن را تعیین می‌کند.

وقتی از «ارتفاع فعلی شبکه» صحبت می‌شود، معمولاً منظور ارتفاع آخرین بلاک در زنجیره‌ای است که آن سامانه پذیرفته است. برای مثال، اگر آخرین بلاک ارتفاع ۳۲۱ داشته باشد، شمار بلاک‌ها از ارتفاع صفر تا ۳۲۱ برابر ۳۲۲ است. پس ارتفاع آخرین بلاک و تعداد کل بلاک‌های آن مسیر، با وجود نزدیکی معنایی، یک عدد نیستند.

گاهی دو بلاک متفاوت تقریباً هم‌زمان پس از یک بلاک ساخته می‌شوند. هر دو می‌توانند ارتفاع یکسان داشته باشند، چون هر دو در یک جایگاه از دو شاخه قرار گرفته‌اند. سپس شبکه بر پایه قواعد خود یکی از شاخه‌ها را دنبال می‌کند. در چنین وضعی، عدد ارتفاع برای شناسایی یکتای بلاک کافی نیست و باید شناسه یا هش خود بلاک را نیز دید. این نکته هنگام مقایسه اطلاعات چند مرورگر بلاک یا چند گره اهمیت دارد.

یک مثال ساده

فرض کنید در یک زنجیره فرضی، تراکنش شما داخل بلاکی با ارتفاع ۵۰ ثبت شده است. همان لحظه که ارتفاع آخرین بلاک پذیرفته‌شده نیز ۵۰ است، آن تراکنش یک تأیید دارد. اگر بلاک بعدی به همین شاخه افزوده شود و ارتفاع آخرین بلاک به ۵۱ برسد، شمار تأییدهای تراکنش به دو می‌رسد. در این مثال، با فرض ماندن تراکنش در شاخه پذیرفته‌شده، می‌توان شمار تأییدها را از تفاضل ارتفاع آخرین بلاک و ارتفاع بلاک تراکنش، به‌اضافه یک، به دست آورد.

حالا فرض کنید به دلیل ایجاد دو شاخه، بلاک دیگری نیز در ارتفاع ۵۰ دیده شود. دیدن عدد ۵۰ به‌تنهایی ثابت نمی‌کند تراکنش شما در بلاکی قرار دارد که شبکه اکنون دنبال می‌کند. برای بررسی درست باید خود بلاک، شاخه‌ای که در آن قرار دارد و وضعیت فعلی تراکنش را مشاهده کنید. این مثال همچنین نشان می‌دهد چرا یک تأیید، به‌خصوص نزدیک انتهای زنجیره، به معنای حذف کامل احتمال تغییر تاریخچه نیست.

کاربردهای عملی

یکی از کاربردهای ارتفاع بلاک، پیگیری ثبت و تأیید تراکنش است. کاربر می‌تواند با هش تراکنش، بلاک مربوط به آن را پیدا کند و ارتفاع آن را با ارتفاع آخرین بلاک مقایسه کند. اگر تراکنش هنوز در بلاکی ثبت نشده باشد، ارتفاع بلاکی هم برای آن وجود ندارد. پس از ثبت، افزایش ارتفاع زنجیره می‌تواند شمار تأییدهای آن تراکنش را بیشتر کند، به شرط آنکه بلاک همچنان در شاخه پذیرفته‌شده باقی بماند.

توسعه‌دهندگان و گردانندگان گره نیز از ارتفاع برای مشخص کردن نقطه‌ای در تاریخچه زنجیره استفاده می‌کنند. برای نمونه، می‌توانند بگویند یک گره تا چه ارتفاعی بلاک‌ها را دریافت و بررسی کرده است یا داده‌های یک بازه مشخص از بلاک‌ها را واکشی کنند. ارتفاع در این کاربرد، نشانی یک جایگاه است و جای بررسی اعتبار داده‌ها را نمی‌گیرد.

ارتفاع بلاک در توضیح بعضی قواعد شبکه هم به کار می‌رود؛ برای مثال، ممکن است اجرای یک قاعده از بلاکی با ارتفاع مشخص آغاز شود. معنای عملی چنین عددی به همان شبکه و مکانیزم اجماع آن بستگی دارد. به همین دلیل، هنگام خواندن یک ارتفاع باید نام شبکه را هم بدانید. ارتفاع ۵۰۰ در دو زنجیره جداگانه، به یک بلاک مشترک اشاره نمی‌کند.

محدودیت‌ها و نکات خواندن ارتفاع

ارتفاع، زمان‌سنج دقیق نیست. فاصله زمانی میان بلاک‌ها می‌تواند تغییر کند؛ بنابراین از تفاوت ارتفاع دو بلاک نمی‌توان بدون اطلاعات بیشتر، مدت‌زمان دقیق میان آن‌ها را نتیجه گرفت. ارتفاع همچنین وضعیت قطعی یک پرداخت را به‌تنهایی نشان نمی‌دهد. برای ارزیابی یک تراکنش باید دید در کدام بلاک قرار گرفته، آن بلاک در کدام شاخه است و چند بلاک پس از آن در همان شاخه افزوده شده‌اند.

دو گره یا دو سرویس ممکن است برای مدتی ارتفاع آخرین بلاک متفاوتی نشان دهند، زیرا اطلاعات بلاک‌ها را در زمان‌های متفاوت دریافت کرده‌اند یا شاخه‌های متفاوتی را می‌بینند. اگر چنین اختلافی دیدید، شناسه آخرین بلاک و شاخه گزارش‌شده را کنار عدد ارتفاع بررسی کنید. ارتفاع برای یافتن جایگاه بلاک و دنبال کردن پیشرفت زنجیره مفید است، اما به‌تنهایی شناسه یکتا یا گواه اعتبار یک بلاک نیست.

آیا مطالعه این مقاله برای شما مفید بود؟!

advertise blog post end