ارز دیجیتال
برنامه غیرمتمرکز
تعریف
یک برنامه غیرمتمرکز (DApp) نرمافزاری است که بر روی یک بلاکچین یا شبکه همتا به همتا اجرا میشود و از قراردادهای هوشمند استفاده میکند، به طوری که هیچ طرف واحدی بر آن کنترل ندارد.
برنامه غیرمتمرکز چیست؟
یک برنامه غیرمتمرکز (که معمولاً به DApp) کوتاه میشود، برنامهای است که منطق و دادههای اصلی آن در یک شبکه غیرمتمرکز—معمولاً یک بلاکچین—اجرا و ذخیره میشود و نه روی سرورهای یک شرکت واحد.
به جای اعتماد به یک اپراتور برای اجرای خدمات، کاربران به [قراردادهای هوشمند](internal:glossaryEntry:70dHOGscnIYmrjTPuIkeSb) (برنامههایی که بر روی زنجیره مستقر شدهاند) و مجموعهای توزیع شده از نودها برای اجرای قوانین، ثبت تراکنشها و حفظ دسترسی به برنامه تکیه میکنند.
برنامه غیرمتمرکز چگونه کار میکند؟
اکثر طراحیهای برنامه غیرمتمرکز به سه لایه تقسیم میشوند: منطق روی زنجیره، یک رابط کاربری، و خدمات داده/ذخیرهسازی . منطق روی زنجیره معمولاً مجموعهای از قراردادهای هوشمند است که بر روی یک بلاکچین مانند اتریوم یا سایر شبکههای قرارداد هوشمند مستقر شدهاند. این قراردادها قوانین برنامه را تعریف میکنند—چه کسی میتواند چه کاری انجام دهد، چگونه موجودیها تغییر میکنند، چگونه معاملات تسویه میشوند، یا چگونه رأیگیریهای حکومتی شمرده میشوند. از آنجا که این قراردادها روی زنجیره زندگی میکنند، هر کسی میتواند کد و انتقالهای وضعیت ناشی را تأیید کند.
رابط کاربری (که به آن “فرانتاند” گفته میشود) شبیه به یک برنامه وب یا موبایل عادی است، اما از طریق یک کیف پول (برای مثال، یک کیف پول مرورگر) به بلاکچین متصل میشود. وقتی کاربر بر روی یک عمل—تعویض، قرض دادن، ضرب، رأی دادن—کلیک میکند، فرانتاند یک تراکنش آماده میکند و از کیف پول میخواهد آن را امضا کند. پس از تأیید کاربر، تراکنش به شبکه پخش میشود، در یک بلوک گنجانده میشود و توسط قرارداد هوشمند اجرا میشود. نتیجه یک بهروزرسانی وضعیت است که هر نود میتواند بهطور مستقل آن را تأیید کند.
مدیریت داده جایی است که معماری برنامه غیرمتمرکز از برنامههای سنتی متفاوت است. بلاکچینها برای فایلهای بزرگ و دادههای با فرکانس بالا هزینهبر هستند، بنابراین DAppها معمولاً محتوای سنگین را خارج از زنجیره ذخیره میکنند در حالی که اثباتهای حیاتی و سوابق مالکیت را روی زنجیره نگه میدارند.
یک الگوی رایج این است که رسانه یا متاداده را در شبکههای ذخیرهسازی غیرمتمرکز (مانند سیستمهای آدرسدهی محتوا) ذخیره کرده و فقط هش محتوا یا مرجع را در قرارداد هوشمند ذخیره کنند. این کار برنامه را قابل تأیید نگه میدارد بدون اینکه بلاکچین مجبور شود مانند یک پایگاه داده کامل عمل کند.
بهطور مرحلهای، تعامل معمولی DApp به این صورت است: 1. کاربر یک کیف پول متصل میکند به فرانتاند DApp. 2. فرانتاند وضعیت روی زنجیره را میخواند (موجودیها، موقعیتها، قیمتها، پیشنهادات حکومتی) از طریق یک نود یا ارائهدهنده RPC. 3. کاربر یک عمل را آغاز میکند؛ فرانتاند یک تراکنش میسازد که یک تابع قرارداد هوشمند را فراخوانی میکند. 4. کیف پول تراکنش را امضا میکند با کلید خصوصی کاربر. 5.
شبکه تراکنش را تأیید و اجرا میکند; قرارداد هوشمند وضعیت را بهروزرسانی میکند. 6. فرانتاند وضعیت جدید را نمایش میدهد با خواندن دوباره بلاکچین.
تشبیه: یک برنامه سنتی مانند یک فروشگاه است که صاحب آن دفتر کل را در یک دفتر پشتی نگه میدارد؛ یک برنامه غیرمتمرکز مانند یک دفتر کل عمومی در میدان شهر است که قوانین بهطور عمومی منتشر شده و هر ساکن میتواند ورودیها را تأیید کند.
برنامه غیرمتمرکز در عمل
بسیاری از محصولات کریپتویی که امروز مورد استفاده قرار میگیرند، نمونههایی از برنامههای غیرمتمرکز هستند. در DeFi، سازندگان بازار خودکار مانند یونیسواپ به کاربران اجازه میدهند تا توکنها را از طریق قراردادهای هوشمند به جای یک اپراتور دفتر سفارش متمرکز معامله کنند.
پروتکلهای قرضدهی مانند Aave و Compound از استخرهای زنجیرهای و قوانین وثیقه برای امکانپذیر کردن قرضگیری و وامدهی بدون اینکه بانکی تصمیم بگیرد چه کسی واجد شرایط است، استفاده میکنند.
در NFTs، بازارهایی مانند OpenSea و Rarible قراردادهای هوشمندی را ادغام میکنند که مالکیت و انتقال توکنهای منحصر به فرد را نمایندگی میکنند، در حالی که فایلهای رسانهای و متادیتا معمولاً با ارجاعات قابل تأیید در خارج از زنجیره ذخیره میشوند.
در بازیهای بلاکچینی و هویت دیجیتال، DApps میتوانند به کاربران اجازه دهند داراییها و اعتبارنامهها را بین تجربیات منتقل کنند، زیرا مالکیت به یک کیف پول متصل است نه به یک حساب که توسط یک پلتفرم واحد کنترل میشود.
چرا برنامههای غیرمتمرکز مهم هستند
یک برنامه غیرمتمرکز مهم است زیرا مدل اعتماد نرمافزار را تغییر میدهد. به جای اینکه به یک شرکت برای نگهداری وجوه، اجرای عادلانه قوانین یا نگه داشتن سرویس آنلاین اعتماد کنید، کاربران میتوانند به قراردادهای هوشمند شفاف و یک شبکه توزیعشده تکیه کنند. این میتواند نقاط شکست منفرد را کاهش دهد، سانسور یکجانبه را محدود کند و برای هر کسی آسانتر کند که نحوه کار سیستم را بررسی کند.
DApps همچنین امکان ترکیبپذیری را فراهم میکنند—توانایی یک پروتکل برای ساخت بر روی پروتکل دیگر مانند “لگوهای پولی.” یک DApp تعویض میتواند یک پروتکل وامدهی را ادغام کند؛ یک بازار NFT میتواند یک استاندارد حق امتیاز را ادغام کند؛ یک کیف پول میتواند بسیاری از DApps را از طریق سازههای مشترک زنجیرهای ادغام کند.
بدون برنامههای غیرمتمرکز، بخش بزرگی از کریپتو به خدمات جداگانهای بازمیگردد که در آن کاربران باید به واسطهها اعتماد کنند و نمیتوانند به راحتی منطق زیرین را تأیید یا دوباره استفاده کنند.
پرسشهای متداول
یک برنامه غیرمتمرکز (DApp) به زبان ساده چیست؟
یک DApp برنامهای است که از یک بلاکچین یا شبکه همتا به همتا برای اجرای عملکردهای اصلی خود استفاده میکند. به جای اینکه یک شرکت کنترل بخش پشتی را بر عهده داشته باشد، قراردادهای هوشمند و نودهای توزیعشده قوانین را اجرا میکنند.
یک برنامه غیرمتمرکز چگونه با یک برنامه سنتی متفاوت است؟
برنامههای سنتی بر روی سرورهای متمرکز که توسط یک سازمان کنترل میشوند، اجرا میشوند. یک برنامه غیرمتمرکز منطق کلیدی را بر روی زنجیره اجرا میکند، بنابراین کاربران میتوانند تراکنشها و قوانین را تأیید کنند و هیچ اپراتور واحدی نمیتواند به راحتی نتایج را تغییر دهد.
آیا DAppها همیشه از قراردادهای هوشمند استفاده میکنند؟
بیشتر DAppهای مدرن این کار را میکنند، زیرا قراردادهای هوشمند منطق روی زنجیرهای را فراهم میکنند که باعث میشود برنامه قابل تأیید و خوداجرا باشد. برخی از برنامههای غیرمتمرکز همچنین به اجزای همتا به همتا وابستهاند، اما قراردادهای هوشمند ستون فقرات رایج برای DAppهای کریپتو هستند.
مزایا و خطرات اصلی استفاده از یک برنامه غیرمتمرکز چیست؟
مزایا شامل شفافیت، کاهش وابستگی به واسطهها و مقاومت قویتر در برابر سانسور است. خطرات شامل اشکالات قراردادهای هوشمند، شلوغی شبکه و هزینهها، و تجربه کاربری پیچیدهتر در مقایسه با برنامههای Web2 است.
چرا DAppها میتوانند کندتر یا گرانتر باشند؟
زیرا تراکنشها باید توسط شبکه تأیید شوند و در بلوکها گنجانده شوند، که زمان میبرد و هزینه دارد. وقتی بسیاری از کاربران برای فضای بلوک رقابت میکنند، زمانهای تأیید میتواند افزایش یابد و هزینهها ممکن است بالا برود.