برنامههای کاربردی غیرمتمرکز (Decentralized Applications)، نرمافزارهایی هستند که بهجای یک سرور واحد از شبکهای توزیع شده از گرههای کامپیوتری استفاده میکنند. بهترین راه برای درک این برنامهها، مقایسه آنها با برنامههای تحت وب معمولی است.
مقایسه برنامههای غیرمتمرکز با برنامههای قدیمی تحت وب
تمام برنامههای تحت وب، یک بخش سمت کاربر (Front-end) و یک بخش سمت سرور (Back-end) دارند. سمت کاربر یا فرانتاِند، سمت مشتری نیز نامیده میشود و همان قسمتی است که کاربران هنگام استفاده از برنامه میبینند. بَکاِند یا سمت سرور، لایه دسترسی به دادههای برنامه است که سازوکار پشت پرده برنامه را انجام میدهد و خروجی آن در عملکرد برنامه به نمایش گذاشته میشود.
سمت سرور
یک راه مناسب برای درک ساختار برنامههای تحت وب، مقایسه آنها با خودرو است. اگر خودرو، یک برنامه تحت وب بود، سمت کاربر شامل داشبورد، فرمان، شیشه جلو (هر چیزی که راننده هنگامی که داخل خودرو است، میبیند) میشد، درحالیکه سمت سرور شامل موتور خودرو است که باعث حرکت آن میشود.
سمت مشتری
در سمت مشتری، برنامههای معمولی و غیرمتمرکز یکسان به نظر میرسند. میتوان یک خودرو را راند، بدون این که اطلاعی از پیچیدگی موتورهای احتراقی داشت. در سایتی مانند آمازون و نتفلیکس نیز میتوان به گشتوگذار پرداخت، بدون اینکه به اطلاعاتی راجع به چگونگی عملکرد آن نیاز داشت.
تفاوت اصلی بین برنامههای تحت وب معمولی و برنامههای غیرمتمرکز در این است که در برنامههای تحت وب معمولی، فرانتاِند و بکاِند روی یک سرور قرار دارند. در مقابل، بکاِند برنامههای غیرمتمرکز بر روی شبکهای توزیع شده از سرورهای سنکرون شده (گرههای کامپیوتری) در سراسر جهان قرار دارند.
علیرغم این که محبوبیت برنامههای غیرمتمرکز پس از راهاندازی شبکه اتریوم شدت گرفت، ولی ذکر این نکته ضروری است که لزوماً برنامههای غیرمتمرکز نیازی به اجرا روی بلاکچین ندارند.
درواقع، اولین برنامه غیرمتمرکز، یک نرمافزار به اشتراکگذاری فایل به صورت آنلاین و همتا به همتا به نام Napster بود که در سال ۱۹۹۹ شروع به کار کرد (ده سال قبل از اختراع اولین بلاکچین). سرویس محبوب اشتراکگذاری فایل BitTorent و مروگر منبعباز Tor، نمونههای دیگر از برنامههای غیرمتمرکز هستند که از شبکه همتا به همتا استفاده میکنند و بر روی بلاکچین نیستند.
آشنایی با برنامههای غیرمتمرکز
برخلاف مثالهای بالا، امروزه، هنگامیکه صحبت از برنامههای غیرمتمرکز میشود، همگان را به یاد برنامههای مبتنی بر بلاکچین میاندازد.
اتریوم
اتریوم، اولین بلاکچینی بود که برنامههای غیرمتمرکز را روی بستر خود راهاندازی کرد. این بلاکچین، بستری برای قراردادهای هوشمند و برنامههای غیرمتمرکز فراهم کرده است تا نقاط ضعف بلاکچین بیتکوین را در زمینه ظرفیتهای برنامهنویسی پوشش دهد.
اتریوم علاوه بر ارز بومی، یک پروتکل کامل تورینگ (Turing) است که اسکریپتها را مانند یک کامپیوتر معمولی اجرا میکند. بااینحال، ماشین مجازی اتریوم (EVM)، یک کامپیوتر توزیع شده است که وضعیت آن در هر لحظه توسط یک الگوریتم اجماع به صورت کامل تعریف میشود.
برنامههای غیرمتمرکزی که در شبکه اتریوم ساخته میشوند از قراردادهای هوشمند استفاده میکنند. قراردادهای هوشمند اساساً کد ذخیره شده و تائید شده هستند که به صورت مستقل روی یک بلاکچین اجرا میشوند. چیزی که باعث هوشمندسازی قراردادها میشود این است که هنگامی که یک قرارداد امضا میشود به صورت خودکار و مطابق با شرایط از پیش تعیین شده اجرا میشود. بنابراین این قراردادها به شخص ثالثی برای نظارت بر آن و تایید انجام کار نیازی ندارند.
از این نظر، برنامههای غیرمتمرکز را میتوان مجموعهای از قراردادهای هوشمند در نظر گرفت که با یکدیگر در تعامل هستند و در یک رابط کاربری یکسان کار میکنند. از نظر عملکرد، برنامههای غیرمتمرکز میتوانند تمامی خدمات و تجربه کاربری برنامههای تحت وب معمولی را ارائه دهند؛ درحالیکه مزایای دیگری مانند تمرکززدایی، شفافیت، دسترسی آزاد، فعالیت شبانهروزی و مقاومت در برابر سانسور را نیز دارند.
مزایا و معایب برنامههای غیرمتمرکز
هنگامیکه از مزایا و معایب برنامههای غیرمتمرکز سخن به میان میآید، هرگز نباید زمان شروع به کار این نوآوری را فراموش کرد. این فناوری هنوز بسیار نوپا است. اتریوم محصول هفت سال گذشته است و برنامههای غیرمتمرکز تنها سه سال است که به چنین محبوبیتی دست یافتهاند. بسیاری از ایرادات برنامههای غیرمتمرکز بر اساس شرایط پیشآمدهاند؛ یعنی، بسیاری از مشکلات فعلی در آیندهای نزدیک برطرف خواهند شد.
مزایای برنامههای غیرمتمرکز
- بدون قطعی و خاموشی: یکی از بزرگترین مزایای برنامههای غیرمتمرکز این است که اگر یک گره، شبکه را ترک کند یا یک جزء از بین برود، شبکه همچنان به فعالیت خود ادامه میدهد و میتوانند وظیفه اعضای ازکارافتاده را بر عهده بگیرد. از آنجایی که قرارداد هوشمند در قلب بلاکچین در حال اجراست تا زمانی که شبکه زنده است، قرارداد در حال اجرا باقی میماند. علاوه بر این، ماهیت غیرمتمرکز این برنامهها به آنها در برابر طیف گستردهای از تهدیدات امنیتی مصونیت میبخشد. این تهدیدات امنیتی شامل حملات دیداس (DDos)، Injection SQL، bomb XML میشود.
- مقاومت در برابر سانسور: باز هم به دلیل آزاد و بدون نیاز به مجوز بودن شبکه، هیچ نهاد واحدی، قدرت و اختیار ندارد که کاربران را از برنامههای غیرمتمرکز محروم کند.
- حریم خصوصی: بهطورکلی، کاربران میتوانند آزادانه با برنامههای غیرمتمرکز تعامل داشته باشند. این تعامل تنها به یک کیف پول ارز دیجیتال نیاز دارد و نیازی به ارائه و افشای اطلاعات شخصی نیست.
- شفافیت: برنامههای غیرمتمرکز بر روی بلاکچینهای عمومی و شفاف اجرا میشوند. همه دادهها از جمله تمام تراکنشهای ورودی و خروجی، شفاف و در دسترس عموم هستند. این قابلیت، یک لایه امنیتی دیگر نیز به شبکه اضافه میکند، چراکه همه تراکنشهای داخل شبکه کاملا قابل تائید هستند و کد برنامه غیرمتمرکز را هر کاربری میتواند در هر لحظه بررسی و ممیزی کند.
معایب برنامههای غیرمتمرکز
- چالش ساخت: ساخت و طراحی برنامههای غیرمتمرکز به علت تغییرناپذیری قراردادهای هوشمند بسیار چالشبرانگیز است. توسعهدهندگان از همان ابتدا باید برنامهریزی جامع و آیندهنگری داشته باشند، چراکه بهمحض پیادهسازی قراردادهای هوشمند، تغییر آن غیرممکن خواهد شد. علاوه بر این، ساخت برنامههای غیرمتمرکز با استفاده از زبان برنامهنویسی بومی اتریوم به نام Solidity انجام میشود. این زبان برنامهنویسی چیزی نیست که توسعهدهندگان به دنبال یادگیری آن باشند، مگر اینکه علاقهمند باشند بهصورت انحصاری برنامههای غیرمتمرکز را روی این بستر بسازند.
- تجربه کاربری ضعیف: در کل، برنامههای غیرمتمرکز تجربه کاربری ضعیفتری نسبت به رقبای متمرکز خود دارند. دلیل اول، نوپا بودن این فناوری است که استفاده از آن به دانش فنی بالایی نیاز دارد. بدتر از همه، این است که تراکنشهای بلاکچین غیرقابل بازگشت و نهایی هستند و جایی برای اشتباه باقی نمیگذارد. اگر کاربر، یک تراکنش اشتباه را در برنامههای غیرمتمرکز انجام دهد، هیچ راهحلی برای آن وجود نخواهد داشت. خطاها در برنامههای غیرمتمرکز میتوانند هزینه گزافی برای کاربران داشته باشند.
- کارمزد بالا: تراکنشها در برنامههای غیرمتمرکز مشمول کارمزد بالایی میشوند. کارمزد تراکنش در گس (واحد قیمتگذاری بومی اتریوم) محاسبه میشود و با اتر پرداخت میشود. کارمزد تراکنش مستقیماً برای استخراجکنندگانی واریز میشود که در شبکه بلاکچینی که برنامههای غیرمتمرکز از آن استفاده میکنند، حضور دارند. در مواقع شلوغی شبکه، تراکنشهای همتا به همتای ساده، کارمزدی معادل ۲ تا ۵ دلار دارند، درحالی که تراکنشهای همتا به قرارداد مانند مبادله توکن در صرافیهای غیرمتمرکز بیش از ۲۰ دلار هزینه دارد.
- مستعد باگ و هک: قطعاً ریسک خطا در قرارداد هوشمند در صدر لیست قرار دارد. علیرغم این که اجرای قطعی و خودکار کد و تغییرناپذیری بلاکچینها، مزایای امنیتی خود را دارند، ولی در صورت رخداد خطا، ضررهای جبرانناپذیری پیش خواهد آمد. حتی کوچکترین خطای کدگذاری میتواند به عملکرد بد قراردادهای هوشمند منجر شود و خطاهای طراحی که توجه زیادی به آنها نمیشود نیز میتواند منجر به سوء استفاده شود، مثلا وجوه قفل شده در قراردادها از دست برود یا باعث تراکم بیش از حد شود و شبکه را از کار بیاندازد. علیرغم این که بررسی کدها توسط شرکتهای معتبر، باعث آرامش خاطر کاربران حوزه دیفای میشود، اما همچنان عدم وجود خطا با عدم قطعیتهایی همراه است.
برنامههای غیرمتمرکز محبوب
صرافیهای غیرمتمرکز (DEX)
صرافیهای غیرمتمرکز (DEX) و پروتکلهای مبادله توکن، پرکاربردترین برنامههای غیرمتمرکز در فضای ارز دیجیتال هستند. در صرافیهای غیرمتمرکز به دلیل استفاده از قراردادهای هوشمند نیاز به واسطه مورد اعتماد برای نگهداری وجوه کاهش پیدا کند. این کار باعث افزایش امنیت معاملات میشود و سرقت وجوه را بهشدت کاهش میدهد. تمام تراکنشها در صرافیهای غیرمتمرکز بهصورت همتا به همتا یا همتا به قرارداد هستند و وجوه مستقیماً به کیف پول کاربران واریز میشود.
صرافیهای متمرکز به دفتر سفارش برای قیمتگذاری و انجام معاملات نیاز دارند، اما صرافیهای غیرمتمرکز از بازارسازهای خودکار (AMM) استفاده میکنند. بازارسازهای خودکار، پروتکلهایی هستند که از قراردادهای هوشمند استفاده میکنند تا استخرهای نقدینگی از توکنها و الگوریتمهای از پیش تعیینشده یا فرمولهای ریاضی برای تعیین قیمت ایجاد کنند.
برخی از صرافیهای غیرمتمرکز محبوب عبارتاند از: Uniswap، SushiSwap، Curve، Balancer، DODO، Bancor و Kyber.
سایر برنامههای غیرمتمرکز موجود در این دسته در کنار پروتکلهای ساده مبادله توکن، ایجاد و مبادله ابزارهای مالی پیچیدهتری نظیر مشتقات (Derivative) و داراییهای مصنوعی (Synthetic Asset) را امکانپذیر میکنند. برخی از معروفترین برنامههای غیرمتمرکز که از داراییهای مصنوعی پشتیبانی میکنند، Synthetix، Hegic، Opyn، Erasure و MCDEX هستند.
برنامههای غیرمتمرکز وام
برنامههای وامدهی در رده دوم پرکاربردترین برنامههای حوزه دیفای هستند. برنامههای این دسته به کاربران اجازه میدهند که با وثیقهگذاری داراییهای ارز دیجیتال وام دهند یا بگیرند. تمام این مراحل بدون نیاز به اعتبارسنجی و احراز هویت انجام میگیرد.
Compound و Aave از معروفترین برنامههای این دسته هستند. Compound، یک بازارساز خودکار است که وامدهندگان را به وامگیرندگان متصل میکند و نرخ بهره را براساس نسبت داراییهای وام گرفته شده به داراییهای وام داده شده محاسبه میکند. Aave علاوه بر این قابلیت، به کاربران اجازه میدهد که وامهای فوری، تغییر نرخ و استقراض بدون تضمین را تجربه کنند.
برنامههای غیرمتمرکز کشت سود
برنامههای غیرمتمرکز کشت سود (Yield-farming) اساساً صندوقهای سرمایهگذاری غیرمتمرکز خودکار هستند. این برنامهها به جای مدیران صندوق و افراد از قراردادهای هوشمند برای تجمیع و تخصیص سرمایه استفاده میکنند.
ایده این برنامهها، خودکارسازی فرایند کشت سود است. به زبان ساده، سرمایههای نقدی را جمعآوری میکنند و در پروتکلهای دیفای قفل میکنند. سرمایهگذاران در ازای این کار پاداش میگیرند. رویکرد این برنامهها، عدم دخالت نیروی انسانی برای سرمایهگذاری در ارز دیجیتال است و به کاربران اجازه تقسیم هزینههای تراکنش را میدهند.
لزوماً کاربران به درک نحوه عملکرد یک برنامه کشت سود نیازی ندارند. کاربران، ارز دیجیتال خود را در برنامههای غیرمتمرکز سرمایهگذاری میکنند و بدون فعالیت خاصی سود کسب میکنند. محبوبترین برنامههای این دسته عبارتاند از: Yearn Finance، Harvest Finance، Pickle Finance و Set Protocol.
سازمانهای غیرمتمرکز خودمختار (DAO)
نام سازمانهای غیرمتمرکز خودمختار، دقیقا ماهیت آنها را شرح میدهد. سازمانهای غیرمتمرکز خودمختار بهجای تکیه بر انسانها و ساختارهای مدیریت سلسله مراتبی معمولی از قراردادهای هوشمند برای اجرای مستقل تصمیمات استفاده میکنند.
مهمترین عملکرد سازمانهای غیرمتمرکز خودمختار این است که به کاربران خود اجازه میدهند تا بهصورت غیرمتمرکز حاکمیت کنند. فضای ارز دیجیتال، نوآوریهای بسیاری با خود دارد و با سرعتی سرسامآور حرکت میکند. برنامههای غیرمتمرکز نیز برای ادامه حیات خود ملزم هستند که نوآوری به خرج داده و تغییر کنند. بااینحال، نوآوری و تغییر در این شبکهها به یک فرد یا گروه خاص محدود نمیشود، چراکه این امر برخلاف هدف اصلی آنها، یعنی تمرکززدایی است.
در راستای حل این مشکل، سازمانهای غیرمتمرکز خودمختار برای کاربران این امکان را به وجود میآورند تا در خصوص تغییرات پروتکل رای دهند و پیشنهاد ارائه کنند، صندوقهای غیرحضانتی به منظور تامین سرمایه مورد نیاز برای توسعههای آتی ایجاد کنند و به کاربران حق و حقوق مشخصی را اعطا کنند یا سهام مالکیت برنامه غیرمتمرکز را توزیع نمایند.
آینده برنامههای غیرمتمرکز
شاید مهمترین مزیت برنامههای غیرمتمرکز نسبت به برنامههای متمرکز، نوآوری بدون نیاز به اخذ مجوز باشد. ازآنجاییکه برنامههای غیرمتمرکز کاملاً باز هستند و در بیشتر موارد، توسط هیچ بخشی کنترل نمیشوند، لذا توسعهدهندگان میتوانند آزادانه تجربه کرده و پروژه جدید ایجاد کنند و آن را به روشی غیرمنتظره و خودجوش توسعه دهند.
با استفاده از برنامههای غیرمتمرکز، همگان میتوانند از پیشرفتهای حاصله از تلاش دیگران بهرهمند شوند، چرا که تحت فشار اسرار تجاری، حق نشر، علائم تجاری یا حق ثبت اختراع نیستند. آینده برنامههای غیرمتمرکز بدون شک روشن است. تمامی معیارهای موجود به این قضیه اشاره دارند.