تعاملپذیری بلاک چین : Cosmos و Polkadot (قسمت اول)
تعاملپذیری بلاک چین : Cosmos و Polkadot دو شبکه برای اتصال بلاک چینهای مختلف هستند. هر کدام مزایا و معایبی دارد و در موارد بسیاری، سازوکار آنها شبیه به هم است. تفاوت آنها در پروتکلهای اجماع، تعداد سهامداران، نحوهی اتصال بلاک چینها و نحوهی توزیع امنیت در آنهاست. این مطلب اولین بخش از یک مقاله دو بخشی است.
تعاملپذیری (Interoperability: قابلیت سیستمهای اطلاعاتی، دستگاهها و اپلیکیشنهای مختلف برای کار و برقراری ارتباط با یکدیگر) بلاک چین جدیدترین موج نوآوری است که هدف آن گسترش اینترنت غیر متمرکز است.دو تا از مهمترین برگهای برنده شبکه بلاک چین، شبکه Cosmos و شبکه Polkadot هستند. در این مقاله، پروتکلهای هر یک را در کنار طراحی شبکه، مدلهای امنیت و پشتههای تکنولوژی آنها بررسی میکنیم.
اما اول از همه باید معنای تعاملپذیری بلاک چین را در سطح بالا توضیح دهیم.
تعاملپذیری (Interoperability) بلاک چین چیست؟
تعاملپذیری بلاک چین مبحث پیچیدهای است، بیایید آن را به سادهترین شکل توضیح دهیم.
فرستادن اتریوم و دریافت بیت کوین بدون نیاز به واسطه و با استفاده از پروتکلهای بلاک چین را تعاملپذیری بلاک چین میگویند. به نظر ساده میرسد، ولی اینگونه نیست.
Cosmos و Polkadot، پروتکلهایی برای تعامل امن و قابل اعتماد بلاک چینها با یکدیگر میسازند. این پروتکلها قادر به ارسال تراکنش و پیام بین یکدیگر هستند.
چرا اهمیت دارد؟
شبکهای از بلاک چینها تاثیرات شبکه را امکانپذیر و به ساخت یک اینترنت غیر متمرکز کمک میکند. وقتی همه چیز به هم متصل است، افکار با هم به اشتراک گذاشته میشوند، تجربهی کاربر بهتر میشود و شبکه بهبود مییابد.
تعاملپذیری بلاک چین مقیاس پذیری، سرعت و توسعهپذیری بلاک چینها را به طور چشمگیری افزایش میدهد. برای مثال، اگر بلاک چین شما ۱۰۰ تراکنش در ثانیه انجام دهد، میتوانید بلاک چینی مشابه بسازید که ظرفیت ۲۰۰ تراکنش در ثانیه را داشته باشد. میتوانید ظرفیت را به ۱۰۰۰ تا هم برسانید.
بلاک چینهای خصوصی، عمومی و کنسرسیوم میتوانند به این شبکه متصل شوند. بلاک چینها حتی میتوانند به بانکهای فیات مثل سوئیفت متصل شوند.
چرا روی Cosmos و Polkadot تمرکز داریم؟
تا آن جا که من میدانم این پروژهها محتملترین پروژهها هستند. هر دوی آنها تیم فنی پیشرفتهای دارند، در جامعه غیر متمرکز شهرت زیادی دارند، سالهاست در فضای بلاک چین حضور دارند و کدهای جالب توجهی برای بلاک چین نوشتهاند.
منبع: وبسایت شبکه Cosmos و وبسایت شبکه Polkadot
استراتژی آنها برای حل تعاملپذیری بلاک چین یکسان است ولی طراحی پروتکلها متفاوت است. این تفاوتها منجر به تفاوت در راحتی، انعطافپذیری، امنیت و کارایی آنها میشود.
بیایید بیشتر در مورد آینده بلاک چین و تعاملپذیری آن حرف بزنیم.
شبکه Cosmos
تیم Cosmos از ۲۰۱۴ و پس از انتشار تندرمینت (Tendermint) بر روی تعاملپذیری بلاک چین کار میکند. تندرمینت یک موتور اجماع Byzantine Fault-Tolerant است که با پروتکلهایgossip شبکه همتا-به-همتا کار میکند.
Cosmos – اینترنت بلاک چینها
تیم Cosmos در حال ساخت شبکهی Cosmos است؛ شبکهای که روی Tendermint ساخته میشود. Tendermint و Cosmos هر دو زیرمجموعهی موسسهی اینترچِین (InetrChain) هستند. دو دیاگرام ساده طراحی شبکه را نشان میدهد.
در سطوح بالا، بلاک چینها از سه مولفه تشکیل شدهاند: شبکهای از کامپیوترها که با یکدیگر صحبت میکنند (نودها)، یک پروتکل اجماع که نودها با استفاده از آن بر ساخت یک بلوک جدید توافق میکنند و یک لایهی اپلیکیشن که حالت خود را دارد (مثل حسابهای اتریوم که گردش حساب اتر را به عنوان حالت ذخیره میکنند.)
Tendermint مسئول نظارت بر شبکه و لایههای اجماع یک بلاک چین است. به این ترتیب، بلاک چینها اپلیکیشنهای پرحالت خود را با استفاده از Tendermint میسازند. این دیاگرام کنشِ ABCI-application با Tendermint را با پروتکل ABCI نشان میدهد و در بخش بعدی در مورد آن حرف میزنیم.
پروتکلها و طراحی فنی آنها
Tendermint (اجماع و شبکهسازی)
Tendermint یک ماشین حالتِ PBFT) Practical Byzantine-Fault Tolerant) است. این ماشین به یک مجموعه از رایدهندگان برای حصول توافق بر ساخت یک بلوک نیاز دارد. شبکهی Cosmos حداقل به دو سوم آراء برای رسیدن به اجماع نیاز دارد. اگر یک سوم رایدهندگان byzantine باشند، شبکه هیچگاه منشعب نمیشود، زیرا رایدهندگان نمیتوانند بلوکهای سردرگمکننده را در یک سطح قرار دهند. این موضوع از ارجحیت “امن ماندن” بر “لایو بودن” در شبکه Tendermint ناشی میشود.
رابط اپلیکیشن بلاک چین (ABCI)
ABCI یک رابط است که مرز بین موتور پاسخگویی (Tendermint) و یک ماشین حالت (بلاک چین) را مشخص میکند. ABCI تنها راه بهروزرسانی حالتِ بلاک چین است و تنها چیزی که به توابع تغییردهندهی بلاک چین دسترسی دارد، Tendermint است. این طراحی، یک استراتژی عالی برای امن نگه داشتن شبکه است، زیرا تنها Tendermint قابلیت تغییر دادن حالت را دارد.
دیاگرام زیر پشته Tendermint، نحوهی اتصال نودها در یک شبکهی همتا-به-همتا و ویژگیهای هر نود را نشان میدهد.
هر ۵ نود، یک شبکهی همتا-به-همتا را تشکیل میدهند. هر نود یک کامپیوتر است که هستهی Tendermint را مدیریت میکند. Tendermint میتواند بلاک چینها را با پروتکل ABCI به هم وصل کند. نود مشتری لایت (Light Client Node) در سمت چپ، پایین، با فراخوانی یک RPC به هر نود Tendermint متصل میشود.
تعاملپذیری در Cosmos
روابط درون بلاک چینی (IBC)
شبکهی Cosmos با پروتکل IBC روابط بلاک چینها را با یکدیگر امکانپذیر میکند. شبکهی بلاک چینها از طریق IBC با هم در ارتباطند و شبکهی Cosmos نقش قطب مرکزی را ایفا میکند. بلاک چینها در یک مدل Hub and Spokes به Cosmos Hub متصلند. همانطور که در دیاگرام زیر میبینید، اسپوکهای این شبکه Zone نام دارند.
هاب Cosmos، بلاک چین اصلی است که همهی بلاک چینهایی که روی شبکهی Cosmos ساخته میشوند را به هم متصل میکند. هر ناحیه یا Zone بلاک چین خودش است و در کنار دیگر نواحی، یک مدل هاب و اسپوک را برای ایجاد ارتباط درست میکنند.
ویژگی فنیترِ IBC، چِین ریلی (Chain Relay) است. با استفاده از چین ریلیها، هر بلاک چین میتواند رویدادهای دیگر بلاک چینها را بخواند و تایید کند. برای مثال، یک قرارداد هوشمند در زنجیرهی A، میخواهد بفهمد چه اتفاقاتی در زنجیرهی B میافتد. برای این منظور، یک قرارداد هوشمند در زنجیرهی B باید سربرگ زنجیرهی A را چک کند تا به اجماع رسیدن آن را تایید کند.
شبکهی Cosmos بلاک چینهایی میسازد که از روز اول، از طریق چین ریلیها متقابلا عمل میکنند. همانطور که در این دیاگرام میبینید، هر بلاک چین با Tendermint کار میکند.
هاب Cosmos با ۴ بلاک چین Tendermint برهمکنش دارد. آنها با هم به راحتی کار میکنند و حالات یکدیگر را از طریق پروتکل IBC میخوانند. زنجیرهی بالا، سمت چپ، Peg Zone است که در بخش بعد در این مورد بحث میکنیم.
هر بلاک چین جدید به محض تولید در پروتکل IBC، به شبکه ملحق میشود. این ادعا در مورد بلاک چینهای عمومی و خصوصی صدق میکند.
Peg Zone
Peg Zone ها، شبکهی Cosmos را به شبکههای بلاک چین فعال (live)، مثل اتریوم Mainnet متصل میکند. این اتصال مهمترین نیاز برای تعاملپذیر شدن بلاک چینها است. Peg Zone ها مفهوم پیچیدهای دارند اما اکنون نحوه کار آنها را به سادگی توضیح میدهیم.
شما باید یک مدل مشترک امنیتی داشته باشید که در آن تاییدکننده Peg Zone Cosmos، همچنین یک نود از اتریوم Mainnet را در اختیار داشته باشد. رایدهندگان ارتباط متقابل بین دو زنجیره را تصدیق میکنند. این یک زیرساخت پیچیده است، ولی بهتر است به تیم گردانندهی Peg Zone اعتماد کنید.
مبادلهی واقعی داراییها به اِتِر و در نتیجه قرارداد هوشمند اتریوم Mainnet نیاز دارد تا در عوض، توکنهای جدید در نواحی Peg بسازد. به این اترها Cosmos-اتر میگویند و توسط IBC در سرتاسر شبکهی Cosmos منتقل میشوند. رایدهندگان در Cosmos اتم (Atom) ها را نگه میدارند که در عوض یک توکن ERC-20 Atom میسازد و در اتریوم Mainnet قابل ارسال است. به این ترتیب تعاملپذیری کامل داراییها بین Cosmos و اتریوم Mainnet برقرار میشود.
حصول تعاملپذیری بین دو زنجیره
هر شبکهی تعاملگر حداقل به دو بلاک چین نیاز دارد تا پیامها و تراکنشها را مبادله کند. اترمینت (Ethermint) راه حلی است که در آن اولین زنجیره با قطب Cosmos در تعامل است.
اترمینت یک بلاک چین است که تیم Cosmos آن را پس از راهاندازی هاب Cosmos راهاندازی میکنند. این بلاک چین در زمستان ۲۰۱۸ راهاندازی شده است. راحتترین راه برای معرفی اترمینت این است: اترمینت یک بلاک چین اتریوم است که به جای الگوریتم اجماع اثبات کار، از موتور اجماع تندرمینت استفاده میکند. با اترمینت، ماشین مجازیِ اتریوم با شبکهی Cosmos تعامل خواهد داشت.
تیم اترمینت بر پایهی هارد اسپون (Hard Spoon) کار میکند. اعضای تیم، در یک زمام مشخص، با استفاده از تمام حسابهای اتریوم و حالت آن، یک ناحیهی اترمینت جدید میسازند. به این ترتیب توسعهدهنگان فعلی شبکهی اتریوم را کنترل کرده و برای هر شخص، توکنهای جدید و تراکنشهای سریع میسازد.
اترمینت قرار بود به جای Peg Zone در اتریوم Mainnet قرار بگیرد، زیرا ساخت آن از لحاظ فنی سادهتر بود. اما بالاخره نواحی Peg برای هر شبکهای از بلاک چینها ضروری هستند. بیت کوین و اتریوم قدرت زیادی دارند و حذف آنها برای Cosmos و Polkadot ریسک بزرگی است.
Cosmos Hub
Cosmos Hub بلاک چین اصلی است و نقش متصلکننده مرکزی را برای بلاک چینهای شبکهی Cosmos ایفا میکند. این یک بلاک چین چند-دارایی با الگوریتم اثبات سهام است که تحت نظر تندرمینت کار میکند. توکن اصلی Cosmos Hub اتم (Atom) است و برای سهام خریدن در بلاک چین از آن استفاده میشود. این قطب با ۱۰۰ رایدهنده شروع به کار میکند و هر ساله تعداد رایدهندگان آن افزایش مییابد.
اتمداران میتوانند رایدهنده و یا نماینده باشند. یک رایدهنده نودهای محافظ شبکه را انتخاب و تراکنشها را پردازش میکند. در مقابل، یک نماینده اتمهایش را به یک رایدهنده محول میکند و آن رایدهنده را بر اساس قابلیت اطمینان آنها در مدیریت نودها انتخاب میکنند.
رایدهندگان اتمها را سرمایهگذاری میکنند و در ازای هر بلوک، پاداشهایی به صورت اتم دریافت میکنند. این پاداشها با کارمزدی کم به نمایندهها منتقل شده و از راهاندازی نودِ رایدهنده خودداری میشود.
برای صادق نگه داشتنِ رایدهندگان، رایدهندگان خرابکاری که اطلاعات غلط به بلاک چین میفرستند را با گرفتن اتمهایشان مجازات میکنند. به این کار slashing میگویند. این بازی از لحاظ تئوری برای تشویق رفتار پسندیده در بلاک چینهای اثبات سرمایه به کار گرفته میشود.
توکنها نشانهی حکمرانی هم هستند. یک اتم یک رای برای هر پیشنهاد در شبکه است. این پیشنهاد میتواند پیشنهاد بهروزرسانی نرمافزار باشد. پروتکلهای حکمرانی بر Cosmos نسبتا ساده اند. نمایندگان میتوانند خودشان رای بدهند یا قدرت رایدهی خود را به رایدهندگان منتقل کنند. رایدهندگان باید به هر پیشنهاد رای بدهند وگرنه جریمه میشوند.
وضعیت فعلی Mainnet
تیم Mainnet در حال امتحان کردنِ تست نت با کاربردهای محدود هستند و نسخهی کامل نرمافزار به زودی ارائه میشود. نسخه زنده Mainnet در پاییز ۲۰۱۸ ایجاد شده و تراکنشها تا زمانی که شبکه به ثبات برسد، فریز میشوند.
به محض راهاندازی Mainnet، IBC روی آن پیاده شده و هارد اسپون (hard spoon) اتریوم برای اترمینت انجام میشود.
توسعهدهندگان Cosmos
دو راه برای توسعهدهندگان در شبکهی Cosmos وجود دارد: ساخت بلاک چینهای جدید که از IBC برای تعامل با هم استفاده میکنند، یا ساخت قراردادهای هوشمند در نواحی Cosmos. Cosmos SDK برای ساخت بلاک چینها طراحی شده و در آن، توسعهدهندگان میتوانند به راحتی به شبکهی Cosmos بلاک چینهای جدید اضافه کنند.
Cosmos SDK
تیم Cosmos، Cosmos SDK را ارائه داده است. این SDK به توسعهدهندگان اجازه میدهد بلاک چینهای خودشان را به سادهترین راه در شبکه طراحی کنند. از Cosmos SDK برای ساخت Cosmos Hub استفاده شده است بنابراین، با راهاندازی Mainnet، توسعهدهندگان میتوانند بلاک چینهای خودشان را در SDK بسازند. با Tendermint در قطب Cosmos، اپلیکیشنهایی غیر اساسی در شبکهی Cosmos بسازید و ماژولهای سرمایهگذاری، حکمرانی و IBC را به آن اضافه کنید.
توسعهدهندگان میتوانند در SDK، اپلیکیشنهای اساسی را انتخاب کنند و به آن ماژولهایی مثل حکمرانی و سرمایهگذاری اضافه کنند،ماژولهای جدید بسازند و به راحتی بلاک چین خود را با قابلیت تعاملپذیری، بسازند. این یک فرصت بسیار هیجانانگیز است زیرا با آن میتوانید به جای اهدای توکن، یک پلتفرم غیر متمرکز برای توسعهدهندگان میسازد.
این SDK در گولانگ (Golang) نوشته شده و در آینده زبانهای دیگر را نیز حمایت میکند. اما نکته این است که این اولین بار است که یک بلاک چین در گولانگ نوشته شده است.
ساخت اپلیکیشنهای غیر متمرکز (dApp) در Cosmos
با اترمینت برای اولین بار امکان ساخت dAppها در شبکهی Cosmos را فراهم کرده است. از آن جایی که اترمینت یک بلاک چین مبتنی بر EVM است قراردادها میتوانند در سالیدیتی نوشته شوند. سرعت تراکنشها در این شبکه زیاد است، زیرا موتور اجماع تندرمینت میتواند تراکنشهای زیادی در هر ثانیه انجام دهد.
Polkadot
شبکهی Polkadot پروژهای دیگر با یک تیم فنی قوی است که امکان تعاملپذیری بلاک چینها را ایجاد کرده است. پولکادات توسط Parity توسعه یافته؛ همان تیمی که اتریوم کلاینت را در زبان Rust ساخته است.
ادامه در بخش دوم