برچسب زمانی (Timestamp) چیست؟
برچسب زمانی یا Timestamp، داده کوچکی است که در هر بلوک به عنوان یک سریال منحصر به فرد ذخیره میشود. وظیفه اصلی این برچسب زمانی، تعیین لحظه دقیق استخراج و اعتبارسنجی بلوک توسط شبکه بلاکچین است.
تمرکز زدایی یکی از جنبههای بنیادی فناوری بلاکچین است. البته به این معناست که هر کسی، در هر نقطهای از جهان، میتواند به شبکه اضافه شود و قادر خواهد بود در آن فعالیت کند. این امر به نوبه خود باعث میشود که هیچ کد زمانی جهانی وجود نداشته باشد و ما میتوانیم از هر منطقه زمانی و با تایم زون متفاوت، متصل شویم. ذکر این نکته ضروری است که برچسب زمانی با توجه به پارامترهای مختلف محاسبه میشود. برای آشنایی بیشتر با این مبحث، این مقاله را مطالعه نمایید.
مفهوم برچسب زمانی
پارامتر زمانی، یا همان timestamp، بر اساس یک تنظیم لحظهای است که از حد فاصل برچسبهای زمانیای استفاده میکند که توسط همه گرههای شبکه بازگردانده شدهاند. این موضوع به دلیل شکل غیرمتمرکز آن میباشد و به دنبال این است که گرههای شبکه را تا حد امکان هماهنگ نگه دارد.
شرایط برچسب زمانی معتبر: بیشتر از میانگین برچسبهای زمانی ۱۱ بلاک قبلی و کمتر از زمان تنظیم شده در شبکه، به علاوه ۲ ساعت اضافی باشد؛ در نتیجه دقیق نیستند و نیازی هم به این مورد نیست.
همچنین باید در نظر داشته باشیم که زمان تنظیم شده در شبکه که توسط برچسبهای زمانی مشخص میشوند، دقیق نیستند که دلیلش این است که آنها لزوماً نباید به ترتیب باشند. با این حال، آنها هنوز هم دقت نسبی بین یک تا دو ساعت را ارائه میدهند. در واقع، هنگام اتصال یک نود به نود دیگر، برچسب زمانی آن را میخواند و اختلاف زمانی خود را بر حسب زمان UTC تنظیم میکند؛ در نتیجه زمان تنظیم شده کل شبکه همان ساعت فعلی بر حسب UTC به علاوه اختلاف زمانی گرهها است که این اختلاف نباید بیشتر از ۷۰ دقیقه نسبت به زمان مرجع یا همان UTC باشد.
این کار باعث میشود یک تنظیم بین زمان گره محلی با جابجایی تمام گرههایی که به شبکه متصل هستند، ایجاد شود و اجازه میدهد تا زمان شبکه به طور مداوم تنظیم شود. در نهایت از دستکاری جلوگیری کرده و معمولاً با تغییرات زمانی جزئی نسبت به شکاف زمانی انجام میشود. دلیل استفاده از این پروسه این است که ممکن است نرخهای ساعتی و تکرارهای زیادی وجود داشته باشد که باعث به وجود آمدن مشکلات دیگری شود.
اجرای برچسب زمانی باعث میشود که تکرار بلاک در آینده غیرممکن شود، زیرا علاوه بر زمان، تاریخ ایجاد بلوک نیز ذخیره میشود. بنابراین امکان تکرار هش یک هفته، دو ماه پیش و یا یک سال پیش وجود ندارد.
به طور خلاصه، وظیفه برچسب زمانی تنها مشخص کردن زمان بلاک نیست؛ بلکه تغییرات هش ریت را نیز نشان میدهد و نقش امنیتی را در زنجیره بلوک ایفا میکند که از بلاکچین در برابر عوامل مخرب و دستکاری توسط آنها محافظت میکند.
برچسب زمانی بلاکچین برای چه مواردی استفاده میشود؟
یکی از کاربردهای اصلی برچسب زمانی تعیین پارامترهای فرآیند استخراج است. این موضوع به این دلیل است که این برچسبهای زمانی به گرهها اجازه میدهند تا سختی استخراج را برای استفاده در هر دوره تولید بلوک، به درستی تنظیم کنند. این برچسبهای زمانی در تعیین مدت زمان استخراج بلوکها برای یک دوره معین و همچنین تنظیم پارامتر سختی استخراج، به شبکه کمک میکند.
شاید به این فکر کنید که احتمالا این کار میتواند راه را برای ماینرها باز کند تا به منظور کاهش سختی، زمان را دستکاری کنند! با این وجود، ساتوشی ناکاموتو این مسئله را پیشبینی کرده و برنامهریزی شبکه را به نحوی انجام داده که گرهها، بلوکهایی را که خارج از محدوده زمانی مشخصی بر اساس زمان ساعت داخلی خودشان هستند، نادیده بگیرند. در نتیجه، اگر یک ماینر سعی در انجام این کار داشته باشد، تمام کار ناشی از استخراج خود را از دست میدهد.
از سوی دیگر، در وایت پیپر بیت کوین، ناکاموتو یکی دیگر از عملکردهای برچسب زمانی را، ایجاد مکانیزمی برای جلوگیری از دوبار خرج کردن (double spending) تعریف کرده است.
TimeStamp در بیت کوین و امنیت آن
در بیت کوین، هر بلوک حاوی یک برچسب زمانی نوع Unix میباشد که این علامت به عنوان منبع تغییر در هش بلوک و جلوگیری از دستکاری آن عمل میکند. استفاده از برچسب زمانی نوع Unix، یک مشکل برای بیت کوین است، زیرا برچسبهای زمانی نوع یونیکس این قابلیت را دارند که دورههای زمانی را تا سال ۲۰۳۸ نمایش دهند. برای حل این مشکل، ساتوشی ناکاموتو سیستم برچسب زمانی را برنامهریزی کرد تا از این شکست جلوگیری کند و آن را تا سال ۲۱۰۶ به تعویق بیاندازد.
دلایل استفاده از برچسب زمانی بیت کوین:
محاسبه سختی شبکه و هم چنین شناسایی تغییرات هش ریت بلاک
اگر برچسب زمانی وجود نداشته باشد، نودها نمیتوانند متوجه سختی شبکه شوند زیرا نمیدانند استخراج بلاکهای قبلی چه مقدار طول کشیده است.
انجام تراکنشهای تایم لاک
با وجود امنیتی که برچسبهای زمانی دارند، نمیتوان گفت که مصون از خطا هستند. همانطور که قبلا ذکر کردیم، یک ماینر میتواند برنامه تیم خود و بلوکها را با برچسب زمانی کمتر تغییر دهد. این حمله شناخته شده است و نامTime Warp Attack را دارد.
حمله انحراف زمانی
Time Warp Attack زمانی اتفاق میافتد که یک ماینر برچسبهای زمانی نادرستی را روی بلوکهایی که استخراج کرده گزارش میکند تا سختی کمتری ایجاد کند. بسیاری از رمز ارزها مانند بیت کوین به صورت دورهای سختی را با توجه به نرخ تولید بلاک تنظیم میکنند. بنابراین، تولید بلاکها در مقدار تعیین شده حفظ میشود که برای بیت کوین در هر بلوک برابر با ۱۰ دقیقه است.
بنابراین با گزارش برچسبهای زمانی نادرست، یک ماینر میتواند الگوریتم سختی را فریب دهد و آن را کاهش دهد که در نهایت به شما امکان میدهد بلاکها را سریعتر استخراج کرده و درآمد بیشتری کسب کنید. این امر، بر اقتصاد رمز ارز تأثیرات منفی میگذارد، زیرا نرخ تورم را افزایش میدهد که باعث افزایش عرضه و در نهایت منجر به کاهش قیمت شود. با این حال، در حال حاضر به دلیل سختی بالای استخراج در بیت کوین، احتمال انجام آن در بیت کوین بسیار کم است و احتمال انجام این نوع حمله را کاهش میدهد.