برنامه های غیرمتمرکز (Decentralized apps) در اتریوم – جلسه بیستم (+ویدئو)

0 722

ایجاد برنامه‌­ های غیرمتمرکز (Decentralized apps)  کاربردی در اتریوم

برنامه ‌های کاربردی غیرمتمرکز (Decentralized apps) یکی از ویژگی‌های مهم اتریوم هستند که برای توسعه­ دهندگان بسیار جالب بوده و حائز اهمیت می‌­باشد. ایده فایل­‌های توزیع شده به سال ۲۰۰۱ برمی­‌گردد ولی ایده کنار گذاشتن فایل‌های ایستا و بهره­‌مندی از مزایای برنامه­‌پذیر بودن، منطق اجرایی و اجرای امن از طریق بلاکچین توزیع شده، در سال ۲۰۱۵ مطرح شد و کاملا جدید بود.

Dapp ها یا همان برنامه­‌های کاربردی توزیع شده (Decentralized apps)، پس از قراردادهای هوشمند مطرح می­‌شوند یعنی جایی که یک قرارداد هوشمند، بخش کوچکی از منطق است که توسط ماشین‌ها روی بلاک چین ذخیره و اجرا می‌شود. Dapp ها به app های سطح بالاتری مراجعه کرده و با استفاده از آن قراردادهای هوشمند، قابلیت­‌های خود را تامین می‌­کنند. Dapp ها مانند سایر app­ها، ترکیبی از انواع فناوری­‌ها هستند.

آنها، پشته­‌هایی (stack) از فناوری­‌ها هستند که در اکثر app های استاندارد وب وجود دارد. یک app استاندارد، احتمالاً چیزی شبیه به این است. شما موارد زیر را دارید: ِک میزبان وب که فایل‌ها را ذخیره و app می‌­کند ، نرم افزار سرور که منطق برنامه را اجرا می­‌کند، پایگاه داده‌­ای که اطلاعات را ذخیره می­‌کند، و یک اتصال با یک کاربر که از یک مرورگر برای تعامل با app های وب front-end، استفاده می­‌کند.

تنها تفاوت و بزرگترین تفاوت app با Dapp این است که فایل‌های پایگاه داده و بسیاری از منطق‌های برنامه، روی هر کامپیوتر یا سروری، ذخیره یا اجرا نمی‌شوند. Dapp ها، در سراسر شبکه بلاکچین ذخیره و اجرا می‌شوند. پروتکل بلاکچین، اجرای همزمان کد برنامه را کنترل می­‌کند، به طوریکه تمام امنیت در پشت داده‌­های تراکنش‌ها در بلاکچین، به کد برنامه اعمال می‌شود. این یک روش کاملا متفاوت برای فهمیدن چگونگی ساخت و اجرای app هاست.

برنامه­‌های کاربردی غیرمتمرکز (Decentralized apps) و حملات

app های غیرمتمرکز توزیع شده در برابر حملات بسیار مقاوم بوده و تحمل خطای زیادی دارند. نحوه تعبیه آنها در بلاکچین، سبب دسترسی آنها به ابزارهای آماده و ساختارهای ارزشی بلاکچین می­‌شود. به عنوان مثالی از این نکته می‌­توان به مالکیت توکنی (Tokenized Ownership)  و مدیریت هویت (Identity Management) اشاره کرد که در آنها راستی‌­آزمایی کاربر و فرایند پرداخت بسیار آسان است. امکان ساخت app هایی وجود دارد که در آن داده‌های کاربرانتان فقط در اختیار شما بوده و هیچگونه قابلیت دسترسی یا فروش آن داده­‌ها توسط اپراتورهای متمرکز خدمات یا طرف سومی وجود نداشته باشد. با توجه به ماهیت عمومی قراردادهای هوشمند، فرصت برای افزایش اعتماد وجود دارد. بنابراین کاربران می­‌توانند کد back-end را تجزیه و تحلیل کرده و ببینند کدام قراردادهای هوشمند در حال انجام هستند. در حال حاضر، اشکالاتی نیز وجود دارد، مثلا اجرای کد قرارداد بسیار گران قیمت است. هرچیزی که روی شبکه اتریوم اجرا می­‌شود باید روی تمامی گره­‌ها نیز اجرا شود. این بدان معنی است که قراردادها و منطق‌ها باید ساده و کارآمد باشند و به همین ترتیب فقط برای یک زیرمجموعه کوچک از app ها مفید است. قراردادهای هوشمند نیز غیرقابل‌­تغییر هستند. گاهی اوقات این یک مزیت است اما اگر شما در آن  اشکالی بیابید، تصحیح آن بسیار دشوار خواهد بود. Dapp ها مشکلات بسیار واضحی در خصوص مقیاس‌­پذیری دارند. اگر قرار باشد همه رایانه‌­ها همه چیز را اجرا کنند، سرعت کل شبکه شما با سرعت کندترین کامپیوتر موجود در شبکه، پیش خواهد رفت. فناوری Sharding که در یکی از دروس گذشته در باره آن صحبت کردیم، احتمالاً می­‌تواند به حل برخی از این مشکلات مقیاس‌­پذیری کمک کند.

شما می‌توانید به Dappها فکر کنید چرا که بر روی شبکه‌­های قراردادهای هوشمند بنا نهاده شده‌­اند و از تراکنش‌­ها برای تعامل با یکدیگر استفاده می‌­کنند. این قراردادها داده‌­ها را برای یکدیگر ارسال می‌کنند، درست به همان صورت که یک تراکنش بیت­‌کوین، اقدام به ارسال یک ارزش می­‌کند.

ممکن است شما دوست داشته باشید

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.