DApps مخفف عبارت “Decentralized Applications” و به معنی اپلیکیشن های غیرمتمرکز است. عملیات دپس یا DApps، از طریق تعامل شبکه ای از نودهای غیرمتمرکز انجام می شود.
اپلیکیشن های برپایه دپس، به سرورهای مرکزی یا مرکز کنترل مشخصی وابسته نیستند. عملیات آنها برپایه شبکه غیرمتمرکز انجام می شود.
در این شبکه، کاربران کنترل کامل بر فعالیت های شبکه دارند. دپس امکان دسترسی امن مردم به خدمات متفاوت و متنوع را فراهم می کند.
از این اپلیکیشن ها میتوان در کامپیوترهای شخصی، تلفن های هوشمند و تبلت ها استفاده کرد. حتی دسترسی به آنها از طریق صفحات وب نیز امکان پذیر است.
برای تشخیص بهتر و کامل ایده DApps، بررسی و درک اپ های سنتی (اپلیکیشن ها یا خدمات) ضروری است.
در این تقسیم بندی، می توان اپ هایی همانند یوتیوب، فیسبوک، توییتر و اینستاگرام را قرار داد. در تمام این خدمات، جمع آوری اطلاعات و اخذ تصمیم ها در سرورهای مرکزی انجام می شود.
در این صورت، شرکت ارائه کننده این خدمات قادر به انجام فعالیت هایی نظیر سانسور، تغییر رفتار، آسیب رساندن یا نفع رساندن به تعداد مشخصی از کاربران را خواهند داشت.
این کار از طریق فراهم کردن شرایط نابرابر و در اختیار گذاشتن اختیارات و یا امکانات بیشتر انجام می شود. رفتار این شرکت ها همانند دیکتاتورها می باشد. تنها امیدواری، اعتماد به خوب بودن آنها است.
منشا دپس DApps
DApps مفهوم کاملا جدیدی نیست. اولین DApp شناخته شده در پروتکل های اشتراک گذاری BitTorrent و ++ DC مشاهده شده است.
این اپلیکیشن ها، سیستم های همتا به همتای اشتراک گذاری فایل بودند. امنیت و مقاومت بالا در برابر سانسور از ویژگی های این سیستم ها بود.
اما، اولین DApp استفاده کننده از بلاک چین، خود بیت کوین بوده است. زیرا ساختار و عملیات موفقیت آمیز آن، تعریف کننده اولین DApp بلاک چین در طول تاریخ می باشد.
اما رواج گسترده و محبوبیت DApps از سال 2014 و زمان معرفی اتریوم شروع شد. اتریوم با استفاده از زبان برنامه نویسی سالیدیتی و قابلیت اجرای قراردادهای هوشمند باعث گسترش DApps شده است.
مثلث اتریوم، سالیدیتی و قراردادهای هوشمند موجب محبوبیت و گسترش روز افزون DApp های مبتنی بر بلاک چین شد.
این شرایط منجر به سازگاری بیشتر و روزافزون تکنولوژی بلاک چین برای ایجاد شکل های جدید تعامل بین کاربران و ورود به دنیای مجازی شده است.
تفاوت های بین دپس و اپلیکیشن های سنتی
DApp ها و اپلیکیشن های سنتی از عناصر مشترک زیادی برخوردار هستند. اما، تفاوت آنها بیشتر برپایه چگونگی تعامل با این عناصر می باشد.
هر دو نوع از این اپلیکیشن ها دارای ساختار سه گانه frontend (رابط کاربری)، backend (عملکرد) و لایه ذخیره اطلاعات هستند.
فرانت اند Frontend
اولین لایه در یک اپلیکیشن، Frontend است. می توان این لایه را رابط کاربری نرم افزار (ظاهر گرافیکی) در نظر گرفت. وظیفه رابط کاربری، برقراری تعامل کاربران با اپلیکیشن است.
در این مورد، هم DApps و هم اپ های سنتی، قابلیت استفاده از منابع گرافیکی بسیار زیاد برای ایجاد این بخش از نرم افزار را دارند.
این منابع شامل، رابط های کاربری نوشته شده با HTML5 و چارچوب های نرم افزاری بسیار عالی همانند Qt و GTK است.
هدف این بخش یا لایه به طور ساده فراهم کردن قابلیت تعامل، دریافت و ارسال اطلاعات به اپلیکیشن برای کاربران به حساب می آید.
بک اند Backend
دومین لایه در واقع بخش اصلی اپلیکیشن را تشکیل می دهد. در یک اپلیکیشن سنتی، این بخش برخلاف DApps متمرکز است.
در دپس ها، backend با یک قراردادهوشمند بر روی یک بلاک چین مثلا اتریوم در ارتباط است. در این روش، قرارداد هوشمند برای انجام عملیات DApps برنامه نویسی شده و آن را انجام می دهد.
قراردادهای هوشمند عمومی بوده و امکان مشاهده آنها برای همه وجود دارد. به همین دلیل DApps از سطح بالای امنیت و شفافیت برخوردار است. عملکرد DApps توسط قراردادهای هوشمند مشخص شده و کاربران از انجام آن مطمئن هستند.
علاوه بر این، backend به وسیله API (رابط کاربری برنامه نویسی اپلیکیشن) و قابلیت های بلاک چین پشتیبانی می شود.
برای مثال در اتریوم، API های مختلفی بوده که وظیفه آنها کنترل تعامل کاربران با لایه ذخیره و یا لایه های اعتبارسنجی می باشد.
ذخیره اطلاعات
در نهایت، لایه ذخیره اطلاعات وجود دارد. در اپلیکیشن سنتی، این لایه هم به شکل متمرکز وجود دارد. معمولا اطلاعات در کامپیوتر کاربر یا سرورهای کنترل شده توسط اشخاص ثالث ذخیره می شود.
به همین دلیل آسیب پذیری در این نوع از اپلیکیشن ها بیشتر است. برای مثال، امکان از بین رفتن اطلاعات ذخیره شده اپلیکیشن در صورت خرابی کامپیوتر کاربر وجود دارد.
همچنین خرابی سرورها و یا مسدود شدن آنها باعث بروز مشکل منع خدمات می شود. در تمام این موارد، کاربر قادر به استفاده درست از اپلیکیشن نبوده و حتی احتمال از دست رفتن اطلاعات وی وجود دارد.
اما در دپس ها، اطلاعات هم به گونه کاملا غیرمتمرکز ذخیره می شوند. هر کاربر DApps، تاریخچه کاملی از تمام فعالیت های انجام شده بر روی شبکه DApps را ذخیره می کند.
علاوه بر این، تعامل های انجام گرفته نیز بر روی بلاک چین و بر روی همان بلاک ها ذخیره می شوند. تمام این فرآیندها به شکل رمزنگاری و به گونه امن به منظور جلوگیری از دسترسی اشخاص ثالث غیرمعتبر انجام می شود.
به این ترتیب، در صورت خرابی کامپیوتر یا تلفن هوشمند کاربر، امکان بازیابی تمام اطلاعات وجود دارد. بازیابی تمام اطلاعات با استفاده از DApps بر روی دستگاه جدید انجام خواهد شد.
همچنین، با افزایش کاربران و استفاده بیشتر از DApps، سطح امنیت و افزونگی اطلاعات نیز افزایش پیدا می کند.
DApps ها چگونه کار می کند؟
عملکرد یک دپس بسیار شبیه عملکرد یک شبکه بلاک چین است. به این صورت که، هر کاربر DApps یک نود در داخل شبکه را به وجود می آورد. کاربران امکان مشاهده انجام درست عملیات و نیز عملیات های انجام شده بر روی این شبکه را دارند.
کانال ارتباطی مورد استفاه DApps بلاک چین است. در بلاک چین، سابقه هر عملیات انجام شده به وسیله قرارداد هوشمند کنترل کننده DApps ثبت می شود.
پذیرش یا عدم پذیرش عملیات های انجام شده به وسلیه کاربران به نوع برنامه نویسی قرارداد هوشمند بستگی دارد.
به این ترتیب، همه مشارکت کنندگان باید در چارچوب مشخص شده به وسیله قرارداد هوشمند فعالیت نمایند.
به عبارت دیگر، قرارداد هوشمند نوعی واسطه بوده که وظیفه آن، تایید درستی تعامل های صورت گرفته است.
هر بار با انجام یک عملیات جدید در DApps، اطلاعات پلتفرم در هر نود به روزرسانی می شود. به این ترتیب از ذخیره شدن اطلاعات کامل در هر یک از این نودها اطمینان حاصل می شود.
با این روش، هر کاربر به جریان عملیاتی اپلیکیشن با استفاده از منابع کامپیوتری خود کمک می کند. همچنین این ساختار باعث شده که پلتفرم همیشه برای خدمت رسانی فعال باشد.
زیرا لغو ثبت همه نودهای شبکه به طور همزمان امکان پذیر نیست. امکان رخ دادن این شرایط به دلیل حملات کامپیوتری یا دلایل دیگری مانند سانسور وجود دارد.
بنابراین پیشرفت و گسترش DApp ها ادامه دارد. زیرا راه اندازی و فعالیت آنها بر روی بلاک چین، باعث بهره مندی آنها از ویژگی هایی نظیر امنیت، حفظ حریم خصوصی و حتی ناشناسی شده است.
علاوه بر این، دسترسی به اطلاعات استفاده شده توسط DApps برای سایر اشخاص وجود ندارد. این دسترسی فقط برای فرد ایجاد کننده اطلاعات مورد نظر فراهم می باشد. بنابراین، کاربران قادر به کنترل کامل اطلاعات خود در تمام مدت هستند.
ویژگی های دپس ها در چیست؟
امنیت بالاتر و بهتر
امنیت یکی از مهم ترین و اصلی ترین ویژگی های DApps است. این امنیت به خاطر راه اندازی و فعالیت این اپلیکیشن ها بر روی بلاک چین ایجاد شده است.
در بلاک چین از روش های قدرتمند رمزنگاری برای امنیت و کنترل اطلاعات استفاده می شود. به همین دلیل، اطلاعات فقط برای به وجود آورنده آنها قابل مشاهده و دسترسی است.
سایر کاربران فقط قادر به تایید اعتبار یا عدم اعتبار آنها خواهند بود. اطلاعات ایجاد شده به وسیله کاربر، هیچ گاه در معرض مشاهده و دسترسی دیگران قرار ندارد.
علاوه بر این، تمام اطلاعات مدیریت شده و مورد استفاده اپلیکیشن در اختیار کاربر قرار دارد. DApps اطلاعات را در فضای ابری و یا در سرورهای خارجی ذخیره نمی کنند.
به همین دلیل خطرات احتمالی همانند سرقت اطلاعات خصوصی و یا فروش آنها به وسیله شرکت و در نتیجه نقض حریم خصوصی کاربر به حداقل رسیده است.
تمرکز زدایی (غیرمتمرکز سازی)
یکی دیگر از ویژگی های اصلی DApps تمرکززدایی آنها است. تمرکز زدایی به عبارت دیگر، قابلیت انجام عملیات ها بدون نیاز به وجود سرورهای مرکزی است.
برای درک بهتر این موضوع، به مثال زیر توجه کنید.
فیسبوک یکی از پرکاربردترین شبکه های اجتماعی در تمام دنیا است.
تعداد کاربران آن به بیش از 2 میلیارد می رسد. به همین دلیل، مراکز کنترل آن حجم عظیمی از اطلاعات را در برمی گیرند.
به همین خاطر، فعال نگه داشن زیرساختارهای شبکه کار بسیار دشوار و بزرگی است. این موضوع باعث وجود خطاهای زیادی در آن شده است. به همین دلیل، دسترسی به آن در مقیاس جهانی و بسیار گسترده دارای مشکلاتی است. زیرا، فیسبوک شبکه اجتماعی متمرکز است.
اما، در DApps به خاطر برخورداری از ویژگی غیرمتمرکز، چنین مشکلاتی وجود ندارد. هر کاربر DApps، تاریخچه کاملی از تمام فعالیت های انجام شده در DApps را در اختیار دارد.
در نتیجه پدیده ای همانند نسخه برداری جهانی از تمام اتفاقات انجام شده در DApps به وجود می آید. به همین خاطر و نیز به دلیل راه اندازی آن بر روی بلاک چین، با فعالیت یک کاربر هم، فعالیت شبکه بدون وجود مشکل خاصی ادامه پیدا می کند.
این موضوع باعث شده که فعالیت DApps و در نتیجه فعالیت شبکه و خدمت رسانی آنها در تمام مدت تضمین شده باشد. موضوعی که در فیسبوک امکان انجام آن وجود ندارد.
در اختیار داشتن ویژگی های بلاک چین
تعامل دپس ها بر روی بلاک چین و با استفاده از قراردادهای هوشمند آن انجام می شود. در نتیجه، هر تعامل انجام شده در DApps باعث تولید مدخل اطلاعاتی در بلاک چین می شود.
این اطلاعات به صورت رمزنگاری شده ذخیره شده و موجب افزایش امنیت و شفافیت می شوند. امکان مشاهده تمام این فرآیند برای عموم با استفاده از پیمایش بلاک در بلاک چین وجود دارد.
اما تنها تعاملات رمزنگاری شده قابل مشاهده هستند. تمام اطلاعات به صورت رمزنگاری شده و امن ذخیره شده اند.
علاوه بر این، راه اندازی و فعالیت DApps بر روی بلاک چین به معنی استفاده از مکانیسم پروتکل اجماع برای تایید هر تعامل است.
این روش مکانیسم اثبات کار (PoW) یا اثبات سهام (PoS) یا هر مکانیسم انتخاب شده دیگر به وسیله توسعه دهندگان DApps است. مکانیسم فوق به منظور فراهم کردن سطح امنیتی بلاک چین برای DApps انجام می شود.
بیشتر بخوانید : بلاک در بلاک چین چیست؟
منبع باز بودن (Open Source)
یکی دیگر از ویژگی های مهم و مشترک DApps منبع باز بودن آنها است. در واقع، در دسترس بودن کد منبع باعث ایجاد شفافیت سطح بالای اپلیکیشن شده است.
به همین دلیل، کاربران در هر زمان قادر به مشاهده امن رخدادهای اتفاق افتاده در DApps خواهند بود. در نتیجه امکان نظارت و اصلاح DApps توسط کاربران فراهم شده است.
هر کاربر برخوردار از دانش کافی قادر به مشاهده و بررسی کد منبع اپلیکیشن است. این موضوع باعث بهبود عملکرد اپلیکیشن می شود.
حتی در صورت عدم توسعه نرم افزار به وسیله به وجود آورندگان آن، ویژگی فوق باعث پیشرفت و توسعه اپلیکیشن می شود.
تمام DApp ها کدهای منبع خود شامل کدهای قراردادهای هوشمند و سایر بخش های اپلیکیشن را در اختیار عموم قرار می دهند. بنابراین، هر کاربر قادر به بررسی کد و بهبود آن یا حتی ایجاد فورک خواهد بود.
دسته بندی اپلیکیشن های غیرمتمرکز
دپس ها (DApps) را می توان به سه دسته، طبقه بندی کرد. که عبارتند از:
نوع اول
تمام DApp هایی که دارای بلاک چین اختصاصی بوده، در این دسته قرار می گیرند. به عبارت دیگر، اپلیکیشن های این دسته زیرساختارهای مخصوص خود را داشته و فعالیت آنها وابسته به بلاک چین خاصی نیست.
با در نظر گرفتن این ویژگی، بیت کوین اولین DApps دارای بلاک چین اختصاصی است.
در ادامه نرم افزارهای Bitcoin Cash, Litecoin, Ethereum, Dash, Monero را نیز می توان در این دسته قرار داد.
نوع دوم
در دسته دوم، DApp هایی قرار گرفته که عملکرد آنها وابسته به بلاک چین دیگر و قابلیت های آن است.
در نتیجه برای انجام فعالیت ها، DApp های این دسته، از توکن مخصوص خود یا توکن های بلاک چین مورد نظر استفاده می کنند. می توان از نرم افزارهای این دسته Golem را نام برد.
G یک DApp بوده که بر روی بلاک چین اتریوم فعالیت می کند. این اپلیکیشن به منظور فراهم کردن امکان اجاره منابع محاسباتی برای پردازش اطلاعات با اهداف مختلف برای کاربران ایجاد شده است.
در واقع Golem یک ابرکامپیوتر غیرمتمرکز بوده که به کاربران امکان اجاره قدرت پردازش را می دهد.
برای دستیابی به این هدف، Golem از توکن ERC-20 و GNT (توکن شبکه Golem) نوع ERC-20 استفاده می کند.
از این توکن برای در اختیار گذاشتن قدرت محاسباتی و نیز سایر فعالیت های داخل شبکه به کاربران استفاده می شود.
بیشتر بخوانید : توکن ERC-20 چیست؟
نوع سوم
DApps نوع سوم از توکن های DApps نوع دوم برای انجام عملیات های خود استفاده می کنند.
می توان از Safe Network به عنوان نمونه ای از این نوع DApps نام برد.
Safe Network برای تولید ارز دیجیتال خود یعنی Safecoin به OmniLayer وابسته بوده که اپلیکیشن غیرمتمرکز و از نوع دوم است. از این ارز دیجیتال برای انجام تمام عملیات ها در داخل شبکه Safe و DApp استفاده می شود.
محدودیت های DApps
برخی از مهم ترین محدودیت های دپس ها عبارتند از:
1. عدم استفاده از تمام قدرت سخت افزاری : دشواری بهره گیری از تمام قدرت سخت افزاری دستگاه های کاربر یکی از محدودیت های DApps است.
این موضوع مخصوصا برای DApp های راه اندازی شده بر روی مرورگرهای وب بیشتر اتفاق می افتد. این مشکل به خاطر وجود موانع متخلف و نیز سطح اجرایی بالای زبان برنامه نویسی مورد استفاده به وجود آمد است.
2. پیچیدگی زیاد اپلیکیشن : پیچیدگی زیاد DApps اغلب منجر به ایجاد آسیب پذیری شده و در نتیجه بررسی های امنیتی دشوار می شود.
این شرایط مخصوصا در برنامه نویسی قراردادهای هوشمند به گونه شدیدتر وجود دارد. زیرا، آسیب پذیری قراردادهای هوشمند منجر به آسیب پذیری تمام کاربران در یک زمان می شود.
3. وابستگی به ساختارهای بلاک چین : گسترش و پیشرفت DApps به طور کامل وابسته به تقویت و پیشرفت ساختارهای بلاک چین مورد استفاده است.
DApps شرایط برخورداری از توسعه روزافزون را دارا هستند. اما، این روند به خاطر توسعه بلاک چین کند شده و گاهی ابزارهای مورد نیاز آن موجود نبوده و یا آسیب دیده هستند.
در نتیجه، پیشرفت و بهبود DApps و بلاک چین به یکدیگر وابسته است. پیشرفت و توسعه هر دو نرم افزار برای رسیدن به اهداف بلندمدت باید در تطابق و هماهنگی با یکدیگر باشد.
4. دشواری پیاده سازی عملکردهای ضروری : پیاده سازی عملکردهای ضروری برای انجام درست عملیات ها در DApps دشوار است.
برنامه نویسی و نیازمندی های برخی از دپس بسیار ساده بوده، اما برخی از آنها از ساختار بسیار پیچیده ای برخوردار هستند. برای مثال اپلیکیشن غیرمتمرکز Golem را در نظر بگیرید.
این نرم افزار نوعی سیستم مالی غیرمتمرکز است. مشکل اصلی در این پروژه، هماهنگی پردازش اطلاعات و مرتب کردن ذخیره اطلاعات پردازش شده در داخل شبکه است.
علاوه بر این، مشکل دیگر همگام سازی زمانی انجام فرآیندهای محاسباتی برای کار مشخص و اختصاصی نودها می باشد.
تمام این مشکلات، موجب دشواری توسعه امکانات مهم Golem شده است. چالشی که توسعه دهندگان نرم افزار آن را پذیرفته اند.
نمونه هایی از اپلیکیشن های غیرمتمرکز بلاک چین
CryptoKitties
CryptoKitties یکی از اولین بازی هایی در جهان بوده که برپایه تکنولوژی بلاک چین ساخته شده است. این بازی در مورد جمع آوری گربه های مجازی منحصر به فرد است.
هر یک از این گربه ها دارای ویژگی ها و قابلیت های خاصی بوده که آنها را از سایرین متمایز می سازند. به طور دقیق تر، کمیابی و منحصر به فرد بودن آنها، باعث ارزشمندی آنها شده و در نهایت تبدیل به ارز دیجیتال بازی می شوند.
امکان خرید و فروش گربه ها و در نتیجه بدست آوردن مالکیت مجازی آنها وجود دارد. علاوه بر این، می توان برای زاد و و ولد گربه ها نیز در بازی CryptoKitties اقدام کرد.
در این روش، با متحد کردن دو گربه می توان فرزندی کاملا منحصر به فرد از آنها به وجود آورد. امکان نگه داشتن، پرورش و فروش بچه گربه در آینده برای انجام تجارت نیز وجود دارد. بازی CryptoKitties نوعی DApp دسته دوم بوده و بر روی بلاک چین اتریوم فعالیت می کند.
NASH
این نرم افزار از دسته دوم DApps بوده که بر روی بلاک چین NEO راه اندازی می شود. هدف از ایجاد نرم افزار NASH، فراهم کردن شرایط لازم برای ایجاد صرافی های بسیار سریع تر و پیچیده تر نسبت به صرافی های غیرمتمرکز موجود است.
Saturn network
Saturn network نوعی صرافی غیرمتمرکز برای مبادلات توکن ERC-20 یا ERC-223 است. این صرافی براساس تکنولوژی میان زنجیره ای فعالیت کرده و بر روی اتریوم و اتریوم کلاسیک راه اندازی می شود.
Saturn Network نوعی سیستم صرافی سریع و آسان را ارائه می کند. در این صرافی نیازی به تکمیل فرآیند KYC یا ایجاد حساب کاربری نیست.
Crazy dogs live
Crazy dogs live یک سیستم شرط بندی است. این پلتفرم با هدف فراهم کردن محیطی کاملا شفاف، امن و سرگرم کننده برای کاربران ایجاد شده است.
در این پلتفرم، یک سگ با ویژگی های شرط بندی جدید و همراه با پخش زنده مسابقه می دهد. در این بازی امکان تعامل کاربران با یکدیگر نیز وجود دارد. در نتیجه شرایطی سرگرم کننده برای لذت بردن از بازی و در عین حال بدست آوردن سود فراهم شده است.
این پلتفرم به دنبال ارائه ویژگی های جدید در آینده نزدیک است. با استفاده از این ویژگی ها، تمام اکوسیستم بازی به طور کامل بهبود یافته و توسعه می یابد.
Crazy Dogs Live نوعی DApp بوده که بر روی بلاک چین TRON راه اندازی و فعال می شود.