پیشرفته کریپتو کده

پروتکل IPFS چیست؟ روشی غیرمتمرکز و همتا به همتا برای اشتراک‌گذاری اطلاعات

یکی از پروژه‌های زیرساختی دنیای غیرمتمرکز و وب ۳، سیستم فایل بین سیاره‌ای (InterPlanetary File System) یا به اختصار IPFS است. اگر در دنیای بلاک چین و به خصوص در حوزه NFTها فعالید، احتمال زیادی وجود دارد که نام این پروتکل را شنیده باشید یا از خدمات آن به شکل مستقیم یا غیرمستقیم استفاده کرده باشید. در ادامه مطلب نحوه کار پروتکل IPFS را شرح خواهیم داد و شما را با تاریخچه این پروژه، خدمات و پروژه‌های مختلف بنا شده بر بستر آن و غیره آشنا خواهیم کرد. با میهن بلاکچین همراه باشید.

این مقاله در تاریخ ۱۸ مرداد ۱۴۰۱ به‌روزرسانی شده است.

IPFS چیست؟

IPFS چیست
منبع: maketecheasier.com

با تعریفی ساده از IPFS کار را آغاز می‌کنیم: IPFS سیستمی توزیع‌یافته برای ذخیره، نگهداری و دسترسی به انواع داده‌ها (اعم از فایل، برنامه، وبسایت‌ها و دیگر اقسام داده) است.

در تعریفی کمی پیچیده‌تر، IPFS سروری جهانی و توزیع‌یافته از کل داده‌های موجود شبکه است که می‌توان هم از طریق محتوای آن (به کمک شناسه محتوا CID) و هم از طریق شرکت‌کنندگان (نودها) به آن دسترسی داشت.

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

شبکه IPFS مبتنی بر سه اصل است:

  • غیرمتمرکز بودن
  • آدرس‌دهی محتوایی
  • مشارکت اعضا

غیرمتمرکز بودن

به شکل ساده و در این پیش‌زمینه به معنی امکان‌پذیر کردن دسترسی و دانلود/آپلود داده از نقاط مختلف کره زمین (و حتی به زودی سیارات دیگر – به نام IPFS توجه کنید) است به نحوی که تحت نظارت و کنترل یک سازمان نباشد. این کار چه فوایدی دارد؟

اینترنت (به مفهوم عام) بسیار مقاوم خواهد شد. نسخه‌های متعددی از داده‌های مدنظر شما در اقصی نقاط دنیا وجود خواهد داشت که شانس دسترسی به آن را در صورت وقوع اتفاقات ناگوار افزایش خواهد داد.

به دلیل ذات توزیع‌یافته ذخیره فایل‌ها، سانسور کردن دسترسی به داده‌ها در این ساختار برای دولت‌ها (یا هر نهاد دیگری) بسیار مشکل خواهد بود. مثال جالبی از این اتفاق موجود است؛ در سال ۲۰۱۷ که دولت اردوغان به دلایلی سیاسی دست به فیلتر ویکیپدیا زد، یکی از مهندسین IPFS به نام Kubuxu، نسخه ترکی این سایت را در پاسخ به این سانسور، در IPFS بارگذاری کرد

دیگر مزیت غیرمتمرکز بودن، ایجاد دسترسی جغرافیایی نزدیک‌تر به نودهای حامل اطلاعات است؛ چیزی که در اینترنت سنتی با نام CDN (شبکه تحویل محتوا) آن را می‌شناسیم. دسترسی جغرافیایی نزدیک‌تر به سرورها، سبب بارگذاری سریع‌تر اطلاعات در سمت کلاینت خواهد شد.

آدرس‌دهی محتوایی

آدرس‌دهی سنتی در فضای وب (و حتی فایل سیستم کامپیوتر شخصی شما) بر اساس محل ذخیره‌سازی آن است. به عنوان مثال، لینک زیر محل ذخیره‌سازی یک فایل در کامپیوتر شخصی من را نشان می‌دهد:

H:\Anime\One Piece\Part 4\One Piece-1022.mkv

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

