الگوریتم اجماع اثبات ذخیره چیست؟ آشنایی با الگوریتم PoStorage

برای انجام یک پروژه ذخیره سازی داده غیر متمرکز بلاکچین، باید مکانیسمهای اثبات و اجماع کارآمدی در اختیار داشته باشیم. تنها با استفاده از یک الگوریتم اجماع قوی بر مبنای ریاضی میتوانیم از حمله ماینرهای مخرب جلوگیری کنیم و از عادلانه بودن پاداشهای بلاکچین مطمئن شویم. در این مطلب با ویژگیهای الگوریتم اجماع اثبات ذخیره سازی یا Proof Of Storage Algorithm آشنا خواهیم شد.
الگوریتم اجماع اثبات ذخیره چیست؟
همه کسانی که با بلاکچین آشنا هستند اغلب در مورد مکانیسمهای اجماع PoW (اثبات اثبات کار) و PoS (اثبات اثبات سهام) میشنوند. به بیان ساده، مکانیزم اجماع الگوریتمی است که تعیین میکند کدام گره بلوک را تایید و ایجاد کند. پس از آن با تأیید گرههای دیگر به یک اجماع در شبکه میرسد. مکانیسمهای اثبات ارزهای دیجیتال، مانند بیتکوین و اتریوم، بسیار ساده هستند. در واقع آنها در حال حل مسائل ریاضی و حدس اعداد بر اساس یک عدد صحیح هستند. هر کسی که ابتدا این عدد را حدس بزند برنده میشود، بنابراین او از بلوک جدید پاداش می گیرد. این الگوریتم اثبات کار نام دارد؛ البته اتریوم به تازگی تغییرات بسیاری در شبکه خود انجام داده و الگوریتم اجماع آن نیز به اثبات سهم تغییر یافته است.
الگوریتم اثبات ذخیره سازی سازوکاری متفاوت دارد. یکی از ماموریتهای بزرگ زنجیره عمومی ذخیره سازی غیرمتمرکز استفاده از رمزنگاری و ارزهای دیجیتال برای رفاه و ارائه خدمت بیشتر به انسان امروز است. از سوی دیگر اصلیترین واحد اندازه گیری برای ذخیرهسازی غیرمتمرکز استفاده از همان واحد ذخیره سازی و جریان به عنوان واحد اندازهگیری است. این دو فاکتور اندازه گیری عبارتند از:
- ذخیره سازی: فضای ذخیره سازی میزان حجم محتوای ذخیره شده و زمان لازم برای ذخیره سازی آن است.
- ترافیک: ترافیک تعداد بایتهایی است که منتقل میشود.

اثبات این دو عامل توسط یک الگوریتم تک ماشینی امکان پذیر نیست. استفاده از ارتباطات شبکه ضروری است تا گره شخص ثالث بتواند دو طرف را برای اثبات صحت آن نظارت و بررسی کند. به نوبه خود گرههای بیشتری برای مشاهده عملکرد این گره شخص ثالث مورد نیاز است. برای تکمیل اثبات باید بین این شاهدان اجماع حاصل شود. این فرآیند بسیار پیچیدهتر از الگوریتم مستقل بیتکوین است.
نکته دیگر این است که هر بار که بیتکوین یک بلوک ایجاد میکند، تنها یک گره پاداش میگیرد، اولین گرهای که مسئله ریاضی را به درستی کرده باشد. در مقابل سیستمهای ذخیرهسازی غیرمتمرکز باید بر اساس تمام گرههایی که در این مدت مشارکت کردهاند، پاداش دهند که بسیار پیچیدهتر از فرآیند الگوریتم اجماع اثبات کار بیتکوین است.
روش کار الگوریتم اجماع اثبات ذخیره چیست؟
هدف الگوریتم اجماع اثبات ذخیره سازی اثبات مشارکت خود به سایر گرهها است. در یک شبکه ذخیره سازی توزیع شده، هر چه ارزش مشارکت بیشتر باشد، پاداشهای بیشتری به دست میآید. مکانیسم الگوریتم اجماع اثبات ذخیره سازی یک مکانیسم رمزنگاری است که عمدتاً برای بررسی اعتبار یک فایل از راه دور استفاده میشود. برای اطمینان از اعتبار دادهها یک نسخه رمزگذاری شده از دادهها که به یک سرور ارسال شده، تحت فرآیند جوابدهی برای اعتبارسنجی قرار میگیرد. علاوه بر این، این مکانیسم میتواند هنگام ارزیابی اعتبار یک سرور ذخیره سازی ابری استفاده شود.
در شبکهای که از الگوریتم اجماع اثبات ذخیره استفاده میکند، دو نوع شرکت کننده وجود دارد.
- یکی از آنها اثبات کننده (prover) نامیده میشود. اثبات کننده شرکتکنندگانی هستند که مسئولیت ذخیره دادهها را دارند.
- دیگری به عنوان تأیید کننده (verifier) شناخته میشود. تأییدکنندگان «تأیید» میکنند که آیا اثبات کننده دادهها را ذخیره میکند یا خیر. بهعلاوه، تأییدکنندگان چالشهایی را برای اثباتکنندهها تعیین میکنند که آنها باید بر اساس الگوریتم اجماع اثبات ذخیره سازی در حال استفاده، به آنها پاسخ دهند.

