پرش به محتوا
زوم ارز

تندرمینت (Tendermint) چیست؟

۳۰شهریور۱۴۰۴
8 ماه پیش
نویسنده: سهیل شیرازی
تندرمینت (Tendermint) چیست؟

تندرمینت (Tendermint) چیست؟،تندرمینت (Tendermint) یکی از مهم‌ترین فناوری‌ها در دنیای بلاکچین است که نقش اساسی در ساخت و توسعه شبکه‌های غیرمتمرکز ایفا می‌کند. این فناوری در واقع یک موتور اجماع (Consensus Engine) و لایه‌ی شبکه‌ای است که به توسعه‌دهندگان اجازه می‌دهد بدون نیاز به طراحی مکانیزم اجماع از صفر، بلاکچین‌های مقیاس‌پذیر، امن و سریع ایجاد کنند. تندرمینت (Tendermint) در ابتدا با هدف حل مشکلات مقیاس‌پذیری و کارایی بلاکچین‌های اولیه مانند بیت‌کوین و اتریوم معرفی شد و امروزه به عنوان هسته‌ی اصلی بسیاری از پروژه‌ها، به‌ویژه در اکوسیستم کازموس (Cosmos)، شناخته می‌شود.این فناوری بر پایه الگوریتم اثبات سهام محول‌شده (Delegated Proof of Stake – DPoS) و مدل BFT (Byzantine Fault Tolerance) طراحی شده است که امکان پردازش تراکنش‌ها را با سرعت بالا و نهایی‌سازی آنی (Instant Finality) فراهم می‌سازد. به بیان ساده‌تر، تندرمینت (Tendermint) شرایطی را ایجاد می‌کند که در آن بلاک‌ها پس از تأیید، بدون نیاز به انتظار طولانی، قطعی و تغییرناپذیر شوند.

تندرمینت (Tendermint) چیست؟

تندرمینت (Tendermint) در سال ۲۰۱۴ توسط جائه کووان (Jae Kwon) و ایثن بوکمن (Ethan Buchman) پایه‌گذاری شد.می‌توان گفت این فناوری مسئول مدیریت شبکه و لایه‌های اجماع در بلاکچین است. به زبان ساده، تندرمینت (Tendermint) وظیفه دارد تراکنش‌ها را سازمان‌دهی کرده و آن‌ها را در شبکه منتشر کند.

این پروتکل به‌عنوان بخشی از کیت توسعه نرم‌افزاری کازموس (Cosmos SDK) عمل می‌کند و امکان برقراری ارتباط آسان‌تر میان شبکه‌های بلاکچینی مختلف و توسعه برنامه‌های غیرمتمرکز مبتنی بر بلاکچین را فراهم می‌سازد. یکی از قابلیت‌های کلیدی تندرمینت (Tendermint) جداسازی لایه اجماع از لایه برنامه (Application Layer) است. این ویژگی موجب می‌شود توسعه‌دهندگان تنها بر طراحی قوانین و منطق بلاکچین خود متمرکز شوند و فرآیندهای پیچیده مربوط به اجماع و شبکه را به تندرمینت (Tendermint) بسپارند.در نتیجه، این فناوری مسیر ایجاد بلاکچین‌های جدید را بسیار ساده‌تر کرده و نقشی پررنگ در سرعت گرفتن رشد پروژه‌های بلاکچینی ایفا می‌کند.


نقش تحمل خطای بیزانس

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

فرآیند مدیریت و کنترل چنین شرایطی به‌عنوان تحمل خطای بیزانس (Byzantine Fault Tolerance) شناخته می‌شود. این نظریه سابقه‌ای طولانی در علوم رایانه و سیستم‌های توزیع‌شده دارد و ظهور فناوری بلاکچین صرفا رویکردی نوین و تکامل‌یافته برای پیاده‌سازی و استفاده از آن در فضایی مدرن‌تر به شمار می‌آید.


بررسی اجزای کلیدی معماری بلاکچین

تندرمینت (Tendermint) را می‌توان تا حدی مشابه بیت‌کوین و اتریوم نوعی بلاکچین در نظر گرفت. البته وقتی از بلاکچین صحبت می‌کنیم، منظور صرفاً یک پایگاه داده نیست؛ بلکه مفاهیمی مانند شبکه همتا به همتا، نحوه تعامل نودها، مدیریت تراکنش‌ها و اجرای قراردادهای هوشمند نیز در این تعریف جای می‌گیرند. در بیشتر بلاکچین‌ها این بخش‌ها به‌صورت یکپارچه وجود دارند، اما نکته اینجاست که معماری یکپارچه محدودیت‌هایی به همراه دارد. به بیان دیگر، یا امکان ایجاد تغییر تنها در یک بخش خاص وجود ندارد، یا در صورت اعمال تغییر، کل ساختار دچار گسستگی می‌شود. نمونه‌ی بارز این مسئله را می‌توان در هاردفورک‌ شبکه‌ها مشاهده کرد؛ جایی که برای اعمال اصلاحات یا تغییرات اساسی، نیاز به ایجاد یک زنجیره‌ی جدید از شبکه اصلی وجود دارد. بیت‌کوین و اتریوم نیز در طول مسیر خود بارها چنین هاردفورک‌هایی را تجربه کرده‌اند.

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

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

