همانطور که در درس قبلی (همه چیز درباره قرارداد هوشمند و ماشین مجازی اتریوم (EVM)) هم گفته شد، اتریوم یک پلتفرم محاسباتی است که به شما امکان میدهد قراردادهای هوشمند را ایجاد و اجرا کنید.
قرارداد هوشمند بخشی از کد نرمافزاری از پیش برنامهریزیشده است (برنامه کامپیوتری) که بعد از رخ دادن شرایط تعیینشده، به طور خودکار اجرا میشود.
اکثر توسعهدهندگانی که قراردادهای هوشمند ایجاد میکنند در واقع این کار را به عنوان بخشی از یک اپلیکیشن غیرمتمرکز یا dApp که در حال ساخت هستند، انجام میدهند.
اما اپلیکیشنهای غیرمتمرکز یا dApps چیست؟ و چرا اهمیت دارد؟
اپلیکیشن غیرمتمرکز یا dApp چیست؟
یک اپلیکیشن غیرمتمرکز، اپلیکیشنی نرمافزاری است که به طور مستقل و به واسطه قراردادهای هوشمند کار میکند. اپلیکیشنهای غیرمتمرکز به Dapp ،dApp و dapp نیز معروف است که مخفف عبارت decentralised application است.
از آنجایی که قراردادهای هوشمند فقط یک سری برنامههای کامپیوتری هستند که طبق شرایط از پیش تعیینشده اجرا میشوند، به اپلیکیشنهای غیرمتمرکز اجازه میدهند به طور مستقل و بدون دخالت انسان کار کنند.
اپلیکیشنهای غیرمتمرکز تقریبا شبیه اپلیکیشنهای وب یا موبایل است با این تفاوت که اپلیکیشنهای غیرمتمرکز با استفاده از قراردادهای هوشمند ساخته شده و بر روی یک بلاکچین اجرا میشود.
به بیان ساده، اپلیکیشن غیرمتمرکز یک قرارداد هوشمند و یک رابط کاربری وب (UI) است.
اپلیکیشن غیرمتمرکز = فرانتاند (frontend) + بکاند (bakend) قرارداد هوشمند
به عبارت دیگر، اپلیکیشن غیرمتمرکز رابط کاربری (UI) فرانتاند که دقیقا شبیه گوشی هوشمند یا وب اپلیکیشن است را با قابلیت قراردادهای هوشمند در حال اجرا که بکاند هستند، ترکیب میکند.
منظور از فرانتاندِ یک اپلیکیشن، بخشی از اپلیکیشن است که بر روی صفحه نمایش کاربر یا رابط کاربری گرافیکی (GUI) نمایش داده میشود و بکاند اپلیکیشن آن قسمت از اپلیکیشن است که در صفحه کاربر نمایش داده نمیشود.
مزایا اپلیکیشنهای غیر متمرکز
اپلیکیشنهای غیرمتمرکز این امکان را به دو طرف میدهد تا یک معامله یا توافقنامه داشته باشند بدون آنکه به یک واسطه یا مرجع مرکز برای پیگیری نیاز داشته باشند. دو طرف میتوانند خیلی راحت به کد اعتماد کنند و مطمئن باشند که قرارداد اجرا میشود.
اپلیکیشنهای غیرمتمرکز نیز منبع باز هستند، به این معنی که کد منبع برای همه قابل مشاهده است. این امر باعث میشود که به اپلیکیشنهای غیرمتمرکز راحتتر اعتماد کنید زیرا کد منبع قابلبازرسی است و هر گونه قصد مخرب (از لحاظ نظری) قابل شناسایی است.
از آنجایی که شرکتهای فناوری کد خود را در جای امن نگه میدارند، ما واقعا نمیدانیم الگوریتم جستجوی محرمانه گوگل چگونه کار میکند یا الکسا واقعا به مکالمات ما گوش میدهد یا خیر.
با قراردادهای هوشمند و اپلیکیشنهای غیرمتمرکز میتوانیم به طور دقیق از همه چیز مطلع شویم.
اپلیکیشنهای غیرمتمرکز در برابر سانسور هم مقاوم هستند. و این به آن معناست که دولتها یا شرکتهای بزرگ به هیچ طریقی نمیتوانند محتوا یا کاربران را مسدود یا محدود کنند.
این ویژگی هم میتواند خوب باشد و هم بد، هم میتوان از این ویژگی سوءاستفاده کرد و هم حسناستفاده. به عنوان مثال، یکی از موضوعات بحثبرانگیز رسانههای اجتماعی، بحث سانسور است، پلتفرمهایی مثل فیسبوک میتوانند کاربران را به دلیل دیدگاههای سیاسیشان یا انتشار اخبار فیک محدود کنند.
اما اگر یک اپلیکیشن غیرمتمرکز برای انجام کاری برنامهریزی شده باشد، و قرارداد هوشمند اجرا شود، هیچ کس نمیتواند آن را متوقف کند یا کد را تغییر دهد.
و در آخر، یکی از مزایای بزرگ اپلیکیشنهای غیرمتمرکز این است که آفلاین کردن آنها سخت است.
اپلیکیشنهای غیرمتمرکز بر روی شبکهای از کامپیوترهای غیرمتمرکز (که بسته به بلاکچین ممکن است صدها یا هزاران باشند) در سراسر جهان اجرا میشوند.
حتی اگر افراد کمی (یا چند صد نفر) به حالت آفلاین بروند، بقیه شبکه بدون وقفه و بدون تعطیلی به اجرای بلاکچین ادامه میدهند.
همه اینها خوب است، اما توجه داشته باشید که هنوز هم اپلیکیشنهای غیرمتمرکز اشکالاتی دارد، به ویژه برای توسعهدهندگان.
معایب اپلیکیشنهای غیر متمرکز
از آنجایی که اصلاح کد و اصلاح دادههای منتشرشده در بلاکچین سختتر است، ایجاد به روزرسانیهای اپلیکیشنهای غیرمتمرکز بعد از استقرار برای توسعهدهندگان سختتر خواهد بود. یعنی رفع اشکالات در نسخههای قدیمیتر یا معرفی ویژگیهای جدید میتواند دردسرساز باشد.
همچنین مزایای اجرا بر روی شبکه اتریوم (یعنی امنیت، شفافیت، عدم تمرکز و اعتبار) هزینه بالایی دارد.
مکانیسم اجماع فعلی اتریوم (PoW) خیلی سریع نیست، به علاوه اینکه هر نود باید هر تراکنش را اجرا و ذخیره کند، که این امر باعث میشود تقاضاهای محاسباتی افزایش پیدا کند.
حتی اگر اپلیکیشنهای غیرمتمرکز کاملا آفلاین نباشند، همچنان تراکم شبکه ممکن است رخ دهد و باعث کند شدن زمان اجرا شود.
این مبادلهها سنجش اپلیکیشنهای غیرمتمرکز را سخت میکند، اما به روزرسانیهای آتی به اتریوم نوید رفع برخی از این مشکلات مثل تغییر مکانیسم اجماع اثبات سهام (PoS) را میدهد.
یک نمونه از اپلیکیشن غیرمتمرکز
برای اینکه بهتر متوجه عملکرد اپلیکیشنهای غیرمتمرکز در دنیای واقعی شوید، به عنوان نمونه نگاهی به صرافی یونی سواپ (Uniswap) بیندازیم.
Uniswap یک صرافی غیرمتمرکز است که بر روی بلاکچین اتریوم ساخته شده است.
این صرافی اپلیکیشنی ارائه میدهد که به کاربران این امکان را میدهد که به راحتی ارزهای دیجیتالشان را مبادله کنند.
رابط کاربری اپلیکیشن به این صورت است:
برخلاف صرافیهای سنتی که از دفترچههای سفارش متمرکز برای مدیریت نقدینگی و تعیین قیمتها استفاده میکنند، Uniswap DEX بر اساس فناوری AMM اجرا میشود.
AMM مخفف automated market maker به معنای بازارساز خودکار است، این کلمه فقط یک اصطلاح فانتزی برای یک قرارداد هوشمند است که به جای دفترچه سفارش، به استخر نقدینگی متکی است و از یک فرمول ریاضی برای تعیین قیمتهای خرید و فروش استفاده میکند.
در واقع، Uniswap هیچ یک از ارزهای دیجیتال را در صرافی نگه نمیدارد و به منظور ایجاد نقدینگی، طرف مقابل معاملات را در نظر نمیگیرد.
در عوض، معاملات بین شما و یک قرارداد هوشمند اتفاق میافتد. در قرارداد هوشمند یک فرمول ریاضی وجود دارد که تعیین میکند با چه قیمتی میتوانید یک ارز دیجیتال بخرید یا بفروشید.
ارزهای دیجیتال از کجا میآیند؟ به عنوان مثال، اگر بخواهم مقداری ETH را با BAT مبادله کنم، اگر AMM تراکنش را انجام دهد، BAT را از چه کسی دریافت خواهم کرد؟
اینجاست که استخر نقدینگی وارد بازی میشود. سایر کاربران ارزهای دیجیتال خود را برای تأمین نقدینگی سپردهگذاری میکنند و سهمی از کارمزد معاملات را جبران میکنند.
از آنجایی که Uniswap DEX بر روی نرمافزار اپنسورس اجرا میشود، کاربران میتوانند در صورت بروز مشکل، کد منبع را بررسی کنند.
این پروتکل عمومی و بدون نیاز به مجوز است، به عبارت دیگر همه میتوانند در صورت تمایل به خرید یا فروش ارزهای دیجیتال از اپلیکیشنهای غیرمتمرکز استفاده کنند و نیازی به ثبت حساب یا درخواست دسترسی نیست. تنها کاری که باید انجام شود این است که به کیف پول ارز دیجیتال متصل شود.