همان‌طور که گفتیم، با توجه به اینکه آدرس (لینک) از روی هش محتوا ساخته می‌شود، به محض ایجاد کوچکترین تغییری در محتوا، آدرس جدیدی به آن اختصاص خواهد یافت. این امر برای وبسایت‌های امروزی امری نامطلوب است. همین مطلبی که در حال خواندن آن هستید، بارها از زمان انتشار دستخوش تغییر و بروز رسانی قرار گرفته است، اگر از پروتکل IPFS برای میزبانی از آن استفاده می‌کردیم، هر بار آدرس جدیدی به آن تعلق می‌گرفت که دنبال کردن آن را برای مخاطب و پروموت کردن آن را برای ما مشکل می‌ساخت. طراحی ماژولار و اپن سورس IPFS این اجازه را می‌دهد تا ابزارها و پروتکل‌های دیگری بر روی آن ساخته و یا سوار شوند. سه ابزاری که می‌تواند مشکل ذکر شده را (بر اساس مورد استفاده) حل نمایند، IPNS، Mutable File System و DNSLink هستند که توضیح هر یک از دامنه این مقاله خارج است اما به شکل خلاصه، این ابزارها پوینترهای دینامیکی برای اشاره مستقیم به محتوای بروز شده ارائه می کنند.

دقت داشته باشید که موجود بودن محتوا در پیکربندی IPFS منوط به وجود حداقل یک نود است که میزبان داده‌های مدنظر شما باشد؛ مشابه شبکه نظیر به نظیر تورنت. مادامی که حداقل یک نسخه از داده‌ها در یک نود موجود باشد، دسترسی به آن ممکن است. تفاوت آن با وب ۲ در این است که بر خلاف همتای سنتی خود، در IPFS قادر به پیدا کردن این نسخه‌ها خواهید بود چرا که آدرس‌دهی بر اساس محتواست.

مشارکت اعضا

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

IPFS چگونه کار می‌کند؟

در بطن پروتکل IPFS، شناسه محتوا یا CID قرار دارد. به کمک شناسه محتوا که هشی رمزنگاری شده از خود محتواست، آدرس‌دهی محتوایی صورت می‌پذیرد. CID یک شناساگر خودمعرف است. پروژه مولتی فرمتز (Multiformats)، استانداردی از این شناسه‌ها ایجاد کرده است که طیف وسیعی از پلتفرم‌ها (همچون IPFS، IPLD، libp2p و فایل کوین) از آن تبعیت می‌کنند.

CID از تابع رمزنگاری SHA-256 به شکل پیش‌فرض استفاده می‌کند. بنابراین خروجی ما ۲۵۶ بیتی یا ۳۲ بایتی خواهد بود. با توجه به اینکه لزومی برای استفاده از این تابع وجود ندارد و در آینده ممکن است از الگوریتم‌های دیگری استفاده شود، از قالب مولتی هش (Multihash) برای توصیف تابع رمزنگاری به کار رفته استفاده می‌شود. خروجی مولتی هش از قالب (نوع تابع هش – طول خروجی – مقدار) پیروی می‌کند:

قالب خروجی مولتی هش
منبع: proto.school

برای دیدن جدول کامل کدک‌های مورد پشتیبانی فعلی، به این لینک رجوع کنید. برای این که خروجی از قالب صفر و یک که خوانایی اندکی برای انسان دارند در آید، از base encoding استفاده می‌شود. در ابتدای ایجاد IPFS، از اینکدینگی مشابه آدرس‌های بیت کوین (base58btc) استفاده می‌شد. نتیجه شناسه‌هایی مشابه شکل زیر بود:

QmY7Yh4UquoXHLPFo2XbhXkhBvFoPwmQUSa92pxnxjQuPU

این نسخه ابتدایی از فرمت مولتی هش که با کاراکترهای ابتدایی Qm در ابتدای مقدار هش قابل تشخیص است، هم‌اکنون نسخه صفر (CIDv0) نامیده می‌شود. 

