پروتکل انتقال ابرمتنها یا HTTP ، پروتکل ارتباطی همتا به همتا است که اکنون بر اینترنت حاکم است. این پروتکل چگونگی دسترسی شما به وب سایتها، تماشای ویدیو و دانلود فایلها را مشخص میکند. با این حال، این پروتکل مشکلاتی را به همراه دارد که بسیاری آنها از این واقعیت ناشی میشوند که مدل فعلی تا حد زیادی متمرکز است.
اینترنت امروزی چه مشکلاتی دارد؟
امروزه هنگامی که میخواهید از یک وب سایت بازدید کنید، مرورگر شما (client) درخواستی را به سرورهای ارائه خدمات وب سایت (host) ارسال میکند. حتی اگر این سرورها در دورترین فاصله از مکان فعلی شما باشند. این آدرس دهی مبتنی بر مکان است و از آدرسهای IPبرای نشان دادن موقعیت مکانی شما استفاده میکند. این فرآیند از پهنای باند استفاده کرده و در نتیجه هزینه زمانی و مالی زیادی برای ما در بر خواهد داشت. علاوه بر این، HTTP یک فایل را از سرور به صورت یک جا و در یک زمان دانلود میکند. این فرآیند بسیار بدتر از دریافت چندین قطعه از آن فایل از چندین کامپیوتر است. همچنین به نهادهای قدرتمند اجازه میدهد تا دسترسی به مکانهای خاصی را مسدود کنند. مانند کاری که ترکیه با سرورهای ویکیپدیا در سال ۲۰۱۷ انجام داد.
سازنده Juan Benet ، IPFS قصد دارد بسیاری از مشکلات ذکر شده را به وسیله این فناوری حل کند. برای مثال، IPFS یک تک نقطه خرابی ندارد. مفهوم Single Point of Failure یا تک نقطه خرابی این است که بخشی در سیستم وجود دارد که در صورت خرابی، کل سیستم را متوقف میکند. IPFS یک سیستم فایل همتا به همتا و توزیع شده است که میتواند به معنای واقعی کلمه جایگزین HTTP شود و یک بار دیگر اینترنت را غیرمتمرکز کند. سانسور اینترنت تا حد زیادی غیرممکن خواهد بود و اطلاعات منتشر شده به طور ناگهانی به هوس یک ارائه دهنده خدمات یا شبکه میزبان ناپدید نمیشوند.
امنیت نیز افزایش مییابد. برای مثال، حملات DDoS کار نمیکنند زیرا این حملات به وجود یک سیستم توزیع مرکزی نیاز دارند که IPFS ندارد. سرعت عامل دیگری است که افزایش مییابد. در یک وب توزیعشده، هر گرهای که درخواستی داشته باشد، بهجای اینکه به یک سیستم واحد و مرکزی درخواست ارسال کند، آن درخواست را به نزدیکترین گره موجود به خود در شبکه ارسال میکند.
پروتکل IPFS چگونه کار می کند؟
پروتکل IPFS با اتصال تمام دستگاه های موجود در شبکه به یک ساختار فایل کار میکند. این ساختار فایل یک Merkle DAG است که از ترکیب Merkle trees (درخت مرکل که در بلاکچین برای اطمینان از تغییرناپذیری استفاده میشود) و گراف جهتدار غیرمدور به وجود میآید .
کمی سادهتر صحبت کنیم. تصور کنید میخواهید وایت پیپر IPFS را بخوانید. کاری که شما معمولاً انجام میدهید این است که از URL جهت دریافتاطلاعاتی در مورد مکان فایل استفاده میکنید (در این مثال فرض بر این است که مکان مورد نظر سرورهای معمولی IPFS هستند). سپس به کمک این اطلاعات با سرور ارتباط بر قرار کرده و فایل را دریافت میکنید. راههای متعددی وجود دارد که از طریق آنها ممکن است اشتباه به وجود آمده و فایل به دست کاربر نرسد.
حالا تصور کنید که بخواهید به همان فایل از طریق شبکه IPFS دسترسی داشته باشید. فایل و همه بلوکهای آن، توسط یک هش رمزنگاری منحصربهفرد که به وسیله محتوای خود فایل ساخته میشود قابل شناسایی میباشد. کل سیستم مبتنی بر ذخیرهسازی key-value است ( keyهمان مقدار هش و value محتوای فایل مورد نظر میباشد). این همان ساختاری است که آدرس دهی محتوا را ممکن میسازد. در واقع هر کسی میتواند کلید را بدون توجه به منبع اطلاعات میزبانی کند. بنابراین، شما به شبکه متصل میشوید و آن فایل را از شبکه درخواست میکنید. شبکه ابتدا به نزدیکترین گرههای موجود نگاه میکند، زیرا به احتمال زیاد آنها نسخهای از آن فایل را در اختیار دارند. با این حال، اگر آنها فایل را نداشته باشند، به گرهی که فایل را در ابتدا آپلود کرده است وصل خواهید شد. زیرا قطعا این گره نسخهای از آن فایل را میزبانی میکند. سپس آن فایل را دانلود میکنید و خودتان نیز میزبان می شوید. این بدان معنی است که شما اساساً میزبان و مشتری همزمان هستید. همچنین به این معنی است که شما فقط فایلهایی را میزبانی میکنید که به آنها علاقه دارید. حالا بیایید به وایت پیپر IPFS نگاهی بیندازیم.
از آنجایی که احتمال دارد IPFSرا نصب نکرده باشید، از یک gateway استفاده خواهیم کرد. URLبه این شکل زیر است:
https://gateway.ipfs.io/ipfs/QmV9tSDx9UiPeWExXEeH6aoDvmihvx6jD5eLb4jbTaKGps
لینک بالا با آدرس دروازه (gateway) IPFS شروع میشود و سپس هش منحصر به فرد محتوا را در بر میگیرد. دروازه به نزدیکترین گره دارای فایل (که احتمالاً خودش است) متصل میشود و سپس آن فایل را برای شما دانلود میکند.
ممکن است فکر کنید دانلود فایلها از گرههای غیرقابل اعتماد خطرناک است. اما از آنجایی که هشهای رمزنگاری شده غیر قابل دستکاری بوده و هش خود محتوا هستند، میتوان مطمئن بود که فایل مناسب و مورد نظر را دریافت خواهید کرد.
پروتکل IPFS یک سیستم توزیع شده ارائه محتوا است، اما محتوا میتواند بسیار گستردهتر از یک فایل pdf باشد. منطق اپلیکیشنها هم محتوا است. در ترکیب با سایر پروژههای غیرمتمرکز مانند اتریوم، IPFS نیز بسیار قدرتمند است. بلاکچینی مانند اتریوم میتواند به عنوان back-end برنامه شما عمل کند. در حالی که front-end توسط IPFS ارائه میشود.
در انتها با ذکر یک مثال دیگر HTTP و IPFS را مقایسه میکنیم. اتاقی پر از افرادی را تصور کنید که در بر روی یک فایل Google doc به طور همزمان با یکدیگر همکاری میکنند. با HTTP، هر بار که تغییری در فایل ایجاد میشود، اطلاعات به سرور بازگردانده شده و سپس از سرور به مشارکت کنندگان باز گردانده میشود. میتوانید پهنای باند تلف شده و همچنین تأخیر غیرضروری برای افراد حاضر در همان شبکه محلی را تصور کنید.
این در حالی است که با IPFS، اطلاعات لازم نیست تمام آن نقل و انتقالات غیرضروری را انجام دهد. این اطلاعات به صورت real-time (در لحظه) در بین همه افراد موجود در همان شبکه به اشتراک گذاشته میشود؛ حتی اگر سرورهای Google از کار افتاده باشند. زیرا هر گره اکنون میزبان خود است. این روش تأخیر و پهنای باند را به میزان قابل توجهی کاهش میدهد.
به احتمال زیاد IPFS باعث تحول پروتکلهای نسل بعدی اینترنت خواهد بود. فکر میکنید چه قدر زمان لازم است تا وارد این دنیای جدید شویم؟