برچسب زمانی چیست؟ معرفی Timestamp در شبکه بلاکچین
در هنگام ذخیره سازی داده، فاکتور زمان اهمیت بسیار بالایی دارد؛ برای مثال فرض کنید شما یک اختراعی را ثبت کردید، اگر زمان ثبت اختراع مشخص نباشد، فرد دیگری میتواند همان اختراع را ثبت کرده و ادعای مالکیت کند. از آنجایی که بلاکچین نوعی پایگاه داده است و دادههای زیادی در آن ذخیره میشوند، پس فاکتور زمان اهمیت بالایی در این فناوری دارد. برچسب زمانی (Timestamp) در بلاکچین مسئولیت ثبت زمان را بر عهده دارد. اما کاربرد و اهمیت Timestamp چیست؟ نبود تایم استمپ چه آسیبی میتواند به امنیت و ساختار بلاکچین وارد کند؟
در ادامه این مقاله با والکس همراه باشید تا به صورت کامل با برچسب زمانی آشنا شده و به کاربردهای آن در حوزه بلاکچین بپردازیم.
برچسب زمانی به زبان ساده
برچسب زمانی شمارندهای بر حسب ثانیه است که مسئولیت نمایش زمان انجام یک رویداد را بر عهده دارد. تایم استمپ از ۵۰ سال گذشته تا به امروز کاربردی گسترده در نرم افزارهای کامپیوتری داشته است و از نظر پردازشی و حفظ امنیت اهمیت بالایی دارد. در گذشته Timestamp توسط نهادهایی مشخص و به صورت متمرکز مدیریت میشدند و کاربران برای اطمینان حاصل کردن از زمان مشخص شده در تایم استمپ باید به یک سازمان متمرکز اعتماد میکردند. اما با ورود تایم استمپ به فضای غیرمتمرکز بلاکچین، نیاز به اعتماد کردن به یک سازمان متمرکز از بین رفته است؛ در بلاکچین زمان دادهها به صورت کاملاً غیرمتمرکز تعیین میشوند. مدیریت برچسب زمانی در بلاکچین توسط تعداد زیادی گره غیرمتمرکز انجام میشود. در ادامه به timestamp در بلاکچین خواهیم پرداخت.
برچسب زمانی در بلاکچین
برچسب زمانی یکی از دادههای مهمی است که در هدر بلاک ذخیره میشود. این شاخص با ذخیره شدن در بلاکها، زمان ایجاد و اضافه شدن آنها به شبکه بلاکچین را ثبت میکند؛ علاوه بر آن زمان تایید و اضافه شدن یک تراکنش به بلاک را نیز نمایش میدهد. اما بلاکچین متشکل از تعداد زیادی گره غیر متمرکز توزیع شده در سرتاسر دنیا است که هر کدام ساعت بومی خود را دارند و از این نظر با یکدیگر سازگار نیستند. بلاکچین برای حل این مشکل، زمان ارائه شده توسط تمام گرهها را دریافت میکند و با تنظیم آنی دریافتی، اقدام به یکپارچه سازی زمان برای گرهها میکند. به این منظور که تمام گرهها به یک زمان واحد متصل میشوند و اختلاف زمان بومی خود با آن را محاسبه و با توجه به آن، به ذخیره سازی داده میپردازند. برچسب زمانی در بلاکچین از تکرار بلاکها جلوگیری و روند ثبت دادهها را سازماندهی میکند.
البته در نظر داشته باشید که تایم استمپ میتواند کمی اختلاف زمانی داشته باشد. گرههای بلاکچین گاهی در پردازش کل دادههای شبکه تاخیر دارند و ممکن است دو گره برای همگامسازی دادههای خود با یکدیگر با کمی تاخیر مواجه شوند. به همین دلیل تایم استمپ ممکن است یک الی دو ساعت تاخیر داشته باشد اما به هیچ وجه نباید از زمان بلاکچین جلوتر باشد (بدیهی است که هیچ ماینری نمیتواند بلاک را در زمان آینده ایجاد کرده باشد). برچسب زمانی در بلاکچین کاربردهای گستردهای دارد که در ادامه به آن خواهیم پرداخت.
کاربردهای برچسب زمانی در فناوری بلاکچین
تایم استمپ کاربردهای متنوعی در فناوری بلاکچین دارد که عمده آن در راستای افزایش امنیت است. در ادامه به سوال کاربردهای Timestamp چیست پاسخ خواهیم داد.
اهمیت تایم استمپ در تعیین سختی استخراج شبکه
بلاک در بلاکچین اهمیت بسیار بالایی دارد و مدت زمان مورد نیاز برای ایجاد شدن یک بلاک، فاکتور بسیار مهمی در تداوم فعالیت بلاکچین است. در بلاکچین بیتکوین با ایجاد یک بلاک جدید، مقداری بیت کوین ضرب شده و به عنوان پاداش به ماینر آن بلاک پرداخت میشود. در صورتی که توان پردازشی ماینرها افزایش یابد، بلاکها سریعتر و در مدت زمان کمتری ایجاد خواهند شد؛ از آنجایی که با ایجاد هر بلاک جدید مقداری ارز به عرضه در گردش افزوده میشود این موضوع میتواند باعث افزایش عرضه بیت کوین شود. در مقابل اگر تعداد یا توان عملیاتی ماینرها کاهش بیابد، سرعت ایجاد بلاکها کاهش مییابد و میتواند باعث ایجاد اختلال در تداوم روند شبکه شود. در نتیجه کنترل و ثابت نگه داشتن زمان مورد نظر برای ایجاد بلاکها اهمیت بالایی دارد.
ساتوشی ناکاموتو خالق ناشناس بیت کوین در راستای ثابت نگه داشتن مدت زمان ایجاد بلاکها، مکانیزم تنظیم هش ریت را طراحی کرد. در بلاکچین بیت کوین شاخصی به نام سختی استخراج شبکه (Hash Rate) وجود دارد که میزان سختی و توان عملیاتی مورد نیاز برای استخراج بلاکها را تعریف میکند. این مکانیزم توان عملیاتی شبکه را میسنجد و با توجه به آن سختی شبکه را تنظیم میکند؛ سختی شبکه در صورت افزایش توان عملیاتی، افزایش مییابد و در صورت کاهش آن، کاهش مییابد. با انجام این کار توان عملیاتی با سختی شبکه متناسب میشوند و زمان ایجاد بلاکها تقریباً ثابت میماند.
با ایجاد هر ۲۰۱۶ بلاک جدید (تفریباً دو هفته یک بار)؛ شبکه مدت زمان ایجاد این بلاکها و توان عملیاتی ماینرها را بررسی کرده و سختی شبکه را مجدد تعیین میکند. بررسی سرعت ایجاد بلاکهای قبلی با توجه به زمان مشخص شده توسط تایم استمپ انجام میشود و در نتیجه میتوان گفت برچسب زمانی تاثیر مستقیم در تعیین سختی استخراج شبکه و البته حفظ پایداری شبکه دارد. (ما در این مقاله بیت کوین را مثال زدیم اما این موضوع در اکثر بلاکچینها مخصوصاً بلاکچینهایی که بر پایه اثبات کار هستند وجود دارد)
اهمیت تایم استمپ در جلوگیری از دوبار خرج کردن
قبل از بیت کوین نیز پروژههایی در راستای راهاندازی پول دیجیتال ایجاد شده بودند. اما موفقیت بیت کوین به این دلیل بود که با استفاده از فناوری بلاکچین توانست مشکل دوبار خرج کردن را رفع کند. دوبار خرج کردن زمانی رخ میدهد که کاربر یک دارایی ثابت را دو بار خرج کند؛ برای مثال یک اسکناس ۵۰ هزار تومانی ثابت را یک بار برای خرید قهوه و همان اسکناس را بار دیگر برای خرید شیرینی خرج کند. بیت کوین این مشکل را با ایجاد دفتر کل توزیع شده (DLT) رفع کرد و Timestamp یکی از مهمترین فاکتورهای موجود در این دفتر میباشد.
تایم استمپ زمان تایید یک تراکنش را مشخص میکند؛ به این معنی که اگر کاربر یک میزان دارایی را طی یک تراکنش خرج کند زمان انجام آن توسط برچسب زمانی ثبت میَشود و کاربر بعد از آن نمیتواند با ایجاد یک تراکنش دیگر ادعا کند دارایی را به آدرس دیگری ارسال کرده است. در نتیجه برچسب زمانی در حفظ امنیت شبکه نیز اهمیت بالایی دارد.
اهمیت تایم استمپ در HTLC ها
در حوزه بلاکچین نوعی قرارداد هوشمند وجود دارد که در زمان معینی اجرا میشود؛ به این نوع قراردادها HTLC) Hashed Time lock contract) به معنای قرارداد رمزنگاری شده زمان دار گفته میشود. این نوع قراردادها در شرایطی که یک فرایند تنها در یک زمان معین باید انجام شود استفاده میشوند؛ برای مثال در اتمیک سواپها (تبادلاتی که در آن دو کاربر دو رمزارز از دو بلاکچین مختلف را به صورت کاملاً غیرمتمرکز با یکدیگر معامله میکنند) کیف پولهایی ایجاد میشوند که تنها در مدت زمان معینی معتبر هستند. مدیریت زمان این نوع قراردادها یکی دیگر از کاربردهای برچسب زمانی است.
چالش پیش رو بلاکچین بیت کوین در رابطه با برچسب زمانی
برچسب زمانی یک عدد بر حسب ثانیه است که در اکثر رمزارزها از جمله بیت کوین این میزان نسبت به سال ۱۹۷۰ میلادی شمارش میشود (برای اطلاع از میزان فعلی آن میتوانید به این لینک مراجعه کنید). در برنامه نویسی عدد صحیح را در یک متغیر از نوع int ذخیره میکنند؛ یک متغیر int از نوع ۳۲ بیتی تنها ظرفیت ذخیره سازی تا عدد ۲۱۴۷۴۸۳۶۴۷ را دارد. بلاکچین بیت کوین همانند تعداد زیادی از نرم افزارهای دیگر برای ذخیره سازی برچسب زمانی از یک متغیر ۳۲ بیتی از نوع int استفاده میکند. در سال ۲۰۳۸ و در تاریخ ۱۹ ژانویه میزان تایم استمپ استاندارد به عدد ۲۱۴۷۴۸۳۶۴۷ خواهد رسید و بعد از آن دیگر ظرفیتی برای افزایش و تداوم این میزان وجود نخواهد داشت. به همین دلیل این تاریخ به یک چالش سراسری برای اکثر نرم افزارها و سیستمهای کامپیوتر تبدیل شده است. البته از آنجایی که متغیر استفاده شده در بیت کوین اعداد منفی را در بر نمیگیرد این مشکل در بیت کوین در سالهای جلوتری پیش خواهد آمد اما در هر صورت رفع این مشکل یکی از چالشهای پیش رو برای اکثر بلاکچینها از جمله بیت کوین است!
گام قبلی (۱۳/۲۷) گام بعدی