اپلیکیشن های غیر متمرکز(dapp) برنامه هایی هستند که بر روی یک شبکه همتا به همتا از کامپیوترها اجرا می شوند. dapp از زمان ظهور شبکه های همتا به همتا وجود داشته اند. آنها نوعی برنامه های نرم افزاری هستند برای قرار گرفتن بر روی اینترنت و به گونه ای طراحی شده اند که توسط هیچ نهاد یا واحد مرکزی کنترل نمی شوند.
اپلیکیشن های غیر متمرکز لزوما نیاز نیست که بر روی شبکه بلاک چین اجرا شوند. BitTorrent، Popcorn Time، BitMessage و Tor همه اپلیکیشن های غیر متمرکز هستند که در شبکه همتا به همتا اجرا می شوند، اما بر روی بلاک چین نیستند.
در مقایسه با بیت کوین که پول از A به B منتقل می شود، در اپلیکیشن های غیر متمرکز تعداد نامحدودی شرکت کننده در بازار وجود دارد.
البته باید گفت که یک تعریف مشخص برای اپلیکیشن های غیر متمرکز نیست و دیدگاه های مختلفی در مورد آن وجود دارد.
تفاوت بین dapp و قراردادهای هوشمند چیست؟
dapp یا اپلیکیشن غیر متمرکز یک وبسایت فعال بر روی بلاک چین است که در آن قرارداد هوشمند همان چیزی است که اجازه اتصال آن به بلاک چین را می دهد. ساده ترین راه برای درک این موضوع فهمیدن چگونگی کار وبسایت های سنتی یا معمولی و مقایسه آنها با اپلیکیشن های غیر متمرکز است.
- در اپلیکیشن وبسایت های معمولی و سنتی از CSS، HTML و جاوا اسکریپت برای رندر کردن و ارائه یک صفحه استفاده می شود. این وبسایت ها همچنین نیاز دارند تا جزئیات را از یک پایگاه داده با استفاده از یک رابط برنامه نویسی اپلیکیشن یا رابط های نرم افزاری(API) دریافت کند. به طور مثال هنگامی که وارد فیس بوک می شوید، صفحه با یک API برای دریافت اطلاعات شخصی شما تماس می گیرد و آنها را در صفحه شما نمایش می دهد. در وبسایت های سنتی:
Front End → API → Database
- اپلیکیشن های غیر متمرکز شبیه یک اپلیکیشن وبسایت معمولی است. برای صفحه ای که نمایش داده می شود(front end) از همان فناوری برای رندر کردن صفحه استفاده می شود. اما یکی از تفاوت های اصلی این است که به جای استفاده از API برای اتصال به یک دیتابیس، از یک قرارداد هوشمند برای اتصال به بلاک چین استفاده می شود. در اپلیکیشن غیر متمرکز:
Front End → Smart Contract → Blockchain
همانطور که مشخص است، برخلاف اپلیکیشن های سنتی و متمرکز که کدهای پشتیبانی(backend) در سرورهای متمرکز اجرا می شود، کدهای پشتیبانی در اپلیکیشن غیر متمرکز در یک شبکه غیرمتمرکز همتا به همتا اجرا می شود. اپلیکیشن های غیر متمرکز شامل یک بسته کلی از backend تا frontend را شامل می شود. قرارداد هوشمند تنها بخشی از اپلیکیشن غیر متمرکز است.
Frontend: کدهای صفحه ای است که می بینید.
Backend: منطق یا کدهای برنامه نویسی است برای اجرای برنامه که دیده نمی شود.
از سوی دیگر یک قرارداد هوشمند شامل تنها بخش Backend است که اغلب بخش کوچکی از کل اپلیکیشن غیر متمرکز یا dapp را تشکیل می دهد. بنابراین اگر قصد داشته باشید یک اپلیکیشن غیر متمرکز بر روی سیستم قرارداد هوشمند بسازید، باید چندین قرارداد هوشمند را ترکیب کرده و از سیستم شخص ثالث برای Frontend استفاده کنید.
اپلیکیشن غیر متمرکز می تواند کد Frontend و رابط کاربری که با هر زبانی نوشته شده باشد(درست مثل اپلیکیشن معمولی) و برای ایجاد ارتباط با Backend است را داشته باشد.
اپلیکیشن غیر متمرکز بلاک چین
اپلیکیشن غیر متمرکز که بر روی بلاک چین قرار دارد باید معیارهای زیر را داشته باشد:
- اپلیکیشن باید کاملا متن باز باشد
اپلیکیشن باید به صورت خودکار عمل کند و هیچ نهاد متمرکزی کنترل بخش اعظم توکن های آن را نداشته باشد. این اپلیکیشن ممکن است در واکنش به پیشرفت یا بروزرسانی های پیشنهادی و بازخورد بازار، پروتکل خود را ارتقاء دهد. اما اجماع کاربران باید تمام تغییرات را تصویب کنند. - داده های اپلیکیشن و عملیات ثبت شده باید به صورت رمزنگاری ذخیره شود:
باید اطلاعات به صورت رمزنگاری در یک بلاک چین عمومی غیرمتمرکز ذخیره شوند. این کار برای جلوگیری از نفوذ یک قدرت متمرکز است. - اپلیکیشن باید از یک توکن رمزنگاری استفاده کند:
بیت کوین یا یک توکن بومی در سیستم، که برای دسترسی به اپلیکیشن و نیز به عنوان پاداش برای مشارکت کنندگان(استخراج کنندگان) در سیستم است، لازم است در نظر گرفته شود. - اپلیکیشن باید توکن تولید کند:
این امر با توجه به نوع استاندارد الگوریتم رمزنگاری صورت می گیرد که به عنوان اثبات ارزش عمل می کند و به این ترتیب نودها در اپلیکیشن مشارکت می کنند(به عنوان مثال بیت کوین از الگوریتم اثبات کار استفاده می کند).
فرایند ایجاد و توسعه dapp
ارائه وایت پیپر و نمونه اولیه
در یک وایت پیپر در مورد یک اپلیکیشن غیر متمرکز توضیح داده می شود و ویژگی های آن ذکر خواهد شد. این وایت پیپر در مورد ایده ایجاد و توسعه اپلیکیشن توضیح می دهد و مستلزم ارائه یک نمونه اولیه است.
فروش توکن:
برگزاری فروش اولیه توکن ها
ICO یا عرضه اولیه سکه:
سهام اپلیکیشن منتشر می شود.
پیاده سازی و راه اندازی:
بودجه به دست آمده در ساخت اپلیکیشن غیر متمرکز و گسترش آن سرمایه گذاری می شود.
مجوزهای اپلیکیشن غیر متمرکز
مجوزهای متن باز اجازه می دهد که اپلیکیشن بدون نیاز به مجوزهای مربوط به ثبت اختراع یا حق کپی رایت وارد دنیای فناوری شود. همچنین با توجه به متن باز بودن کامل اپلیکیشن های غیرمتمرکز، آنها می توانند مانند مدل نرم افزارهای متن باز عمل کنند. برای مثال بیت کوین از مجوز نرم افزار متن باز MIT استفاده می کند.
مثال: اپلیکیشن غیرمتمرکز اتریوم
اتریوم یک پروتکل برای ساخت اپلیکیشن های غیر متمرکز ایجاد کرده است. اتریوم یک لایه بنیادین برای توسعه دهندگان ساخته: یک بلاک چین که کاملا بر اساس زبان برنامه نویسی تورینگ ایجاد شده است و اجازه می دهد هر کسی بتواند قرارداد هوشمند و اپلیکیشن غیر متمرکز خود را بنویسد. همچنین آنها می توانند قوانین خود را برای مالکیت، فرمت یا شکل تراکنش ها و حالت انتقال تراکنش ها قرار دهند. به طور کلی سه نوع اپلیکیشن بر روی اتریوم وجود دارد:
- اپلیکیشن های مالی: با استفاده از پرداخت پول که راهکاری است قدرتمند تا کاربران بتوانند قراردادهای خود را ثبت و مدیریت کنند.
- اپلیکیشن های نیمه مالی: در اینجا نیز پول درگیر است. اما بخشی از آنچه که در حال انجام است غیر مالی است.
- اپلیکیشن های دولتی: مانند اپلیکیشن های رای گیری که به هیچ عنوان مالی نیستند.