با حس شدن نیاز به توسعه بیشتر و تفتیش توصیف‌پذیری داده‌ها، پیشوندهای بیشتری رفته رفته به CID اضافه شد. در نسخه یک، علاوه بر محتویات هش، نوع تابع رمزنگاری و اینکودینگ، دو پیشوند برای مشخص کردن نسخه و (در صورت نمایش به شکل string) برای نمایش base به آن اضافه شده است.برای دیدن جداول مربوط به پیشوندها به این دو لینک (+) مراجعه کنید. ابزار دیگری که می‌تواند به کار شما آید، سایت CID Inspector است که می‌توانید با وارد کردن هش‌ها در فیلد جستجو، اطلاعات مربوط به آن را مطابق شکل زیر مشاهده کنید:

وارد کردن هش در سایت CID Inspector
منبع: cid.ipfs.io

ساختاردهی به داده با استفاده از Merkle DAG

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

pics
├── cats
│   ├── 2018-02-23-tabby.png
│   └── 2019-12-16-black.png
└── fish
    ├── 2017-03-05-freshwater.png
    ├── 2018-04-14-tropical.png
    └── 2020-10-02-blowfish.png


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

گراف غیرمدور جهت‌دار یا بی‌دور سودار (Directed Acyclic Graph) به گرافی گفته می‌شود که هیچ مسیر جهت‌داری که ابتدا و انتهای آن یکی باشد در آن وجود نداشته باشد. ساختار مثال ما می‌تواند یک DAG به شمار آید. مفهوم جهت در این سازوکار، شامل شدن محتویات است؛ بدین ترتیب که در مسیر سلسله مراتب بالا به پایین ما (از دایرکتوری تصاویر به سمت دایرکتوری گربه‌ها و ماهی‌ها)، هر یال جهت‌دار نشان‌دهنده تعلق است و این رابطه در جهت خلاف آن برقرار نیست. بدین معنی که فولدر ماهی‌ها متعلق به دایرکتوری تصاویر است اما عکس آن برقرار نیست. همچنین هیچ حلقه و دوری در گراف وجود ندارد؛ شما نمی‌توانید با تنها یک بار گذر، به نقطه اولیه برسید.

گراف
منبع: proto.school

برای نشان دادن گراف‌ها در Merkle DAG از برگ‌ها شروع می‌کنیم. پیش‌تر در خصوص شناسه محتوا و ساخت آن گفتیم. از انتهای سلسله مراتب شروع کرده و شناسه‌ها را می‌سازیم:

گراف در merke dag
منبع: proto.school

محتوای دایرکتوری‌ها، لیست فایل‌ها و فولدرهای آن است؛ بنابراین می‌توان آن را لیستی از CIDهای آن در نظر گرفت. به همین ترتیب می‌توانیم این کار را تا بالاترین مرتبه که ریشه نامیده می‌شود ادامه دهیم. در این ساختار مرکل، CID هر راس به تمامی فرزندان (راس‌های زیرین) آن وابسته است.

ساختار مرکل و cid
منبع: proto.school

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

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

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

گراف چارت سازمانی
منبع: proto.school

در این مثال هیچ راس متمایزی وجود ندارد که بتواند به عنوان نود ریشه برای این ساختار به شمار آید. بنابراین نمی‌توان تمامی این ساختار را به وسیله یک شناسه محتوا به اشتراک گذاشت اما چیزی ما را از ایجاد ساختاری جدید (به کمک نودی تازه) منع نمی‌کند. فرض کنید نودی ایجاد کنید که Asif یا Ciara فرزند آن باشد. آن گاه در این صورت می‌توان از آن نود تازه به عنوان نود ریشه استفاده کرد.

