بسیاری از مردم بر این اصل معتقد هستند که ساختار شبکه های بلاک چین موجود باید تغییر کند زیرا این الگوریتم ها بسیار قدیمی و ناامن هستند. یکی از مواردی که منجر به تغییر قابل توجهی در مکانیسم بلاک چین می شود، تغییر روش هایی است که گره ها برای رسیدن به توافق یا الگوریتم های اجماع استفاده می کنند. در این مقاله می خواهیم در مورد زیرساخت یا پروتکلی به نام الگوریتم تندرمینت (Tendermint) صحبت کنیم. برای درک بهتر اینکه الگوریتم تندرمینت چیست و چگونه کار می کند تا انتهای مطلب با ما همراه شوید.
الگوریتم تندرمینت (Tendermint Consensus Algorithm) یک الگوریتم اجماع برای ارزهای دیجیتال است که برای حل مسئله امنیت شبکه و تضمین انجام صحیح تراکنش ها بین کاربران استفاده میشود. در این الگوریتم، یک گروه از نودهای شبکه به عنوان اعضای کاندید برای تولید بلاک انتخاب میشوند. سپس یکی از این نودها به عنوان نودهای پایه انتخاب میشود که مسئول تولید بلاک بعدی است. سایر نودها نیز برای تأیید صحت بلاک تولید شده توسط نود پایه، اقدام به انجام محاسبات میکنند. اگر اکثریت از نودها از صحت بلاک مطمئن شوند، بلاک در شبکه تأیید شده و به تاریخچه بلاکهای قبلی اضافه میشود.
در الگوریتم تندرمینت، از کریپتوگرافی برای تضمین امنیت و حریم خصوصی تراکنشها استفاده میشود. همچنین این الگوریتم از تکنولوژی بلاک چین استفاده میکند که تمامی تراکنشها و تغییرات در شبکه را ثبت و ذخیره میکند. استفاده از الگوریتم تندرمینت در ارزهای دیجیتال، باعث افزایش امنیت و شفافیت در شبکههای بلاک چین میشود و باعث ایجاد یک بستر قابل اعتماد برای انجام تراکنشهای مالی و غیرمالی میشود.
Tendermint از توسعه دهندگان می خواهد که روی لایه برنامه تمرکز کنند و برنامه های غیرمتمرکز بسازند. این پلتفرمی را فراهم می کند که جدا از شبکه و لایه های اجماع بلاک چین است، بنابراین آنها روی دو لایه دیگر به طور همزمان کار نمی کنند.
Tendermint از یک ساختار ماژولار استفاده می کند که دارای اجزای نرم افزاری مستقل برخلاف ساختار یکپارچه است. این ویژگی امکان تغییر بخشی از برنامه را بدون ایجاد تغییرات قابل توجه در کل سیستم ممکن می کند. این راه حل با توجه به الگوریتم تحمل خطا بیزانس به دست آمده است. یک الگوریتم اثبات سهام BFT با استفاده از یک مدل نیمه همزمان بر مشکل خطای بیزانسی غلبه میکند. این بدان معنی است که اعتباردهنده ها مجبور نیستند، در یک زمان معین، یعنی به طور همزمان اجرا شوند. اعتبارسنجی به طور مرتب انجام می شود و در صورت بروز خطا همان قسمت اصلاح می شود.
الگوریتم تندرمینت (Tendermint) برای کار بر مفروضات طراحی متکی است. این پروتکل از یک ماشین حالت ساده به شرح زیر پیروی می کند. ماشین حالت اصطلاحی از علم کامپیوتر است که طبق آن یک ماشین می تواند چندین حالت داشته باشد. توجه داشته باشید که این دستگاه در هر زمان تنها می تواند یک حالت داشته باشد. این مفهوم در بلاک چین به این معنی است که وقتی یک گره از یک حالت قبلی پیروی می کند و یک فرآیند را اجرا می کند، آخرین مرحله را به همین ترتیب تکمیل می کند.
این پروتکل توسط اعتبارسنجی ها پیاده سازی می شود. وظایف آنها شامل پیشنهاد و رأی گیری در مورد بلاک های جدید است. هر بلاک پیشنهادی برای رای گیری در صف قرار می گیرد. اگر در زمان رای گیری به شبکه اضافه نشود، پروتکل به دور بعدی می رود. گره بعدی باید یک بلاک برای آن عدد (ارتفاع) پیشنهاد کند. برای افزودن موفقیت آمیز یک بلاک به زنجیره، دو دور رای گیری طول می کشد. این دو مرحله پیش رأی و پیش تعهد نامیده می شوند. یک بلاک زمانی به شبکه اضافه میشود که بیش از دو سوم اعتبارسنجیها آن را از قبل انجام دهند.
هنگامی که بیش از دو سوم اعتبارسنجی ها به یک بلاک رای می دهند، تیم Tendermint آن را پولکا می نامد. هر اقدام مقدماتی باید توسط یک پولکا در همان سطح تعیین شود. در برخی موارد، اعتبارسنجیها ممکن است نتوانند در این فرآیند شرکت کنند. علت می تواند یک شبکه آفلاین یا کند باشد. پروتکل Tendermint اجازه می دهد تا این گره نادیده گرفته شود. از آنجایی که Tendermint یک الگوریتم اجماع نیمه همزمان است، گرهها میتوانند منتظر بمانند تا یک بلاک کامل پیشنهادی را قبل از رفتن به مرحله بعدی دریافت کنند.
Tendermint با فرض اینکه کمتر از یک سوم اعتباردهنده ها بازیگران بدی هستند یا در بهترین حالت، به شکل خطای بیزانسی، امنیت شبکه را تضمین می کند. به عنوان مثال، الگوریتم Tendermint به گره ها اجازه نمی دهد تا بلاک های دیگر و مخالف را در یک ارتفاع اعمال کنند. این پروتکل از روش قفل کردن استفاده می کند. هنگامی که یک اعتبارسنجی یک بلاک را از پیش تعیین می کند، آن بلاک را قفل می کند. پس از ممنوعیت، آنها باید برای همان بلاکی که برای آن ممنوع شده اند، پیش رای دهند. فقط در صورتی که اعتباردهنده مورد نظر ما از حالت بلاک خارج شود و بتواند بلاک جدیدی را که در دوره پولکا بعدی برای آن بلاک وجود دارد، از قبل تعیین کند.
برخی از پروژه ها از الگوریتم Tendermint و کیت توسعه Cosmos در سیستم خود استفاده می کنند، برخی دیگر نمونه هایی هستند که در اکوسیستم کازماس پیاده سازی شده اند. این پروژه ها شامل شبکه هایی مانند Terra، Oasis، Regen Network، IRISnet و Binance Dex است. همانطور که گفته شد، برخی از پروژه ها نمونه ای از مدل شبکه اصلی اکوسیستم کازماس هستند. یکی از معروف ترین این پروژه ها اتریوم است. این شبکه اترمینت نام دارد.
فناوری استفاده شده در این تبدیل Hard Spoon است. مکانیسم اجماع PoW از اتریوم حذف شده است و دارندگان اتر ارز دیجیتال فوتون را برای پرداخت هزینه های شبکه در Cosmos دریافت خواهند کرد. توسعه دهندگان اتریوم به راحتی می توانند قراردادهای هوشمند خود را به موتور جدید انتقال دهند. این مکانیزم میتواند به کاربران یک دید کلی از پیادهسازی Casper در اتریوم ۲ بدهد.
تندرمینت را می توان نرم افزاری دانست که به طور ایمن و پیوسته اجرا می شود و همان برنامه را روی کامپیوترهای مختلف اجرا می کند. منظور از ایمن بودن، حالتی است که اگر یک سوم ماشینها کار نکنند، تندرمینت به کار خود ادامه میدهد. تداوم نیز به معنای حالتی است که در آن ماشین ها یک موقعیت و معامله را می بینند و محاسبه می کنند.
تندرمینت از دو بخش اصلی تشکیل شده است. یکی قسمت یا هسته مرکزی تندرمینت، موتور اجماع و پروتکل شبکه همتا به همتا و دیگری رابط کاربری تندرمینت است که به آن رابط برنامه بلاک چین می گویند. در ادامه به جای رابط برنامه بلاک چین از مخفف ABCI استفاده می کنیم.
ممکن است چندین سوکت ارتباطی بین ABCI و یک برنامه وجود داشته باشد. هسته تندرمینت سه مسیر ارتباطی از ABCI به برنامه ایجاد می کند. یکی برای تایید تراکنش ها پس از انتشار در ممپول، دیگری برای موتور اجماع و بلاک های اجرایی پیشنهادی و دیگری برای پرس و جوها و اطلاعات از وضعیت برنامه است.
از آنجایی که مکانیسم اجماع مورد استفاده گواه اثبات سهام است، گره ها در مرحله اول به طور تصادفی انتخاب می شوند. این انتخاب بر اساس Round Robin است، به این معنی که همه گره ها دارای نوبت هستند. هر چه استیکینگ یک گره بیشتر باشد، شانس انتخاب شدن آن بیشتر است.
گره انتخاب شده باید یک بلاک را پیشنهاد کند. در صورت موافقت سایر گرهها، بلاک بلافاصله به زنجیره اضافه میشود و برخلاف سایر شبکهها، نیازی به منتظر ماندن برای اعتبارسنجی تراکنش نیست. هسته تندرمینت اطمینان حاصل می کند که تراکنش ها در یک نظم خاص در همه دستگاه ها قرار می گیرند. این بخش یک موتور اجماع BFT بلاک چین و شبکه همتا به همتا است. به طور خلاصه، هسته تندرمینت مسئول به اشتراک گذاری بلاک ها و تراکنش ها بین گره ها و ایجاد نظم متعارف و غیرقابل تغییر تراکنش ها در بلاک چین است.
با استفاده از ساختار مدولار، تندرمینت لایه برنامه را از لایه های اجماع و شبکه جدا کرده است. بنابراین کسانی که قصد ساخت اپلیکیشن را دارند می توانند بدون در نظر گرفتن لایه های دیگر اپلیکیشن خود را راه اندازی کنند. این ممکن است برای کاربران نهایی یا کاربران معمولی هیجان انگیز نباشد، اما برای توسعه دهندگانی که می توانند برنامه های کاربردی خود را بدون نیاز به راه اندازی کل شبکه ایجاد کنند، بسیار مهم است. یکی دیگر از تمایزهای Tendermint این است که توسعه دهندگان می توانند از هر زبان برنامه نویسی برای انجام تراکنش ها و ایجاد برنامه ها و اتصال به هسته Tendermint و در نهایت بلاک چین از طریق رابط کاربری ABCI استفاده کنند.