وقتی درباره پروتکل Gossip صحبت می کنیم، در مورد یک پروتکل ارتباطی صحبت می کنیم که دستگاه های دیجیتال برای انتشار اطلاعات در یک شبکه همتا به همتا ( P2P ) استفاده می کنند. در شبکه های بلاک چین، این پروتکل توسط گره های شبکه برای به اشتراک گذاری و افشای سریع و مطمئن اطلاعات با یکدیگر استفاده می شود.
نام Gossip برای این پروتکل از نحوه انتشار اطلاعات از طریق شبکه های اجتماعی گرفته شده است . Gossip به معنای شایعه است. بنابراین پروتکل Gossip از این شکل از افشای اطلاعات الهام گرفته شده است که بسیار سریع در این شبکه ها رخ می دهد. در حال حاضر، انواع مختلفی از این پروتکل ارتباطی وجود دارد. بسیاری از آنها با توجه به نیازهای هر کاربر یا هر یک از شبکه هایی که از آن استفاده می کنند اعمال می شوند.
منشاء پروتکل Gossip
منشا این پروتکل مربوط به الگوریتمهای تکرار اپیدمی است که توسط Demers Alan، Greene Dan، Hauser Carl، Irish Wes، Larson John، Shenker Scott، Sturgis Howard، Swinehart Danm و Terry Doug در مطالعه خود توضیح داده شده است. “الگوریتم های اپیدمی برای نگهداری پایگاه داده تکراری” سال ۱۹۸۷.
از زمان ظهور این مطالعه، گسترش اپیدمی علاقه زیادی به محاسبات برانگیخته شده است. به این دلیل که سیستم عامل آن برای شبکه های بزرگ با سطوح بالای عدم تمرکز مناسب است. در واقع، اولین کاربردهای عملی پروتکلهای نوع Gossip را میتوان در سیستمهای مسیریابی اولین شبکههایی که مقدمه اینترنت بودند، مشاهده کرد.
پروتکل Gossip چگونه کار می کند؟
پروتکل های Gossip بسیار ساده کار می کنند. چرا که آنها بر اساس یک مفهوم بسیار اساسی برای توزیع و انتشار اطلاعات در سراسر یک شبکه هستند. در این پروتکل ها، برای اینکه یک گره اطلاعات را توزیع کند، فقط باید به صورت تصادفی با گره های دیگر جفت شود. هنگامی که این اتفاق می افتد، شما فقط باید اطلاعات دریافتی را با گره های مذکور مبادله کنید، که به نوبه خود اطلاعات را با گره های دیگری که آنها نیز با آنها جفت شده اند، توزیع می کنند. تشکیل زنجیره توزیع برای پخش به موقع و کارآمد اطلاعات در سراسر شبکه.
به نوبه خود، روشی که در آن اطلاعات در یک شبکه همتا به همتا از طریق پروتکل Gossip منتشر می شود، تا زمانی که گره های درگیر بتوانند انتشار و افشای اطلاعات را بدون تبعیض یا مستثنی کردن هیچ یک از طرفین تضمین کنند، همچنین در شبکه خودشان به سرعت و ایمن رخ می دهد.
پروتکل gossip مبتنی بر توزیع احتمالی جفت های انتخاب کننده اطلاعات است که گره ها اطلاعات را بین آنها توزیع می کنند. این به این منظور است که اطلاعات تکراری برای گرهای که قبلاً آن را میداند، تکرار نشود. به عنوان مثال، در مورد یک تیم کاری که دائماً گرد هم میآیند تا از هر اتفاقی که در دفتر میافتد بهروز باشند، با استفاده از پروتکل Gossip، هر یک از اعضای تیم باید با عضو دیگری جفت شوند که اطلاعات را با او به اشتراک بگذارند. این عضو تیم به نوبه خود با فرد دیگری جفت می شود که آنها نیز باید همان اطلاعات و غیره را در اختیار او قرار دهند تا همه در جریان قرار گیرند.
وقتی صحبت از این واقعیت می شود که پروتکل های Gossip بر اساس احتمال توزیع اطلاعات هستند، به این دلیل است که یک گره باید به طور تصادفی انتخاب کند که کدام گره دیگر می خواهد آن اطلاعات را به اشتراک بگذارد. علاوه بر این، این پروتکل ارتباطی مقیاسپذیر است، زیرا گرهها تنها مقدار ثابتی از اطلاعات را به اشتراک میگذارند یا توزیع میکنند، بدون توجه به اینکه گره دیگری در کار خود شکست میخورد یا خیر. گره های عامل همیشه مقدار متناظر اطلاعات را با شبکه همتای خود به اشتراک می گذارند.
هدف از یک پروتکل شایعات
هدف اصلی یک پروتکل Gossip انتشار اطلاعات در سریع ترین زمان ممکن از طریق شبکه گسترده ای از گره های توزیع شده است. برای دستیابی به این هدف، این نوع پروتکل ها از ایده اصلی شروع می شوند که فرآیندهایی است که به طور منظم با همتایان خود ارتباط برقرار می کنند. در طول این ارتباط آنها قادر به تبادل اطلاعات با ایجاد فرکانس بالا و جریان داده در شبکه هستند. و همه اینها در یک الگوی پراکندگی کمک می کند تا اطلاعات در سریع ترین زمان ممکن در سراسر شبکه توزیع شود.
نمونه ای از این موارد را می توان به عنوان مثال در Usenet و IRC مشاهده کرد. هر دو سیستم، علیرغم متمرکز بودن، اخبار را خیلی سریع از طریق شبکه با استفاده از “نجوا” توزیع کردند. اما شاید بهترین نمونه از این عملیات را بتوان در سیستم مسیریابی که اینترنت را ممکن می کند، دید. چنین پروتکل های مسیریابی به روترها اجازه می دهد تا اطلاعات را با روترهای همسایه مبادله کنند و در نتیجه جداول مسیریابی کل شبکه را بهبود می بخشند. در پایان، شبکه همیشه به دنبال ایجاد نسخه بهینهتر از خود از طریق کوتاهترین مسیریابی بین تمام قسمتهایش است.
این وضعیت در ساخت شبکه بلاک چین بسیار مفید است. از آنجایی که یک شبکه با توزیع گسترده از این نوع عملیات سود زیادی می برد. به این ترتیب از منابعی که بخشی از آن است حداکثر استفاده را می شود. نتیجه این است که یک تراکنش در یک شبکه با پروتکل Gossip، به سرعت در تمام گرههای شبکه حرکت میکند و حملات در وسط پراکندگی آن را کاهش میدهد.
و فکر کنید که همه این عملکردها حول مطالعات پراکندگی همه گیر و یک ضرب المثل ساده در نظر گرفته شده است:
“هر کسی می تواند شایعه سازی را شروع کند، اما هیچکس نمی تواند جلوی آن را بگیرد.”
انواع پروتکل Gossip
پروتکل پخش
پروتکل های انتشار اطلاعات، پروتکل هایی هستند که تحت ارتباطات گروهی یا چندپخشی برای انتشار پیام ها عمل می کنند . در حالت اول، تحت ارتباطات گروهی، گره های شبکه همتا همیشه در ارتباط ثابت هستند. بنابراین می توان اطلاعات را به سرعت و با اطمینان در شبکه توزیع کرد. اگرچه ممکن است در هنگام انتشار اطلاعات، قبلاً تغییر کرده و کمی منسوخ شده باشد. اگرچه، به طور کلی، این یک نگرانی یا مشکلی برای شبکه نیست.
در مورد دوم، تحت چند پخش، اطلاعات گهگاه در شبکه همتا پخش می شود. بنابراین یک رویداد بلافاصله باعث انتشار اطلاعات نمی شود. در این حالت، تاخیر اطلاعات به دلیل مدت زمانی که از اطلاعات ایجاد شده تا انتشار آن در شبکه می گذرد، می تواند نگران کننده باشد.
پروتکل تجمیع
در پروتکلهای تجمیع، گرههای شبکه همتا اطلاعات را دریافت و پردازش میکنند تا خلاصهای از این اطلاعات را برای سایر گرههای متصل به شبکه ارسال کنند. این مکانیسم توزیع اطلاعات یک رکورد از تمام داده های پردازش شده نگه می دارد. این فرآیند به عنوان داده کاوی توزیع شده شناخته می شود که به طور گسترده در فناوری دفتر کل توزیع شده استفاده می شود.


