الگوریتم اجماع چیست؟ – به زبان ساده + انواع و کاربردها

۸۵۶ بازدید
آخرین به‌روزرسانی: ۱ مهر ۱۴۰۲
زمان مطالعه: ۱۷ دقیقه
دانلود PDF مقاله
الگوریتم اجماع چیست؟ – به زبان ساده + انواع و کاربردهاالگوریتم اجماع چیست؟ – به زبان ساده + انواع و کاربردها

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

فهرست مطالب این نوشته
997696

الگوریتم اجماع چیست ؟

«الگوریتم اجماع» (Consensus Algorithm) نوعی فرآیند در سیستم‌های کامپیوتری است که برای رسیدن به توافق بین آن‌‌ها انجام می‌شود. این توافق برای موضوعات یا اطلاعاتی است که در سیستم‌‌های غیرمتمرکز وجود دارد. این توافق برای ایجاد اطمینان و بالا بردن امنیت در شبکه انجام می‌شود.

کارکرد الگوریتم اجماع چیست ؟

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

کارکرد الگوریتم اجماع

الگوریتم اجماع چه مشکلی را حل می‌کند ؟

برای طرح‌‌ریزی الگوریتم اجماع باید به این موضوع توجه شود که در شبکه‌های غیرمتمرکز همانند بلاک چین معمولا تمامی کامپیوترهای شبکه که آن‌ها را «نود» (Node) می‌نامیم، کار خود را به‌درستی انجام نمی‌دهند. موضوع عدم انجام درست کار در میان نودهای شبکه همواره وجود دارد. برای همین برای طراحی شبکه‌های غیرمتمرکز همواره این موضوع را درنظر می‌گیرند که ممکن است برخی از نودهای شبکه در دسترس نباشند یا برخی از ارتباطات بین نودها در زمان انتقال اطلاعات ممکن است دچار اشکال شود.

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

کاربرد الگوریتم اجماع در بلاک چین

الگوریتم اجماع در سیستم‌های پردازشی توزیع شده کاربردهای فراوانی دارد. یکی از کاربردهای الگوریتم‌های اجماع در بلاک چین است. بلاک چین نوعی دفتر کل توزیع شده است که نودهای آن بر روی «شبکه‌ای همتا به همتا» (Peer-to-Peer Network) فعالیت می‌کنند. هر یک از نودهای بلاک چین یک کپی از نسخه‌ای به‌روز شده از تغییرات شبکه را دارند. هر تغییری که در شبکه بلاک چین روی دهد به‌طور همزمان در اختیار نودهای شبکه قرار می‌گیرد. این موضوع باعث می‌شود تا نیازی برای وجود نهادی ناظر و متمرکز نباشد و امنیت و اعتماد در سیستم بلاک چین به‌وجود آید.

انواع الگوریتم‌های اجماع

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

انواع الگوریتم‌های اجماع

الگوریتم اجماع اثبات کار

«الگوریتم اجماع اثبات کار» (Proof of Work | PoW) یکی از قدیمی‌ترین الگوریتم‌های اجماع موجود است. این الگوریتم اجماع برای اولین بار در سال ۱۹۹۳ معرفی شد. اما هنگامی که «ساتوشی ناکاموتو» (Satoshi Nakamoto) از آن برای معرفی بیت کوین در سال ۲۰۰۸ استفاده کرد، مورد توجه افراد زیادی قرار گرفت. ایده اصلی الگوریتم اثبات کار به‌کارگیری نودهایی در شبکه است که بتوانند پازل‌های پیچیده ریاضی را حل کنند و در کوتاه‌ترین زمان ممکن حدس‌هایی برای حل پازل ارائه کنند.

الگوریتم اثبات کار چیست ؟

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

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

اهمیت الگوریتم اجماع اثبات کار

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

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

الگوریتم اثبات کار

ماینینگ و الگوریتم اثبات کار

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

عملکرد ماینرها در الگوریتم اثبات کار

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

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

الگوریتم اثبات کار در بلاک چین بیت کوین

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

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

هشینگ در بلاک چین بیت کوین چیست ؟

«هشینگ» (Hashing) به فرآیند تبدیل و تولید اطلاعات ورودی به رشته‌هایی با طول ثابت گفته می‌شود که با الگوریتم خاصی انجام می‌شود. الگوریتم هشینگ در بیت کوین SHA-256 است. این الگوریتم نوعی تابع یک‌طرفه است. به این معنی که نمی‌توان با دادن خروجی به‌دست آمده به تابع، اطلاعات ورودی را بازیابی کرد. استفاده از تابع هش در بلاک چین باعث می‌شود تا از تراکنش‌های تقلبی و دوبار خرج کردن جلوگیری شود. اطلاعات به‌صورت هش شده در بلاک چین ذخیره می‌شوند. بعد از این‌که اطلاعات ورودی به تابع هش داده می‌شوند، خروجی تابع، هش تراکنش نامیده می‌شود.

مطلبی که در بالا مطالعه کردید بخشی از مجموعه مطالب «آموزش ارزهای دیجیتال — راهنمای مفاهیم و اصطلاحات رمزارزها» است. در ادامه، می‌توانید فهرست این مطالب را ببینید:

سلب مسئولیت مطالب اقتصاد: این مطلب صرفاً‌ با هدف افزایش آگاهی عمومی در حوزه اقتصاد نوشته شده است. برای سرمایه‌گذاری،‌ تجارت و آگاهی دقیق از قوانین مربوط به آن‌ها، لازم است حتماً از دانش و مشاوره افراد متخصص کمک گرفته شود. دقت داشته باشید که قوانین بازار سرمایه و قوانین تجاری و اقتصادی کشور، همواره در حال تغییر هستند و بر همین اساس، ممکن است برخی موارد ذکر شده در این مطلب، دیگر صحت نداشته باشند. مسئولیت هر گونه بهره‌برداری از این نوشتار با هدف سرمایه‌گذاری، تجارت، کسب درآمد و غیره، بر عهده خود افراد بوده و مجله فرادرس هیچ مسئولیتی در این رابطه ندارد. برای اطلاعات بیشتر + اینجا کلیک کنید.
بر اساس رای ۷ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
TechtargetBybit LearnForbesInvestopediaBybit LearnForbesCOINTELEGRAPHCrypto.com
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *