آشنایی با اپلیکیشنهای غیرمتمرکز یا dAppها
اپلیکیشنهای غیرمتمرکز (dApp)، یکی از دستاوردهای بزرگ دنیای بلاکچین میباشد که اخیرا به شدت مورد توجه قرار گرفته است. در این مقاله سعی شده به صورت کامل شما را با این مبحث جذاب و کاربردی آشنا کنیم تا موارد استفاده آن در دنیای غیرمتمرکز را به صورت کامل درک کنید. پس تا انتهای این مقاله با ما همراه باشید.
دیاپ (dApp) یا اپلیکیشن غیر متمرکز چیست؟
ورود بیتکوین تقریباً یک دهه پیش باعث ایجاد عصر جدیدی در توسعه پروتکلهای بلاکچینی شد. توسعهدهندگان همواره در تلاش بودهاند تا برخی از قابلیتهای جدید و هیجانانگیز را در پروتکلهای بلاکچینی که برای موارد استفاده مختلف طراحی شدهاند، اصلاح کرده و اضافه کنند. امروزه میتوانید طیف وسیعی از کاربردهای بلاکچین را در امور مالی، بازی و حتی برای جمعآوری آثار هنری بیابید.
چگونه میتوان بلاکچین را در موارد مختلف استفاده کرد؟
اپلیکیشن یا برنامههای غیرمتمرکز یا dApps اساساً شبیه برنامههای نرمافزاری سنتی(Web App) هستند که به جای سرورهای مرکزی روی شبکههای بلاکچین اجرا میشوند. اگر به دنبال یک پاسخ فنی برای “dApp چیست؟” هستید، در واقع dAppها نوعی اپلیکیشن است که از طریق یک شبکه غیرمتمرکز توسعه یافته است. dAppها هرگز تحت مدیریت یا مالکیت یک مرجع شخص ثالث نیستند، بنابراین تمرکززدایی را تضمین میکند.
قبل از پرداختن به اجزا و نحوه کار اپلیکیشن غیرمتمرکز، اجازه دهید ابتدا به محبوبیت dAppها بپردازیم؛ در مقایسه با ۲۵ عدد اپلیکیشن غیرمتمرکز در سال ۲۰۱۵، اکنون ما بیش از ۳۶۰۰ نوع dApp در حوزههای مختلف مانند بازیها، خدمات مالی غیرمتمرکز، پلتفرمهای رسانههای اجتماعی و بسیاری موارد دیگر داریم. علاوه بر این، برنامههای غیرمتمرکز سالانه تقریباً ۱۸۲.۵ میلیارد دلار تراکنشهای کاربران را جذب میکنند؛ بنابراین، میتوان به وضوح اشاره کرد که dApp یک مفهوم مهم در دنیای بلاکچین است.
ساختار dAppها
یک برنامهوب، مانند اوبر یا توییتر، بر روی یک سیستم رایانهای اجرا میشود که متعلق به یک سازمان بوده و توسط آن اداره میشود. ممکن است چندین کاربر در یک طرف وجود داشته باشند، اما backend توسط یک سازمان کنترل میشود.
dAppها میتوانند روی یک شبکه P2P یا یک شبکه بلاکچین اجرا شوند. به عنوان مثال، BitTorrent، Tor و Popcorn Time برنامههایی هستند که روی رایانههایی اجرا میشوند که بخشی از یک شبکه P2P هستند. در زمینه فضای رمزارزها، dApps در یک شبکه بلاکچین در یک محیط عمومی، منبع باز و غیرمتمرکز اجرا میشود و از کنترل و تداخل هر مرجعی به دور است.
به عنوان مثال، یک توسعهدهنده میتواند یک dApp مانند توییتر ایجاد کند و آن را روی یک بلاکچین قرار دهد که در آن هر کاربر میتواند پیامهایی را منتشر کند؛ پس از ارسال، هیچ کس، حتی سازندگان برنامه، نمیتواند پیامها را حذف کند.
ویژگی اپلیکیشنهای غیرمتمرکز
از مهمترین ویژگیها و خصوصیات اپلیکیشنهای غیرمتمرکز، میتوان به موارد زیر اشاره کرد:
منبعباز بودن
یکی از مهمترین ویژگیهای اپلیکیشن غیرمتمرکز این است که باید ماهیت آن منبع باز باشد؛ به این معنی که یک نهاد واحد نمیتواند کنترل کد برنامه را داشته باشد و از سوی دیگر، کد برنامه باید کاملا مستقل و برای ارزیابی به راحتی در دسترس باشد.
توکنهای بومی
نکته مهم بعدی dApp، به نیاز برای تولید توکن اشاره دارد. برنامههای غیرمتمرکز باید قابلیت تولید توکنهای بومی را به عنوان اثبات ارزش در کنار توزیع توکنها به عنوان پاداش داشته باشند.
غیرمتمرکز بودن
همانطور که از نام آن مشخص است، برنامههای غیرمتمرکز با برنامههای سنتی تفاوت دارند، زیرا بر روی یک بلاکچین غیرمتمرکز اجرا میشود. در اپلیکیشنهای غیرمتمرکز، تمام سوابق در یک بلاکچین ذخیره میشود و همه ذینفعان در آنها باید موافقت خود را برای یک الگوریتم رمزنگاری برای تأیید اثبات ارزش بیان کنند.
مقایسه اپ غیرمتمرکز و اپ تحت وب
dAppها و Apps Web عناصر مشترک زیادی دارند؛ با این حال، تفاوت آنها در نحوه تعامل آنها با این عناصر است. هر دو نوع برنامه دارای سه ساختار اساسی هستند که عبارتند از: فرانتاند (FrontEnd)، بکاند (backend) و لایه ذخیره سازی داده.
اولین لایه، frontend، به رابطی تبدیل میشود که کاربران برای تعامل با برنامه از آن استفاده میکنند. در این مورد، هم اپلیکیشنهای غیرمتمرکز و هم اپلیکیشنهای حال حاضر میتوانند از منابع گرافیکی موجود برای این کار استفاده کنند؛ از رابطهای وب نوشته شده در HTML5 تا پیچیدهترین آنها، در چارچوبهایی مانند Qt یا GTK. هدف این لایه صرفا این است که به کاربر امکان تعامل، دریافت و ارسال اطلاعات به اپلیکیشن مورد استفاده خود را بدهد.
لایه دوم منطق اصلی اپلیکیشن میباشد. در یک اپلیکیشن متمرکز، این منطق بر خلاف dAppهایی که در آنها غیرمتمرکز است، متمرکز میباشد. در این اپلیکیشنها، backend مربوط به یک قرارداد هوشمند است که بر روی یک بلاکچین اجرا میشود، به عنوان مثال اتریوم. به این ترتیب، یک قرارداد هوشمند دارای برنامهنویسی است که عملکرد dApp را بررسی میکند. از آنجایی که قراردادهای هوشمند قابل مشاهده و عمومی هستند، سطح بالایی از شفافیت و امنیت را تضمین میکند. کاربران میتوانند مطمئن باشند که dApps هیچ کاری غیر از آنچه قرارداد هوشمند مشخص میکند انجام نخواهد داد. علاوه بر این، backend توسط APIها (Application Programming Interface) و قابلیتهای blockchain پشتیبانی میشود. به عنوان مثال، در اتریوم APIهای مختلفی برای کنترل تعامل کاربر با لایههای ذخیره سازی یا احراز هویت وجود دارد تا مثالهایی ارائه شود.
در نهایت، لایه ذخیره سازی وجود دارد. در یک برنامه سنتی، این لایه نیز متمرکز است. معمولاً دادهها در رایانه کاربر یا روی سرورهایی که تحت کنترل اشخاص ثالث هستند، ذخیره میشوند. این شیوه کار نقاط ضعف زیادی دارد؛ به عنوان مثال، یک کاربر میتواند اطلاعات برنامه را در صورت آسیب دیدن کامپیوترش از دست بدهد. همچنین ممکن است این اتفاق بیفتد که سرورها از کار افتاده یا مسدود شده باشند. اقداماتی که باعث میشود کاربر از استفاده صحیح از برنامه یا حتی از دست دادن اطلاعات جلوگیری کند.
اما در dAppها، ذخیره سازی دادهها نیز کاملاً غیرمتمرکز است. هر کاربر یک تاریخچه کامل از اقدامات انجام شده در شبکه را ذخیره میکند. علاوه بر این، فعل و انفعالات در بلاکچین در بلوکهای همان ذخیره میشوند. همه اینها به روشی امن از نظر رمزنگاری، و برای جلوگیری از دسترسی غیرمجاز توسط اشخاص ثالث انجام میشود. به این ترتیب، اگر رایانه یا تلفن هوشمند کاربر آسیب ببیند، کافی است از dApp در یک دستگاه جدید برای بازیابی تمام اطلاعات او تا آن لحظه استفاده کنید. بیایید اضافه کنیم که با استفاده بیشتر کاربران از dApp، سطح افزونگی و امنیت دادهها نیز افزایش مییابد.
نحوه کار dAppها
در حالی که اینترنت حجم عظیمی از دادهها را از طریق سرورهای عظیم و متمرکز انتقال میدهد، یک بلاکچین نشان دهنده صدها یا حتی هزاران ماشین است که بار تراکنش را در یک شبکه توزیع شده به اشتراک میگذارند. در بخش جلویی، برنامهها و وبسایتهای غیرمتمرکز از همین فناوری برای ارائه یک صفحه در اینترنت استفاده میکنند. با این حال، در قسمت پشتی، dApp از طریق یک کیفپول با شبکههای بلاکچین مربوطه خود ارتباط برقرار میکند، که به عنوان پلی برای اکوسیستم بلاکچین عمل میکند.
کیفپولها آدرس بلاکچین و کلیدهای رمزنگاری لازم برای شناسایی و احراز هویت خود را مدیریت میکنند. کیفپولهای dApp به جای استفاده از پروتکل HTTP برای برقراری ارتباط با بلاکچین، قراردادهای هوشمندی را راهاندازی میکنند که با بلاکچین تعامل دارند و تراکنشها را اجرا میکنند.
مزایای استفاده از اپلیکیشنهای غیرمتمرکز
با توجه به کاربرد این اپلیکیشنها و پیشرفت چشمگیر آن، مزیتهایی برای دنیای بلاکچین خواهد داشت که میتوان به موارد زیر اشاره کرد:
بدون توقف (No downtime)
مهمترین مزیت dApp به این واقعیت اشاره دارد که پس از استقرار قرارداد هوشمند در بلاکچین، شبکه همیشه میتواند نیازهای مشتریانی را که میخواهند با قرارداد هوشمند تعامل داشته باشند، برآورده کند. علاوه بر این، dAppها همچنین میتواند اطمینان حاصل کنند که هر عامل مخربی نمیتواند حملات انکار سرویس را بر روی برنامههای خاص انجام دهد. از آنجایی که یک برنامه غیرمتمرکز بر روی یک سیستم همتا به همتا اجرا میشود، حتی اگر بخشی از معماری شبکه غیر کاربردی باشد، به کار خود ادامه خواهد داد.
مقاومت در برابر سانسور (Censorship Resistance)
یکی دیگر از جنبههای مهم در مورد اپلیکیشنهای غیرمتمرکز میتوان به مقاومت در برابر سانسور اشاره کرد. برنامههای غیرمتمرکز اجازه کنترل دادهها و فرآیندها را به یک نهاد واحد نمیدهند، بنابراین برای هیچ دولت یا نهادی غیرممکن است که کاربران را از ارسال تراکنشها و حتی خواندن دادهها از بلاکچین مسدود کند. بدون اینکه فرد یا سازمان خاصی یک dApp را کنترل کند، کاربران از مزیت آزادی کامل با آنها برخوردارند.
محاسبات بدون نیاز به اعتماد (Trustless Computation)
مزیت مهم بعدی مرتبط با dApp، به تجزیه و تحلیل قراردادهای هوشمند و اجرای قابل پیش بینی بدون هیچ مرجع متمرکزی اشاره دارد. برنامههای غیرمتمرکز در مقایسه با مدلهای سنتی، پایه و اساس سیستمهای واقعاً غیرقابل اعتماد را ایجاد میکنند. به عنوان مثال، شما باید به موسسات مالی در سیستمهای بانکداری آنلاین اعتماد کنید و فرض کنید که آنها از اطلاعات مالی یا شخصی شما سوء استفاده نمیکنند. با این حال، دیگر لازم نیست با استفاده از dApp به یک مرجع مرکزی تکیه کنید زیرا قرارداد هوشمند همه چیز را بر عهده دارد.
حریم خصوصی (Privacy)
مهمترین مزیت اپلیکیشنهای غیرمتمرکز، که به درک مفهوم dApp کمک میکند، ناشناس بودن است. متوجه خواهید شد که بخش عمدهای از برنامههای غیرمتمرکز به هویت واقعی کاربران نیاز ندارند. به جای گذراندن یک فرآیند ثبت نام پیچیده و طولانی، کاربران میتوانند با اعتبارنامه ورود اتریوم و کیف پول دیجیتالی به dApps دسترسی داشته باشند.
اتریوم و دیاپها
در جهان اتریوم، یک کامپیوتر به نام (ماشین مجازی اتریوم یا EVM) وجود دارد که همه افراد در شبکه اتریوم با وضعیت آن موافق هستند. همه افرادی که در شبکه اتریوم (هر گره اتریوم) شرکت میکنند، یک کپی از وضعیت این رایانه را نگه میدارند. علاوه بر این، هر شرکت کننده میتواند درخواستی را برای این رایانه برای انجام محاسبات دلخواه ارسال کند. هر زمان که چنین درخواستی پخش میشود، سایر شرکت کنندگان در شبکه محاسبات را تأیید و اجرا میکنند. این اجرا باعث تغییر حالت در EVM میشود که در کل شبکه متعهد و منتشر میشود.
یک برنامه غیرمتمرکز (dApp) برنامهای است که بر روی یک شبکه غیرمتمرکز ساخته شده است که یک قرارداد هوشمند و یک رابط کاربری frontend را ترکیب میکند. در اتریوم، قراردادهای هوشمند در دسترس و شفاف هستند، مانند APIهای باز، بنابراین dApp شما حتی میتواند قرارداد هوشمندی را که شخص دیگری نوشته است شامل شود.
قرارداد هوشمند، کدی است که بر روی بلاکچین اتریوم نوشته میشود و دقیقاً طبق برنامه اجرا میشود. هنگامی که قراردادهای هوشمند در شبکه مستقر شدند، عمدتاً نمیتوانید آنها را تغییر دهید. dAppها غیرمتمرکز هستند؛ زیرا با منطق نوشته شده در قرارداد کنترل میشوند، نه توسط یک فرد یا شرکت. این همچنین، به این معنی است که شما باید قراردادهای خود را با دقت طراحی کنید و آنها را به طور کامل آزمایش کنید. در نهایت، دیاپها در شبکه اتریوم قرار دارند و از پلتفرمهای بلاکچینی برای ذخیره سازی دادهها استفاده میکنند.
تفاوت اتریوم dApp و قرارداد هوشمند
تفاوت بین اتریوم dApp و قرارداد هوشمند در این است که علاوه بر یک قرارداد هوشمند، اتریوم dApp شامل یک برنامه frontend برای تعامل با کاربر است. برای اجرای Ehtereum dApp در مرورگر وب، کاربر باید افزونه مرورگری را نصب کند که به مرورگر اجازه میدهد با بلاکچین تعامل داشته باشد و هویت کاربر را مدیریت کند. Metamask محبوب ترین راه حل برای دسکتاپ است.
از زمان تولد اتریوم، بیش از هزار برنامههای غیرمتمرکز ایجاد شد: بازیها، صرافیها، بازارها و بسیاری دیگر. احتمالاً معروف ترین dApp KryptoKitties است، یک بازی برای جمع آوری و پرورش گربههای خانگی مجازی. این بازی آنقدر محبوب بود که باعث کاهش سرعت قابل توجهی در شبکه شد: یک هفته پس از انتشار بازی، استخر تراکنشهای اتریوم شش برابر شد. و گران ترین گربه به قیمت بیش از ۱۰۰۰۰۰ دلار آمریکا فروخته شد.
برنامههای غیرمتمرکز اتریوم؛ ستون فقرات Web3
وب ۳.۰ شامل بسیاری از حوزههای مختلف میشود، اما در کل این فناوری مبتنی بر عدم تمرکز است. با تمرکززدایی اطلاعات و خدمات، شرکتهای بزرگ و دولتها نمیتوانند کاربران اینترنت را از طریق تاکتیکهای انحصاری و مستبدانه کنترل کنند. Ethereum dApps با توانایی خود در غیرمتمرکز کردن اطلاعات و خدمات، به وب ۳.۰ بستری برای ارائه یک اینترنت کاملاً رایگان و در دسترس برای همه میدهد. در واقع دیگر یک نقطه کنترل مرکزی وجود نخواهد داشت، زیرا افراد میانی برای تسهیل جریان اطلاعات و خدمات وجود نخواهد داشت.
جمعبندی
dAppها با ویژگیهای استثنایی تکامل یافتهاند که به آنها پتانسیل تبدیل شدن به منابع خودپایه را میدهد زیرا به ذینفعان خود توانایی سرمایهگذاری در توسعه اپلیکیشنها را میدهند. با توجه به محبوبیت آنها، میتوان دریافت که در آینده، این برنامهها برای اهداف متعدد مانند پرداخت، ذخیره سازی، رایانش ابری و غیره به زودی از برنامههای سنتی موجود در حال حاضر پیشی خواهد گرفت.
پیشرفت اجتناب ناپذیر پذیرش بلاکچین، بسیاری از شیوههای فعلی را منسوخ میکند. ممکن است در حال حاضر یک نتیجه دور از ذهن به نظر برسد، اما خدماتی مانند بانکداری قطعاً میتوانند در روزهای آینده بلاکچین را بپذیرند و با شبکههای بدون اعتماد، خودپایدار و غیرمتمرکز کار کنند. شرکتهای بزرگی که در این راستا کار میکنند تا جایگاه خود را در اکوسیستم بلاکچین ایمن کنند، گواه آن است.