بیت کوین از پروتکل ارتباطی خود استفاده می کند که بهترین پروتکل Gossip و پروتکل Kademlia را برای عملکرد خود در نظر گرفته است. این پیاده سازی خود بیت کوین، اجازه می دهد تا بر نقاط ضعف خاصی از هر دو پروتکل غلبه کنید، بنابراین بهترین عملکرد ممکن را برای شبکه بیت کوین تضمین می کند. به همین دلیل، بسیاری از ارزهای دیجیتال دیگر همچنان از پروتکل بیت کوین با تغییرات جزئی برای تطبیق آن با نیازهای خود استفاده می کنند.
مزایا و معایب پروتکل Gossip
مزایا
- مقیاس پذیری: پروتکل های Gossip بسیار مقیاس پذیر هستند. چرا که امکان توزیع اطلاعات با سطح عملکرد بسیار کارآمد وجود دارد. در این پروتکل ها، گره ها تعداد ثابتی از پیام ها را به گره هایی که با آنها مرتبط هستند، توزیع می کنند.
- استحکام: در پروتکل Gossip همه گره ها یکسان عمل می کنند و عملکرد خاص یا متفاوتی با یکدیگر ندارند. بنابراین اگر خرابی در یک یا چند گره رخ دهد، عملکرد سایر گرههای شبکه برای توزیع اطلاعات را تحت تأثیر قرار نمیدهد یا قطع نمیکند. به همین ترتیب، گره ها می توانند بدون محدودیت و بدون تأثیر بر عملکرد شبکه، بین جفت ها وارد یا خارج شوند.
- تحمل خطا : از آنجایی که گره ها توانایی به اشتراک گذاری و توزیع اطلاعات با چندین گره در شبکه همتا را دارند، این پروتکل ها توانایی عملکرد صحیح را دارند. حتی در شرایط سخت که اتصال برخی از گره ها تحت تأثیر قرار می گیرد. اگر گره خاصی به هر دلیلی قطع شود، اطلاعات به همان ترتیب توسط سایر گره هایی که قبلاً پیام را دریافت کرده اند توزیع می شود.
- تمرکززدایی: پروتکل های Gossip اطلاعات را به صورت کاملاً غیرمتمرکز و مستقل توزیع می کنند.
معایب
- اگرچه پروتکل های Gossip با اجازه دادن به گره ها برای ادامه کار بدون وقفه در صورت خرابی، استحکام را به سیستم ارائه می دهند، ممکن است اطلاعات یا پیام توزیع شده تحت تأثیر قرار گیرد. به عنوان مثال، اگر یک گره مخرب شود، می تواند اطلاعات را به شکلی ظریف تغییر دهد که پیام قابل خواندن باقی بماند، اما در عین حال حاوی اطلاعات نادرست یا اشتباه باشد. و همچنین گره های دیگر که بدون وقفه عمل خواهند کرد، این اطلاعات را توزیع خواهند کرد.
برنامه های کاربردی پروتکل Gossip
امروزه بسیاری از شبکه های توزیع از پروتکل های Gossip به عنوان ابزاری برای توزیع دقیق و به موقع اطلاعات استفاده می کنند. به عنوان مثال، بیت کوین از پروتکل های Gossip برای توزیع مقادیر nonce در بین هر یک از گره های استخراج خود استفاده می کند. به همین ترتیب، HashGraph شبکه توزیع شده نیز برای انتقال و انتشار اطلاعات بین شبکه شما به این پروتکل ها متکی است.
از سوی دیگر، نرم افزار Apache cassandra It از این پروتکل ها برای برقراری ارتباطی استفاده می کند که از طریق آن تمام گره های آن می توانند اطلاعات را دریافت کرده و جفت هایی را کشف کنند که به انتشار فراداده در شبکه کمک می کند. به همین ترتیب، پایگاه داده Ripples It نیز پروتکل های Gossip را برای به اشتراک گذاشتن وضعیت و ویژگی های حلقه های خود پیاده سازی می کند. فرآیندی که گره ها به طور مداوم انجام می دهند تا سایر گره ها را از به روز رسانی هایی که در پایگاه داده رخ می دهد مطلع و به روز نگه دارند.
به نوبه خود، Dymano از یک پروتکل Gossip برای پیگیری عضویت ها استفاده می کند، که به شما کمک می کند اعضای جدید شرکت کننده در برنامه را کشف کنید و همچنین هر گونه شکست را تشخیص دهید. پروتکل های Gossip عملکرد مشابهی در داخل شبکه خدمات کنسول دارند. این که از این پروتکل ها به طور مساوی برای شناسایی اعضای جدید استفاده می کند، همانطور که برای تشخیص خرابی ها یا خرابی های احتمالی در شبکه. به همین ترتیب، شبکه کنسول از پروتکل های Gossip برای انتقال اطلاعات سرویس ها و رویدادهای جدید به طور قابل اعتماد و کارآمد در داخل شبکه استفاده می کند.
با این حال، اگرچه کاربرد اصلی این پروتکل ها انتشار اطلاعات است، پروتکل های Gossip کاربردهای بسیار بیشتری در شبکه های توزیع اطلاعات دارند. به عنوان مثال، می توان از آنها برای حل مسائل پیچیده در شبکه های بسیار بزرگ استفاده کرد. آنها همچنین می توانند برای تکثیر پایگاه های داده کامل و موارد دیگر استفاده شوند.




