اغلب اوقات هنگامی که نام یک پروژه غیرمتمرکز به گوش میرسد، اولین چیزی که به ذهن خطور میکند، یک پروژه بلاک چینی است. چراکه تکنولوژی بلاک چین برای مدیریت وضعیت، خودکارسازی فرایندها از طریق قراردادهای هوشمند و تبادل ارزش مالی بسیار قوی عمل کرده است. اما چطور میتوان محتوای اپلیکیشن، تصاویر، فیلمها، فایلهای فرانت اند یک وبسایت همچون CSS، HTML و JS را در یک فضای غیرمتمرکز ذخیره کرد؟ در این زمینه ذخیرهسازی محتوا در بلاک چین میتواند ناکارآمد و گران قیمت باشد. برای رفع این مشکل در فضای وب، سیستم جدیدی تحت عنوان IPFS روی کار آمده است. ما در این مطلب قصد داریم ببینیم IPFS چیست.
IPFS، پروتکل ابررسانهای همتا به همتایی است که برای سریعتر، ایمنتر و علنیتر کردن محیط وب طراحی شده است. در واقع IPFS پروتکلی برای ذخیره و به اشتراک گذاری محتوا است. درست مانند دنیای بلاک چین که هر کاربر گره خود را اجرا میکند، در این فضای نیز کاربران میتوانند به طور جداگانه گرههای خود را اجرا کرده و با برقراری ارتباط، فایلها را با یکدیگر مبادله کنند. در ادامه این مطلب از مجله صرافی داموند به طور مفصل به بررسی IPFS میپردازیم.
IPFS چیست؟
InterPlanetary Filing System یا به اختصار IPFS به پروتکل ابررسانهای همتا به همتایی گفته میشود که توسط شرکت Protocol Labs طراحی و راهاندازی شده است. در واقع IPFS پروتکل غیرمتمرکزی است که جهت میزبانی دادهها از شبکه گستردهای از گرهها (سرورهای کامپیوتری) در سراسر جهان استفاده میکند.
محتوای میزبانی شده توسط این گرهها انواع متنوعی داشته و در دستهبندیهای مختلف همچون پایگاههای داده، وبسایتها، فایل رسانه، اسناد و اپلیکیشنها قرار میگیرند. افراد میتوانند با واردکردن یک “Link” به تمام محتواهای ذخیرهشده در IPFS دسترسی پیدا کنند. در واقع فرایند دسترسی به این محتوا مشابه نحوه دسترسی به یک صفحه موجود در وب با واردن کردن URL این صفحه است.
همانطور که در شبکه بلاک چینی از گرهها جهت تأمین قدرت محاسباتی لازم در فرایند تأیید دادهها استفاده میشود؛ پروتکل IPFS نیز از پهنای باند ذخیرهسازی صدها هزار گره فعال در شبکه، جهت ذخیره دادهها استفاده میکند. در مقابل برای کاربرانی که خارج از این حلقه قرار داشته باشند، اساساً گرهها سیستمهای کامپیوتری منحصربهفردی هستند که در کنار هم شبکه IPFS را تشکیل میدهند. در نهایت IPFS قادر به انجام تمام کارهایی است که پیش از این توسط پلتفرمهای متمرکز Web2 انجام میشده است. بنابراین مهمترین تفاوت این دو در نحوه ذخیرهسازی دادهها است، به این معنا که در پلتفرمهای web2 دادهها به طور متمرکز و در پلتفرم IPFS دادهها به صورت غیرمتمرکز ذخیره میشوند.
شباهت و تفاوت IPFS و بلاک چین در چیست
از آنجایی که IPFS و بلاک چین شباهت ساختاری بسیاری دارند، این دو میتوانند به خوبی با یکدیگر همکاری کنند. Juan Benet مخترع IPFS، این همکاری را مانند یک “ازدواج عالی” تشبیه کرده است. IPFS یکی از معدود پروژههایی است که توسط گروهی به نام Protocol Labs راهاندازی شده است، این گروه توسط Benet نیز تأسیس شده است. IPLD و Filecoin برخی از پروژههای گروه Protocol Labs هستند که ارتباط بسیار نزدیکی با پروتکل IPFS دارند.
IPLD یک روش مدلسازی داده برای ساختارهای داده توزیع شده (distributed data structures) مانند بلاک چینها است. این مدل از طریق پروتکل IPFS امکان دسترسی و ذخیره آسان دادههای بلاک چین را فراهم میکند. کاربرانی که مایل به ذخیره دادههای IPFS باشند از طریق کوین Filecoin پاداش میگیرند. همچنین IPLD با شبکههای اتریوم و بیت کوین ادغام شده و به کاربران اجازه میدهد تا به طور یکپارچه با چندین بلاک چین مختلف تعامل داشته باشند.
مشکل متمرکز بودن وب چیست؟
همانطور که اشاره شد تفاوت اصلی پروتکل IPFS با WEB2 غیرمتمرکز بودن این پروتکل است. اما سؤالی که مطرح میشود این است که متمرکز بودن وب چه مشکلاتی دارد؟ و چه چیزی باعث راهاندازی یک راهحل غیرمتمرکز جدید شده است؟ از طرفی برای درک چشمانداز IPFS، درک همه مشکلات ساختار متمرکز فعلی اینترنت کمککننده خواهد بود.
جالب است بدانید در حال حاضر فضای اینترنت نسبت به 15، 20 سال گذشته بسیار متمرکزتر شده است. چراکه امروزه تعداد محدودی از شرکت بزرگ، حجم نامتناسبی از دادهها و ترافیک شبکه را در مقیاس جهانی تحت کنترل خود دارند. در نتیجه میتوان گفت، این شرکتها مستقیماً بر زندگی شخصی و کاری میلیاردها نفر در سراسر جهان تأثیر میگذارند. این انحصار آشکار میتواند عواقب بسیار زیادی را به دنبال داشته باشد.
به عنوان مثال، غولهای فناوری مانند گوگل یا پلتفرمهای سوشال مدیا مانند توییتر، اینستاگرام و فیسبوک، اغلب در حال نقض قوانین حفظ حریم خصوصی داده کاربران یا افراط در شیوههای بازاریابی غیراخلاقی هستند. علاوه بر این، اکثر سرورهایی که به صورت روزانه میزبان بخش عمدهای از دادههای ایجاد و به اشتراک گذاشته شده کاربران هستند، توسط چند شرکت انگشت شمار از جمله Amazon، Google، IBM و Microsoft کنترل میشوند.
به نظر شما حتی اگر یک مورد از سرورهای این شرکتها دچار قطعی گسترده شود، چه اتفاقی میافتد؟ یا اگر به دلیل یک نقص امنیتی اساسی، این شرکتها کنترل خود را بر روی داده کاربران از دست بدهند، چه میشود؟ از سوی دیگر نیز متمرکز بودن وب به دولتها این امکان را میدهد تا به طور سلیقهای هر پلتفرم اینترنتی موردنظر خود را سانسور یا به طور کلی تعطیل کنند. تمامی مشکلات مذکور با روی کار آمدن وب غیرمتمرکز حل خواهند شد، IPFS قصد دارد این مشکلات را یکبار برای همیشه حل کند.
ویژگیهای پروتکل IPFS
پروتکل IPFS با هدف انقلاب جدید در فضای اینترنت راهاندازی شده است. اما آیا میدانید ویژگی مهم پروتکل IPFS چیست؟ در واقع IPFS سیستم توزیعی است که با استفاده از آن کاربران این امکان را دارند تا به دادههایی مانند فایلها، اپلیکیشنها و وبسایتها دسترسی پیدا کرده و آنها را ذخیره کنند. اما در گام بعدی هدف دیگر این پروتکل، ایجاد یک شبکه کامپیوتری جهانی است. بر اساس این شبکه جهانی اتصال خصوصی، ایمن و مقاوم در برابر سانسور برای تمام کاربران تضمین خواهد شد.
- سرعت پروتکل IPFS
در حال حاضر، در زیرساخت سرویس گیرنده-سرور Hypertext Transfer Protocol (HTTP)، فرم استاندارد پروتکل درخواست-پاسخ بشمار میآید. پروتکل HTTP، کاربران را به سوی یک لوکیشن که عموماً یک سرور است، راهنمایی میکند. از طرفی، مدل همتا به همتا بکار رفته در پروتکل IPFS، به کاربران این امکان را میدهد تا به طور همزمان بخشهای مختلف محتوای مدنظر خود را از طریق چندین گره مختلف (یا سیستمهای کامپیوتری) بازیابی کنند. این موضوع نهتنها سبب صرفهجویی در هزینههای مربوط به پهنای باند میشود، بلکه سرعت اتصال را نیز بالا میبرد.
- غیرمتمرکز بودن پروتکل IPFS
همانطور که اشاره شد، شرکتهای بزرگی همچون Amazon Web Services و Google Cloud عملاً مالک دادههایی هستند که کاربران اینترنت داوطلبانه آنها را در سرورهای وب این شرکتها ذخیره میکنند. این شرکتها میتوانند به راحتی کاربران را بلاک کرده و دسترسی آنها را به شخصیشان محدود کنند. از طرفی این شرکتها میتوانند تحتفشار دولتهایی مانند ایران و چین قرار گرفته و دسترسی کاربران را محدود به اطلاعات محدود کنند.
خوشبختانه سیستم همتا به همتای بکار رفته در شبکه IPFS سبب تمرکززدایی فضای اینترنت شده و به کاربران این امکان را میدهد تا در نهایت بدون تأثیر از هرگونه محدودیت و سانسوری به اطلاعات مدنظر خود دسترسی پیدا کنند.
- امنیت پروتکل IPFS
ایجاد ایمنی در برابر عوامل مخرب شبکه یکی از مهمترین اهداف هر پروژهای است. اساساً غیرمتمرکز بودن زیربنای یک پروتکل سبب میشود تا هکرها یک نقطه کانونی مشخص برای حمله نداشته باشند. چراکه اطلاعات در سرورهای متعدد در سراسر جهان پراکنده شدهاند. به این حال، در پروتکل IPFS نیز برای مقابله با ریسک دستکاریهای بیرونی یا درونی دو اقدام مهم انجام شده است.
- تغییرناپذیری: به این ترتیب به منظور جلوگیری از دستکاری اطلاعات، تمام دادههای آپلود شده در شبکه غیرقابل تغییر خواهند بود.
- اختصاص یک هش بر هر فایل: در واقع هش مانند یک اثر انگشت منحصربهفرد بوده و تنها به یک فایل خاص تعلق دارد.
- کارایی بالا پروتکل IPFS
تأکیدی که در پروتکل IPFS بر روی غیرمتمرکز بودن شبکه وجود دارد، سبب میشود تا مزایای پروژههای نسل قبلی پلتفرمهای P2P مانند BitTorrent نیز در پروتکل IPFS وجود داشته باشد. در این پروتکل هر گره مجزا موجود در این شبکه، یک کپی از یک فایل را نگهداری میکند.
توجه داشته باشید که زمانی یک فایل برای اولین بار در IPFS آپلود میشود، شبکه تنها یک کپی از آن را به همراه یک هش میسازد. این موضوع سبب میشود تا حجم دادهای که نیاز به پردازش دارد، بسیار کمتر شود. در نهایت نیز ذخیره فایل آپلود شده به فضای ذخیرهسازی کمتری نیاز پیدا میکند. کارایی بالا پروتکل IPFS به این معناست که این پروتکل میتواند حتی با اتصال ضعیف و کیفیت پایین اینترنت نیز کارآمد باشد. در نتیجه شبکه به طور گسترده در دسترس تمام کاربران قرار خواهد گرفت.
کاربرد IPFS چیست؟
- پروتکل IPFS بدون نیاز به شخص ثالث، کاملاً غیرمتمرکز، به طور ایمن و کارآمد به کاربران سراسر جهان این امکان را میدهد تا به فایلهای متنوع (وبسایتها، فیلمها، تصاویر، مقالات تحقیقاتی، مقالات، و غیره) دسترسی پیدا کنند. غیرمتمرکز بودن و تمرکززدایی این پروتکل، شبکه را سریعتر، دموکراتیکتر و ایمنتر کرده است.
- به دلیل ماهیت غیرمتمرکز IPFS، کاربران این شبکه تحتتأثیر سانسور محتوا قرار نخواهند گرفت. از طرفی از آنجاییکه کاربران به طور مستقیم از یک منبع به دادهها دسترسی پیدا میکنند، فرا میتواند به اطلاعات سانسور شده یا مسدود شده محلی نیز دست پیدا کند.
- در مکانهایی که سرعت اینترنت پایین بوده و کیفیت کمی دارد، IPFS به صورت کاملاً کارآمد اتصال سریع و امنی را برای کاربران فراهم میکند.
معرفی محدودیتهای IPFS
درست مانند سایر پروژههای بزرگ و قابلاعتماد، پروژه IPFS نیز با وجود تمام مزیتها و ویژگیهای منحصربهفردی خود، در برخی از زمینهها نیاز به بهبود دارد. در صورتی که گروه Protocol Labs بتواند راهحل مناسبی جهت رفع این نواقص ارائه دهد، احتمالاً در آینده نزدیک پروتکل IPFS، به بخش بزرگی از پارادایم نوظهور web3 تبدیل شده و عصر جدیدی را برای کاربران اینترنت رقم خواهد زد. در ادامه به توضیح این محدودیتها میپردازیم.
- IPFS فاقد یک موتور جستجوی کاربردی است، بنابراین، نمیتوان از این شبکه برای جستجو یک محتوای خاص استفاده کرد. برای درک بهتر این موضوع اینترنتی را تصور کنید که در آن موتور جستجوی گوگل وجود نداشته باشد.
- همانطور که انتظار میرود، فرایند تمرکززادی و غیرمتمرکز بودن شبکه میتواند مانند یک شمشیر دو لبه عمل کند. به ویژه اگر فقدان مقررات و قانونگذاری را یک مشکل اساسی در نظر بگیرم. علاوه بر این، تاکنون در IPFS هیچ مکانیزیمی جهت مهار و حذف محتوای مضر مانند سخنرانیهای نفرتانگیز، اخبار جعلی، پورن کودکان، نقض حق کپی رایت، و غیره. ارائه نشده است. در نتیجه وجود پلتفرمی با آزادی بیان مطلق نیز میتواند در برخی از جنبهها خطراناک ظاهر شود.
نحوه عملکرد IPFS چگونه است؟
برای درک بهتر پروتکل IPFS بهتر است با نحوه عملکرد این پروتکل آشنا شویم. زمانی که کاربر یک فایل را در IPFS آپلود میکند، شبکه این فایل را به قطعات کوچکتر تقسیم کرده و سپس هر قطعه را در چندین کامپیوتر (گره) توزیع میکند. تمام قطعات این فایل با یک هش منحصربهفرد و خاص شناسایی میشوند. در واقع هش یک تابع ریاضی است که ورودیهایی از جنس اعداد و حروف را به خروجیهای رمزگذاری شده تبدیل میکند. هش به شبکه IPFS در تشخیص اینکه کدام گرهها حاوی کدام قطعه از یک فایل خاص هستند، کمک میکند.
در واقع پس از آنکه کاربر فایلی را در شبکه آپلود کرد میتواند به راحتی فایل مذکور را بازیابی کرده و به آن دسترسی مجدد پیدا کند. برای این کار تنها کافیست فرد هش را در یک مرورگر سازگار با وب مانند Brave Browser یا Opera وارد کند. این فرایند تقریباً مشابه زمانی است که کاربر برای دسترسی به یک صفحه خاص در فضای آنلاین، از آدرس URL مختص این صفحه استفاده کرده و این آدرس را در یک مرورگر جستجو میکند. در نهایت پس از وارد کردن هش فایل مدنظر، پروتکل IPFS به تمام گرههایی که قطعات این فایل را در اختیار دارند درخواست میکند، قطعات را از طریق یک اتصالP2P انتقال دهند.
همانطور که اشاره شد، اطلاعات موجود در این شبکه غیر قابل دستکاری و تغییر است، به این تربیت محتوای موجود در هر فایل غیرقابل تغییر خواهد بود. چراکه اگر یک فایل و محتوای آن، دچار دستکاری یا تغییر شود، هش آن نیز به طور خودکار تغییر خواهد کرد. با این حال، شبکه برای ریشهکن کردن هرگونه عوارض جانبی ناشی از وجود یک عامل غیرقابل انعطاف تغییرناپذیر؛ از سیستم نسخهسازی اختصاصی خود استفاده میکند. در نتجه کاربر میتواند نسخههای جدیدی از یک فایل را به شبکه اضافه و به نسخههای قبلی آن فایل خاص متصل کند. وجود این ویژگی سبب میشود تا کل تاریخچه آن فایل خاص دست نخورده و در دسترس باقی بماند.
IPFS چگونه دادهها را ذخیره میکند؟ IPFS Objects چیست؟
پروتکل IPFS فایلهای بزرگتر را به قطعات کوچک 256 کیلوبایتی تقسیم میکند، هر یک از قطعات کوچک تحت عنوان IPFS Objects شناخته میشود. هر IPFS Objects یک فایل، حاوی پیوندهای مرتبط با تمام IPFS Objects دیگر مربوط به آن فایل است. شناسه هش مرتبط با یک فایل از 24 کاراکتر تشکیل شده و به آن شناسه محتوا یا content ID (CID) گفته میشود. در فرایند بازیابی یک فایل خاص، شبکه جهت تأیید یکپارچگی فایل، هش فایل را بررسی و بازبینی میکند. در صورتیکه فرایند بررسی هش ناموفق باشد، میتوان گفت شخصی محتوای فایل را تغییر داده است.
برای درک بهتر این موضوع، فرض کنید فایلی را توسط گره خود در شبکه IPFS آپلود میکنید، مدتی بعد از آن، کاربر شماره یک، این فایل را درخواست داده و آن را در کامپیوتر (گره) خود دانلود میکند. پس از آن نیز، کاربر شماره دو، همان فایل را درخواست میکند، این کاربر میتواند فایل مذکور را از طریق گره شما یا کاربر شماره یک یا حتی هر دوی شما بازیابی کند. هر چه تعداد درخواستهای دانلود فایل بیشتر باشد، گرههای بیشتری برای پاسخگویی و کمک به درخواستهای دانلود بعدی در دسترس قرار خواهند گرفت.
شبکه به صورت دورهای IPFS Objectهای کش شده را از گرهها حذف میکند. برای جلوگیری از این اتفاق، کاربر میتواند برای ذخیره دائمی یک فایل، آن را در گره خود، پین کند. همچنین کاربران میتوانند مشترک یک پلتفرم ذخیرهسازی ابری سازگار با IPFS شده و دادههای خود را در اختیار شبکه IPFS قرار دهند. در حال حاضر چندین پلتفرم ذخیرهسازی از این سرویس پشتیبانی میکنند. به این ترتیب، با استفاده از این راهحل کاربر میتواند دادههای خود را برای همیشه در حالت پین نگه دارد.
بررسی نحوه کار با IPFS
برخی از مرورگرها مانند Brave Browser و Opera به طور بومی از IPFS پشتیبانی میکنند. با استفاده از این دو مرورگر کاربر میتواند به طور مستقیم پیوند IPFS (CID) را در نوار آدرس وارد کنید. به این ترتیب فرد به فایل یا سایت موردنظر خود هدایت میشود. در حالیکه انجام این کار در سایر مرورگرها نیازمند استفاده از یک افزونه خواهد بود.
لازم به ذکر است که مرورگر Brave Browser به کاربران این امکان را میدهد تا با استفاده از گره محلی خود یا یک دروازه عمومی (public gateway)، به محتوای IPFS دسترسی پیدا کنند. مورد اول مناسب افرادی است که ترجیح میدهند محتوا را به صورت محلی تأیید و بازبینی کنند. در صورتیکه کاربر از مرورگرهای دیگری همچون Google Chrome یا Mozilla Firefox استفاده کند، میتواند از طریق دروازههای عمومی مانند Cloudflare-IPFS، IPFS.io و… به محتوای شبکه IPFS دسترسی پیدا کند.
نحوه راهاندازی یک گره جدید IPFS
در صورتیکه مایل به راهاندازی و اجرای یک گره جدید IPFS هستید، بهترین راه این است که برای خود یک IPFS Desktop تهیه کنید. IPFS Desktop به نرم افزار رسمی گفته میشود که توسط گروه Protocol Labs توسعهیافته و در تمام پلتفرمهای اصلی و سیستم عاملهای محبوب از جمله ویندوز، مک و اوبونتو در دسترس است. کار با این نرمافزار بسیار ساده و روان بوده و حاوی آموزشهایی برای کاربران تازهکار است. شما میتوانید با استفاده از این نرمافزار فایل مدنظر خود را به راحتی در شبکه IPFS آپلود کنید.
علاوه بر این، افزونه مرورگر IPFS Companion، به شما این امکان را تا مستقیماً از طریق مرورگر خود با IPFS Desktop و گره خود تعامل داشته باشید. این افزونه با Chrome، Edge، Firefox، Brave و Opera سازگار است.
سخن پایانی
در این مطلب نگاهی به تکنولوژی IPFS انداختیم و دیدیم که چیست و چگونه کار میکند. IPFS به پروتکل غیرمتمرکز و همتا به همتایی گفته میشود که با هدف راهاندازی یک فضای آزاد و غیرمتمرکز آنلاین ایجاد شده است. این پروتکل با عملکرد غیرمتمرکزی که دارد واسطهها و اشخاص ثالث مانند شرکتهای ارائهدهنده سرور را حذف میکند. در نتیجه در این پروتکل جهت میزبانی، ذخیره و به اشتراک گذاری محتوای کاربران از صدها هزار گره پراکنده در سراسر جهان استفاده میشود.
سؤالات متداول
پروتکل IPFS چیست؟
به پروتکل ابررسانهای همتا به همتایی گفته میشود که توسط گروه Protocol Labs طراحی و راهاندازی شده است.
مهمترین ویژگی پروتکل IPFS چیست؟
پروتکل IPFS با هدف ایجاد یک تغییر بزرگ در فضای اینترنت، طراحی و راهاندازی شده است. در واقع IPFS سیستم توزیع غیرمتمرکزی است که با استفاده از امکانات آن کاربران میتوانند به دادههایی مانند فایلها، اپلیکیشنها و وبسایتها دسترسی پیدا کرده و آنها را ذخیره کنند.
پروتکل IPFS چه مزیتی دارد؟
از مهمترین مزایای پروتکل IPFS، میتوان به غیرمتمرکز بودن، سرعت بالا، امنیت بالا، تغییرناپذیر بودن دادهها و اختصاص یک هش اختصاصی به هر فایل اشاره کرد.