پولکادات اکوسیستم نوینی است که امکان وجود چندین بلاک چین شارد شده متمایز و تخصصی تحت امنیتی واحد را مهیا میکند. Polkadot انتقال اطلاعات، داراییها و تعامل بین بلاک چینهای مختلف را ممکن میکند. تعاملپذیری بالای بلاک چینهای راهاندازی شده در اکوسیستم و همچنین با دیگر شبکهها و امکان شخصیسازی متنوعی که پولکادات فراهم میکند، آن را به مقصدی جذاب برای بسیاری از پروژهها که قصد شروع به کار در فضای بلاک چین دارند، تبدیل میکند. اما پروژههای جدید به چه شکل میتوانند در این اکوسیستم فعالیت کنند؟ با ما همراه باشید تا به این سوال پاسخ دهیم.
پولکادات چیست؟
پولکادات پروتکلی امن، مقیاسپذیر و تعاملی برای نسل آینده وب است. این شبکه با دو هدف ایجاد شده است؛ فراهم کردن امنیت مشترک برای تمامی بلاک چینهای متصل (که در شبکه پولکادات پاراچین نامیده میشوند) و ایجاد توانایی برقراری ارتباط این شبکهها با یکدیگر به وسیله «پروتکل پیام بین زنجیرهای» (XCMP). بلاک چین پولکادات بر بستر فریمورک ساباستریت (Substrate) بنا شده است. این فریمورک که محصول شرکت پریتی تکنولوژیز (Parity Technologies) – یکی از حامیان اصلی اکوسیستم پولکادات در کنار بنیاد وب ۳ – است، امکان ساخت آسان بلاک چین با درجات آزادی عمل متفاوت را برای توسعهدهندگان فراهم میکند.
بلاک چینهای مبتنی بر ساباستریت از زبان وب اسمبلی (به اختصار Wasm) بهره میبرند و میتوانند به هر زبانی که قابلیت کامپایل به آن را داشته باشد – از جمله سی (C)، سی شارپ (C#) و راست (Rust) – نوشته شوند. برای آشنایی بیشتر با پولکادات در میهن بلاکچین بخوانید:
پولکادات چگونه کار میکند؟
پولکادات از یک چین مرکزی به نام زنجیره رله و تعدادی پاراچین (که میتوان آن را به هستههای مختلف یک کامپیوتر شخصی تشبیه کرد) تشکیل شده است. پاراچینها را میتوان به کارهای مختلفی اختصاص داد؛ برخی عمومی هستند و به حراج گذاشته نخواهند شد و به مصارف مفید برای اداره اکوسیستم اختصاص خواهند یافت (به عنوان مثال پل انتقال بین شبکههای بلاکچینی دیگر، جایگاه پاراتردها، خزانهداری و…) و سایر پاراچینها را میتوان به منظور راهاندازی یک شبکه بلاک چین و یا یک پروژه، اجاره داد.
پولکادات از گونهای از گواه اثبات سهام کاندید شده (NPoS) استفاده میکند؛ در این اکوسیستم بازیگران مختلفی دست به دست هم میدهند تا بلوک جدید و تراکنشها تایید شوند. پاراچینها، نودهای اختصاصی خود را دارند که به نام تجمیعکننده (collator) شناخته میشوند. آنها علاوه بر پراچینها، نود زنجیره رله نیز هستند و آخرین وضعیت پاراچین متبوع خود را در اختیار زنجیره رله میگذارند. در اینجا پای گروهی دیگر به میان میآید که با نام اعتبارسنج (validator) شناخته میشوند. اعتبارسنجها که از طریق پیشنهاد دهندگان (nominator) معرفی شدهاند. در واقع هر پیشنهاددهنده با انتخاب اعتبارسنج مدنظر خود، روی او سرمایه [استیک] میگذارد، سرمایهای که در صورت عدم رفتار صادقانه اعتبارسنج در معرض خطر ضبط یا سوزاندن است. به خاطر این سرمایهگذاری، اعتبارسنجها که از محل هزینه تراکنشها درآمد دارند، بخشی از درآمد خود را با پیشنهاد دهندگان تقسیم میکنند. اعتبارسنجها طی فرایندی که توضیح خواهم داد، آخرین شکل تابع وضعیت پاراچینها و تراکنشهای شبکه را در بلوک جدید زنجیره رله میسازند و تایید میکنند.
مکانیزم اجماع پولکادات ترکیبی از یک روش سریعتر ساخت بلوک با استفاده از قرعهکشی تصادفی و پیچیده برای انتخاب سازندگان بلوک بعدی از بین اعتبارسنجها و یک روش کندتر که عدهای دیگر به شکل همزمان وظیفه نهایی کردن زنجیرهها را به عهده دارند، است. روش اول به اختصار BABE نامیده میشود و دومی GRANDPA نام دارد. مزیت این روش ترکیبی، حفظ پویایی و پیشرفت شبکه، در عین زمان اندک نهایی شدن به شکل غیر قابل بازگشت است. در شکل زیر، بخش دوم این روش را میتوانید مشاهده کنید.
شبکههای اکوسیستم پولکادات
هماکنون پنج شبکه در اکوسیستم پولکادات فعالند. دقت داشته باشید که این شبکهها متفاوت از بلاک چینهای موازی (= پاراچین) فعال در پولکادات هستند؛ در واقع پاراچینها بر بستر این شبکهها انجام وظیفه میکنند:
شبکه اصلی:
پولکادات (DOT): شبکه اصلی (میننت) پولکادات از ماه مه ۲۰۲۰ (اردیبهشت ۱۳۹۹) راهاندازی شده است و تاکنون راهکارهایی به زبانهای متفاوت، از راست تا جاوا اسکریپت بر روی آن پیادهسازی شدهاند. در حال حاضر، محبوبترین زبان برای پروژههای فعال در پولکادات، زبان برنامهنویسی راست و فریمورک ساباستریت است.
شبکه قناری:
کوساما: کوساما شبکه آزمایشی اکوسیستم پولکادات است با این تفاوت که از ابتدا با این دید طراحی شده است که به فعالیت خود ادامه دهد و محلی برای تست عملی ویژگیهای جدید پولکادات باشد. کوساما (KSM) را میتوان برادرخوانده پولکادات دانست.
وستاند (Westend):
شبکهای آزمایشی که از لحاظ قابلیت درست همانند شبکه اصلی پولکادات است. امکان آزمایش نسل جدید ویژگیهایی که بعد از آزمایش به پولکادات اضافه خواهند شد، در طراحی آن در نظر گرفته شده است.
کانواس:
شبکهای آزمایشی مبتنی بر وباسمبلی که قابلیت پشتیبانی مستقیم و استقرار قراردادهای هوشمند را دارد. عموما محلی برای توسعه به زبان اینک (ink!) است. اینک زبانی مخصوص (زبان خاص دامنه) برای ایجاد قراردادهای هوشمند در راست است که در نهایت به وباسمبلی کامپایل میشود. این ابزار هنوز در مرحله توسعه است و تکمیل نشده است. در نهایت هدف این است که پشته جدیدی از قراردادهای هوشمند به وجود آید که مبتنی بر ماشین مجازی Wasm بوده و با بلاک چینهای مبتنی بر ساباستریت سازگار باشند.
روکوکو (Rococo):
شبکه آزمایشی برای پاراچینها و پروتکل پیام XCM.
کدام راه ساخت پروژه در پولکادات برای من مناسب است؟
پولکادات چند راه پیش روی شما میگذارد تا با توجه به نیازهای پروژهتان، App خود را در اکوسیستم پولکادات راه بیاندازید؛ به شکل یک قرارداد هوشمند بر روی یک پاراچین موجود، به شکل پاراچین اختصاصی خودتان و یا به شکل پاراترد (Parathread). هر کدام از این روشها مزایا و معایب خود را دارد که در ادامه کمی بیشتر با آنها آشنا خواهیم شد:
پاراچین و پاراترد
پاراچینها زنجیرههای موازی در شبکه هستند که منطق اجرای مخصوص خود را دارند و میتوانند از ویژگی برقراری ارتباط با دیگر پاراچینهای شبکه از طریق زنجیره رله (Relay Chain) پولکادات بهره برند. پاراچینها نسبت به پاراتردها و قراردادهای هوشمند امکان شخصیسازی و آزادی عمل و انعطافپذیری بیشتری مهیا میکنند اما به تلاش و زحمت بیشتری برای ایجاد و نگهداری احتیاج دارند.
پاراتردها همانند پاراچینها هستند و به توسعهدهنده این امکان را می دهند تا کنترل منطق سطح پایین اپ خود را در دست داشته باشند. بزرگترین تفاوت پاراترد و پاراچین در بحث اقتصادی است؛ هزینه برقراری امنیت و برپایی و پایداری یک پاراچین بسیار بیشتر از یک پاراترد است. دلیل این تفاوت قیمت در این امر نهفته است که پاراتردها تنها در هنگام نیاز، دست به تولید بلوک میزنند در حالی که پاراچینها در مزایده حق اجاره جایگاهی (slot) در زنجیره رله را به دست آوردهاند و باید همگام با هر بلوک زنجیره رله، دست به تولید بلوک بزنند. هنگام توسعه پاراترد، از ابزارهای یکسانی استفاده میشود و تمامی منافع پاراچین منهای هزینه در اختیار شماست.
پاراچینها آزادی عمل بیشتری در اختیار خالقان برنامهها قرار میدهند تا سیستم اقتصادی و دیگر جنبههای بلاک چین خود را به صورت کامل بسازند. همچنین امکان اجرای سریع و موثر منطق پیچیده برنامهها، بسیار فراتر از چیزی که توسط یک قرارداد هوشمند میسر باشد، فراهم است. پاراچینها همچنین انعطاف بیشتری در خصوص شکل حاکمیت دارند و میتوانند به روزرسانیهای اساسی را با روشی کمتر مخرب نسبت به راهحل هاردفورک فعلی پیش برند.
برخی از ویژگیهای پاراچین یا پاراترد:
- ساختار هزینه تراکنش دلخواه (برای مثال، هزینهای ثابت برای هر تراکنش اخذ شود و یا به ازای هر بایت مبلغ مشخصی پرداخت شود)
- سیاست پولی دلخواه برای توکن بومی شبکه و اقتصاد محلی آن.
- شیوه حاکمیت میتواند DAO ای (سازمان غیرمتمرکز) را مامور کند که وظیفه آن کنترل خزانه پلتفرم است.
پاراچینها راه را برای اجرا و ساخت منطق خاصی میگشایند که ساخت آن به وسیله قراردادهای هوشمند بسیار گران از آب در میآید. بر خلاف قراردادهای هوشمند، پاراچینها فاقد سیستم سنجش گس اجباری هستند و میتوانند در معرض باگهایی باشند که حلقه بینهایت (چیزی که در طراحی قراردادهای هوشمند از آن جلوگیری شده است) ایجاد میکنند. این آسیبپذیری به وسیله سیستم وزندهی تعبیه شده در ساباستریت تا حدی مرتفع شده است اما نیازمند توجه ویژه توسعهدهندگان است تا بتواند مطابق انتظار عمل کند.
همچنین امکان این وجود دارد که از ظرفیت هر سه روش موجود به طور همزمان بهره برد: برای مثال اگر منطق مشخصی دارید که احتیاج به حلقه برای اجرا دارد و نمی توان آن را حذف کرد، میتوان زمان اجرای پاراچین اختصاصی را به آن اختصاص داد و از قرارداد هوشمند صرفا برای مدیریت تکرارها و حلقهها بهره برد. همچنین اگر احتیاج به خوراک داده خارج از زنجیره (برای مثال از یک اوراکل) است، میتوان پاراتردی را به کار گرفت تا هر ۲۴ ساعت یک بار، دادهها را گرفته و به روزرسانی کند.
خلاصه اطلاعات ارائه شده در خصوص پاراچین، پاراترد و قرارداد هوشمند در جدول زیر لیست شده است:
ویژگیها | پاراچین | پاراترد | قرارداد هوشمند |
---|---|---|---|
سرعت توسعه | – | – | + |
راحتی توسعه | – | + | + |
پیچیدگی منطق برنامه | + | + | – |
هزینه بالاسری نگهداری | – | + | + |
آزادی عمل در شخصیسازی | + | + | – |
لزوم داشتن کنترل سفت و سخت بر روی منابع | – | – | – |
امکان داشتن توکن بومی | + | + | + |
مقیاسپذیری | + | + | – |
قراردادهای هوشمند
قرارداد هوشمند تکهای کد است که در آدرسی بر روی بلاک چین قرار دارد و میتواند با عوامل بیرونی تعامل داشته باشد و فراخوانی یا اجرا شود. برای قرار دادن کدها بر روی چینها باید چه کرد؟
با توجه به پاراچین به خصوصی که قصد استفاده از آن را دارید، نحوه برپایی اولیه قرارداد هوشمند کمی متفاوت است اما به صورت یک اصل کلی اجتیاج است که تراکنش ویژهای ارسال کنید که قرارداد را بر روی دفتر کل ایجاد کند سپس با توجه به منطق مورد نیاز قراردادتان و فضایی که به آن احتیاج دارد، هزینههای مرتبط را پرداخت خواهید کرد.
برخی از پاراچینهای شبکه اصلی پولکادات به عنوان پلتفرمهای قراردادهای هوشمند عمل خواهند کرد. با توجه به حوزه عمل اسمارت کانترکتها که محدود به یک چین و از نظر منطقی پیچیدگی محدودی دارند (البته با پروتکل پیام بین زنجیرهای قابلیت ارتباط بین چینها وجود دارد لیکن نمیتوان منکر شد که سهولت ارتباط درون شبکهای بیشتر است)، با اختصاص چند زنجیره تنها به قراردادهای هوشمند، ارتباط و تعامل بین برنامهها و قراردادها افزایش پیدا خواهد کرد. قراردادها اما همواره محدود به محدودیتهای ذاتی چین میزبان خود خواهند بود.
پروژهها میتوانند از قراردادهای هوشمند به عنوان زمین تمرینی برای پروژه اصلی خود استفاده کنند؛ پس از آزمایش مراحل اولیه پروژه، میتوانند پاراچین اختصاصی خود را ایجاد کنند.
هر پلتفرم راه متفاوتی برای پرداخت هزینهها و پشتیبانی از وضعیت قراردادهای هوشمند میزبانی شده میتواند اتخاذ کند. برخی از الگوهای متفاوتی که میتوانید مشاهده کنید به شرح زیرند:
- هزینه تراکنشی به ازای استقرار و برپایی هر تراکنش.
- مدلی حق اشتراکی به نحوی که شما به شکل منظم و دورهای برای استفاده از خدمات، مبلغ مشخصی پرداخت میکنید.
- توکنی برای دسترسی ضرب میشود و برای استفاده از خدمات باید مقدار مشخصی از این توکن را هولد کنید (ایاس EOS از این روش استفاده میکند). نوعی اجاره فضای زنجیره.
- دوره رایگان یا طرحهای تشویقی برای توسعهدهندگان.
- اکثر پلتفرمهای قراردادهای هوشمند به نوعی از مفهوم گس استفاده میکنند. با گذاشتن محدودیت برای گس، تعداد عملیاتی که کاربر میتواند انجام دهد، محدود میشود. از کاربران خواسته میشود مبلغ گس را از پیش پرداخت کنند و گس مصرف نشده، به آنها بازگردانده میشود.
توسعهدهندگان باید به پیچیدگی قرارداد و مقدار فضای لازم آن توجه کنند تا مطمپن شوند گس مصرفی ذر محدوده قابل قبول باقی خواهد ماند. با توجه به گرانی فضای آن-چین، راههایی که بتوان دادهها را هر چه بیشتر خارج از زنجیره نگه داشت، توصیه میشود. راهکارهای غیر متمرکزی همچون استورج و IPFS نیز میتواند به کمک توسعه دهندگان بیاید.
چگونه پاراچین و پاراترد خود را در پولکادات بسازیم؟
اگر تصمیم گرفتید برای توسعه پروژه خود احتیاج به پاراچین شخصی دارید، به دو روش میتوانید این کار را انجام دهید. در حال حاضر دو کیت توسعه پاراچین وجود دارد: ساباستریت و کومولوس (Cumulus).
به کمک این دو ابزار میتوانید به سادگی، بلاکچین مدنظر خود را به شکل قابل قبول برای پولکا درآورید، نودهای تجمیعکننده (collator) خود را ایجاد کنید، پروتکل پیام بین زنجیرهای (XCMP) را به کار گیرید و کلاینت کامل یکپارچهای از زنجیره رله را داشته باشید.
اما این پایان کار نیست؛ پس از اتمام بخشهای فنی، باید پاراچین خود را در شبکه مستقر کنید. برای این کار به جایگاه پاراچین (parachain slot) نیاز دارید که در حراجی زیر نظر پولکا فروخته میشود.
برای استقرار پاراترد احتیاجی به جایگاه ویژه نیست، در عوض باید کدهای پاراترد را در ازای مبلغی به عنوان هزینه در چین رله ثبت کنید و سپس میتوانید به شکل بلاک به بلاک (هر تناوبی که برنامه شما میطلبد) در حراجی آن بلاک شرکت کنید تا (تغییر) وضعیت (state) پاراترد شما در رله گنجانده شود.
چگونه قرارداد هوشمند خود را در پولکادات بسازیم؟
با توجه به اینکه زنجیره رله به شکل مستقل از قرارداد هوشمند پشتیبانی نمیکند و وابسته به پاراچینها برای ثبت و پشتیبانی تغییر حالتهاست، اکوسیستم پولکادات هنوز آنطور فضای پویایی ندارد با این حال ساباستریت به دو شکل پذیرای قراردادهای هوشمند است:
- پالت EVM که توسط فرونتیر (Frontier) ارائه شده است.
- پالت قراردادها در کتابخانه FRAME که برای قراردادهای بر پایه وب اسمبلی توسعه یافته است.
فرونتیر مجموعهای از ابزارهاست که یک زنجیره بر پایه ساباستریت را قادر میسازد تا قراردادهای نوشته شده برای ماشین مجازی اتریوم را اجرا کند. این ابزار، راه مناسبی پیش روی توسعهدهندگانی قرار میدهد که با زبان سالیدیتی راحت هستند یا میخواهند پروژه فعلی خود در شبکه اتریوم را منتقل کنند.
از سوی دیگر پالت قراردادها، امکانات جدیدی در اختیار توسعهدهندگان قرار میدهد؛ اجازه میدهد که قرارداد به هر زبانی که قادر به کامپایل به وب اسمبلی باشد، نوشته شود. از سوی دیگر سازوکار اجاره کردن فضای آن-چین و کش کردن قراردادها به طور خودکار، بار بر روی شبکه را به شکل حداقلی نگه میدارد.
اینک! (Ink!) زبان دامنه محدودی جدیدی است که برای نوشتن قراردادهای هوشمند با زبان برنامهنویسی راست توسعه یافته است. این زبان هنوز در مراحل آزمایشی است اما توسعهدهندگان میتوانند شانس خود را با این فریمورک نیز امتحان کنند. پولکادات امیدوار است همزمان با بهبود فضای توسعه قراردادهای هوشمند در این اکوسیستم، با تکمیل اینک!، آن را بدل به ابزاری کارآمد در استک برنامهنویسان این حوزه کند.
برخی پروژههای اکوسیستم پولکادات
در این بخش به چندی از پروژههای هیجانانگیز اکوسیستم پولکادات اشاره خواهیم کرد:
پولکاسواپ (Polkaswap): پولکاسواپ صرافی غیرمتمرکز بین زنجیرهای است که با استفاده از مدل بازارساز خودکار (AMM) فعالیت میکند. استفاده از امنیت و توانایی ارتباط بین بلاکچینی پولکادات، به این صرافی اجازه میدهد تا بتواند به شکلی سریع و ایمن، امکان تبادل داراییهای دیجیتال را فراهم کند. این صرافی هنوز پاراچین اختصاصی خود را در پولکادات ندارد و اکنون بر روی شبکه سورا (SORA) که بلاکچینی مبتنی بر ساباسریت است، میزبانی می شود. پیشتر در میهنبلاکچین به دیگر صرافی مطرح این اکوسیستم – پولکادکس – پرداخته بودیم که میتوانید آن را در لینک زیر مطالعه بفرمایید:
آکالا (Acala): آکالا یک هاب دیفای واقعی است. شما میتوانید اکثر کارهای قابل انجام در فضای دیفای را در این سرویس انجام دهید؛ از کشت نقدینگی گرفته تا تبادل، قرض گرفتن و قرض دادن. این پلتفرم همچنین استیبلکوین خود با نام دلار آکالا (aUSD) را نیز ضرب میکند. شبکه آزمایشی این سرویس که کارورا (Karura) نام دارد، هماکنون در شبکه کوساما قابل دسترسی است.
شبکه داروینیا (Darwinia network): داروینیا که خود شبکهای مبتنی بر ساب استریت است، به شکل خاص بر روی مساله ارتباط بلاک چینها با یکدیگر کار میکند. راهکارهای اتصال این شبکه، پل زدن دوطرفه شبکههای مختلف با یکدیگر را فراهم میکنند. این شبکه به عنوان یک پاراچین بر روی پولکادات فعال خواهد بود.
مون بیم (Moonbeam): مون بیم یک پاراچین در اکوسیستم پولکادات است. مون بیم راه حضور قراردادهای هوشمند در شبکه پولکادات را هموار میکند. مون بیم با پشتیبانی کامل از قراردادهای هوشمندی که با سالیدیتی و نگاه به ماشین مجازی اتریوم نوشته شدهاند، آنها را میزبانی کرده و امکان حضور آنها را در پولکادات فراهم میکند. تمامی هزینههای قراردادهای هوشمند میزبانی شده در پاراچین این پروژه، با توکن بومی آن، گلیمر (GLMR) پرداخت میشود.
نتیجه گیری
اکوسیستم پولکادات (و توکن بومی آن دات DOT) با ارائه زیرساختی جاهطلبانه و جذاب، درصدد ایجاد شبکهای ایمن، سریع و توانمند در ارتباط با هم هستند. در ادامه مسیر پیشرفت، نوبت به ارائه خدمات و پروژههای ملموس برای کاربر رسیده است و در این مقاله سعی کردیم تا با مرور نحوه ورود توسعهدهندگان به این اکوسیستم، امکانات این شبکه برای پذیرش آنها را نیز بررسی کنیم.
شما آینده این شبکه را در قیاس با رقبا چگونه میبینید؟ آیا مخلوق گووین وود میتواند در رقابت با اتریوم و دیگر شبکهها، سهم قابل توجهی از بازار را نصیب خود کند؟