مزیت دیگر درخت مرکل در کنترل نسخه (Version Control) است؛ فرض کنید می خواهیم در نسخه جدید فولدر ماهی‌ها را حذف کرده و فولدر جدیدی با نام سگ‌ها بیافزاییم. این تغییرات سبب ایجاد DAG جدیدی خواهد شد که نماینده آخرین نسخه است. اما تمام نودهایی که شامل فولدر گربه‌ها و زیرمجموعه آن هستند بدون تغییر باقی خواهند ماند و در هر دو هش ریشه باقی خواهند ماند. این چنین می‌توان بدون نیاز به آپلود مجدد، حالت جدید را میزبانی کرد. بدین ترتیب قادر خواهیم بود تا هر دو نسخه را بدون نیاز به اشغال دو برابر فضا، در کنار هم داشته باشیم. این روش از نحوه کارکرد گیت (Git) که مشهورترین شیوه ورژن کنترل در توسعه نرم‌افزار است الهام گرفته شده است. این بی‌نیازی به آپلود مجدد (Deduplication) در مقیاس بزرگ‌تر تفاوت شگرفی ایجاد خواهد کرد. به عنوان مثال وقتی شما صفحات وب را از طریق مرورگر خود باز می‌کنید، منابع زیادی از قبیل متن، عکس و مارک‌آپ بارگذاری می‌شوند. اما بسیاری از المان‌های صفحات، مشابهت زیادی به یکدیگر دارند. در ساختار محتوای مبتنی بر محل ذخیره‌سازی، فارغ از میزان شباهت، تمامی منابع باید کاملا از نو دانلود شوند و راه آسانی برای تشخیص این دوباره‌کاری وجود ندارد. با سود جستن از Content Addressing می‌توان منابع به شدت پرکاربرد (همچون تم‌های وردپرس، کتابخانه‌های بوت استرپ CSS . یا کتابخانه‌های رایج جاوا اسکریپت) را بی‌نیاز به این بارگذاری دوباره، به راحتی مورد استفاده قرار داد.

IPLD و Libp2p

گراف سودار بی‌دور مرکل سنگ بنای پروژه‌های متنوعی همچون سیستم‌های کنترل نسخه (گیت)، بلاکچین‌ها (اتریوم)، پروتکل وب توزیع یافته (IPFS) و شبکه‌های ذخیره‌سازی توزیع یافته (فایل کوین) است. با توجه به گستردگی نوع کاربردها، پروژه خواهری به نام IPLD یا داده‌های متصل بین سیاره‌ای توسط شرکت پروتکل لبز (Protocol Labs – شرکت مادر IPFS) ایجاد شده است. هدف از ایجاد آن، غیرمتمرکزسازی ساختارهای داده و لینک‌سازی بین آن‌هاست به نحوی که ایجاد برنامه‌های غیرمتمرکز آسان‌تر از گذشته شود. IPLD قصد دارد نقش URL را برای داده‌ها بازی کند.

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

Bitswap

بیت‌سواپ (Bitswap) نام یکی از ماژول‌های کلیدی سیستم فایل بین سیاره‌ای است. بیت سواپ را می توان نوعی پروتکل پیام‌دهی دانست که دو وظیفه اصلی دارد:

  • دریافت بلوک‌های درخواستی کلاینت از شبکه
  • ارسال بلوک‌های در اختیار به دیگر همتایانی که متقاضی دریافت آن هستند.

پروتکل IPFS داده‌ها را به قطعاتی به نام بلوک می‌شکند و هر یک از این بلوک‌ها شناسه محتوای مختص خود را دارند. هر گاه نودی متقاضی دریافت محتوایی خاص باشد، به وسیله این پروتکل پیام‌دهی، درخواستی به دیگر نودهای متصل می‌فرستد. در این درخواست هش ریشه DAG محتوای موردنظر الصاق می‌شود. نودهای دیگر از طریق همین ساختار، پاسخ استعلام نود اولیه را می‌دهند. در نهایت از بین نودهایی که محتوا را در اختیار دارند، به یکی درخواست ارسال فرستاده می‌شود و داده‌ها بدین شکل از شبکه بارگذاری می‌شوند. در صورتی که هیچ‌یک از نودهای متصل همسایه، داده مدنظر ما را در اختیار نداشته باشد، از جدول درهم‌ساز توزیع‌یافته (Distributed Hash Table) برای یافتن نودی که داده را در اختیار دارد، استفاده می‌شود. مراحل گفته شده را می‌توانید به فرم شماتیک در تصویر زیر مشاهده کنید:

