الگوریتم اثبات تاریخ (Proof of History) یکی از انواع الگوریتمهای اجماع در بلاک چین است که شبکه سولانا (Solana) آن را توسعه داده است. این الگوریتم اثبات برای رفع مشکل صحت و درستی برچسبهای زمانی در یک شبکه توزیعشده ساخته شد. و این مقاله بخشی از مجموعه مقالات پیرامون انواع الگوریتم اجماع در بلاک چین است.
پیشتر الگوریتمهای اثبات کار و اثبات سهام که بیشترین کاربرد را در بلاک چینها داشتهاند بررسی کردهایم. این بار نوبت اجماع اثبات تاریخ است. با داموندمگ همراه باشید.
?
اثبات تاریخ (Proof of History) یک توالی رایانشیست که روشی برای تایید رمزنگارانه گذر زمان بین دو رویداد است. این الگوریتم یا گواه از یک تابع امن رمزنگارانه استفاده میکند. این تابع رمزنگارانه طوری نوشته شده که خروجی آن از ابتدا (در هنگام ورود) مشخص نیست و برای ایجاد یک خروجی باید بهطور کامل اجرا شود. تابع بهصورت یک توالی در یک هسته یگانه اجرا میشود و خروجی پیشین آن بهعنوان ورودی جاری قرار میگیرد و بهصورت دورهای خروجی فعلی و تعداد دفعات فراخوانی آن را ثبت میکند.
خروجی هم میتواند با بررسی هر بخش توالی در یک هسته جداگانه، توسط کامپیوترهای جانبی بهصورت موازی محاسبه مجدد و تایید شود. دادهها نیز با چسبیدن به وضعیت تابع، برچسب زمانی میخورند. ثبت وضعیت، شاخص و داده بههمان شکلی که در توالیهای قرار گرفتهاند، برچسبی زمانی ایجاد میکند که نشان میدهد دادهها قبل از ایجاد هش بعدی در توالی ایجاد شدهاند. در واقع این ترتیب قرار گرفتن، صحت دادهها را تایید میکند. این طراحی از مقیاسدهی افقی هم پشتیبانی میکند چون چندین تولیدکننده داده میتوانند با ترکیب وضعیتهای خود در توالیهای دیگران، بین خود همگامسازی ایجاد کنند.
به زبان سادهتر، در اینجا بهجای اعتماد به برچسب زمانی تراکنش، میتوان اثبات کرد که یک تراکنش قبل و بعد از یک رویداد انجام شده است. در واقع اثبات تارخچه یک تابع تاخیر قابلتایید (Verifiable Delay Function یا VDF) با فرکانس بالا است. تابع تاخیر قابلتایید به تعداد مشخصی از مراحل پشت سر هم برای ارزیابی و تولید یک خروجی منحصربهفرد گفته میشود که میتوانند بهصورت عمومی و بهینه مورد تایید قرار بگیرند.
مطلب پیشنهادی داموندمگ: بازارساز خودکار چیست؟ + روشهای کسب درآمد از AMM
?
اجماع اثبات تاریخ ابداع خود بلاک چین سولاناست، سولانایی که ادعای بهترین بودن را دارد. سولانا توانسته در تستنتهای خود با شبکهای متشکل از ۲۰۰ گره مجزا، با استفاده از GPU در هر ثانیه بیش از ۵۰۰۰ تراکنش را پردازش کند.
ساختار داده سولانا پیامها را بهصورت زنجیره درمیآورد. با این کار یک اثبات رمزنگارانه از ترتیب نسبی و زمان هر پیام در سابقه تاریخی به وجود میآید. در این شرایط شبکه ساعتهای محلی را نادیده گرفته و بهتدریج با تحویل و تجمیع مجدد ساختار داده، تمام تاخیرهای شبکه را جبران میکند. به همین دلیل است که سولانا میتواند محدودیتهای زمان تایید را طوری از میان بردارد که تجربهای همانند یک سیستم متمرکز ارائه کند، بدون اینکه ایمنی و تمرکززدایی شبکه را قربانی کند.
همه رویدادها و تراکنشهای سولانا با تابع هش SHA256 هشگذاری میشوند. سولانا با استفاده از این تابع یک ورودی را گرفته و یک خروجی منحصربهفرد تولید میکند که پیشبینی آن بسیار دشوار است. سپس خروجی یک تراکنش را گرفته و از آن بهعنوان ورودی هش بعدی استفاده میکند. بدین ترتیب این زنجیره تراکنش در خروجی هشگذاریشده قرار میگیرد.
این فرایند هشگذاری یک زنجیره بلند و پیوسته از تراکنشهای هشگذاریشده را تولید میکند.
?
مفهوم اثبات تاریخ مقداری دشوار به نظر میرسد و شاید نتوان به این راحتیها نحوه کارش را تصور کرد. پس بیایید با یک مثال بیشتر با آن آشنا شویم.
فرض کنید سه تراکنش الف، ب و ج را داریم. سولانا هرکدام از این تراکنشها را به ترتیب در پروتکل اجماع خود، یعنی اثبات تاریخ اجرا میکند. اثبات تاریخ ورودی تراکنش و ساعت درونی که ترتیب تراکنشها را اندازهگیری میکند لحاظ خواهد کرد، یعنی به شرح زیر:
مطلب پیشنهادی داموندمگ: گس فی اتریوم در چه ساعتی از شبانه روز کمتر است؟
چون همه چی در برچسب زمانی ثابت است، پس یک اندازهگیری عینی داریم. یعنی همه تراکنشها انجام شدهاند و ترتیب تراکنشها نیز قید شده است. اگر تراکنش ب در برچسب زمانی ۰ وارد شده باشد، کل بلاک چین تحت تاثیر قرار میگیرد.
به دلیل امنیت عینی که در اینجا برقرار است، نیازی به دخالت انسان در طول فرایند تایید نیست. همین موجب میشود که فرایند تایید چندین برابر از الگوریتمهای اثبات کار و اثبات سهام سریعتر شود. و دیدیم که سرعت تایید تراکنش در سولانا چقدر است. البته باید اشاره کنیم که الگوریتم اثبات سهام اتریوم قصد دارد تعداد تراکنش بر ثانیه (TPS) را از این مقدار بسیار فراتر ببرد و احتمالاً در آینده به آن دست پیدا میکند.
مثلاً وقتی شما با جلد یک مجله عکس میگیرید و آن را منتشر میکنید، ثابت میکنید که شما بعد از چاپ آن مجله اقدام به گرفتن عکس کردهاید. پس میشود توالی رویدادها را بهخوبی و بدون استفاده از برچسبهای زمانی یا سیستمهای همگامسازی واسطهای انجام داد.
?
دادهها نیز میتوانند با افزودن هش داده به وضعیت ایجادشده پیشین درج شوند. سپس وضعیت، داده ورودی و تعداد آن بهترتیب منتشر میشوند.
?
اگر به مثال مجله که در بالا گفتیم دوباره مراجعه کنیم، میبینیم که اقدام عکس گرفتن توسط کاربران با مجله، به ساختاری دادهای مانند تصویر زیر ختم میشود.
?
آیا اثبات تاریخ یک راهکار مقیاسپذیری و تحول فناورانه است؟
وقتی به اسناد و وایتپیپر سولانا نگاهی بیاندازیم میبینیم که بسیار ناقص و سردرگمکننده هستند. و میتوان نتیجه گرفت که خود سولانا هم مطمئن نیست که الگوریتم اثبات تاریخ برای مقیاسپذیری توان تراکنشها در بلاک چین ضروری است.
اثبات سهام با حذف زمان مورد نیاز برای یک بلاک، تعداد تراکنشها را افزایش میدهد، اما هزینه آن بسیار بالا میرود و به نظر میرسد با آرمان بلاک چین در تضاد است.
الگوریتم اثبات تاریخ پتانسیل بالایی دارد. اما مثل هر الگوریتم اجماع دیگری، نقاط ضعفی دارد. بهعنوان مثال، اگر بخواهید بهعنوان یک تاییدکننده در سولانا مشارکت داشته باشید، باید سختافزار سطح بالایی داشته باشید تا با شرایط سختافزاری سولانا مطابقت داشته باشد. اگر این سختافزارها را نداشته باشید، از اجماع خارج میشوید. همین امر موجب شده که تمرکززدایی سولانا بهشدت محدود شود. مثلاً یک تاییدکننده اثبات سهام با دارا بودن هر سختافزاری اجاره شرکت در اجماع را دارد، و در نتیجه شبکه غیرمتمرکزتر است.
مطلب پیشنهادی داموندمگ: بازی های مبتنی بر سابستریت: حل مشکلات اتریوم در توسعه بازی
اگرچه در سولانا سرعت تراکنشها یک مزیت به حساب میآید، همین سرعت خود به یک مانع تبدیل شده است. دهها هزار تراکنش شبکه سولانا حجم زیادی از داده را تشکیل میدهند. ۱ تراکنش حدود ۲۵۰ کیلوبایت حجم دارد. ۵۰۰۰۰ تراکنش بر ثانیه (با حجم ۲۵۰ کیلوبایتی) معادل ۴۰ پتابایت داده در سال است. این حجم داده را حتی خیلی از شرکتها هم نمیتوانند ذخیره کنند، چه برسد به افراد عادی. پس باید در آینده برای این مشکل راهکاری پیدا شود.
اگر اثبات تاریخ واقعا یک تحول فناورانه بود، محدودیتهای نرمافزاری و سختافزاری را در سولانا اعمال نمیکرد. به زبان ساده، سولانا درمورد توان خروجی تراکنشها بهشدت بهینه است و الگوریتم اثبات تاریخ تنها بخشی از این سیستم بهینه به شمار میرود.
این یعنی چه؟ یعنی این اجماع برای تجربه کاربری، تجربه توسعهدهندگان، انعطافپذیری و قابلیت ارتقا و بهروزرسانی بهینگی بالایی ندارد.
?
در نهایت به نتیجهگیری سختی میرسیم. الگوریتم اثبات تاریخ (PoH) در Solana تا حدی موفق بوده و توانسته بر سرعت پردازش تراکنشها تاثیر داشته باشد. از سوی دیگر هم هزینهها را کمتر کرده است و این مزیتی نسبی به شمار میرود. از سوی دیگر نظر متخصصان و توسعهدهندگان این است که اثبات تاریخ با وجود حضور چشمگیر در بلاک چین سولانا، آنطور که باید نتوانسته انتظارات را برآورده کند. محدودیتهای سختافزاری و نرمافزاری، ایجاد بار ذخیرهسازی و همچنین چالشهای پیشروی آینده توسعه آن، موجب شده شاهد دیدگاههای منفی درباره آن هم باشیم.
در هر صورت، شاید بتوان آن را بهعنوان بخشی از اجماع بلاک چین پذیرفت و بر روی نواقص آن کار کرد. میدانیم که بیشتر الگوریتمهای اجماع در بلاک چین مزایا و معایبی دارند. اثبات تاریخ هم پتانسیل خوبی از خود نشان داده است. در بازار هم سرمایهگذاران به بلاک چینهای اثبات تاریخ اعتماد خوبی کردهاند.
شما درباره سولانا و عملکرد آن و بهویژه الگوریتم اجماع اثبات سهام چه فکر میکنید؟ این پایین برایمان بنویسید.