لایه کاربردی (Application Layer)

مسئول اجرای قابلیت‌هایی همچون قراردادهای هوشمند و برنامه‌های غیرمتمرکز.

لایه اجماع (Consensus Layer)

وظیفه ایجاد توافق بین نودها و حفظ هماهنگی در شبکه را بر عهده دارد.

لایه شبکه (Networking Layer)

امکان برقراری ارتباط میان نودها و تبادل داده را فراهم می‌کند.

به‌طور خلاصه، دو لایه شبکه و اجماع بستر تعامل و توافق بین نودها هستند و لایه کاربردی محیطی برای اجرای برنامه‌ها و قابلیت‌های بلاکچینی فراهم می‌آورد.


اجزای الگوریتم اجماع تندرمینت (Tendermint)

تندرمینت (Tendermint) را می‌توان یک نرم‌افزار دانست که به‌صورت ایمن و پیوسته اجرا می‌شود و قادر است یک برنامه را همزمان روی چندین ماشین عملیاتی کند. منظور از ایمن بودن این است که حتی اگر یک‌سوم ماشین‌ها از کار بیفتند، تندرمینت (Tendermint) همچنان عملکرد خود را ادامه خواهد داد. همچنین، پیوستگی به این معناست که تمام ماشین‌ها یک وضعیت واحد و تراکنش‌های مشابهی را مشاهده و پردازش می‌کنند.

تندرمینت (Tendermint) از دو بخش اصلی تشکیل شده است:

هسته تندرمینت (Tendermint Core)

که شامل موتور اجماع و پروتکل شبکه همتابه‌همتا است.

رابط کاربری تندرمینت (ABCI – Application BlockChain Interface)

که وظیفه اتصال برنامه‌ها به بلاکچین را برعهده دارد.

میان ABCI و برنامه‌های بلاکچینی، ارتباط از طریق چندین سوکت صورت می‌گیرد. هسته تندرمینت (Tendermint) سه مسیر ارتباطی میان ABCI و برنامه ایجاد می‌کند:

مسیر بررسی تراکنش‌ها پس از ورود به ممپول،

مسیر اجماع برای پردازش بلاک‌های پیشنهادی،

مسیر کوئری (Query) برای اطلاع از وضعیت برنامه.

هسته تندرمینت (Tendermint Core)

از آن‌جایی که مکانیزم اجماع تندرمینت (Tendermint) بر پایه گواه اثبات سهام (PoS) است، انتخاب نودها برای پیشنهاد بلاک به‌صورت تصادفی و با الگوریتم Round Robin انجام می‌شود. در این فرآیند، هرچه مقدار استیکینگ یک نود بیشتر باشد، احتمال انتخاب شدن آن نیز افزایش می‌یابد. نود انتخاب‌شده باید یک بلاک جدید پیشنهاد دهد و اگر سایر نودها با آن موافقت کنند، بلاک فوراً به زنجیره اضافه می‌شود؛ بدون آن‌که مانند بسیاری از شبکه‌ها نیازی به انتظار برای تایید چندباره باشد.

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

رابط ABCI

یکی از ویژگی‌های مهم تندرمینت (Tendermint) معماری ماژولار آن است که در آن لایه برنامه از لایه اجماع و شبکه جدا شده است. این موضوع برای توسعه‌دهندگان اهمیت زیادی دارد، زیرا می‌توانند برنامه‌های خود را بدون نیاز به راه‌اندازی یک شبکه کامل طراحی و اجرا کنند. نکته دیگر آن است که توسعه‌دهندگان قادرند با هر زبان برنامه‌نویسی، تراکنش‌ها و برنامه‌ها را بسازند و از طریق رابط ABCI به هسته تندرمینت (Tendermint) و در نهایت بلاکچین متصل شوند.

رابط ABCI سه نوع پیام کلیدی میان هسته و لایه برنامه رد و بدل می‌کند:

DeliverTX

هر تراکنش از طریق این پیام به برنامه تحویل داده می‌شود. برنامه باید تراکنش را تایید کرده و سپس وضعیت خود را به‌روزرسانی کند. به‌عنوان نمونه، این فرآیند می‌تواند شامل به‌روزرسانی دیتابیس UTXO یا ذخیره داده‌های کلیدی باشد.

