تندرمینت (Tendermint) یک پروتکل جدید بلاکچین است که هدف آن حل مشکل تحمل خطای بیزانسی با استفاده از یک مدل شبکه نیمه همزمان و یک الگوریتم اجماع قطعی است. این پروتکل به گونهای طراحی شده است که مقیاس پذیر و ایمن باشد و میتوان از آن برای ایجاد بلاکچینهای عمومی و خصوصی استفاده کرد.
دنیای بلاکچین دنیایی گیج کننده است حتی وقتی به سادهترین پروتکلها مانند بیتکوین نگاه میکنیم باز هم ممکن است دچار سرگیجه شویم. اما مشکل وقتی بزرگتر میشود که به سراغ پروتکلهای جدیدتر مانند اتریوم یا حتی جدیدتر از آن میرویم.
یکی از پروتکلهایی که به نظر میرسد انقلابی در رویکرد ما به توسعه فناوری بلاکچین و استفاده از آن ایجاد خواهد کرد، تندرمینت است.
تندرمینت (Tendermint) یک پروتکل جدید است که به حل مشکل اجماع بیزانسی تحمل خطا (BFT) کمک میکند. در واقع برخلاف بیتکوین و اتریوم، حتی اگر یک سوم نودهای تایید کننده، به یکباره از کار بیفتند، باز هم میتواند به کار خود ادامه دهد. در واقع الگوریتم تندرمینت تضمین میکند که هر نود فعال در شبکه گزارش تراکنش یکسانی را مشاهده خواهد کرد و وضعیت مشابهی را محاسبه میکند.
اجزای اصلی تندرمینت (Tendermint) چیست؟
تندرمینت دو جزء اصلی دارد که عبارتاند از:
موتور اجماع بلاکچین (Tendermint Core): موتور اجماع بلاک چین تراکنشها را روی هر ماشینی به یک ترتیب ثابت ثبت میکند.
رابط کاربری عمومی (Application BlockChain Interface (ABCI)): امکان پردازش تراکنش ها در هر زبان برنامه نویسی را فراهم می کند و به توسعه دهندگان این امکان را می دهد تا برنامههایی را در محیطی بسازند که مناسب ترین آنها باشد.
تحمل خطای بیزانسی چیست؟
قبل از ادامه توضیح در مورد تندرمینت (Tendermint) شاید بهتر باشد در مورد تحمل خطای بیزانسی قدری بیشتر صحبت کنیم. تحمل خطای بیزانسی از دوران کهن میآید. چهار ژنرال بیزانسی را تصور کنید که در حال حمله به یک قلعه هستند. این چهار ژنرال از چهار جهت به قلعه حمله میکنند. این چهار ژنرال با یکدیگر ارتباط فیزیکی ندارند و تنها از طریق پیامرسانهایی با هم در ارتباط هستند.
در برخی جبههها پیشروی برای فتح قلعه به خوبی انجام میگیرد و در برخی جبههها در حال شکست هستند. حال ژنرالها باید تعیین کنند که آیا به حمله ادامه دهند یا همزمان عقب نشینی کنند. همچنین ژنرالها این احتمال را میدهند که ممکن است در میان آنها یک عنصر خیانتکار نیز وجود داشته باشد یا حتی یکی از ژنرالها از بین رفته باشد و فرد دیگری به جای ژنرال در حال تصمیمگیری در آن جبهه باشد.
در این فضا است که ژنرالها باید به یک اجماع برسند و به این مساله، مساله اجماع ژنرالهای بیزانسی گفته میشود. به طور کلی خطای بیزانسی زمانی رخ میدهد که برخی از بازیگران و تصمیمگیران یا از دور خارج شدهاند یا انگیزههای غیرمنصفانه دارند. این رخداد در سیستمهای توزیع شده مانند بلاکچین زیاد اتفاق میافتد. الگوریتم تحمل خطای بیزانسی نیز به انعطافپذیری یک سیستم غیرمتمرکز در برابر شرایط خطای بیزانسی اشاره دارد.
در سیستمی که تحمل خطای بیزانسی را دارد، مولفهها یا نود در ارز دیجیتال یا ماشینهای ارائه دهنده اجماع میتوانند حتی در صورت خرابی برخی از عناصر تصمیمگیر به اجماع برسند و عملکرد مناسبی از خود به جا بگذارند.
به طور معمول در سیستمهایی که تحمل خطای بیزانسی را دارند، ابتدا سیستم در مورد اینکه کدام عنصر معیوب است و کدام به درستی عمل میکند، به توافق میرسند. چهار ژنرال مثال قبلی را در نظر بگیرید. هنگامی که این چهار ژنرال قصد تصمیم در مورد عقبنشینی یا ادامه حمله را دارند، باید ابتدا به این اجماع برسند که آیا یکی از آنها خیانتکار هست یا نه. همچنین در صورت کشته شدن یکی از ژنرالها، باید این اتفاق به اجماع سه ژنرال دیگر برسد. سپس عناصر وفادار باقیمانده در مورد این مساله تصمیمگیری میکنند که آیا عقبنشینی داشته باشند یا خیر.
همچنین در صورتی که اکثریت رای دهندگان (در مثال ما ژنرالها) از بین رفته باشند، میتوان یک سناریو از پیش تعیین شده (مثلا عقب نشینی) را پیاده سازی کرد. الگوریتم تحمل خطای بیزانسی به زبان ساده به این صورت عمل میکند.
تندرمینت (Tendermint) چگونه از تحمل خطای بیزانسی استفاده میکند؟
همانطور که گفته شد، تندرمینت از یک الگوریتم اجماع تحمل خطای بیزانسی استفاده میکند تا مطمئن شود اعتبارسنجیها در شبکه با ترتیب ثابت انجام میشود. برخلاف الگوریتمهای اثبات کار (که در بیتکوین استفاده میشود) و ماینر ملزم به حل معادلات پیچیده ریاضی هستند، تندرمینت (Tendermint) بر مکانیزم اجماع بر پایه رای متکی است.
در تندرمینت اعتبارسنجیها به نوبت بلوکهای حاوی تراکنش را پیشنهاد میکند و سپس اعتبار دهندگان، در مورد اعتبار بلوکهای پیشنهادی رایگیری میکنند.
در واقع پروتکل تندرمینت (Tendermint)، شباهتهایی با بیتکوین دارد. با این حال، الگوریتم تندرمینت برای رسیدن به اجماع در مورد اعتبار هر بلوک، ابتدا یکبار خود اعتباردهندگان را به رای میگذارد و سپس اعتبار بلوکها را تعیین می کند. این روش از الگوریتم اجماع سهام نیز پیشرفتهتر است چرا که در الگوریتم اجماع سهام، اعتبار دهندگان میتوانند نوعی خطا در پروتکل ایجاد کرده و کل شبکه را به یکباره دچار فروپاشی کنند.
تفاوت بین اثبات کار و تحمل خطای بیزانسی چیست؟
الگوریتم اجماع تحمل خطای بیزانسی یک الگوریتم اثبات سهام است در حالی که الگوریتم اجماع در بیتکوین مبتنی بر اثبات کار است. مهمترین تفاوت در بین این دو الگوریتم به قرار زیر است:
فرآیند اعتبار سنجی: در الگوریتم اثبات کار، فرآیند اعتبارسنجی به این صورت است که ماینرها باید پازلهای محاسباتی پیچیدهای را که توابع هش نامیده میشوند، حل کرده و هرکدام زودتر بتواند تابع را حل کند، به عنوان برنده جایزه را دریافت میکند. چنین فرآیندی نیاز به قدرت محاسباتی و همچنین مصرف انرژی بالایی دارد. اما در الگوریتم BFT نودهای اعتبار سنج، به نوبت بلوکها را اعتباردهی و پیشنهاد میکنند. سپس استیکرها یا نودهای اعتبارده، بررسی میکنند که آیا تراکنش انجام بشود یا خیر. در این روش هیچ نیازی به مصرف انرژی بالا نیست.
جوایز: همانطور که گفته شد، در فرآیند اثبات کار، ماینری که بتواند سریعتر عمل استخراج را انجام دهد، میتواند جایزه تعیین شده را برای خود بردارد. این جوایز تضمین میکنند که افراد انگیزه داشته باشند در عمل استخراج شرکت کرده و کار را برای تقلب در شبکه سخت میکند چرا که هرچه افراد بیشتری در عمل استخراج شرکت کنند، تقلب در شبکه سختتر خواهد بود. اما در الگوریتم BFT هرکسی که در شبکه شرکت کرده و در رایگیریها به صورت فعالانه حضور داشته باشد، میتواند جایزه ببرد. در BFT تلاش میشود افراد بیشتری انگیزه داشته باشند تا در رایگیری شرکت کنند تا بدین صورت از تقلب جلوگیری شود.
امنیت: در الگوریتم اثبات کار، هرچه افراد بیشتری به عنوان استخراج کننده در شبکه شرکت داشته باشند، ریسک حمله ۵۱ درصد کمتر میشود. همچنین دشواری محاسبات نیز مانع آن میشود که افراد بتوانند به سرعت اقدام به تغییر در زنجیره کنند. در الگوریتم BFT از آنجایی که افراد سرمایه خود را برای اجماع درگیر کردهاند، انگیزه زیادی برای عدم صداقت در طول شبکه ندارند.
ویژگیهای مهم الگوریتم تندرمینت (Tendermint) چیست؟
الگوریتم تندرمینت یک راهحل پیشگامانه برای چالشهای حیاتی بلاکچین است. این شبکه ویژگیهای متعددی دارد که آن را به عنوان یک شبکه پیشرو مطرح کرده است. در ادامه به برخی از این ویژگیها میپردازیم:
استفاده از الگوریتم تحمل خطای بیزانسی: در مورد این الگوریتم زیاد صحبت کردیم و اکنون به خوبی میدانیم که استفاده از این الگوریتم چگونه میتواند انعطافپذیری و امنیت شبکه را تضمین کند.
استفاده از اکوسیستم کازموس (Cosmos): تندرمینت بخشی از اکوسیستم کازموس است. در واقع کازموس، همان اینترنت برپایه بلاکچین است. اینترنتی که امکان همکاری بین بلاکچینهای مختلف را فراهم میکند.
پیشبینی پذیری قطعی: در فضای بلاکچین مشکلی جد دارد به نام هزینه بالای تصادفی بودن (high overhead of randomness) که به زبان ساده به این معنی است که در جریان فرآیندها برخی اطلاعات ایجاد میشوند که در نتیجه نهایی تاثیر ندارند اما برای اجرای پروتکلها لازم هستند. این اطلاعات به مرور افزایش پیدا کرده و هزینههایی مانند پر شدن حافظه و افزایش زمان پردازش ایجاد میکنند. با این حال، تصمیمات در الگوریتم تندرمینت (Tendermint) به صورت قطعی گرفته شده و بدین ترتیب بسیاری از مشکلات و هزینههای تصادفی بودن را حذف میکند.
مقیاسپذیری و امنیت: الگوریتم تندرمینت به گونهای طراحی شده است که مقیاسپذیر و ایمن باشد. اعتبارسنجیها در این پروتکل بسیار سادهتر و سریعتر انجام میشود و در کنار آن امنیت شبکه را نیز افزایش میدهد.
سخن پایانی
تقریبا اکثر فعالین در بازار رمزارزها نیاز به حرکت به سمت یک پروتکل اجماع مناسبتر را احساس میکنند. پروتکل اثبات کار ماند بیتکوین هزینه و انرژی زیادی مصرف میکند. در طرف دیگر، روشهای اولیه اثبات سهام نیز مشکلات خود را دارند. در این میان الگوریتم تندرمینت با الگوریتم اجماع بر اساس تحمل خطای بیزانسی، سعی دارد مشکلات قبلی الگوریتمهای اجماع را حل کند. همچنین این الگوریتم با تغییرات معماری سعی دارد تا ظرفیت شبکهها را افزایش داده و امنیت و مقیاسپذیری را بهبود دهد.
سوالات متداول
الگوریتم تندرمینت (Tendermint) برای چه مواردی استفاده میشود؟
تندرمینت (Tendermint) یک پروتکل اجماع است که میتواند بر روی تمام شبکههای بلاکچین و سایر شبکههایی که نیاز به اجماع اعضا دارد، استفاده شود.
تندرمینت چیست؟
تندرمینت یک موتور بلاکچین است که از الگوریتم اجماع تحمل خطای بیزانسی برای اعتبارسنجی بلوکها استفاده میکند.
آیا تندرمینت غیرمتمرکز است؟
الگوریتم تندرمینت یک روش اجماع غیرمتمرکز است. این روش به کاربران اجازه میدهد تا بدون نگرانی از اقدامات غیرمنصفانه به معامله بپردازند.
کدام بلاکچینها از تندرمینت استفاده میکنند؟
در حال حاضر برخی زنجیرههای کازموس از تندرمینت استفاده میکنند.