شیوه استعلام و دریافت فایل به کمک بیت سواپ
منبع: ipfs.io

تیم توسعه‌دهنده و سرمایه‌گذاران IPFS

تیم توسعه‌دهنده و سرمایه‌گذاران IPFS
منبع: protocol.ai

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

خوان بنت (Juan Benet) که دانش‌آموخته علوم کامپیوتر از دانشگاه استنفورد بود، از نزدیک شاهد این پیشرفت بود. او با الهام از تکنولوژی‌های گیت و تورنت، ایده اولیه IPFS را در سر پروراند. 

خوان بنت
منبع: Avc.com

بدین منظور او شرکت پروتکل لبز (Protocol Labs) را در سال ۲۰۱۴ تاسیس کرد. این شرکت مادر چتری حمایتی برای تحقیقات بنیادین، توسعه و راه‌اندازی در خصوص زیرساخت‌های شبکه‌های باز است. نخستین محصولات این شرکت پروتکل IPFS و لایه ذخیره مشوق‌دار آن، شبکه فایل کوین، بود. خارج از اکوسیستم IPFS، پروتکل لبز از حامیان و سرمایه‌گذاران اصلی کوین لیست (Coinlist) است همچنین محققان آن نقشی کلیدی در توسعه سازوکار رمزنگاری PLONK که یکی از پایه‌های الگوریتم‌های اثبات بی‌نیاز از دانش (ZK proof) است، داشته‌اند.

از دیگر افراد مهم پروتکل لبز می‌توان به اوان میازونو (Evan Miyazono) اشاره کرد. او فارغ‌التحصیل دانشگاه‌های استنفورد و کلتک است و مدیر بخش تحقیقات این مجموعه است.

این شرکت فارغ‌التحصیل دوره شتابدهی Y Combinator در سال ۲۰۱۴ است. صندوق سرمایه‌گذاری USV از دیگر حامیان اولیه این بنیاد است.

پروژه‌های مرتبط و همکاری‌های پروتکل IPFS

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

فایل کوین

فایل کوین یکی از بزرگترین ارائه‌دهندگان خدمات میزبانی محتوا به شکل متمرکز است. ICO فایل کوین در سال ۲۰۱۷، یکی از بزرگترین عرضه اولیه‌های کریپتویی تا آن زمان بود؛ پروتکل لبز موفق شد با فروش کوین‌های این شبکه، مبلغ ۲۰۵ میلیون دلار جذب سرمایه کند. این شبکه در حال حاضر میزبان بیش از ۱۳۰ پبی بایت (PiB) اطلاعات است.

اطلاعات شبکه فایل کوین
منبع: starboard.ventures

مین‌نت این شبکه در سال ۲۰۲۰ راه‌اندازی شد. این شبکه از دو الگوریتم اجماع گواه اثبات تکثیر (Proof of Replication) و گواه اثبات فضا-زمان (Proof of Spacetime)، برای اطمینان از صحت ذخیره‌سازی داده‌های کاربران استفاده می‌کند.

NFT Storage

سرویس NFT Storage، محصولی رایگان و عام‌المنفعه است که به افراد و پروژه‌ها اجازه می‌دهد تا میزان ۳۱ گیگابایت از متادیتاهای مجموعه‌های NFT را به شکل غیرمتمرکز، شفاف و مطمئن ذخیره‌سازی کنند. بیش از ۲۲۰ ترابایت داده از طریق این سرویس نگهداری می‌شود.

Killcord

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

نقشه راه پروژه IPFS

