آشنایی با شبکه همتا به همتا (P2P)
در این مقاله میخواهیم در مورد شبکه همتا به همتا (peer to peer) یا به اختصار P2P صحبت کنیم که یک شبکه اشتراک فایل غیرمتمرکز میباشد. درک این شبکه میتواند به شما در درک سیستمهای بلاکچینی کمک کند.
بنابراین برای آشنایی با شبکه همتا به همتا (P2P)، این مقاله را تا انتها بخوانید.
شبکه همتا به همتا P2P چیست؟
در علوم کامپیوتر، یک شبکه peer-to-peer یا همتا به همتا، از گروهی از دستگاهها تشکیل شده که فایلها را به طور جمعی ذخیره کرده و به اشتراک میگذارند. هر شرکت کننده (گره یا نود) به عنوان یک همتای منفرد عمل میکند. به طور معمول در این شبکه، همه گرهها قدرت برابر دارند و وظایف یکسانی را انجام میدهند. در فناوری مالی، اصطلاح همتا به همتا معمولاً به مبادله رمز ارزها یا داراییهای دیجیتالی از طریق یک شبکه توزیع شده اشاره میکند. در واقع پلتفرم P2P به خریداران و فروشندگان این امکان را میدهد تا بدون نیاز به واسطه، معاملات خود را انجام دهند. در برخی موارد، ممکن است وب سایتها یک محیط P2P را نیز فراهم کنند که وام دهندگان و وام گیرندگان را به هم متصل میکند.
ساختار P2P میتواند برای موارد استفاده مختلف مناسب باشد، اما در دهه ۱۹۹۰ زمانی که اولین برنامههای اشتراک گذاری فایل (file-sharing) ایجاد شد، محبوبیت خاصی پیدا کرد. امروزه، شبکههای P2P در هسته اکثر رمز ارزها قرار دارند و بخش بزرگی از صنعت بلاکچین را تشکیل میدهند. با این حال، آنها همچنین در سایر برنامههای کاربردی توزیع شده، از جمله موتورهای جستجوی وب، پلتفرمهای استریمینگ، بازارهای آنلاین و پروتکل IPFS مورد استفاده قرار میگیرند.
شبکه همتا به همتا چگونه کار میکند؟
در اصل، یک سیستم P2P توسط یک شبکه توزیع شده از کاربران نگهداری میشود. از آنجایی که هر گره یک کپی از فایلها را نگه میدارد، هم به عنوان کلاینت (client) و هم به عنوان سرور برای سایر گرهها عمل میکند، معمولاً آنها هیچ مدیر یا سرور مرکزی ندارند. بنابراین، هر گره میتواند فایلها را از گرههای دیگر دانلود کند یا فایلها را در آنها آپلود کند. این همان چیزی است که شبکههای P2P را از سیستمهای سرویس گیرنده-سرور (client-server) سنتیتر متمایز میکند، که در آن دستگاههای سرویس گیرنده فایلها را از یک سرور متمرکز دانلود میکنند.
دستگاههای متصل در شبکههای P2P، فایلهایی را که در هارد دیسکهایشان ذخیره میشوند به اشتراک میگذارند. با استفاده از برنامههای نرم افزاری طراحی شده برای به اشتراک گذاری دادهها، کاربران میتوانند برای یافتن و دانلود فایلها از سایر دستگاههای موجود در شبکه جست و جو کنند. هنگامی که کاربر یک فایل معین را دانلود کرد، میتواند به عنوان منبع آن فایل عمل کند. به عبارت دیگر، هنگامی که یک گره یا نود به عنوان یک کلاینت عمل میکند، فایلها را از سایر گرههای شبکه دانلود میکند. اما زمانی که به عنوان یک سرور کار میکنند، منبعی هستند که گرههای دیگر میتوانند فایلها را از آن دانلود کنند. اگرچه در عمل، هر دو عملکرد را میتوان همزمان اجرا کرد (به عنوان مثال، دانلود فایل A و آپلود فایل B).
از آنجایی که هر گره فایلها را ذخیره، ارسال و دریافت میکند، شبکههای P2P با بزرگتر شدن پایگاه کاربرانشان سریعتر و کارآمدتر هستند. همچنین، ساختار توزیع شده آنها، سیستمهای P2P را در برابر حملات سایبری بسیار مقاوم میکند.
انواع شبکههای P2P
سیستمهای همتا به همتا بر اساس معماری و ساختار آنها به سه نوع دستهبندی میشوند که عبارتند از:
شبکههای P2P بدون ساختار
این شبکهها، هیچ سازماندهی خاصی از گرهها را ارائه نمیدهند و شرکت کنندگان به طور تصادفی با یکدیگر ارتباط برقرار میکنند. این شبکهها ممکن است نیاز به CPU و حافظه بالاتری داشته باشند؛ زیرا درخواستهای جستجو برای بیشترین تعداد همتایان ممکن ارسال میشوند.
شبکههای P2P دارای ساختار
شبکههای P2P ساختاریافته یک معماری سازمانیافته ارائه میدهند که به گرهها اجازه میدهد به طور موثر فایلها را جستجو کنند، حتی اگر محتوا به طور گسترده در دسترس نباشد. در بیشتر موارد، این امر از طریق استفاده از توابع هش که جستجوی پایگاه داده را تسهیل میکند، به دست میآید. اگرچه ممکن است این شبکهها کارآمدتر باشند، اما تمایل به ارائه سطوح بالاتری از تمرکز دارند و معمولاً به هزینههای راه اندازی و نگهداری بالاتری نیاز دارند.
شبکههای P2P ترکیبی
این شبکه، مدل مرسوم کلاینت-سرور را با برخی از جنبههای معماری همتا به همتا ترکیب میکنند. به عنوان مثال، ممکن است یک سرور مرکزی طراحی کند که ارتباط بین همتایان را تسهیل کند. در مقایسه با دو نوع دیگر، مدلهای هیبریدی معمولاً برخی از مزایای اصلی هر رویکرد را ترکیب میکنند و به درجات قابل توجهی از کارایی و عدم تمرکز به طور همزمان دست مییابند.
شبکه همتا به همتا در بلاکچین
در مراحل اولیه بیت کوین، ساتوشی ناکاموتو (Satoshi Nakamoto) آن را به عنوان «سیستم نقدی الکترونیکی همتا به همتا» تعریف کرد. بیت کوین به عنوان شکل دیجیتالی پول ایجاد شد. میتوان آن را از طریق یک شبکه P2P از یک کاربر به کاربر دیگر منتقل کرد، که یک دفتر کل توزیع شده به نام بلاکچین را مدیریت میکند.
ساختار P2P چیزی است که به بیتکوین و سایر رمز ارزها اجازه میدهد که بدون نیاز به واسطه یا سرور مرکزی به سراسر جهان منتقل شوند. همچنین، اگر هر کسی بخواهد در فرآیند تایید و اعتبار بلاکها شرکت کند، میتواند یک گره یا نود بیت کوین راه اندازی کند. بنابراین، هیچ بانکی برای پردازش یا ثبت تراکنش در شبکه بیت کوین وجود ندارد. در عوض، بلاکچین به عنوان یک دفتر کل دیجیتال عمل میکند که تمام فعالیتها را به صورت عمومی ثبت میکند. اساساً، هر گره یک کپی از بلاکچین را نگه میدارد و آن را با گرههای دیگر مقایسه میکند تا از صحت دادهها اطمینان حاصل کند. در واقع، شبکه به سرعت هرگونه فعالیت مخرب یا عدم دقت را رد میکند.
در زمینه بلاکچینهای رمز ارزها، گرهها میتوانند نقشهای مختلفی را ایفا کنند. برای مثال، گرههای کامل (Full nodes)، آنهایی هستند که با تأیید تراکنشها در برابر قوانین اجماع سیستم، امنیت شبکه را تأمین میکنند. هر گره کامل یک نسخه کامل و به روز شده از بلاکچین را حفظ میکند؛ به آنها اجازه میدهد در کار جمعی تأیید وضعیت واقعی دفتر کل توزیع شده شرکت کنند. البته شایان ذکر است که همه گرههای کامل اعتبارسنجی، ماینر یا استخراج کننده نیستند.
مزایای شبکه همتا به همتا
معماری و ساختار همتا به همتای بلاکچین مزایای بسیاری را به همراه دارد. از جمله مهمترین آنها این واقعیت است که شبکههای P2P امنیت بیشتری نسبت به شبکههای سنتی کلاینت-سرور ارائه میدهند. توزیع بلاکچین بر روی تعداد زیادی از گرهها، آنها را عملاً در برابر حملات Denial-of-Service (DoS) که سیستمهای متعددی را آزار میدهد مصون میکند. به همین ترتیب، از آنجایی که اکثر گرهها باید قبل از اضافه شدن دادهها به یک بلاکچین، اجماع ایجاد کنند، برای هکرها تقریبا غیرممکن است که دادهها را تغییر دهند. این امر به ویژه برای شبکههای بزرگی مانند بیت کوین صادق میباشد. بلاکچینهای کوچکتر مستعد حملات هستند، زیرا یک فرد یا گروه در نهایت میتواند بر اکثر گرهها کنترل داشته باشد (این موضوع به عنوان حمله ۵۱ درصدی شناخته میشود).
در نتیجه، شبکه همتا به همتای توزیع شده، همراه با الزامات اجماع اکثریت، به بلاکچینها درجه نسبتا بالایی از مقاومت در برابر فعالیتهای مخرب میدهد. مدل P2P یکی از دلایلی است که بیت کوین (و سایر بلاکچینها) توانستند به اصطلاح تحمل خطای بیزانسی (BFT) دست یابند.
علاوه بر امنیت، استفاده از معماری P2P در بلاکچینهای رمز ارزها، آنها را در برابر سانسور توسط نهادهای مرکزی مقاوم میکند. برخلاف حسابهای بانکی استاندارد، امکان مسدود یا تخلیه شدن کیفپولهای کریپتوکارنسی توسط دولتها وجود ندارد.
معایب شبکه همتا به همتا
علیرغم مزایای فراوان، استفاده از شبکههای P2P در بلاکچین محدودیتهای خاصی نیز دارد. از آنجایی که دفتر کل توزیع شده باید در هر گره به جای سرور مرکزی به روز شود، افزودن تراکنشها به زنجیره بلوک به مقدار زیادی قدرت محاسباتی نیاز دارد. این امر در حالی که امنیت را افزایش میدهد، میتواند کارایی را تا حد زیادی کاهش داده که یکی از موانع اصلی در مقیاس پذیری و پذیرش گسترده میباشد. با این وجود، توسعه دهندگان بلاکچین در حال بررسی جایگزینهایی هستند که ممکن است به عنوان راه حلهای مقیاس پذیری استفاده شوند. نمونههای مهم عبارتند از شبکه لایتنینگ، پلاسما، اتریوم و پروتکل Mimblewimble لایت کوین.
محدودیتهای بالقوه دیگر مربوط به حملاتی است که ممکن است در طول رویدادهای هارد فورک (Hard Fork) رخ دهند. از آنجایی که بیشتر بلاکچینها غیرمتمرکز و منبع باز هستند، گروههایی از گرهها میتوانند کد را کپی کرده و تغییر دهند و از زنجیره اصلی جدا شوند تا یک شبکه موازی جدید تشکیل دهند. هارد فورک کاملا طبیعی است و به خودی خود تهدیدی نیست. اما اگر برخی از روشهای امنیتی به درستی اتخاذ نشوند، هر دو زنجیره ممکن است در برابر حملات مجدد آسیب پذیر شوند.
علاوه بر این، ماهیت توزیعشده شبکههای P2P، کنترل و تنظیم آنها را در حوزه بلاکچین، نسبتاً دشوار میکند. به عنوان مثال چندین اپلیکیشن و شرکت P2P تاکنون به دلیل فعالیتهای غیرقانونی و نقض حق چاپ، با مشکلاتی مواجه شده اند.
جمعبندی
ساختار Peer-to-Peer را میتوان به روشهای مختلف توسعه و مورد استفاده قرار داد. معماری P2P با توزیع دفتر کل تراکنشها در شبکههای بزرگ گرهها، امنیت، عدم تمرکز و مقاومت در برابر سانسور را ارائه میدهد. این سیستمها علاوه بر سودمندی در فناوری بلاکچین، میتوانند سایر برنامههای محاسباتی توزیعشده، از شبکههای اشتراکگذاری فایل تا پلتفرمهای تجارت انرژی را نیز ارائه دهند.