بلاک چین Cosmos چیست؟
در این مقاله به بررسی تمام موارد بلاک چین Cosmos از صفر تا صد آن خواهیم پرداخت. به احتمال زیاد آقای ساتوشی ناکاموتو را می شناسید. همان خالق بیت کوین که در سال دو هزار و هشت برای اولین بار وایت پیپر های بیت کوین را صادر نمود. آن زمان محور اصلی تفکرات او احتمالا تنها ارائه ی یک ارز دیجیتالی و غیر متمرکز نمودن آن نبوده است. او می خواسته دنیا را با یک فن آوری به نام بلاک چین آشنا کند. از آن زما تا به همین الآن خیلی از شرکت های بزرگ دنیا این فن آوری را به رسمیت شناختند. با هر بار که ارز جدیدی متولد می شد. ویژگی های ناشناخته ی بلاک چین بیشتر توسعه می یافت.
مثلا با ظهور اتریوم تطبیق پذیری به جهانیان نمایش داده شد. آن هم برای اولین بار. اما این مورد را هم باید ذکر نمود که تنها ویژگی ها نمایان و ظاهر نمی شد. بلکه عیوب آن ها هم ظاهر می شد. حالا هم بلاک چین Cosmos در پی این است که این مشکلات در دنیای ارز های دیجیتالی را بر طرف نماید. برای این که بهتر با این مشکلات آشنا شویم. بیایید سری به چند تا از آن ها بزنیم.
مشکل مقیاس پذیری
به همین راحتی ها هم نبود که ارز های دیجیتال به دنیا معرفی گردند. و بتوانند از همان اول با سیستم های مالی خوبی مانند ویزا کارت و پی پل رقابت نمایند. نه. باید می توانستند زمان پاسخگویی خود را افزایش دهند. پس برای روشن تر شدن این موضوع بیایید یک نگاهی به زمان پاسخگویی و پایداری پی پل و ویزا بیندازیم. پی پل می تواند در هر ثانیه به صد و نود و سه تراکنش پاسخ بدهد. ویزا هم سرعت بیشتری را دارد می تواند در هر ثانیه به یک هزار و ششصد و شصت و هفت درخواست پاسخ بگوید. راستی اتریوم که این قدر بزرگ به نظر می رسد می تواند در هر ثانیه تنها به بیست تراکنش پاسخ بدهد. می توان گفت اتریوم هم تقریبا دچار همان مشکل بیت کوین است. حالا یکم کمتر.
اگر هر دوی آن ها بتوانند بر روی مشکل مقیاس پذیری خود تمرکز کرده و حلش کنند می توانند بهتر پاسخ گو باشند. تا همین الان هم راه حل های زیادی برای این مشکل این دو سیستم پیشنهاد شده است. SegWit و Raiden دو راه حل از میان چندین راه حل دیگر هستند. که ممکن است منطقی تر باشند. Raiden ایرادش در این است که نمی توان با استفاده از آن به تبادلات گسترده و پر حجم پرداخت. و فقط در حال حاضر به درد مبادلات کوچک و خرد می خورد.
همکاری
خب بد نیست از دور نگاهی به وضعیت رمز ارز های بیندازیم. در حال حاضر ارز های دیجیتالی مختلفی مانند بیت کوین، اتریوم، لایت کوین و غیره را داریم. البته خیلی از بانک ها هم به صورتی قدیمی کار می کنند و از سیستم SWIFT، ACH برخوردارند. اما در سیستم های ارز دیجیتالی موضوع چنین نیست. زیرا آن ها مستقل از هم کار می کنند. مثلا زمانی که از اتریوم استفاده می کنید. نمی توانید وضعیت بیت کوین را هم همزمان درک کنید. زیرا هر دوی آن ها زیر یک پرچم کار نمی کنند. چون پلتفرم های بلاک چینی آن ها با هم منفصل و جدا است. همچنین هیچ کدام از این بلاک چین ها اطلاعات خود شان را با دیگری به اشتراک نمی گذارند.
Atomic Swap
البته زنجیره های واسطه ای به نام مبادله بین زنجیره ای اتمی (Atomic Swap) در بین آن ها دیده می شود. ولی این ارتباطات به درد بخور نیستند. و نمی توان آن را یک همکاری و وجه اشتراک در میان آن ها تلقی نمود. حال تصور کنید بانک ها هم بخواهند وارد حوزه ی ارز های دیجیتالی شوند و با آن ها ارتباط برقرار کنند. این وضعیت تازه بد تر هم خواهد شد. برای همین هم صرافی ها به عنوان یک پل و واسطه در بین بانک ها و ارز های دیجیتالی عمل می کنند. تازه همین موضوع هم خالی از مشکل نیست. چرا که خود صرافی ها هم قابل آسیب دیدن می باشند.
زیرا می توان آن ها را هم هک نمود. می بینید که خود صرافی بایننس هم با این همه بزرگی اش چگونه هک شده است. البته به خیر گذشت. اما به هر حال هک شده است.
به روز رسانی صرافی ها
از طرف دیگر می توان به موضوع به روز رسانی صرافی ها هم اشاره نمود. زیرا زمانی هم که صرافی ها مشغول به روز رسانی می شوند. برای مدتی در دسترس نخواهند بود. و به این ترتیب نخواهند توانست سرویس دهی مناسبی را داشته باشند. تازه عرضه های اولیه ی هر توکن را هم به این ماجرا که اضافه نمایید. می بینید که چه قدر مهم است. که قسمت سنتی بازار های مالی با قسمت های مدرن ارز های دیجیتالی با هم در ارتباط باشند. دلیلش هم این است که زمانی که عرضه های اولیه صورت می پذیرد. پول های میلیاردی خرج می گردد.
خب این پول ها کجا می روند؟ آیا می توان آن ها را به بانک ها سپرد؟ چرا نشود؟ مشکل این است که بانک های سنتی مسر هستند که بدانند پول شما از کجا سر چشمه می گیرد. ضمنا می خواهند پرداخت کننده ی آن ها را هم بشناسند. که این تقریبا غیر ممکن است. پس می بینید؟ مشکل فرا تر از چیزی است که فکرش را می کردیم.
بلاک چین Cosmos آمده است تا این مشکلات را هم حل کند
بلاک چین Cosmos را می توان همان شبکه ی متصل کننده ی سایر بلاک چین ها نامید. آمده است که بین همه ی آن ها رابطه ای پایدار بر قرار کند. نام معماری این بلاک چین هم Zones می باشد. خود این بلاک چین به هسته ای به نام Hub وصل است. حال ببینیم وایت پیپر آن چه می گوید؟ Tendermint Core همان چیزی است که قدرت Zone ها را تامین می کند. موتور آن هم دارای اجماع بالایی است. ضمنا الگوریتم Tendermint به گونه ای است که بتواند بلاک چین ها را مقیاس گذاری نماید. و گواهی باشد بر اثبات سهام عمومی. اما پشت پرده ی بلاک چین Cosmos چه کسانی هستند؟
تیم فنی کازموس
ICF مخفف کلمات Interchain Foundation می باشد. و بلاک چین Cosmos را پشتیبانی می نماید. و قرار دادی هم برای موضوع Tendermint منعقد نموده است. از جمله افراد تاثیر گذار در این بلک چین را می توان Jae Kwon نامید. که هم مدیر عامل و هم بنیانگذار بلاک چین Cosmos می باشد. البته این آقا تنها بنیان گذار این پروژه نیست. بلکه I done this را هم خودش تاسیس نموده است. I done this برنامه ای است که به جهت بالا بردن بهره وری تیم ها طراحی و ساخته شده است. همچنین در پروژه های بزرگ دیگری به نام های Scramble.io، Flywheel networks و Yelp هم کار کرده است. و سهم مهمی را ایفاء نموده است.
نفر بعدی Ethan Buchman است. که او هم بنیانگذار همین بلاک چین می باشد. دارای درجه فوق لیسانس از دانشگاه Guelph است. و دو سال هم تجربه ی کاری در این مورد دارد. در سال دو هزار و چهارده هم با Eris Industries کار کرده است. نفر بعدی Peng Zhong نام دارد. که ریاست طراحی را بر عهده دارد. او یک توسعه دهنده ی JavaScript است. که برای شرکت Nylira کار می کرده است.
رابطه ی Tendermint و Cosmos
Tendermint را می توان به صورت یک جایگزین برای Practical Byzantine Fault Tolerance دانست. Practical Byzantine Fault Tolerance همان سیستمی می باشد که توانسته است مشکل Byzantine General را هم حل کند. Byzantine General را به فارسی ژنرال بیزانس می گوییم. بیایید ببینیم این مشکل چگونه است؟ تصور کنید یک عده ژنرال از سربازان خود دور افتاده اند. و نمی توانند به صورت سازمان یافته ای اقدام به حمله نمایند. موضوع این است که به رغم بزرگ بودن ارتش باید همه به صورت سازمان یافته ای بتوانند حمله کنند. اما چطور ممکن است؟ ما که گفتیم ژنرال ها از سربازان خود دور هستند. حالا افراد قسمت غربی قلعه به افراد قسمت شرقی پیامی می فرستند. مبنی بر این که روز چهار شنبه قرار است که حمله نماییم. اما پیام رسان نمی تواند پیام را برساند و پس زده می شود.
خب مشکل ما هم دقیقا همین است. چرا که خود پیام رسان را می گیرند و می کشند. حالا کسانی که پیام رسان را کشته اند به جای او شخص دیگری را می فرستند. در این حالت حمله با شکست مواجه خواهد شد. عین همین مثال را می توان برای ارتباط میان بلاک چین ها عنوان نمود. مثلا زمانی که می خواهید به میزان ده اتر را به شخص دیگری برسانید در این میان احتمال دارد که کسی بخواهد عدد ده شما را به صد تبدیل کند. خب ظاهرا خود ژنرال ها باید با هم به یک تجمیع آراء برسند. این تجمیع آراء می تواند جلوی این همه مشکل را بگیرد. حال Tendermint همین حل کننده ی مشکل ما است. که می خواهد تجمیع آراء را به ارمغان بیاورد.
مسئولیت پذیری و هماهنگی
همچنین Tendermint در برابر فورک ها مسئولیت پذیری دارد. در حالی که بلاک چین های بیت کوین و اتریوم چندان هم در برابر این فورک ها مسئولیت پذیر نیستند. یعنی مانند بیت کوین کش ممکن است فورک دیگری هم در بیت کوین به وجود بیاید. اگر یک سیستم هماهنگ در این میان وجود داشته باشد. ما هم می توانیم این اطمینان را داشته باشیم که مشکلی به وجود نخواهد آمد. در این حالت می توانیم در این مورد هم مطمئن باشیم که حمله ی دو بار خرج شدن اتفاق نمی افتد.
کمی بیشتر در مورد Tendermint بدانیم
همان گونه که گفته شد. می توانیم Tendermint را یک مکانیزم بشناسیم. که در مقابل فورک ها هم مسئولیت پذیر می باشد. Tendermint هم ساده است. و هم عملکرد بسیار خوبی را دارا می باشد. Tendermint را می توان شبکه ای از گره ها نامید. همه ی این گره ها به یک گره ی اصلی وصل می باشند. که به آن گره ی خاص هم اتلاق می گردد.
ماشین مرحله ای
خیلی راحت بخواهیم در مورد آن بگوییم ماشین مرحله ای همان موتور راه انداز Tendermint می باشد. این مراحل مشتمل بر Prevote، Precommit و Commit هستند. ولی Prevote و Precommit یک دور دارند. ولی آن دو مرحله ی دیگری را که نگفتیم هر کدام خود شان دو دور دارند. در وضعیتی نرمال باید چنین اتفاقی بیوفتد:
NewHeight -> (Propose -> Prevote -> Precommit)+ -> Commit -> NewHeight
البته همان طور که گفتیم این یک حالت نرمال است. و همیشه هم این طور اتفاق نمی افتد. در حقیقت پیش از انجام کار توسط یک بلاک این احتمال وجود دارد که دور های بیشتری هم نیاز باشد. اما این دور های بیشتر ممکن است به چه دلایلی اتفاق بیوفتند؟ در زیر به بیان چند مدل از آن ها خواهیم پرداخت:
احتمالا Proposer کمه آن را یک پیشنهاد دهنده نیز می دانیم غایب است.
Proposed را یک بلاک پیشنهاد می دانیم. این بلاک نیز ممکن است معتبر نباشد.
خود بلاک هم احتمالا نتوانسته وسیع تر گردد.
دو سوم از Prevote ها به وسیله ی نود ها گرفته نشده اند.
در چند سطح آغازین چه می گذرد؟
Propose مرحله ای است که در آن گره ای که انتخاب شده است یک بلاک به خصوص را پیشنهاد می دهد. حالا ممکن است این بلاک به مرحله ی Prevote هم برسد. و یا این که زمان این پیشنهاد تمام گردد. ولی در هر حالت به مرحله ی Prevote خواهد رسید. حال به Prevote می رسیم. در این سطح تک به تک اعتبار بخش ها باید تصمیم بگیرند. در حالتی که اعتبار بخش حبس شود تمام خواهد شد و بلاک هم انتشار خواهد یافت. اگر هم اعتبار بخش یک پیشنهاد مناسب دریافت نماید.
Prevote نیز امضاء می گردد و بلاک پیشنهاد شده هم انتشار می یابد. ولی در صورتی که شکی به وجود بیاید و یا اصلا پیشنهادی صورت نپذیرد در این حالت Prevote به شکل صفر امضاء می گردد. البته در این حالت هیچ بلاکی حبس نمی گردد. ضمنا تمامی گره ها Prevote انتشار می دهند. خود این کار را هم پروتکلی به نام gossip انجام می دهد.