CheckTX

مشابه DeliverTX است، اما صرفاً برای اعتبارسنجی تراکنش‌ها مورد استفاده قرار می‌گیرد. ممپول تندرمینت (Tendermint) ابتدا اعتبار تراکنش را با این پیام بررسی کرده و در صورت صحت، آن را به دیگر نودها منتقل می‌کند.

Commit

این پیام برای انجام عملیات رمزنگاری و محاسبه وضعیت فعلی برنامه به‌کار می‌رود تا در هدر بلاک بعدی ذخیره شود. یکی از مزایای این ویژگی، توسعه ساده‌تر و امن‌تر کلاینت‌های سبک است؛ زیرا با بررسی هش بلاک و امضاهای جمعی، می‌توان صحت اثبات‌های Merkle Hash را تایید کرد.


نحوه عملکرد تندرمینت (Tendermint)

تندرمینت (Tendermint) بر پایه معماری ماژولار طراحی شده است؛ به این معنا که برخلاف معماری یکپارچه، اجزای آن مستقل از هم عمل می‌کنند. این ویژگی به توسعه‌دهندگان اجازه می‌دهد بدون ایجاد تغییرات اساسی در کل سیستم، تنها بخشی از برنامه را ویرایش یا اصلاح کنند. چنین قابلیتی با استفاده از الگوریتم تحمل خطای بیزانس (BFT) فراهم شده است. در واقع، الگوریتم اجماع اثبات سهام مبتنی بر BFT با بهره‌گیری از یک مدل نیمه هم‌زمان (Partially Synchronous) مشکل خطای بیزانس را حل می‌کند. به این ترتیب، اعتبارسنج‌ها (Validators) مجبور نیستند دقیقاً هم‌زمان یا در زمان از پیش تعیین‌شده عمل کنند. فرآیند اعتبارسنجی در دوره‌های مشخص انجام می‌شود و در صورت بروز خطا، همان بخش اصلاح خواهد شد.

الگوریتم تندرمینت (Tendermint) برای عملکرد خود به مفروضات زمانی متکی است و از یک ماشین حالت (State Machine) ساده پیروی می‌کند. ماشین حالت مفهومی در علوم کامپیوتر است که بیان می‌کند یک سیستم می‌تواند در چندین وضعیت مختلف قرار گیرد، اما در هر لحظه فقط در یک حالت مشخص فعالیت کند. در زمینه بلاکچین، این مفهوم به این معناست که اگر یک نود طبق وضعیت قبلی فرآیندی را آغاز کند، همان مسیر را تا پایان طی خواهد کرد.

این پروتکل توسط اعتبارسنج‌ها اجرا می‌شود و وظایف آن‌ها شامل پیشنهاد (Propose) بلاک‌های جدید و رأی‌دهی (Vote) به آن‌هاست. هر بلاک پیشنهادی وارد فرآیند رأی‌گیری می‌شود و اگر در مهلت مقرر به اجماع نرسد، شبکه وارد دور (Round) بعدی می‌شود. در این حالت نود بعدی برای همان شماره بلاک (Height) یک بلاک جدید پیشنهاد می‌دهد. برای اینکه یک بلاک به‌طور موفق در زنجیره ثبت شود، باید دو مرحله رأی‌گیری طی شود:

پیش‌رأی (Pre-Vote)

پیش‌اعمال (Pre-Commit)

یک بلاک زمانی پذیرفته می‌شود که بیش از دوسوم اعتبارسنج‌ها در مرحله Pre-Commit آن را تأیید کنند.

نکته جالب اینجاست که تیم تندرمینت (Tendermint) مرحله‌ای را که بیش از دوسوم اعتبارسنج‌ها به یک بلاک رأی Pre-Vote می‌دهند، Polka نامیده است (الهام گرفته از رقص پولکا). هر Pre-Commit باید بر پایه یک Polka در همان دور شکل گرفته باشد.

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

با این فرض که کمتر از یک‌سوم اعتبارسنج‌ها رفتار مخرب داشته باشند یا دچار خطای بیزانسی شوند، تندرمینت (Tendermint) امنیت شبکه را تضمین می‌کند. به‌عنوان مثال، این الگوریتم اجازه نمی‌دهد در یک Height‌ چند بلاک متضاد به ثبت برسد. برای این منظور از مکانیزم قفل یا بلوکه‌سازی (Locking) استفاده می‌شود. زمانی که یک اعتبارسنج بلاکی را Pre-Commit می‌کند، روی آن بلاک قفل می‌شود و موظف است در ادامه همان بلاک را در مرحله Pre-Vote تأیید کند. تنها زمانی این قفل شکسته می‌شود که در دور بعدی یک بلاک جدید بتواند حمایت دوسوم اعتبارسنج‌ها را در قالب Polka کسب کند.


