ipfs یا اینترنت بین سیاره ای چیست؟

ipfs یا اینترنت بین سیاره ای چیست؟

  • clock زمان مطالعه: 7.5:56 دقیقه
  • calendar انتشار: 25 مرداد 1401
آنچه در این مقاله میخوانید

    اینترنت غیرمتمرکز چیزی است که امروزه بیشتر از قبل به گوش می‌خورد و همه از فواید آن یاد می‌کنند، IPFS یکی از مفاهیم جدیدی است که وارد دنیای اینترنت شده و سعی در غیرمتمرکز کردن آن دارد. و در تولید مجموعه ان اف تی ها بسیار به کمک بلاکچین آمده است. اینترنت به یکی از نیازهای روزمره ما تبدیل شده است و بدون آن نمی‌توانیم به خوبی فعالیت کنیم. در دنیای اینترنت، با اشتراک گذاشتن فایل‌ها و اطلاعات، کارهای مختلفی انجام می‌شود. در حقیقت، اینترنت بستری برای اشتراک گذاری فایل‌ها بدون ملاقات است. در دنیای حاضر، تمامی اطلاعات کاربران و فایل‌هایی که به اشتراک می‌گذارند، روی یک سری سرورها ذخیره می‌شود. IPFS پروتکلی است که به این بخش از اینترنت می‌پردازد و سعی دارد نحوه اشتراک گذاری فایل را برای بهبود تجربه استفاده از اینترنت، دگرگون کند. در این مقاله از سری مقالات کریپتوباز ما را تا انتها همراهی کنید تا با این عنصر تازه‌وارد دنیای اینترنت بیشتر آشنا شوید.

    بنر ipfs

    توزیع فایل در دنیای اینترنت

    در حال حاضر، هر فایل و اطلاعاتی که در دنیای اینترنت منتشر کنید، روی یک سرور خاص با مکان مشخص ذخیره می‌شود؛ پس هر فایلی که آپلود می‌کنید، روی یک سرور مشخص قرار می‌گیرد. اکثر سرورها و فضاهای ذخیره سازی اطلاعات، متعلق به چند شرکت بزرگ مانند مایکروسافت، آمازون و گوگل هستند. تقریبا می‌توان گفت این چند شرکت به اکثر داده‌ها و اطلاعات دنیا دسترسی دارند. البته برای حفظ حریم شخصی کاربران، قوانینی برای عدم سواستفاده و حفظ امنیت اطلاعات وجود دارد. 

    این نوع از ذخیره سازی و توزیع فایل زمانی دردسرساز می‌شود که یکی از سرورها یا پایگاه‌های ذخیره سازی داده، دچار مشکل گردد. اگر شما فایلی روی یک سرور داشته باشید و آن سرور از دسترس خارج شود، دیگر راهی برای دسترسی به فایل وجود نخواهد داشت. در صورتی که این سرور از بین برود، فایل شما هم از بین خواهد رفت. فایل‌ها و اطلاعات مهم در چنین مواقعی، در خطر قرار دارند و راه مطمئنی برای بازگردانی آنها وجود ندارد.

    به این نحو از ذخیره سازی داده‌ها، سیستم متمرکز گفته می‌شود. در سیستم متمرکز، تمامی داده‌ها روی یک سرور خاص که تحت مالکیت یک سازمان است، ذخیره می‌شوند. علاوه بر این که احتمال خرابی و پاک شدن داده‌ها وجود دارد، امکان دستکاری سرور توسط شرکت‌ها نیز امری قابل پیش بینی است؛ به طور مثال، شرکت‌های ذخیره سازی داده می‌توانند در فرایند دریافت و اشتراک گذاری داده‌ها اختلال ایجاد کنند و سرعت یا کیفیت فایل را تحت تاثیر قرار دهند. کاربران برای دسترسی به فایل‌های خود در اینترنت متمرکز، یک درخواست HTTPS برای ارتباط با داده به سرور ارسال می‌کنند. مکان فایل و داده در این حالت مشخص است و باید به سروری که داده در آن قرار دارد، درخواست ارسال شود.

    ثبت و ارسال این درخواست به طور معمول از طریق مرورگرهای وب انجام می‌شود. در مرحله بعد، سرور درخواست را دریافت کرده و دسترسی لازم برای مشاهده، دریافت یا ویرایش داده را در اختیار کاربران قرار می‌دهد. البته این خلاصه‌ترین توضیحی است که می‌توان برای توزیع داده در اینترنت متمرکز ارائه داد. برای مقیاس پذیری، بهبود دسترسی به داده‌ها و افزایش سرعت، سازمان‌ها و مراکز ذخیره سازی داده می‌توانند از CDN یا Content Delivery Network استفاده کنند. در این روش، سرورها Miror یا آینه‌ای برای سرورهای دیگر می‌شوند. حتی در این نوع از توزیع داده نیز تنها مقدار کوچک و محدودی از مکان‌ها وجود دارد که داده کاربران روی آن ذخیره شده و می‌توان به آن دسترسی داشت.

     

     

    نحوه ی کار ipfs

    معرفی IPFS

    در چنین زمانی است که IPFS وارد عمل می‌شود. IPFS یکی از شکل‌های غیرمتمرکزسازی اینترنت است. اجازه دهید ابتدا یکی از سیستم‌هایی که فرایند مشابهی با IPFS دارد را معرفی کنیم. اکثر برنامه نویس‌ها با سیستم GIT آشنایی دارند. GIT یکی از محبوب‌ترین سیستم‌های غیرمتمرکز در دنیا است. گیت سرویسی برای کنترل ورژن‌های مختلف یک برنامه محسوب می‌شود. گیت یک سرویس غیرمتمرکز است و هر برنامه نویسی که از گیت استفاده می‌کند، خود به عنوان پایگاه داده برای فایل‌های دیگر نیز عمل می‌کند. در سیستم گیت، یک سرور مرکزی برای ذخیره سازی داده وجود ندارد؛ در عوض، کپی تمامی کدها روی تمامی سیستم‌های توسعه دهندگان موجود است.

    گیت تنها برای توسعه دهندگان و برنامه نویسان کاربرد دارد. حال برگردیم به محبث اصلی، یعنی IPFS. IPFS این فرایند را برای ذخیره سازی و دسترسی به تمامی داده‌ها و فایل‌ها به کار می‌گیرد. IPFS یا Interplanetary File System به معنای سیستم فایل بین سیاره‌ای است. IPFS سیستمی همتا به همتا و غیرمتمرکز محسوب می‌شود. در اینترنت فعلی، کاربران برای این که به فایل خود دسترسی پیدا کنند، آدرس آن فایل را در مرورگر خود وارد می‌کنند. به این سیستم، یک سیستم بر مبنای مکان گفته می‌شود. در سیستم Location Based Address، آدرس فایل بر اساس مکان آن مشخص می‌شود. همانند آنچه قبلا گفتیم، اگر سرور از دسترس خارج شود، امکان دسترسی به فایل وجود نخواهد داشت. 

    IPFS از روش دیگری به نام آدرس بر اساس محتوا یا Content Location Address استفاده می‌کند. ذخیره سازی بر اساس محتوا می‌تواند از معایب اینترنت متمرکز و فعلی جلوگیری کرده و اینترنت را به مرحله جدیدی از توزیع داده هدایت کند. در دنیای IPFS، کاربران می‌توانند میزبان یک محتوا یا دریافت کننده آن در یک فضای غیرمتمرکز به صورت همتا به همتا باشند. در این حالت، کاربران حاضر در شبکه، مقداری از داده‌های کلی را در سیستم خود ذخیره می‌کنند و سیستم قدرتمندی برای ذخیره سازی به وجود می‌آورند. هر کاربر موجود در شبکه می‌تواند با استفاده از آدرس محتوا، آن داده را در اختیار کاربران قرار دهد. دیگر کاربران شبکه نیز با در دست داشتن آدرس محتوا، می‌توانند به آن فایل دسترسی داشته باشند. 

    IPFS برای آدرس دهی به داده‌ها، از یک هش رمزنگاری شده استفاده می‌کند. این هش مختص به داده‌ای است که برای آن مشخص شده و هر فایل، یک هش مخصوص به خود دارد. این روش از تکراری بودن داده‌ها جلوگیری می‌کند؛ چرا که یک تابع هش ثابت با ورودی‌های یکسان، خروجی یکسان تولید خواهد کرد. همچنین در روش رمزگذاری بر اساس هش، امکان این که دو فایل، هش یکسانی داشته باشند، نزدیک به صفر است. در حقیقت، قوانین مختلفی برای ساخت هش وجود دارد که از تکراری بودن هش برای فایل‌های مختلف جلوگیری می‌کند.

     

     

    بنیانگذار ipfs

    IPFS توسط چه کسی ساخته شده است؟

    IPFS در ابتدا توسط خوان بنت (Juan Benet) ساخته شد و بعدها توسط تیم Protocol Labs توسعه پیدا کرد. پروتکل لبز شرکتی است که بنت برای توسعه IPFS ایجاد کرده و از سرویس‌های مختلفی پشتیبانی می‌کند. در حال حاضر، تیم پروتکل لبز مسئول ساخت و توسعه سیستم فایل بین سیاره‌ای است.

    بنت برای ایجاد IPFS و توسعه آن، از سرویس‌ها و پلتفرم‌های بزرگی ایده گرفته که در این بین می‌توان به پلتفرم تورنت اشاره کرد. در پلتفرم تورنت، کاربران فایل‌های مختلف را در اختیار دارند و دیگر کاربران می‌توانند برای دریافت آنها درخواست بفرستند. اگر به تورنت سر زده باشید، با عبارت Seeder مواجه شده‌اید. برخی فایل‌ها Seeder زیاد و برخی فایل‌ها Seeder خیلی کمی دارند. سیدر به معنای تعداد کاربرانی است که از آن فایل میزبانی می‌کنند. اگر سیدر یک فایل صفر باشد، یعنی این فایل در سیستم هیچ یک از کاربران وجود ندارد و نمی‌توانید آن را دانلود کنید. سازندگان IPFS، ماهیت غیرمتمرکز بودن گیت و تکنیک ذخیره سازی پنهای باند تورنت را ادغام کردند و IPFS را به وجود آوردند.

    شرکت های ipfs

    نحوه کار IPFS

    اینترنت غیرمتمرکز ساخته شده توسط IPFS، از تمامی کامپیوترهای متصل شده به آن تشکیل شده است. به این کامپیوتر و سیستم‌ها Node یا گره گفته می‌شود. نودها می‌توانند داده‌ها را در خود ذخیره کنند و در اختیار دیگر کاربران قرار دهند. اگر کاربری برای دسترسی به یک سایت یا یک داده درخواست ارسال کند، یک کپی از آن در سیستم فرد به صورت کش ذخیره می‌شود. تنها این امر می‌تواند قابلیت‌های مختلفی ایجاد کند. هر چه افراد بیشتری این سایت یا فایل را درخواست کنند، کپی‌های بیشتری از آن در سیستم‌ها ذخیره می‌شود. درخواست بعدی که برای دریافت فایل یا سایت ارسال می‌شود، می‌تواند توسط یک گره یا چند گره مختلف پاسخ داده شود.

    وظیفه پاسخ به درخواست و ارسال داده، به عهده نودهای مختلف شبکه است. در این حالت، فرایند آدرس دهی در دنیای اینترنت نیز تغییر می‌کند. در IPFS به جای استفاده از لینک‌هایی که مکان فایل یا داده را مشخص می‌کنند، از لینک‌هایی بر اساس هش استفاده می‌شود که بخشی یا کل یک فایل را مشخص می‌کنند. در IPFS شما آدرس مکان فایل را ارسال نمی‌کنید. شما تنها فایلی که می‌خواهید را از شبکه درخواست می‌کنید. در این حالت، نود یا نودهایی که فایل را در اختیار دارند، مشخص می‌شوند. در ابتدا گفتیم که IPFS یک سیستم همتا به همتا برای توزیع و اشتراک گذاری فایل است.

    زمانی که با استفاده از هش، نود میزبان داده مشخص شود، کاربران می‌توانند به صورت همتا به همتا، فایل را به اشتراک بگذارند. سیستم یا سیستم‌های میزبان می‌توانند به صورت مشترک، بخش‌هایی از فایل را برای درخواست کننده بفرستند. به همین دلیل است که می‌توان گفت، IPFS از فناوری سیستم تورنت استفاده می‌کند؛ چون فایل می‌تواند روی کامپیوترهای مختلفی ذخیره شود، فرایند دریافت داده می‌تواند تاخیر کمتری داشته باشد و پهنای باند نیز کاهش یابد. لازم است بدانید که در دنیای IPFS کاربران میزبان نمی‌توانند داده‌ها را تغییر دهند یا دستکاری کنند. به دلیل استفاده از تابع هش، با تغییر داده‌ها، هش آن فایل نیز تغییر می‌کند.

    در حقیقت، IPFS از این رو شباهت زیادی به بلاک چین دارد. البته با الهام گرفتن از سیستم گیت، کاربران می‌توانند ورژن‌های جدیدی از یک فایل را در IPFS قرار دهند. ورژن جدید فایل آپلود شده، به فایل اصلی متصل می‌شود و کاربران قادرند تاریخ تولید هر فایل را مشاهده کنند.

    ipfs چگونه کار میکند

    جدول هش توزیع شده

    Distributed hash table یا DHT به معنای جدول هش توزیع شده است. جدول هش توزیع مانند جدول هش بوده و یک ساختار و پایگاه داده محسوب می‌شود که ساختاری برای اختصاص کلیدها به مقادیر ایجاد می‌کند. جدول هش توزیع شده از یک تابع هش برای ایجاد هش در اسلات‌های مختلف استفاده می‌کند. این به معنی آن است که داده‌ها روی شبکه‌ای از کامپیوترها پخش می‌شوند و هر کدام برای سهولت یافتن و اشتراک گذاری داده شماره گذاری شده‌اند.

    از مزایای DHT می‌توان به غیرمتمرکز بودن، تلرانس خطا و مقیاس پذیری آن اشاره کرد. این جدول هش توزیع شده می‌تواند داده‌ها را بین تعداد زیادی نود یا گره پخش کند و در صورتی که یکی از نودها خراب شود، سیستم بدون مشکل به عملکرد خود ادامه می‌دهد.

    بلوک تبادل‌ها

    بیت تورنت به عنوان یکی از سیستم‌های محبوب اشتراک گذاری فایل قادر است تا تبادل داده بین تعداد بی‌شماری از گره را با استفاده از پروتکل بلوک تبادلات محاسبه و مدیریت کند. البته بیت تورنت تنها به اکوسیستم تورنت محدود است و IPFS از این امکان در فضای اکوسیستم خود استفاده می‌کند. سیستم مشابهی که IPFS استفاده کرده، Bitswap نام دارد و مانند یک فروشگاه برای تمامی داده‌ها عمل می‌کند.

    گراف جهت دار بدون دور مرکل

    Merkle DAG ترکیبی از درخت مرکل و گراف جهت دار بدون دور است. درخت مرکل وظیفه دارد تا از تبادل داده‌ها به صورت همتا به همتا اطمینان حاصل کند. بررسی خطاها و صحیح بودن نحوه تبادل داده به عهده درخت مرکل است. این فرایند به وسیله مدیریت بلوک‌های داده و با استفاده از تابع رمزنگاری هش انجام می‌شود. به این صورت که تابع هش تولید شده از طریق ورودی یکسان بوده و حدس زدن ورودی از طریق داده هش، غیرممکن است. DAG نیز روشی برای مدل سازی توپولوژی زنجیره‌ای از داده‌های بدون دور است. در نهایت، Merkle DAG یک پایگاه داده محسوب می‌شود که در آن، هش‌ها برای اشاره به بلوک‌های داده و اشیا استفاده می‌گردد.

    جدول ipfs

    سیستم فایل خود گواه

    Self-Certifying File System یا سیستم مدیریت فایل خود گواه، سیستمی است که برای تایید تبادل داده‌ها، به فرد ثانویه نیاز ندارد. داده‌ها و فایل‌ها در Self-Certifying File System با استفاده از نام فایل تایید شده و مورد تبادل قرار می‌گیرند. در این حالت شما می‌توانید از راه دور بدون دانستن محل ذخیره سازی، فایل‌های خود را دریافت کنید.

    غیرمتمرکز شدن IPFS

    زمانی که از سیستم IPFS حرف می‌زنیم، هدف تنها انتقال و دریافت داده‌هایی است که توسط یک سرور میزبانی نشوند. این کار باعث شده تا IPFS مزیت‌هایی زیادی داشته باشد. در ابتدا می‌توان به امنیت بالای این سیستم اشاره کرد که در صورت حمله کردن هکرها به تعدادی از سیستم‌ها، کاربران همچنان می‌توانند فایل‌های خود را دریافت کنند. از طرف دیگر، سانسور و تغییر داده‌ها در این سیستم به سختی انجام می‌شود.

    از طرف دیگر، اگر شما به گرهی که در حال ارتباط با آن هستید، نزدیک باشید، سرعت ارسال درخواست و دریافت داده بیشتر خواهد شد و به راحتی می‌توانید فایل خود را دانلود کنید. در هر حال، زمانی که حرف از سیستم IPFS یا سیستم‌های مشابه می‌شود، عبارات و کلمات پیچیده زیادی به میان می‌آیند. در دنیای وب 2، همه چیز به مالکیت ختم می‌شود. یعنی فردی که مالک یک فایل است، می‌تواند آن را برای کاربران ارسال کند. در صورتی که در دنیای IPFS، داده‌ها و فایل‌ها بین کاربران شبکه توزیع می‌شوند و همه می‌توانند در اشتراک گذاری داده‌ها شریک باشند.

    غیرمتمرکز بودن داده ها در ipfs

    نحوه ذخیره سازی داده در IPFS

    فایل‌ها در هنگام ذخیره سازی در IPFS، به چند بخش مختلف تقسیم می‌شوند. داده‌ها به صورت بخش‌های با حجم 256 کیلوبایت، اشیا IPFS نام دارند و هر فایل به اشیا IPFS تبدیل می‌شود؛ یعنی هر فایلی که قرار است در IPFS ذخیره شود، به قسمت‌های 256 کیلوبایتی تقسیم می‌شود. فایل‌هایی که حجم بیشتر از 256 کیلوبایت داشته باشند، به تعداد نیاز به اشیا IPFS تبدیل می‌شوند. هر شی IPFS دارای لینک‌هایی به بخش‌های دیگر همان فایل است تا از گم شدن بخش‌های مختلف یک داده جلوگیری شود. زمانی که یک فایل در IPFS آپلود شد، یک آیدی هش 24 کاراکتری به آن اختصاص داده می‌شود. این آیدی هش، شناسه خاص محتوا است که با Content ID نیز شناخته می‌شود. Content ID یا CID نشان دهنده آن فایل در دنیای IPFS خواهد بود.

    زمانی که فایل دانلود یا دریافت شود، تابع هش دوباره برای فایل دریافت شده محاسبه می‌شود تا از درستی فایل اطمینان حاصل شود. از طرف دیگر، هر کسی که فایل را دانلود کند، آن را به صورت هش در نود یا گره خود ذخیره می‌کند تا به عنوان میزبان آن شناخته شود. زمانی که فایل‌ها به صورت رسمی آپدیت یا به‌روزرسانی شوند، ورژن جدیدی از فایل ایجاد می‌شود. این فایل جدید به همراه فایل قدیمی ذخیره می‌گردد. IPFS مانند یک سیستم غیرمتمرکز عمل می‌کند. برای این که فضای ذخیره سازی زیادی در فرایند ساخت ورژن‌های جدید هدر نرود، تنها بخش‌های تغییر یافته و آپدیت شده فایل دوباره در IPFS ذخیره می‌شوند. بخش‌هایی که یکسانند، از قبل و در ورژن قبلی فایل وجود خواهند داشت و نیازی به ذخیره سازی دوباره آن بخش‌ها نیست.

    اگر فایلی در شبکه، درخواست کننده نداشته باشد، به صورت زباله از IPFS حذف می‌شود. اگر فایلی برای شما مهم است، می‌توانید آن را در گرهی که متعلق به خودتان است، سنجاق یا Pin کنید.

    ذخیره ی داده ها در ipfs

    سوالات متداول

    IPFS چیست؟

    IPFS یا Interplanetary File System به معنای سیستم فایل بین سیاره‌ای است و به صورت غیرمتمرکز داده‌ها را ذخیره سازی می‌کند.

    IPFS مشابه چه پلتفرم‌هایی است؟

    IPFS به منظور غیرمتمرکز بودن از گیت و برای ذخیره سازی دادی و کاهش تاخیر در ارسال داده، از سیستم تورنت الهام گرفته است.

    چه کسانی IPFS را ایجاد کرده‌اند؟

    IPFS توسط خوان بنت و شرکت او، پروتکل لبز ایجاد شده و تحت توسعه قرار گرفته است.

    IPFS چه مزیتی دارد؟

    IPFS به صورت غیرمتمرکز است و به امنیت داده‌ها در فضای اینترنت کمک می‌کند. با استفاده از IPFS امکان از دست رفتن و خرابی داده‌ها به صفر می‌رسد.