انجمن توسعه قرارداد هوشمند

کازماس(cosmos) دوست داشتنی به زبون ساده (اینترنت بلاکچین ها)

Strictly speaking, Cosmos is a decentralized network of independent parallel blockchains, each powered by BFT consensus algorithms like Tendermint consensus
سلام. تلفظ درست این کلمه کازماس هست/ˈkɒz.mɒs/ ولی از اونجایی که در کامیونیتی های فارسی کلمه کاسموس رایج تره. من هم از کاسموس استفاده میکنم :upside_down_face:
همین ابتدای نوشته تعریف شبکه کاسموس رو از زبان خودش بخونیم. شاید یکم مبهم باشه ولی مهم نیست. می خوایم خیلی ساده در مورد COSMOS بدونیم. طبق تعریف رسمی: شبکه ایه غیرمتمرکز از بلاکچین های مستقل و موازی. در این شبکه، بلاکچین ها میتونن با هم همکاری داشته باشند و با الگوریتم های اجماع BFT مثل اجماع Tendermint کار میکنن. این تعریفیه که پروژه کاسموس از خودش ارائه کرده.
Num1
خب بریم سراغ صحبتای خودمون. تا قبل از Cosmos بلاکچین ها منزوی بودن و نمیتونستن با هم ارتباط برقرار کنن. علاوه بر این مشکل مقیاس پذیری هم داشتن. حالا Cosmos اومده و داره تلاش میکنه تا با یه ایده فنی جدید این مشکلاتو حل کنه.
قبل از هر چیزی اینو بدونید که از نظر معماری، یک بلاکچین رو به 3 لایه ی مفهومی میشه تقسیم کرد:
لایه ی Application : این لایه میتواند حالت یا وضعیت شبکه رو براساس تراکنش های داده شده بروزرسانی کند.
لایه Networking : این لایه تراکنش ها و پیام های مرتبط با اجماع رو در سطح شبکه منتقل میکنه.
لایه Consensus : به نودهای شبکه این امکان رو میده تا روی حالت یا وضعیت State فعلی شبکه به توافق برسند.
qwqwqw
و برای اینکه بدونیم کاسموس چطوری میتونه به دنیای بلاکچین کمک میکنه باید یک مقدمه ی خیلی کوتاه از بیتکوین و اتریوم بگم:
همونطور که خودتونم میدونید شبکه بیت کوین در سال 2009 به جهانیان معرفی شد. بیت کوین در واقع اولین اپلیکیشن غیرمتمرکز در دنیای بلاکچین بود که از مکانیرم اجماع اثبات کار یا POW استفاده میکرد. بعد از یه مدتی دوستداران این تکنولوژی متوجه پتانسیل بالای اپلیکیشن های غیرمتمرکز در این شبکه شدند و گفتن چرا اپلیکیشن های بیشتری رو وارد این شبکه نکنیم؟ خب برای توسعه اپلیکیشن های غیرمتمرکز دو راه وجود داشت:
یک راهش این بود که شبکه بیت کوین رو فورک میکردن و اپ های غیر متمرکز رو روی شبکه توسعه میدادن. ولی اینکارو نکردن. چرا؟ چون معماری کدینگ بیت کوین مونولوتیک (monolithic) بود. مونولوتیک یعنی چی؟ یعنی هر سه لایه ی Network و Consensus و Application با هم Mixed یا ادغام شده بودن و این مسئله، کار رو خیلی سخت میکرد. علاوه بر این زبان اسکریپتینگ بیتکوین خیلی محدود بود و اصلا کاربرپسند نبود و نیاز به ابزار خارجی برای اینکار بود. اینچنین شد که راه حل اول کنسل شد و راه حل دوم به وجود اومد. راه حل دوم چیزی نیست جز شبکه دوست داشتنی و قدرتمند اتریوم. شبکه بلاکچین اتریوم سال 2014 معرفی شد و افراد در این شبکه میتونستن هر نوع برنامه ی غیرمتمرکزی رو روی شبکه اتریوم مستقر یا به قول خارجیا Deploy کنن. چطوری؟ اتریوم اومد لایه ی اپلیکشین رو به یک ماشین مجازی تبدیل کرد که بهش میگیم EVM . با این ماشین مجازی، هزاران توسعه دهنده تونستن اپلیکیشن های غیرمتمرکزشون رو روی این شبکه دیپلوی کنن. ولی خب، بعد از مدتی اتریوم هم ضعف های خودش رو نشون داد. چه ضعف هایی:
ضعف اول یا Scabilityمقیاس پذیری بود. همونطور که میدونید اتریوم در هر ثانیه 15 تراکنش رو میتونه انجام بده و این عدد غیر قابل قبولیه. ضعف دوم Usability بود. ینی اینکه توسعه دهنده ها در این شبکه محدودیت دارن. در واقع اتریوم مثل یه SANDBOX میمونه که برای USE CASE های متوسط بهینه شده و توسعه دهنده ها مجبورن روی طراحی و بهره وری اپلیکیشن هاشون با این پلتفرم سازش کنن.و در آخر ضعف سوم چیه؟ ضعف سوم حق حاکمیت و تصمیم گیری یا Sovereignty هست. ینی اگه یک باگی در اپلیکیشن وجود داشته باشه، هیچ تغییری اتفاق نمیفته مگر با تایید پلتفرم اتریوم.
اینجا کاسموس وارد میشه و هدفش اینه تا مشکلات بالا رو حل کنه:
چشم انداز COSMOS: چشم انداز پروژه COSMOS اینه که هم ساخت بلاکچین رو برای توسعه دهنده آسون کنه و هم اینکه ارتباط بین بلاکچین ها رو با هم برقرار کنه تا بتونن به راحتی با هم مبادله و تراکنش داشته باشن.
به بیان دیگه هدف نهایی این پروژه ایجاد اینترنت بلاکچین هاست. یعنی ایجاد یک شبکه غیرمتمرکز از بلاکچین های مختلف که به راحتی با هم در ارتباط هستند. با شبکه COSMOS بلاکچین ها میتونن حاکمیت خودشون رو حفط کنن، تراکنش های خیلی سریع با هم داشته باشن و در این اکوسیستم با بلاکچین های دیگه در ارتباط باشن.
حالا راه حل کاسموس برای حل این مشکلات چیه؟
کاسموس اومده یه سری TOOLS مثل Tendermint، COSMOS SDK، IBC طراحی کرده تا توسعه دهنده ها بتونن بلاکچین های سفارشی، امن، مقیاس پذیر و قابل همکاری بسازن. حالا دونه دونه اینا رو توضیح میدیم.