استخراجکنندگان در مکانیسم ذخیرهسازی باید ثابت کنند که یک کپی از دادهها را در هر مقطع زمانی در اختیار دارند. این امر از طریق Storage Miner Actor که بازیگر اصلی در زیر سیستم Storage Mining است تحقق مییابد. اثبات اینکه یک ماینر ذخیرهسازی واقعاً یک کپی از دادهها را ذخیره کرده، از طریق «چالشها» ممکن میشود؛ یعنی با ارائه پاسخ به سؤالات خاص مطرح شده توسط سیستم. برای ماینر ممکن است، سودآور باشد که کپی دادهها را دور بیندازد و در صورت به چالش کشیدن دوباره آن را واکشی (Fetch) کند. بنابراین چالش باید: اولا بخشی تصادفی از دادهها را هدف قرار دهد و دوما در بازههای زمانی نامنظم درخواست شود.
پیشینه پروتکل اثبات ذخیره سازی
در واقع الگوریتم اثبات ذخیره سازی پیش از ظهور بلاکچین و پروژههای ذخیره سازی غیرمتمرکز در پروژههای ذخیره سازی ابری مورد استفاده قرار گرفته است. با انفجار دادهها و گسترش شبکههای پهن باند، ذخیره سازی ابری از سال ۲۰۰۵ به یک برنامه مهم تبدیل شده است. پلتفرمهای ذخیره سازی ابری شخصی شامل DropBox، Google Drive، OneDrive مایکروسافت و iCloud اپل است. همچنین پلتفرمهای ذخیرهسازی ابری سازمانی شامل AWS S3، Microsoft’s Axure، Google Cloud و غیره میشود. این سرویسهای ذخیرهسازی ابری راهحلی برای ذخیرهسازی ایمن و دسترسی کارآمد به حجم عظیمی از دادهها را در اختیار شرکتها و افراد قرار میدهند.
اگرچه ذخیره سازی ابری به معنای استقرار سرور متمرکز است، امنیت دادهها نیز یک مسئله مهم است. اگر کاربر حجم زیادی از دادهها را در سرور ابری ذخیره کرده باشد، چگونه میتواند بررسی کند که دادهها از بین نرفته یا آسیب ندیدهاند و یا حتی دستکاری نشده باشند؟ ارائه دهندگان خدمات ذخیره سازی ابری همچنین باید به کاربران یا مشتریان ثابت کنند که دادهها به طور ایمن نگهداری میشوند. الگوریتم اجماع اثبات ذخیره سازی اولیه برای پاسخ به این مشکلات ایجاد شد.