متاسفانه نقشه راه IPFS از سال ۲۰۱۹ به بعد به شکل مشخص زمان‌بندی و در اختیار عموم قرار نگرفته‌اند، بلکه به فرم تعدادی هدف بلند‌مدت بر اساس سختی و آسانی دستیابی ذکر شده‌اند. در ادامه به تعدادی از این اهداف می‌پردازیم:

  • وب بین‌سیاره‌ای: با توجه به برنامه‌ شرکت اسپیس ایکس برای ارسال انسان به مریخ تا سال ۲۰۲۴، IPFS قصد دارد که تا بدان زمان انتخاب اول برای استفاده باشد. هدف این است که نخستین انسان‌های ساکن بر مریخ، از زیرساخت IPFS برای استفاده از اپ‌های پرکاربرد خود استفاده نمایند.
  • وب خودآرشیوشونده: در این مرحله عمر صفحات وب از ۶ ماه به سمت بی‌نهایت میل خواهد کرد. به کمک IPFS و آدرس‌دهی محتوایی، آرشیوکنندگان اینترنت خواهند توانست به فرم کاراتری از اطلاعات موجود در شبکه جهانی پشتیبان تهیه کنند. همچنین امکان آن فراهم خواهد بود که هر سازمانی بتواند به شکلی در راه‌اندازی و ادامه فعالیت این آرشیو مشارکت نماید.
  • WebOS: این یکی از اهداف غایی این پروژه است؛ در آینده‌ مدنظر این پلتفرم، وب و سیستم‌های عامل با یکدیگر ادغام خواهند شد؛ وب اپ‌ها و برنامه‌های اجرا شده در محیط دستگاه‌های شخصی دیگر تفاوتی با یکدیگر نخواهند داشت. ذخیره‌سازی داده‌ها در فضای دستگاه‌های شخصی چیزی شبیه پین کردن خواهد بود. محیط مرورگر و سیستم‌ عامل از یکدیگر قابل تشخیص نخواهد بود. در این آینده، ساختار داده‌های این سیستم عامل بر روی IPLD بنا خواهد شد و سیستم فایل داخلی مبتنی بر IPFS خواهد بود.

برای آشنایی با دیگر اهداف بلندمدت این پروژه، می‌توانید این ریپوی گیت هاب را مشاهده کنید.

پرسش و پاسخ (FAQ)

پرسش و پاسخ میهن بلاکچین
  • پروتکل IPFS چیست؟
    IPFS یک پروتکل ابررسانه (Hypermedia) همتا به همتا است. این پروتکل برای رفع نواقص فعلی وب ایجاد شده است. این پروتکل که مجموعه‌ای از ابزارها، زیرساخت‌ها و استانداردهاست، امکان ایجاد شبکه‌ای غیرمتمرکز و همتا به همتا از داده‌ها و آدرس‌دهی محتوایی آن‌ها را فراهم می‌کند.
  • آیا IPFS توکن/کوین دارد؟ آن را از کجا خریداری کنم؟
    خیر. پروتکل IPFS راا می‌توان شبکه‌ای باز، آزاد و غیرتجاری دانست و باید به آن بیشتر به عنوان بستر (و نه محصول نهایی) نگریست. نزدیک‌ترین نمونه در دنیای ارزهای دیجیتال به این پروژه، که به شکل تجاری و با استفاده از ارز دیجیتال، طرفین را تشویق به رفتاری صحیح می‌کند، شبکه فایل کوین و ارز FIL است.

جمع‌بندی

پروتکل IPFS یا سیستم فایل بین‌سیاره‌ای تلاشی برای ایجاد شبکه‌ای توزیع‌یافته و غیرمتمرکز برای میزبانی، ایندکس و دریافت داده‌هاست. این پروژه که با استفاده از پیشرفت‌های پیشین در حوزه ارتباطات همتا به همتا و استفاده از درخت‌های مرکل برای ساختاربندی داده و به کمک مشارکت کاربران، به این مهم دست پیدا کرده است. از قابلیت‌های کلیدی این پروتکل، استفاده از آدرس‌دهی محتوایی (به جای استفاده از آدرس محل ذخیره‌سازی) است. برای این منظور از مفهومی به اسم شناسه محتوا (CID) استفاده شده است. IPFS را می‌توان یکی از زیرساخت‌های مهم در جهت رسیدن به وب ۳ و/یا متاورس دانست. 

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

منبع
IpfsProto.schoolProtocol

تیم تولید محتوا

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

نوشته های مشابه

اشتراک
اطلاع از
2 دیدگاه
جدید ترین
قدیمی ترین محبوب ترین
Inline Feedbacks
View all comments
دکمه بازگشت به بالا