اثبات ظرفیت (Proof of Capacity) الگوریتمی در بلاک چین برخی از ارزهای دیجیتال است که امکان استفاده از فضای خالی هارد دیسک را برای استخراج ارزهای دیجیتال، فراهم میکند. اکثر ارزهای دیجیتال، امروزه برای تولید بلاک از روش ماینینگ یا همان اثبات کار (Proof of Work) و یا اثبات سهام (Proof of Stake) استفاده میکنند، اما چند ارز دیجیتال نه چندان شناختهشده هستند که به جای این دو از اثبات ظرفیت استفاده میکنند. در این مقاله با اثبات ظرفیت و چند ارز دیجیتالی که از آن استفاده میکنند، آشنا میشوید.
تابع هش
قبل از توضیح مفهوم اثبات ظرفیت، ابتدا بیایید مفهوم «هش کردن» (Hashing) را مرور کنیم.
هش کردن یا هشینگ به فرآیندی گفته میشود که در آن یک عملگر ریاضی به نام «تابع هش» (Hash Function)، دادههای ورودی مانند حروف و اعداد و تصویر و نظایر آنها را به خروجی رمزگذاریشده تبدیل میکند. به تابع هش، «تابع درهمساز» نیز گفته میشود.
به عنوان مثال یک تابع هش میتواند کلمه «سلام» را دریافت کند و به عنوان خروجی این عبارت را تحویل بدهد:
«bda۱fa۴۸۳۴۵۳۳۶۶۱۸۷۴۱fd۲c۴bc۰۲۸۰۹eb۰۹۹c۴۹a۹b۰۲fb۵۰۵۶۴۰۱ab۶d۴dc۳e۶»
به خروجیِ تابع هش، «هش» (Hash) میگویند و به این عمل یعنی استفاده از تابع هش برای ایجاد هش، هش کردن یا «هشینگ» (Hashing) گفته میشود.
حالا بیایید ببینیم فرآیند هش کردن یا به اصطلاح هشینگ چگونه انجام میشود.
هر کسی که در رمزنگاری و ریاضیات تخصص داشته باشد، میتواند با استفاده از این علوم برای خود تابع هش بسازد. در حال حاضر انواع زیادی تابع هش وجود دارد و آن را به روشهای گوناگونی میتوان ساخت، اما در اینجا قصد داریم به عنوان نمونه نحوه کار الگوریتم شناختهشده SHA-256 را توضیح بدهیم که پرکاربردترین تابع هش دنیاست.
توابع هش معتبر، هر مقدار ورودی را به یک رشته متنی با طول ثابت تبدیل میکنند.
همانطور که در عکس بالا هم مشاهده میکنید، برای تابع هشِ استاندارد اهمیتی ندارد که ورودی شما چقدر بزرگ یا کوچک است. خروجی همیشه دارای طول ثابت خواهد بود. این مساله زمانی اهمیت پیدا میکند که با تعداد زیادی داده و اطلاعات سر و کار داشته باشید. بنابراین، اساساً به جای رهگیری و ذخیره دادههای ورودی که میتوانند بسیار زیاد و بزرگ باشند، میتوانید تنها هش را ذخیره کرده و آن را ردیابی کنید.
همچنین استفاده از یک خروجی با طول ثابت سبب افزایش امنیت میشود، چون کسی که سعی در رمزگشایی هش داشته باشد، نمیتواند با دیدن خروجی تشخیص دهد که ورودی ما به چه صورت بوده است.
هر دو روش اثبات کار و اثبات ظرفیت برای کار به توابع هش وابسته هستند. تابع هش، تابعی یکسویه است؛ به این معنی که با این تابع میتوان بهآسانی اطلاعات را وارد و هش را پردازش کرد، اما برعکس آن یعنی دریافت هش و به دست آوردن اطلاعات اصلی (ورودی) کار فوقالعاده دشواری است. در این تابع داده ورودی میتواند هر نوع دادهای باشد اما متن خروجی (رمزنگاریشده)، رشتهای از اعداد و حروف است.
اثبات کار
اثبات کار یا همان ماینینگ که در ارزهای دیجیتال زیادی مانند بیت کوین از آن استفاده میشود، شباهت زیادی به روش اثبات ظرفیت دارد، با این تفاوت که روش اثبات کار نیاز به تجهیزات تخصصی و گرانقیمتتری دارد. این تخصصی بودن باعث میشود که بعد از پایان کار استخراج کوینهای اثبات کار، پیدا کردن کاربردهای دیگری برای این تجهیزات کار بسیار مشکلی باشد.
علاوه بر این، روش استخراج اثبات کار روش بسیار پر سروصدا و پرمصرفی است و فشار زیادی به دستگاهها وارد میکند. به همین دلیل، باید بهطور دورهای آنها را تعمیر و قطعات خراب یا منسوخشده را با قطعات نو جایگزین کرد.
مراحل استخراج در روش اثبات کار:
- ماینرها تراکنشها را جمعآوری کرده و در یک بلاک قرار میدهند.
- تمام اطلاعات موجود در بلاک که شامل هش بلاک قبلی هم میشود، برای تولید یک (مقدار) هش جدید از یک تابع هش عبور میکند.
- سپس ماینرها برای پیدا کردن مقدار هش صحیح با سریعترین سرعت ممکن، یک عدد را در هدر (سربرگ) بلاک (Block Header) تغییر میدهند و نیز برای پیدا کردن هش صحیح تلاش کرده و اعداد را امتحان میکنند.
- اولین ماینری که بتواند با قدرت پردازش خود مقدار صحیح هش را پیدا کند، آن را برای بقیه شبکه ارسال میکند و به این ترتیب یک بلاک به بلاک چین متصل میشود.
اثبات ظرفیت: یک توضیح ساده
در روش اثبات ظرفیت، بهجای تغییر مکرر اعداد در هدر بلاک و استفاده از هش برای پیدا کردن راهحل، هارد دیسک خود را به اصطلاح ثبت (Plot) میکنید. ثبت کردن یا پلاتینگ (Plotting) به عملیات پردازش و ذخیره جوابهای احتمالی معادله بلاکها روی کامپیوتر، حتی پیش از آغاز استخراج گفته میشود. در این روش، پاسخ احتمالی معادله بلاکها روی هارد دیسکهای موجود در شبکه ذخیره میشود و اگر هارد دیسک شما حاوی پاسخ معادله بلاک باشد، برنده (پاداش) آن بلاک خواهید بود. به این ترتیب، هر چقدر هارد دیسک دارای فضای بیشتری باشد، شانس بیشتری برای دریافت پاداش بلاک وجود دارد.
مثال
فرض کنید هارد دیسک خود را پر از بلیتهای لاتاری کردهاید. اما در هارد دیسک نسبت به ظرفیتی که دارد، فقط تعداد محدودی بلیت جا میشود. پس از اعلام شماره بلیت، بررسی میکنید تا بفهمید چه کسی بیشترین اعداد مشترک با شماره برنده اعلامشده را دارد. اگر شما بیشترین ارقام مشترک را با شماره برنده داشته باشید، پاداشی به شما تعلق خواهد گرفت. البته بهترین قسمت ماجرا این است که بلیتهای شما بعد از اعلام نتیجه باطل نخواهند شد و میتوانید برای هر بلاک جدید دوباره از آنها استفاده کنید.
اثبات ظرفیت: یک توضیح فنی
عملیات اثبات ظرفیت شامل دو بخش است: ثبت یا پلات کردن هارد دیسک و استخراج بلاکها.
کار ثبت یا پلات کردن فایلهای خاص مربوط به شما بسته به ظرفیت هارد دیسکهایتان ممکن است چندین روز یا حتی چندین هفته طول بکشد. پلاتینگ از یک تابع هش بسیار کند به نام شبال (Shabal) استفاده میکند که با تابع هش SHA-۲۵۶ بیت کوین که ماینرها بهسرعت آن را به کار میبرند، متفاوت است. از آنجا که محاسبه هشهای تابع Shabal کار دشواری است، نودهای شبکه آنها را از قبل پردازش کرده و روی یک هارددیسک ذخیره میکنند. این کار همان ثبت کردن یا پلاتینگ هارد دیسک است.
پلاتینگ
زمان ثبت کردن یا ساختن یک فایل پلات، چیزی به نام نانس (Nonce) را میسازید. نانسها با هش مکرر دادههایی مثل شماره شناسایی شما، ساخته میشوند. هر چه فضای ذخیرهسازی بزرگتر باشد، میزان نانسهایی که میتوانید ذخیره کنید هم بیشتر خواهد بود. با هر نانس میتوان نهایتاً ۸۱۹۲ هش ساخت. این هشها به صورت جفتی سازماندهی میشوند و هر جفت، اسکوپ (Scoop) نام دارد. به هر اسکوپ شمارهای از ۰ تا ۴۰۹۵ تعلق میگیرد.
به این ترتیب شما در زمان استخراج، اسکوپی با شماره بین ۰ تا ۴۰۹۵ را محاسبه خواهید کرد. فرض کنید که نتیجه محاسبه شما، یک اسکوپ به شماره ۴۲ باشد. کار را با اسکوپ شماره ۴۲ از نانس ۱ شروع میکنید و از داده آن اسکوپ برای محاسبه یک زمان خاص، به نام «ددلاین» (Deadline) استفاده کرده و سپس این عملیات را برای همه نانسهای موجود در هارد دیسک، تکرار میکنید.
بعد از محاسبه همه ددلاینها، کمترینِ آنها را انتخاب میکنید. ددلاین بیانکننده تعداد ثانیههایی است که باید از زمان تشکیل آخرین بلاک گذشته باشد تا شما بتوانید به تشکیل بلاک بعدی بپردازید. اگر فرددیگری در همین زمان نتوانسته باشد بلاک جدیدی تشکیل دهد، پاداش آن بلاک به شما تعلق میگیرد.
برای مثال اگر ددلاین شما موقع استخراج ۲۵ ثانیه باشد و هیچکس دیگری در این ۲۵ ثانیه نتواند بلاک جدیدی تشکیل دهد، آنوقت شما این شانس را دارید که بلاک را تشکیل داده و پاداش آن را به خودتان اختصاص دهید.
مزایا و معایب
حالا که با جزئیات و مبانی روش اثبات ظرفیت آشنا شدید، وقت آن است که با بعضی مزایا و معایب استفاده از هارد دیسک برای استخراج هم آشنا شوید:
مزایا
- برای این کار میتوانید از هارد دیسکهای معمولی استفاده کنید و کسی نمیتواند آنطور که درباره بیت کوین رایج است، با خرید ایسیکهای اختصاصی بر شما برتری داشته باشد. البته همچنان میزان حافظه اهمیت دارد.
- مصرف برق در این روش ۳۰ برابر کمتر از استخراج با دستگاههای ایسیک است.
- روش اثبات ظرفیت بسیار غیرمتمرکزتر از اثبات کار است، زیرا در کامپیوتر هر شخص، حداقل یک هارد دیسک نصب شده است. برای این کار حتی میتوان از هارد دیسک تلفنهای همراه اندروید هم استفاده کرد.
- در این روش نیازی ندارید به شکل مداوم سختافزار را بهروزرسانی کنید. هارددیسکهای قدیمی میتوانند دادهها را بهخوبی هارددیسکهای جدید ذخیره کنند.
- میتوانید بعد از پایان استخراج، هارد دیسکهای خود را فرمت کرده و آنها را برای کاربرد اصلیشان به کار ببرید.
معایب
- محبوبیت روش اثبات ظرفیت میتواند به رقابتی دیگر در خرید و تولید هارد دیسکها و افزایش قیمت آنها منجر شود. امروزه افراد از هارد دیسکهای ترابایتی استفاده میکنند، ولی این معیار بهتدریج به پتابایت، اگزابایت و زتابایت تبدیل خواهد شد.
- روش اثبات ظرفیت یک فناوری نسبتاً جدید است و هنوز به دقت مورد بررسی و چالش قرار نگرفته است.
- در حال حاضر دادههای پلات شده در هارد دیسکها هیچ کاربردی غیر از استخراج ندارند. البته طرحهایی برای استفاده از آنها بهعنوان فضای ذخیرهسازی مازاد برای اطلاعات متنباز مهم در دست بررسی است. در این صورت هارد دیسکها میتوانند مقالات ویکیپدیا، نقشهها و دیگر اطلاعات با ارزش را در خود جای دهند.
- در حال حاضر بدافزارهای زیادی در حال استخراج بیت کوین با استفاده از کامپیوترهای دیگران هستند. مطمئن باشید در صورت محبوبیت بیشتر روش اثبات ظرفیت، بدافزارهایی هم برای پلات کردن فضاهای خالی هارد دیسکها ساخته خواهد شد. با این تفاوت که در این حالت بسیاری از افراد متوجه نخواهند شد که هکرها دارند از فضای هارد دیسک آنها استفاده میکنند.
آشنایی با ۳ ارز دیجیتال برتر اثبات ظرفیت
حالا در ادامه ۳ مورد از بزرگترین ارزهای دیجیتالی را که از روش اثبات ظرفیت برای تأیید تراکنشها استفاده میکنند، معرفی میکنیم.
توجه: معرفی این ارزهای دیجیتال به هیچ عنوان توصیه به سرمایهگذاری نیست. بیشتر این ارزهای دیجیتال هنوز در فازهای اولیه خود قرار دارند.
استورج (Storj)
استورج شبکهای مبتنی بر بلاک چین است که با هدف ارائه فضای ذخیرهسازی غیرمتمرکز خلق شده است. این شبکه هنوز در ابتدای راه خود قرار دارد، اما به طور کلی کاربران میتوانند بدون نگرانی از نقض حریم خصوصی و بدون خطر هک شدن یا از بین رفتن اطلاعات، فایلهای خودشان را روی بلاک چین استورج ذخیره کنند.
هرکسی که کامپیوتر شخصی داشته باشد، با استفاده از سرویس ذخیرهسازی غیرمتمرکز میتواند خدمات ذخیرهسازی را ارائه کند. بلاک چین با ذخیره کردن دادهها روی نودهای متعدد میتواند در صورت خرابی یک نود، فایلها را از طریق نود دیگری بازیابی کند.
البته استورج در مقاله معرفی یا همان وایتپیپر خود از اثبات ظرفیت نام نبرده و نام الگوریتم خود را «اثبات ذخیرهسازی» (Proof of Storage) گذاشته است. این الگوریتم با اثبات ظرفیت کمی تفاوت دارد اما بهطور کلی سختافزار مورد نیاز برای ساخت بلاک در این شبکه، هارد دیسک است.
برست (Burst)
برست یک از فورکهای ارز دیجیتال Nxt است که از الگوریتم اجماع اثبات ظرفیت استفاده میکند. این کوین در سال ۲۰۱۴ سیستم قراردادهای هوشمند و چند قابلیت مهم دیگر را هم به ویژگیهایش اضافه کرد. همانطور که در اتریوم و سایر بلاک چینهای عمده میبینیم، قراردادهای هوشمند، ایجاد نرمافزارها و کاربردهای جدید را در این شبکه امکانپذیر میکنند.
این کوین همچنین از فناوری تنگل (Tangle) که راهی جدید برای انتشار بسیار سریع اطلاعات در شبکه است و در شبکه آیوتا هم به کار میرود، استفاده میکند. یکی دیگر از ویژگیهای مثبت برست کوین قابلیت معاملات بین بلاک چینی اتمیک (Atomic Cross Chain trading) آن است که با استفاده از آن، کوینهایی که بلاک چین های متفاوتی دارند میتوانند بدون نیاز به یک طرف قرارداد سوم مورد اعتماد طرفین، با هم معامله کنند.
این کوین از شبکه لایتنینگ هم پشتیبانی میکند که در آن، کاربران میتوانند کانالهای پرداخت خود را باز کنند و تمام تراکنشهایی که از این کانالها استفاده میکنند بدون کارمزد انجام خواهند شد.
فایل کوین (Filecoin)
فایل کوین که قرار است در سال ۲۰۲۰ راهاندازی شود، مثل استورج یک شبکه ذخیرهسازی غیرمتمرکز است که در آن ماینرها با فعالیت در شبکه و در ازای ارائه فضای هارد دیسکشان برای ذخیره یا بازیابی دادهها، توکنی به نام فایل کوین دریافت میکنند. آنها این توکنها را با ذخیره دادههای مشتریان و پردازش مسائل ریاضی اثبات ظرفیت برای تائید فضای ذخیرهسازی در دسترس خود، در طی زمان به دست خواهند آورد. شانس دریافت کوین و میزان کارمزد تراکنشها بستگی به مقدار فضای ارائهشده به شبکه از سوی ماینر دارد.
البته فایل کوین هم بهطور مستقیم از اثبات ظرفیت به عنوان الگوریتم اجماع خود نام نبرده است، اما روند آن کاملاً با اثبات ظرفیت مشابه است.
نودهای راهاندازیشده توسط ماینرها با نگهداری از دادههای مورد نیاز بلاک چین و دادههای ذخیرهسازی شده، شبکه را فعال نگه میدارند. البته آنها برای بالا بردن امنیت شبکه باید مقداری کوین را به صورت امانت در نودهای خود قفل کنند و در صورتی که نتوانند فایلهای ذخیره سازی شده را اثبات کنند این کوینها توسط شبکه ضبط خواهد شد. در این بلاک چین برای تضمین عدم رونویسی دو فایل با اسمهای مشابه، هر فایل اثر انگشت دیجیتال مخصوص خود را دارد.