مکانیسم اثبات مربوط به ذخیره سازی ابری شامل موارد زیر است:
- Provable Data Possession ثابت میکند که سرور این دادهها را بدون افشای دادههای اصلی نگهداری میکند. PDP به کاربر این امکان را میدهد که دادهها را به سرور ارسال کند و تأیید کننده بعداً میتواند بارها بررسی کند که آیا سرور هنوز دادهها را ذخیره میکند یا خیر. طیف گستردهای از طرحهای PDP وجود دارد که در فضای ذخیره سازی ابری و سایر تنظیمات برون سپاری ذخیره سازی مفید هستند. PDP ها میتوانند به صورت خصوصی یا عمومی تأیید شوند و ایستا یا پویا باشند.
- Proof-of-Retrievability شبیه PDP است، اما قابلیت بازیابی بهتری دارد و استخراج دادهها را نیز امکان پذیر میکند. PDP ها به تأیید کننده اجازه میدهند بررسی کند که سرور همچنان دادهها را ذخیره میکند یا نه، اما سرور ممکن است مدارک معتبر PDP را ارائه کند و در عین حال دادهها را گرو نگه دارد و هرگز آن را آزاد نکند. PoRet این مشکل را با وادار کردن خود اثبات کنندهها به بیرون دادن جزئیات داده حل میکند. بدین ترتیب تأیید کنندهها میتوانند تعدادی چالش صادر کنند و سپس دادهها را از روی دادههای اثبات شده بازسازی کند.
ویژگیهای الگوریتم اجماع اثبات ذخیره سازی
الگوریتمهای اجماع متعددی وجود دارد که از الگوریتم اجماع اثبات ذخیره مشتق شدهاند. گرچه ماهیت اصلی و اشتراک همه آنها از بین بردن نیاز به اعتماد بین ارائه دهندگان فضای ذخیره سازی و صاحبان داده است ولی ویژگیهای هر کدامتفاوتهای کلیدیای را نشان میدهد. به طور کلی نحوه ساختاربندی طرحهای الگوریتم اجماع اثبات ذخیره میتواند بر مکانیسمهای ذخیرهسازی تأثیر بگذارد و آنها را بهینه کند. با این حال آنها نقاط مشترک زیادی نیز باهم دارند. در ادامه برخی از این ویژگیها که معمولاً بین طرحهای الگوریتم اجماع اثبات ذخیره مشترک است را بررسی میکنیم.
- با استفاده از یک کلید تأیید مخفی که حین راه اندازی ایجاد شده است، کاربران میتوانند دادههای ذخیره شده را بررسی کنند و آنها را به صورت خصوصی قابل تأیید کنند.
- هر کاربری که به دادههای عمومی مانند یک کلید تأیید عمومی دسترسی داشته باشد، بدون امکان دسترسی به اصل دادهها یا هرگونه اطلاعات مخفی و بدون اینکه دادهها به خطر بیافتد یا حریم آنها نقض شود، میتواند تأیید کند که دادهها در طول تنظیم طرح به درستی ذخیره شده است.
- بدون دادههای ذخیره شده از هیچ اطلاعاتی نمیتوان استفاده کرد تا به یک اثبات کننده اجازه دهد که اجماع ایجاد کند. این افزایش شفافیت در شبکههای ذخیرهسازی غیرمتمرکز مفید است، زیرا نیاز کاربران را به سایر تأییدکنندهها برای تولید کلیدهای مخفی از بین میبرد.
- تأییدکنندهها میتوانند به سادگی چالشهای زیادی را برای اثباتکنندهها صادر کنند و از این مکانیسم برای استخراج و بازآفرینی دادههای ذخیرهشده استفاده شود.
- کاربران میتوانند بهجای اینکه هر بار برای دادههایی نیازمند تغییر، تنظیمات جدیدی اعمال کنند، بهصورت پویا دادههای ذخیرهشده خارجی را بهروزرسانی کنند.
- عملیات اجماع غیرقابل تفویض و برون سپاری است. اثبات کنندهها نمیتوانند کار خود را به دیگر کاربران اختصاص دهند و در عین حال به تأییدکنندگان نشان هند که هرگونه عملیات ذخیرهسازی، محاسبات یا تولید اجماع را شخصا انجام دادهاند.
- در طول انجام فرآیند اجماع توسط اثباتکنندهها، با استفاده از ابزارهایی مانند امضای دیجیتالی، میتوان هویت اثباتکنندهها را به راحتی تأیید کرد.
- مدارک اجماع فقط برای یک دوره زمانی مشخصی معتبر هستند. با محدود کردن واکنش اثباتکنندهها به چالشها در یک بازه زمانی معین، زمان کافی برای تولید داده جعلی را از آنها خواهد گرفت. بنابراین این ویژگی را میتوان برای به حداقل رساندن احتمال جعل استفاده کرد. التبه این چارچوب زمانی به الگوریتم اجماع اثبات ذخیره به کار رفته بستگی دارد.
استخراج در الگوریتم اجماع اثبات ذخیره

