شبکه P2P یا شبکه همتا به همتا یا نظیر به نظیر، نوعی شبکه غیرمتمرکز است. این شبکه ها به وسیله میلیون ها کامپیوتر در سرتاسر جهان ساخته شده اند. تمام این کامپیوترها تحت یک پروتکل ارتباطی کار می کنند.
هدف این شبکه ها، ایجاد شبکه بسیار گسترده اشتراک گذاری اطلاعات است.
امکان خرید بیت کوین و یا سایر ارزهای دیجیتال، به وسیله این نوع شبکه ها ایجاد شده است.
یک شبکه P2P یا همتا به همتا، نوعی شبکه خاص بوده که در آن گروهی از مردم و یا مجموعه ای از ماشین ها به گونه کاملا غیرمتمرکز مشارکت دارند.
بنابراین، در این نوع شبکه، هیچ نوع مرکز ارتباطی یا کنترلی وجود ندارد. همه طرف های مشارکت کننده به گونه ای مستقل به یک پروتکل ارتباطی و اجماع مشترک پاسخ می دهند.
در این روش، اعضای شبکه توانایی مبادله اطلاعات را به گونه مستقیم و بدون دخالت هیچ واسطه ای دارند.
برای دستیابی به این موفقیت، شبکه های P2P براساس پروتکل هایی ساخته شده که بر روی برترین پروتکل های اینترنت (TCP P2P IP) فعالیت می کنند.
از پروتکل های P2P به عنوان application protocols (پروتکل های اپلیکیشن) یا Layer 7 (لایه هفتم) بر طبق مدل Open Systems Interconnection (دستورالعمل سیستم های باز) یا OSI یاد می شود.
پروتکل های P2P برای اجرای عملیات به استفاده از پروتکل های انتزاعی تر نیاز خواهند داشت. هم زمان این کار باعث تسهیل ساخت و اجرای عملیات آنها نیز می شود.
این موضوع باعث شده که پروتکل های P2P از زمان ایجاد و معرفی، به طور گسترده برای اهداف مختلف مورد استفاده قرار بگیرند.
برخی از این استفاده ها قانونی بوده و برخی دیگر غیر قانونی هستند. اما با وجود این، یک نکته بسیار روشن است.
پروتکل های P2P بسیار قدرتمند بوده و امکان ایجاد ساختارهای غیرمتمرکز را فراهم می کنند. از طرفی بسیار مطمئن بوده و استفاده از آنها رایگان است.
به همین دلیل، ارزهای دیجیتالی همانند بیت کوین براساس پروتکل های P2P ساخته شده اند. در ادامه مطالب بیشتری در مورد این پروتکل ها و چگونگی تکامل آنها بیان خواهد شد.
منشا و تاریخچه P2P
منشا اولین شبکه P2P را می توان به ایجاد پروتکل UUCP یا Unix to Unix Copy Protocol در 1980 باز گرداند.
این پروتکل ساده موجب رشد شبکه های مشهور USENET و BBS شده که تا هنوز فعال بوده و در حال حاضر مشغول ارائه خدمات هستند.
BBS EffectLinux هنوز فعال بوده و حس و حال نوستالژیک برای این نوع سیستم های ارتباطی می دهد.
اصول عملیاتی این سیستم ها ساده است. ماشین با استفاده از یک مودم، تماس ارتباطی با ماشین مقصد برقرار می کند (اتصال dial-up).
از این طریق اطلاعات مورد نظر بین آنها به صورت نقطه به نقطه و بدون دخالت واسطه، اشتراک گذاری می شود.
در پایان تماس ارتباطی، کاربر امکان ایجاد تماس ارتباطی جدید با ماشین های دیگر و شروع دوباره پروسه را دارد.
تمام این پروسه بدون ساختارهای امروزی همانند اینترنت انجام می شده است. این شبکه و تکنولوژی از همان زمان هم در حال پیشرفت و توسعه بوده است.
در آن زمان پروتکل USENET و UUCP نقطه قوت و نشان دهنده اوج تکنولوژی ارتباطی بودند. در حقیقت آغاز جنبش cypherpunk با استفاده از این پروتکل انجام شده است.
شخصیت هایی همانند سینت جود، اریک هاج، تیموتی سی. می و دیود چاوم استفاده از این سیستم ها را به منظور اشتراک گذاری اطلاعات بر روی بوردهای BBS در جوامع Cypherpunks ترویج کردند.
این دوره، سال های ابتدایی محاسبات بوده و در همان زمان جرقه هایی از قابلیت های آتی این نوع پروتکل ها و کامپیوترهای دارای امکانات بیشتر و قدرتمند قابل مشاهده بوده است.
بعدها در سال 1983، پروتکل TCP / IP به وجود آمد. اساسا، این پروتکل به منظور ایجاد شبکه های بزرگ جهانی با انعطاف پذیری بیشتر ارائه شد.
در واقع، این پروتکل ساختار و بنای اولیه اینترنت امروزی را تشکیل می دهد. با ظهور سیستم و یا مدل OSI در سال 1989 و در نهایت با ورود پروتکل WWW (World Wide Web) یا شبکه گسترده جهانی، در سال 1990 امکان ایجاد اینترنت به واقعیت پیوست.
انواع شبکه های P2P
در میان شبکه های مختلف موجود P2P، ما به بررسی مهم ترین آنها می پردازیم:
شبکه ساختاریافته و غیرمتمرکز
این نوع از شبکه ها با عنوان شبکه های هیبریدی P2P شناخته می شوند. در این شبکه ها چیزی به نام پوشه در سرور مرکزی وجود ندارد.
اما در مقابل، مجموعه ای از نودها یا peer ها وجود داشته که از قابلیت دریافت درخواست های اطلاعاتی و پاسخ دهی به آنها به منظور تسهیل دسترسی به منابع برخوردار هستند.
برای جلوگیری از تمرکز گرایی، امکان اتصال و پیکربندی نودها یا peer ها به وسیله هر کاربر وجود دارد.
بنابراین، تشکیل جامعه ای از کاربران عملکرد شبکه را گسترش داده و به کارایی و انجام درست عملیات آن کمک می کند. شبکه های Diaspora و Mastodon مثال های خوبی از این گونه شبکه های فدرال هستند.
شبکه های بدون ساختار و غیرمتمرکز
در این نوع از شبکه های P2P، کامپیوترها یا نودهای مرکزی دارای عملکرد کنترل کننده درخواست ها وجود ندارد.
بالعکس، هر نود در شبکه دقیقا عملکردی یکسان با سایر نودها دارد. بنابراین هر نود جدید دقیقا عملکردها و اعتبار سایر نودها را بدست خواهد آورد.
شبکه هایی همانند بیت کوین، از این قابلیت برخوردار هستند. در این شبکه ها، هر نود اتصالی توانایی ها و امکانات سایر نودها را دارد.
یک شبکه P2P چگونه کار می کند؟
عملیات شبکه P2P نسبتا ساده است. در واقع، کار انجام شده، ساخت یک پروتکل ارتباطی (زبان) می باشد.
این پروتکل امکان برقراری ارتباط مستقیم کاربر استفاده کننده از نرم افزار مورد نظر را با سایر کامپیوترها بدون هیچ گونه واسطه ای فراهم می کند.
بزرگ ترین مشکل در هنگام ساخت این گونه سیستم ها، چگونگی طراحی سیستمی است که بدون نیاز به پوشه مرکزی، ارتباط با سایر کامپیوترها را با راه اندازی نرم افزار یکسان فراهم می کند.
این مشکل کمی پیچیده است. اما، امکان حل وضعیت به صورت کاملا کارا با استفاده از دو اقدام کاملا تعریف شده وجود دارد:
1- افزایش قابلیت نرم افزار : می توان قابلیت های نرم افزار را به گونه ای خاص ایجاد کرد. این قابلیت، امکان اشتراک گذاری اطلاعات ارتباطی بین کاربران استفاده کننده و نرم افزار را فراهم می کند.
بنابراین، هر کامپیوتر استفاده کننده از نرم افزار امکان داشتن پوشه ای از کامپیوترهای ارتباطی و استفاده از آن به منظور برقراری ارتباط با نود مورد نظر را دارد.
2- ایجاد بیشترین حالت تمرکز زدایی ممکن برای شبکه : این کار به کاربران بیشتری اجازه استفاده از نرم افزار و ایجاد نود خاص خود را می دهد. بنابراین، اندازه شبکه گسترش می یابد. به این ترتیب محدوده، امکانات و قابلیت های آن نیز افزایش و بهبود می یابد.
وجود peer های متعدد (کامپیوترهایی که از نرم افزار P2P استفاده می کنند) باعث کاهش میزان سانسور پذیری شبکه می شود. از طرفی عملیات شبکه قدرتمندتر شده و قابلیت های آن افزایش می یابد.
در سیستم های اولیه P2P، همانند USENET یا IRC، سیستم ها و اتصالات به وسیله ابزارهای نوشتاری و تماس ها انجام می گرفت. همچنین برخی از این سیستم ها دارای بوردی شامل peer های متعدد برای برقراری ارتباط بودند.
بنابراین، هر عضو جدید شبکه، به لیستی از peer های شبکه دسترسی داشت. آنها به منظور برقراری ارتباط از سوی سایر peer ها، خود را به لیست اضافه می کردند. علاوه بر این، peer جدید می توانست دروازه ای برای اطلاعات سایر peer های مسدود شده باشد.
اما شبکه های بزرگتری مانند IRC, DCC, DC ++, Napster, Gnutella, BitTorrent و حتی بیت کوین، به گونه ای کاملا جدی این روند را تغییر دادند.
در حال حاضر، هر نود متصل به یک نقطه ارتباطی، لیستی از peer های اولیه (یا نودها seed) دریافت می کند.
به این ترتیب، هر نود قابلیت ایجاد لیست مخصوص خود از نودهای متعلق به شبکه را خواهد داشت. در نتیجه، امکان سانسور بسیار کاهش پیدا کرده و سرعت گسترش شبکه نیز افزایش می یابد.
البته، عملیات هر پروتکل به گونه ای متفاوت است. برای مثال، IRC سیستمی از سرورهای توزیعی (تقریبا متمرکز) بوده که برای کاربر امکان برقراری ارتباط نقطه به نقطه را با یک شخص می دهد.
اما شبکه های دیگری مانند DC + و Gnutella به گونه کاملا غیرمتمرکز طراحی شده اند. در این شبکه ها، تطبیق پذیری شبکه با ورود و خروج نودها به گونه ای کاملا خودکار انجام می شود.
مشابه همین اتفاق در بیت کوین رخ می دهد. شبکه با یک seed آغاز می شود. همان seed اولیه که به وسیله ساتوشی ناکاموتو آغاز شده است.
پس از آن شبکه به طور تدریجی گسترش یافته و به شبکه بزرگی با بیشتر از 10 هزار نود فعال تبدیل شده است.
البته، هدف شبکه بیت کوین با سایر شبکه ها مانند Gnutella کامل متفاوت است. اما، اصول اولیه پروتکل که برقراری ارتباط میان دو طرف بدون دخالت هیچ واسطه ای بوده، یکسان است.
مزایای تکنولوژی P2P
از جمله مزایای P2P می توان به موارد زیر اشاره کرد:
- مقاومت در برابر فیلترینگ: امکان سانسور یک شبکه بسیار غیرمتمرکز P2P غیر ممکن است.
- انعطاف پذیری بسیار زیاد : در صورت از کار افتادن یک نود، می توان جای آن را با نود دیگری پر کرد. به همین دلیل، در مورد این شبکه جمله ای معروف وجود دارد. شبکه های P2P از یک فاجعه هسته ای هم در امان خواهند بود. زیرا، حتی با از بین رفتن بسیاری از نودها و سالم بودن فقط یکی از آنها، امکان بازسازی شبکه به طور کامل وجود خواهد داشت.
- مقیاس پذیری : شبکه های P2P، توانایی ارائه راه حل هایی با مقیاس پذیری قدرتمند به منظور ارائه خدمات منحصر به فرد و با دسترسی جهانی را دارند.
- اعتبار و اعتماد بیشتر : شبکه های P2P به هویت های مرکزی وابسته نیستند. از این رو، اعتماد و اعتبار بیشتری را برای کاربران خود ارائه می کنند.
- پهنای باند سطح بالا : این شبکه ها، پهنای باند سطح بالایی را فراهم می کنند. زیرا آنها از پهنای باند تمامی شرکت کنندگان استفاده کرده و آنها را به شبکه خود انتقال می دهند.
- مبادله هر گونه اطلاعات : این شبکه ها برای انتقال و تبادل هر گونه اطلاعات ایجاد شده اند. از یک آهنگ مورد علاقه تا انتقال میلیون ها دلار، تمام موارد در چند ثانیه انجام خواهد شد.
معایب تکنولوژی P2P
از جمله معایب شبکه P2P می توان به موارد زیر اشاره کرد:
عدم ارائه کاربر به صورت ناشناس : شبکه های P2P در برابر فیلتر شدن مقاوم هستند. اما آنها کاربران را به صورت ناشناس معرفی نمی کنند.
حتی اگر شبکه مورد نظر از رمزنگاری استفاده کند. فقط در صورت طراحی ویژه، این کار صورت می گیرد. بهترین مثال در این مورد، شبکه BitTorrent است.
در این شبکه، ISP ها قادر به تشخیص استفاده از پروتکل و ارسال هشدار به مراجع برای دانلود غیر قانونی کاربران خواهند بود.
تاخیر زیاد : طراحی شبکه های P2P به گونه ای بوده که با گستردگی بیشتر شبکه، تاخیر افزایش پیدا می کند. زیرا رسیدن اطلاعات به تمام قسمت های تشکیل دهنده شبکه زمان زیادی نیاز دارد.
این زمان در شبکه های گسترده تر، بیشتر خواهد بود. بنابراین، برای غلبه بر این مشکل نیاز به ایجاد پروتکل ها و الگوریتم های جدید است.
وجود مشکلات ساختاری شناخته شده : پروتکل های P2P تعدادی مشکلات ساختاری شناخته شده دارند. مواردی مانند حملات MITM منجر به کنترل و در اختیار گرفتن نودها شده اند.
برقراری ارتباط عمومی در همه زمان ها یکی از این مشکلات است. همچنین پروتکل ها در برابر حملات مسیریابی یا سرقت هایی همانند eclipse attack یا Erebus attack آسیب پذیر هستند.
بیت کوین، شبکه P2P برای مدیریت ارزش
بیت کوین یکی از گسترده ترین و بزرگ ترین شبکه های موجود P2P است. در حال حاضر بیشتر از 10 هزار نود فعال در شبکه آن قرار دارند.
بیت کوین، یک شبکه جهانی بوده که برای کاربران خود امکان مدیریت ارزش را بدون وجود واسطه ها فراهم کرده است.
برای استفاده از این قابلیت، تنها دانلود نرم افزار کافی است. این نرم افزار امکان تعامل کاربر با شبکه را فراهم می کند. در نتیجه دسترسی به تمام امکانات میسر می شود.
ساختار شبکه بیت کوین، به عنوان یک شبکه P2P، پاسخ به نیاز ارائه قابلیت ها و امکانات به صورت کاملا غیر متمرکز است.
خلق یک ارز دیجیتال و کنترل آن با یک هویت مرکزی، کاری کاملا بیهوده است. ایجاد بانک مرکزی به مراتب آسان تر خواهد بود.
در مقابل، ساتوشی ناکاموتو، به دنبال ایجاد شبکه ای جهانی، غیرقابل سانسور، امن و خصوصی برای مدیریت ارزش بوده است.
به همین دلیل، ساتوشی ناکاموتو شبکه بیت کوین را براساس شبکه P2P و با استفاده از پروتکل مختص خود و تحت اصول پروتکل های Kademlia و Gossip طراحی کرده است.
نتیجه به گونه ای بوده که امکان توقف بیت کوین به عنوان یک شبکه P2P، عملا وجود ندارد. حتی با وجود نقطه ضعف های ساختاری، استفاده از پروتکل P2P در طراحی بیت کوین بهترین تصمیمی بوده که ساتوشی ناکاموتو گرفته است.
به این ترتیب، ناکاموتو نسبت به خلق پول دیجیتال و بهره مندی کاربران و جهان از منافع آن مطمئن بوده است.
استفاده از P2P برای حل مشکلات پول دیجیتال
علاوه بر این، بیت کوین با استفاده از سیستم P2P برای ایجاد یک سیستم حسابداری توزیع شده اقدام کرده است.
در نتیجه، مشکلاتی نظیر دو بار خرج کردن دیگر وجود نخواهد داشت. دو بار خرج کردن یا خرج مضاعف، یکی از اصلی ترین مشکلات پول های دیجیتال است.
امکان دو برابر کردن و جعل پول، همواره یکی از مشکلات غیر قابل حل پول های دیجیتال بوده است. اما، ساتوشی ناکاموتو با طراحی بلاک چین و پروتکل P2P بیت کوین، این مشکل را حل کرده است.
بنابراین، کاربران قادر به استفاده ارزهای دیجیتال به صورت کاملا امن هستند. پول های کاربران با استفاده از پروتکل رایگان، در حالت کاملا باز و شفاف قرار داشته و از طرفی امکان جعل و دستکاری نیز وجود نخواهد داشت.
زیرا، هر نود تاریخچه تراکنش های شبکه را در اختیار داشته و به مشاهده عملیات های انجام شده در آن می پردازد.
در این شبکه تمام اتفاقات رخ داده در شبکه به صورت غیر قابل تغییر ثبت می شود. در نتیجه، کاربران از عدم امکان دستکاری شبکه اطمینان خواهند داشت.
همین موضوع بسیار مفید بوده و موجب تبدیل بیت کوین به شفاف ترین و مطمئن ترین پول دیجیتال موجود شده است.
رخدادهای مهم دیگر در آغاز P2P
ظهور IRC
در سال 1988 مرد جوانی به نام جراکو اویکارینین پروتکل IRC را طراحی کرد. این کار به منظور جایگزینی برنامه ای به نام MUT (MultiUser Talk) در یک BBS به نام OuluBox در دانشگاه Oulu فنلاند صورت گرفت.
هدف وی توسعه نرم افزار BBS بود. او موفق به ایجاد قابلیت های خبرهای سبک USENET، مکالمات فوری و ویژگی های مشابه BBS شد.
اولین بخش پیاده سازی شده، بخش چت یا گفتگو بود. برای این کار او از بخش های قرض گرفته شده استفاده کرده است. این بخش ها به وسیله دوستان وی، جیرکی کوپالا و جوکا پیهل نوشته شده بود. اولین شبکه IRC بر روی یک سرور به نام tolsun.oulu.fi راه اندازی شد.
در واقع این پروتکل برای استفاده از TCP P2P IP و ایجاد قابلیت انعطاف پذیری گسترده برای آن طراحی شده بود. در واقع، در سال 1990 اولین شبکه بزرگ IRC به نام EFNet ایجاد شد.
شبکه EFNet در هنگام منازعات خلیج فارس، نقش حیاتی در ارتباطات جهانی ایفا کرد. در واقع، این شبکه انتخاب ترجیحی مردم برای آگاهی فوری از رخدادهای میدان جنگ بود.
این موضوع نشان دهنده برتری بالقوه شبکه IRC در مقایسه با نامه و نامه نگاری بود. این برتری حداقل در سرعت و تعامل دو طرفه ارتباطات کاملا نمایان بوده است.
مشابه همین رویداد در هنگام فروپاشی شوروی اتفاق افتاده است. در این زمان هم شبکه IRC نقش حیاتی در برقراری ارتباطات و آگاهی فوری از رخدادهای جهانی ایفا می نمود.
از آن زمان تاکنون، پروتکل IRC توسعه، تغییرات و پذیرش زیادی همانند ایجاد شبکه هایی مثل freenode (که به طور گسترده برای پروژه های رایگان نرم افزاری استفاده می شد) Rizon Undernet, DALnet, Immortal-Anime now Xertion را تجربه کرده است.
تغییرات، گسترش و پذیریش پیشرفت زیادی در این پروتکل ایجاد کرده است. از همان زمان یکی از اولین سیستم های P2P بر روی اینترنت یعنی IRC-DCC یا IRC Direct Client-to-Client شکل گرفت.
این سیستم امکان برقراری ارتباطات مستقیم و بی واسطه را بین کاربران فراهم می کرد. همچنین امکان اشتراک گذاری فایل ها، ارتباطات رمزنگاری شده end-to-end (OTR) و غیره نیز وجود داشت.
ظهور HotLine Connect
در سال 1996 نوع دیگری از شبکه های P2P به وسیله آدام هینکلی به وجود آمد. HotLine Connect یک شبکه P2P برای اشتراک گذاری فایل ها بود.
این شبکه از سیستم ردیابی برای مبادله اطلاعات بین دو کاربر استفاده می کرد. این شبکه تا پایان سال 2000 بسیار مورد استفاده بوده است.
ظهور سایر پروتکل ها با انعطاف پذیری بیشتر و به طور مشخص ظهور IRC-DCC باعث عدم کارایی بیشتر آن شده و به مرور استفاده از آن منسوخ شد.
Gnutella
Gnutella شبکه پیشرفته P2P بوده که به منظور اشتراک گذاری فایل و در سال 2000 به وسیله جاستین فرانکل و تام پپر ایجاد شد.
فرانکل و پپر کارمندان شرکت Nullsoft بودند. از محصولات این شرکت می توان Winamp player و سرویس پخش صدای Shoutcast را نام برد.
از آن زمان تاکنون، Gnutella گسترده ترین شبکه P2P موجود در جهان بوده است. در حقیقت، این شبکه بیشتر از 12 میلیون نود عملیاتی در سراسر جهان دارد.
ظهور Napster
Napster این نرم افزار در سال 1998 توسط شاون فنینگ توسعه یافته و امکان دانلود رایگان موسیقی را فراهم کرده است.
همچنین این شبکه به طور کامل P2P نبوده (IRC همین طور) و امکان مبادله موسیقی بدون دخالت واسطه خارجی را برای تمام کسانی که در شبکه و سرورهای آن وجود داشته فراهم می کند.
اما Napster به خاطر وارد آوردن ضررهای مالی به صنعت موسیقی، پس از محاکمه طولانی در جولای 2001 بسته شد. به هر حال، Napster باعث توجه بیشتر جهان به توسعه سیستم های غیر متمرکز شده است.