پایگاه خبری راه پرداخت دارای مجوز به شماره ۷۴۵۷۲ از وزارت فرهنگ و ارشاد اسلامی و بخشی از «شبکه عصر تراکنش» است. راه پرداخت فعالیت خود را از دوم اردیبهشتماه ۱۳۹۰ شروع کرده و اکنون پرمخاطبترین رسانه ایران در زمینه فناوریهای مالی، بانکداری و پرداخت و استارتآپهای فینتک است.
نگاهی به برنامههای کاربردی غیرمتمرکز
مسعود خرقانی؛ معاون فناوری اطلاعات شرکت مهندسی صنایع یاس ارغوانی / برنامههای کاربردی غیرمتمرکز (DApps یا Decentralized Applications) برنامههایی هستند که بهجای یک کامپیوتر تکی بر روی یک شبکه P2P از رایانهها اجرا میشوند. این برنامهها از زمان ظهور شبکههای P2P به وجود آمدهاند. این اپلیکیشن ها نوعی برنامه نرمافزاری طراحیشده برای اجرا در بستر اینترنت میباشند، بهنحویکه کنترل آنها توسط یک موجودیت واحد انجام نمیشود.
از طرف دیگر خیلیها بر این عقیده هستند که برنامههای کاربردی غیرمتمرکز (DApps) که امروزه در سراسر جهان موردبحث قرارگرفته است، گونهای جدید از برنامههای کاربردی است، و از ویژگیهای این نوع برنامهها این است که متعلق به هیچکس نیستند، قابل ازکارافتادن (خاموشی وتوقف کامل) نیستند و امکان این رادارند که فاقد زمان عدم ارائه سرویس (وقفه موقتی) باشند.
- برنامههای کاربردی غیرمتمرکز لزوماً نیازمند اجرا بر روی شبکه زنجیره بلاکی (Blockchain) نیستند. بهعنوانمثال: BitTorrent BitMessage ، Tor، … همگی برنامههای غیرمتمرکز مرسومی هستند که در شبکه P2P اجرا میشوند که زنجیره بلاکی (نوع خاصی از شبکه P2P) نیست.
- در مقایسه با قراردادهای هوشمند ساده، مشابه چیزی که در Bitcoin کلاسیک دیده میشود و برای ارسال پول ازیک فردبهفرد دیگر است، برنامههای کاربردی غیرمتمرکز تعداد نامحدود شرکتکنندگان در هر طرف رادارند.
نکته: تعاریف فوق یک دیدگاه جامع و غیرقابل تغییر نیست و دیدگاههای مختلفی در مورد این موضوع وجود دارد.
تفاوت بین برنامههای کاربردی غیرمتمرکز و قراردادهای هوشمند
برنامههای کاربردی غیرمتمرکز بهمثابه وبسایتی مبتنی بر زنجیره بلاکی هستند، درجایی که قرارداد هوشمند آن چیزی است که اجازه میدهد تا آن را به زنجیره بلاکی وصل کنید. برای درک سادهتر این موضوع خوب است نگاهی به چگونگی کار وبسایتهای مرسوم داشته باشیم.
- اپلیکیشنهای مرسوم وب، از HTML، CSS و جاوا اسکریپت برای نمایش و اجرای یک صفحه استفاده میکنند و همچنین برای دستیابی به جزئیاتی که در پایگاه داده وجود دارد نیاز است که ازیک API استفاده شود. بهاینترتیب هنگامیکه شما مثلاً به صفحه فیسبوک وارد میشوید، این صفحه برای واکشی اطلاعات شخصی شما و نمایش آنها در صفحه یک API را فراخوانی میکند.
- در وبسایتهای معمولی: Front End → API → Database
- برنامههای کاربردی غیرمتمرکز شبیه برنامههای وب معمولی هستند و از همان تکنولوژی برای نمایش و اجرای صفحه پیش رو استفاده میکنند. مهمترین تفاوت این است که بهجای API جهت اتصال به پایگاه داده، از یک قرارداد هوشمند جهت اتصال با یک زنجیره بلوکی (Blockchain) استفاده میشود.
- در برنامههای کاربردی غیرمتمرکز مبتنی برزنجیره بلاکی: Front End → Smart Contract → Blockchain
در مقایسه با برنامههای کاربردی متمرکز مرسوم، که برنامه لایه پشت صحنه (Backend) در سرورهای متمرکز اجرا میشود، برنامههای کاربردی غیرمتمرکز کد لایه پشت صحنه (Backend) خود را در یک شبکه متمرکز P2P اجرا میکنند. درواقع برنامههای کاربردی غیرمتمرکز بهصورت تمام و کمال شامل لایه پشت صحنه (Backend) و لایه جلویی (Frontend) بهصورت یک بسته کامل هستند. قرارداد هوشمند تنها بخشی از یک برنامه کاربردی غیرمتمرکز است.
از سویی دیگر، قرارداد هوشمند فقط شامل بخش پشت صحنه و اغلب تنها بخش کوچکی از تمامی یک برنامه کاربردی غیرمتمرکز است. این بدان معنی است که اگر بخواهیم یک برنامه کاربردی غیرمتمرکز که از سیستم قرارداد هوشمند استفاده میکند ایجاد کنیم، باید چندین قرارداد هوشمند را ترکیب کنیم و با سایر سیستمهایی که برای بخش Frontend وجود دارد، متصل نماییم.
سورس برنامه جلوی صحنه و رابط کاربری، اپلیکیشنهای غیرمتمرکز را میتوان با زبانهای مختلفی (درست مثل اپلیکیشنهای دیگر) نوشت که میتواند بخش پشت صحنه آنرا فراخوانی کند. علاوه بر این، برای میزبانی بخش Frontend میتوان از فضاهای غیرمتمرکز مانند Swarm یا IPFS استفاده کرد.
برنامههای کاربردی غیرمتمرکز مبتنی بر زنجیره بلاکی
برای اینکه یک برنامه کاربردی بتواند در زمره برنامههای کاربردی غیرمتمرکز درزمینه زنجیره بلاکی قرار بگیرد، باید دارای معیارهای زیر باشد:
- برنامه باید بهطور کامل منبع باز باشد
- دادهها و سوابق عملیات برنامه باید بهصورت رمزنگاری و بهصورت غیرمتمرکز/ توزیعشده ذخیره شوند
- برنامه باید از توکن رمزنگاری/ داراییهای دیجیتال برای مصارف داخلی خود استفاده کند
- برنامه باید توکن ها را تولید کند و دارای مکانیسم مبتنی بر یک الگوریتم/ پروتکل استاندارد رمزنگاری جهت اجماع داخلی باشد
طبقهبندی برنامههای کاربردی غیرمتمرکز
بر اساس اینکه برنامه کاربردی غیرمتمرکز از کدامیک از مدلهای زنجیره بلاکی استفاده میکند، میتوان این برنامهها را در سه دسته طبقهبندی نمود:
نوع اول؛ این نوع از برنامههای غیرمتمرکز خودشان دارای یک زنجیره بلاکی هستند (مانند بیت کوین).
سایر رمزینه ارزها (مانند: Litecoin, Dogecoin, Peercoin, Feathercoin, Zetacoin و …) نیز در این رده قرار میگیرند.
نوع دوم؛ این نوع از برنامههای غیرمتمرکز از زنجیره بلاکی برنامههای نوع اول، استفاده میکنند.
برنامههای غیرمتمرکز نوع دوم، پروتکلها میباشند این نوع برنامهها دارای توکن هایی هستند که برای عملکرد آنها ضروری است.
یکی از نمونههای این نوع برنامههای کاربردی غیرمتمرکز، پروتکل Omni است.
نوع سوم؛ این نوع از برنامههای غیرمتمرکز از پروتکلهای برنامههای نوع دوم، استفاده میکنند.
بهعنوانمثال، شبکه SAFE از پروتکل Omni برای صدور SafeCoins استفاده میکند که از آن برای ذخیرهسازی فایلهای توزیعشده استفاده میشود.
بر اساس این طبقهبندی، میتوان بسیاری از پروژههای رمزنگاری حال حاضر را تحت عنوان یکی از این سه گروه دستهبندی کرد.
معروفترین پروژههای DApps
در حال حاضر Bitcoin و Ethereum دوتا از بزرگترین پلتفرمهای زنجیره بلاکی جهان هستند که برنامههای کاربردی غیرمتمرکز متعددی روی این زنجیرهها ساخته میشوند.
از سوی دیگر، برخی از توسعهدهندگان برنامههای کاربردی غیرمتمرکز ایجاد زنجیره بلاکی برای خودشان را برمیگزینند.
لیستی از برخی برنامههای کاربردی غیرمتمرکز و طبقهبندی نوع آنها در جدول زیر مشاهده میشود:
برنامه کاربردی در عمل | شرح | طبقهبندی (نوع) | توکن مورداستفاده | زنجیره بلاکی |
The SAFE Network | یک شبکه ارتباطی و ذخیرهسازی دادهها بهصورت غیرمتمرکز | نوع 3 | SafeCoin (SFE) | Bitcoin’s Blockchain |
Augur | یک پلت فرم پیشبینی بازار کاملاً منبع باز و غیرمتمرکز | نوع 2 | Augur (REP) | Ethereum’s Blockchain |
Factom | یک سیستم نگهداری سوابق غیرمتمرکز و غیرقابل تغییر | نوع 1 | Factom (FCT) | Private Blockchain |
Golem | یک برنامه غیرمتمرکز برای ایجاد اولین بازار جهانی درزمینه استفاده از ظرفیت و توان بلااستفاده کامپیوترها | نوع 2 | Golem (GNT) | Ethereum’s Blockchain |
Siacoin | یک ابر خصوصی، کاملاً منبع باز و غیرمتمرکز | نوع 1 | Siacoin (SC) | Private Blockchain |
Storj | یک پروتکل P2P، غیرمتمرکز برای ارائه فضای اختصاصی ذخیرهسازی ابری بهصورت کاملاً امن و رمزنگاریشده | نوع 2 | Storjcoin X (SJCX) | Ethereum’s Blockchain |
Counterparty | یک پلت فرم مالی غیرمتمرکز برای ایجاد برنامههای کاربردی مالی بهصورت P2P | نوع 2 | Counterparty (XCP) | Bitcoin’s Blockchain |
چگونگی عملکرد برنامههای کاربردی غیرمتمرکز
همانطور که بیان گردید، یک برنامه کاربردی غیرمتمرکز، پلتفرم نرمافزاری منبع بازی است که با استفاده از بلوکهای غیرمتمرکز پیادهسازی میشود و سوخت (عامل محرکه) آن استفاده از توکن هایی است که با استفاده از یک پروتکل / الگوریتم استاندارد رمزنگاری، تولیدشده است.
درواقع منبع باز بودن زمینهساز غیرمتمرکز بودن برنامه را ایجاد میکند. بهطوریکه همه افراد میتوانند به سورس برنامه دسترسی داشته باشند و به بهبود آن کمک کنند. همچنین روند افزایش مقیاسپذیری محصول را ازلحاظ کیفیت و کمیت افزایش میدهد.
غیرمتمرکز سازی برنامه کاربردی با استفاده از زنجیره بلاکی گام بعدی است. خدمت این زنجیره بلاکی این است که بهعنوان یک دفتر عمومی و دائمی ثبتاسناد/ معاملات، باقابلیت مراجعه افراد مختلف در هر زمان که بخواهند، عمل میکند.
و درنهایت برای اضافه کردن رکوردها / معاملات به چنین دفتر کلی، از توکن هایی که قبلاً به نحوی بهدستآمده است یا با بهکارگیری الگوریتمها/ پروتکلهای مختلفی استحصال میگردند، استفاده میشود.
محبوبترین پروتکلهایی که مورداستفاده قرار میگیرند، در حال حاضر Proof-of-work (که در بیت کوین استفادهشده) و Proof-of-Stake (که در Dash استفادهشده) میباشند. این پروتکلها جهت رسیدن به اجماع یا توافق بین همه کاربران یک برنامه کاربردی غیرمتمرکز مشخص مورداستفاده قرار میگیرند.
آینده برنامههای کاربردی غیرمتمرکز
تجربهای که تا به امروز از برنامههای کاربردی غیرمتمرکز بهدستآمده است مانند این است که یک نگاه زیرچشمی و اجمالی به یک دنیای غیرمتمرکز داریم که بهسرعت در حال تکامل و چرخش است.
برخی از صاحبنظران این حوزه معتقدند که:
برنامههای کاربردی غیرمتمرکز به دلیل ساختار انگیزشی بالای آنها، انعطافپذیری، شفافیت، انعطافپذیری و طبیعت توزیعشده، بهزودی از بزرگترین شرکتهای نرمافزاری درزمینهٔ ابزار، جایگاه نزد کاربران و ارزیابی شبکهای پیشی خواهند گرفت.