در واقع شبکه chia گزینه بسیار خوبی به نظر میرسد، زیرا این امید وجود دارد که به عنوان جایگزین، شبکهای با ویژگیهایی رمزنگاری و عدم تمرکز ولی مصرف انرژی بسیار پایینتر باشد که مزایای زیستمحیطی بزرگی به همراه خواهد داشت. چیا حتی برچسب «اکو کریپتو» را به خود اختصاص داده است. اما چیا چگونه کار میکند؟
الگوریتم اجماع اثبات ذخیره سازی به کار رفته در چیا بسیار شبیه الگوریتمهای اجماع متداول است، با این تفاوت که از مقادیر از پیش محاسبه شده استفاده میکند. پس از آن تنها فعالیت لازم این است که منتظر بماند تا یکی از این مقادیر از پیش محاسبه شده، مسئله را حل کند.
بنابراین هر چقدر بتوانید تعداد مقادیر پیش محاسباتی بیشتری را ذخیره کنید، احتمال بیشتری برای برنده شدن خواهید داشت. این فرآیند مشابه بلیطهای قرعه کشی عمل میکند که هر چه بلیطهای بیشتری در اختیار داشته باشید احتمال برنده شدن بیشتر میشود. پس از اینکه که یک مزرعه ماینینگ چیا را راه اندازی کنید، دو مرحله اصلی برای دریافت پاداش وجود دارد.
- Plotting: جایی است که مقادیر از قبل محاسبه شده را در حافظه ذخیره میکنید. Plotting میتواند زمان زیادی را ببرد ولی فضای ذخیرهسازی شما تا زمانی که به Plotting اختصاص داده نشده باشد مفید نیست! روشهای بالقوه زیادی برای افزایش بهرهوری این فضا وجود دارد که البته هنوز در دست توسعه است.
- Mining: ماینرها در تلاش هستند تا مسائل الگوریتم اجماع را حل کنند و با استفاده از فضای ذخیرهسازی اختصاص داده شده، چیا پاداش بگیرند. این مقدار انرژی الکتریکی کمتری نسبت به بیت کوین یا اتریوم مصرف میکند زیرا در یک جدول ساده جستجو میکند.
با گذشت زمان مردم متوجه شدند که کمبود هارد دیسک و افزایش قیمت آن به دلیل استخراج ارز دیجیتال Chia است. متأسفانه مانند بیتکوین که ظرفیت محاسباتی پردازندههای گرافیکی و دستگاههای ASIC را هدر میدهد، چیا نیز ظرفیت ذخیرهسازی بسیاری هدر میدهد. مقادیر عظیمی از داده را ذخیره میکند، فقط به این امید که جستجو موفقیتآمیز باشد. این باعث شده است که هزینه هارد دیسک به ویژه درایوهای SSD که مناسبترین گزینه برای این پروتکل است، افزایش یابد و همچنین دسترسی به آنها را برای مصارف دیگر را مشکل کرده است. با این حال، همچنان میتوان به آن امیدوار بود؛ زیرا هارد دیسکها انرژی کمتری مصرف دارند و حتی اگر منبعی بیهوده باشد، حداقل برق کمتری مصرف میکند.
آینده پروژه های مبتنی بر PoStorage

در کنار گسترش انواع الگوریتمهای اجماع دوستدار محیط زیست مانند الگوریتم اثبات سهام، طرحهای ذخیرهسازی ابری مبتنی بر بلاکچین متعددی نیز در حال انجام تحقیق و توسعه در مورد الگوریتم اجماع اثبات ذخیره هستند. به عنوان مثال، Filecoin در حال توسعه یک الگوریتم PoStorage به نام اثبات تکرار (proof-of-replication) است که برای تأیید اینکه دادهها در فضای ذخیره سازی فیزیکی اختصاصی خود کپی شده باشد، استفاده میشود. پروژههای دیگر، مانند Storj، به دنبال بهبود الگوریتم PoStorage بر یک الگوریتم اجماع اثبات ذخیره تثبیتشده به نام اثبات قابلیت بازیابی (proof-of-retrievability) متمرکز هستند.
شما درباره این الگوریتم چه نظری دارید؟ فکر میکند میتواند با الگوریتمی مانند اثبات سهم رقابت کند؟