Tendermint چیه؟ اتریوم توسعه اپلیکیشن های غیرمتمرکز رو به کمک EVM خیلی راحت کرد ولی توسعه بلاکچین خودش رو ساده نکرد. برای مثال چون Go-ethereum مونولوتیکه، سفارشی کردنش هم سخته. اینجا جایی که Tendermint وارد عمل میشه. Tendermint BFT میاد لایه های Network و Consensus رو به صورت یک پکیج درمیاره و به توسعه دهنده ها میگه شما تمرکزتون رو روی توسعه بزارید و کاری با پروتکل های پیچیده نداشته باشید. در نتیجه ی اینکار صدها ساعت از زمان توسعه دهنده ها صرفه جویی میشه. فقط بدونین که Tendermint از الگوریتم تحمل خطای بیزانسی یا BFT استفاده میکنه که میتونید در لینک زیر بیشتر در موردش بدونید(What is Byzantine Fault Tolerance|Explained For Beginners - YouTube) . در نهایت اینکه Tendermint ادعا میکنه که میتونه در هر ثانیه یک بلاک رو ببنده و هزاران تراکنش رو در هر ثانیه Handle کنه.
COSMOS SDK چیه؟ در واقع یه چارچوبیه که پروسه ی ساخت بلاکچین های امن رو روی Tendermint BFT ساده میکنه و برگ برندش ماژولاریتی (Modularity) بودنشه: هدف COSMOS SDK اینه که یه اکوسیستم ماژولار ایجاد کنه. یعنی توسعه دهنده ها و همه ی کاربرها بتونن بدون کد زدن از ماژول های آماده در برنامه هاشون استفاده کنن یا از این ماژول ها برای ایجاد تغییرات در برنامه هاشون بهره ببرند. نکته ی جالب اینه که ابزارهای توسعه در اتریوم مثل Truffle و Metamask با Ethermint سازگار هستند و میتونیم Smart Contractها رو روی Ethermint پورت کنیم.
مفهوم IBC : حالا که تونستیم به کمک Tendermintو COSMOS بلاکچین خودمون رو بسازیم، باید ارتباط بین این بلاکچین ها رو با هم برقرار کنیم. اینجاست که IBC وارد عمل میشه. IBC مخفف Inter-Blockchain Communication هست و در واقع یه پروتکله که این امکان رو ایجاد میکنه تا بلاکچین ها بتونن با هم ارتباط برقرا کنند و به عنوان مثال یک بلاکچین خصوصی و یک بلاکچین عمومی برای همدیگه توکن و داده ارسال کنند.

پروژه COSMOS با توکن بومی خودش ATOM یکی از پروژه های جذاب دنیای بلاکچین محسوب میشه و میتونه دنیای ارتباطات بین بلاکچینی رو در آینده متحول کنه.

منبع: https://cosmos.network

2 Likes