برنامه های غیرمتمرکز (Decentralized apps) در اتریوم – جلسه بیستم (+ویدئو)
ایجاد برنامه های غیرمتمرکز (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ها فکر کنید چرا که بر روی شبکههای قراردادهای هوشمند بنا نهاده شدهاند و از تراکنشها برای تعامل با یکدیگر استفاده میکنند. این قراردادها دادهها را برای یکدیگر ارسال میکنند، درست به همان صورت که یک تراکنش بیتکوین، اقدام به ارسال یک ارزش میکند.