پروژه‌های مطرحی که بر پایه تندرمینت (Tendermint) و Cosmos SDK ساخته شده‌اند

برخی از پروژه‌های بلاکچینی در ساختار خود از الگوریتم اجماع تندرمینت (Tendermint) و کیت توسعه کازمس (Cosmos SDK) بهره می‌برند، در حالی که گروهی دیگر به‌عنوان نمونه‌های پیاده‌سازی‌شده در اکوسیستم کازمس فعالیت می‌کنند. از جمله این پروژه‌ها می‌توان به شبکه‌هایی مانند ترا (Terra)، اوسیس (Oasis)، ریجن نتورک (Regen Network)، IRISnet و بایننس دکس (Binance DEX) اشاره کرد.

همان‌طور که پیش‌تر گفته شد، برخی از شبکه‌ها نسخه‌ای از مدل اصلی خود را در اکوسیستم کازمس ایجاد کرده‌اند. یکی از شاخص‌ترین نمونه‌ها، اتریوم است. این نسخه که با نام اترمنت (Ethermint) شناخته می‌شود، با استفاده از فناوری هارد اسپون (Hard Spoon) توسعه یافته است. در این ساختار، مکانیزم اجماع اثبات کار (PoW) از اتریوم حذف شده و در عوض، دارندگان اتر برای پرداخت کارمزد شبکه در کازمس توکن فوتون (Photon) دریافت می‌کنند. فوتون به‌عنوان توکن پیشنهادی برای پرداخت هزینه تراکنش‌ها در شبکه Cosmos معرفی شده است.

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


مزایا و معایب تندرمینت (Tendermint)

مزایا

سرعت بالا در پردازش و تأیید تراکنش‌ها

امکان مقیاس‌پذیری افقی از طریق سیستم Zoning

قابلیت پشتیبانی از تمامی زبان‌های برنامه‌نویسی

مصرف بهینه‌تر منابع محاسباتی نسبت به الگوریتم اثبات کار (PoW)

معایب

انگیزه کم برای افرادی که مقدار سپرده‌گذاری آن‌ها پایین است

قفل شدن سرمایه در بازه‌های زمانی طولانی


سوالات متداول

  • تندرمینت (Tendermint) چیست؟

تندرمینت (Tendermint) یک موتور اجماع و شبکه همتابه‌همتا برای ساخت بلاکچین‌های سریع، امن و مقیاس‌پذیر است.

  • تندرمینت (Tendermint) چه زمانی معرفی شد؟

در سال ۲۰۱۴ توسط جائه کووان (Jae Kwon) و ایثن بوکمن (Ethan Buchman) راه‌اندازی شد.

  • تندرمینت (Tendermint) چه نقشی در بلاکچین دارد؟

وظیفه مدیریت اجماع و ارتباط نودها را برعهده دارد و تراکنش‌ها را مرتب و منتشر می‌کند.

  • ارتباط تندرمینت (Tendermint) با کازمس چیست؟

تندرمینت (Tendermint) به‌عنوان بخش اصلی Cosmos SDK عمل می‌کند و هسته بسیاری از بلاکچین‌های کازمس است.

  • چه الگوریتم اجماعی در تندرمینت (Tendermint) استفاده می‌شود؟

از الگوریتم BFT مبتنی بر اثبات سهام (PoS) بهره می‌برد.

  • مزیت اصلی تندرمینت (Tendermint) چیست؟

سرعت بالا در تأیید تراکنش‌ها و نهایی‌سازی فوری (Instant Finality).

  • آیا توسعه‌دهندگان محدود به زبان خاصی هستند؟

خیر، با استفاده از رابط ABCI می‌توانند از هر زبان برنامه‌نویسی استفاده کنند.

  • تفاوت تندرمینت (Tendermint) با بلاکچین‌های سنتی چیست؟

معماری آن ماژولار است و لایه اجماع را از لایه برنامه جدا می‌کند.

  • چه پروژه‌هایی از تندرمینت (Tendermint) استفاده می‌کنند؟

شبکه‌هایی مانند Terra، Binance DEX، IRISnet، Oasis و Regen Network.

  • معایب تندرمینت (Tendermint) چیست؟

بلوک شدن طولانی‌مدت سرمایه در استیکینگ و کاهش انگیزه برای سپرده‌گذاران کوچک.


سخن پایانی

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

ممنون که تا پایان مقاله”تندرمینت (Tendermint) چیست؟“همراه ما بودید


بیشتر بخوانید

س

سهیل شیرازی

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

نظرات (0 نظر)

هنوز نظری ثبت نشده است. شما اولین نفر باشید!

نظر خود را بنویسید

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