خیر، راه اندازی یک اپلیکیشن غیرمتمرکز (dapp) روی بلاک چین منجر به کسب و کار موفقی نخواهد شد. در واقع، اکثر کاربران حتی به این فکر نمیکنند که آیا برنامه بر روی بلاک چین اجرا میشود یا خیر - آنها به سادگی محصولی را انتخاب میکنند که ارزانتر، سریعتر و سادهتر باشد.
متأسفانه، حتی اگر بلاک چین ویژگی ها و مزایای منحصر به فرد خود را داشته باشد، اکثر برنامه هایی که روی آن اجرا می شوند بسیار گران تر، کندتر و کمتر از رقبای متمرکز خود هستند.
اغلب در کاغذهای سفید برنامههایی که بر روی بلاک چین ساخته شدهاند، میتوانید پاراگرافی را بیابید که میگوید: «بلاک چین گران است و نمیتواند تعداد مورد نیاز تراکنش در ثانیه را پشتیبانی کند. خوشبختانه، بسیاری از افراد باهوش در حال کار بر روی مقیاسبندی بلاک چین هستند و تا زمانی که برنامه ما راه اندازی شود، کاملاً مقیاس پذیر خواهد شد."
در یک پاراگراف ساده، یک توسعهدهنده dapp میتواند از بحث عمیقتر در مورد مسائل مقیاسپذیری و راهحلهای جایگزین برای مشکلات صرف نظر کند. این اغلب منجر به یک معماری ناکارآمد می شود که در آن قراردادهای هوشمند در حال اجرا بر روی بلاک چین به عنوان باطن و هسته برنامه عمل می کنند.
با این حال، هنوز رویکردهای آزمایش نشده برای معماری برنامه های غیرمتمرکز وجود دارد که با کاهش وابستگی به بلاک چین، مقیاس بسیار بهتری را امکان پذیر می کند. به عنوان مثال، Blockstack روی معماری کار می کند که در آن بیشتر داده ها و منطق برنامه در خارج از زنجیره ذخیره می شود.
بیایید ابتدا به یک رویکرد سنتی تر نگاه کنیم، که از بلاک چین به عنوان یک واسطه مستقیم بین کاربران برنامه استفاده می کند و مقیاس خاصی ندارد.
رویکرد شماره 1: بلاک چین به عنوان یک Backend
برای روشن تر شدن موضوع، اجازه دهید صنعت هتلداری را به عنوان مثال در نظر بگیریم. این یک صنعت بزرگ است که در آن واسطه هایی مانند Booking.com،
در هر شرایطی که بخواهیم چنین واسطهای را با استفاده از این رویکرد شکست دهیم، سعی میکنیم منطق تجاری آن را با استفاده از قراردادهای هوشمند روی بلاکچینی مانند اتریوم تکرار کنیم.
قراردادهای هوشمند منبع باز در حال اجرا بر روی "کامپیوتر جهانی" می توانند بازرگانان را بدون شخص ثالث در بین آنها به مصرف کنندگان متصل کنند و در نهایت هزینه ها و کمیسیون های دریافت شده توسط واسطه را کاهش دهند.
همانطور که در تصویر زیر نشان داده شده است، هتل ها از یک برنامه غیرمتمرکز برای ارسال اطلاعات مربوط به اتاق ها، در دسترس بودن و قیمت آنها در روزهای هفته یا آخر هفته و شاید حتی توضیحی از اتاق ها با سایر اطلاعات مرتبط استفاده می کنند.
هرکسی که می خواهد اتاق رزرو کند از این اپلیکیشن برای جستجوی هتل ها و اتاق های میزبانی شده در بلاک چین استفاده می کند. هنگامی که کاربر اتاقی را انتخاب کرد، با ارسال مقدار مورد نیاز ژتون به عنوان ودیعه به هتل، رزرو انجام می شود. و در پاسخ، قرارداد هوشمند اطلاعات موجود در بلاک چین را به روز می کند که شماره دیگر در دسترس نیست.
مشکل مقیاس پذیری در این رویکرد دو طرف دارد. اول، حداکثر تعداد تراکنش در هر ثانیه. ثانیاً، میزان داده ای که می تواند در بلاک چین ذخیره شود.
بیایید چند محاسبات تقریبی انجام دهیم. Booking.com می گوید که آنها تقریباً 2 میلیون هتل در آنها ثبت کرده اند. فرض کنید یک هتل متوسط 10 اتاق دارد و هر یک فقط 20 بار در سال رزرو می شود - که به طور متوسط 13 رزرو در هر ثانیه به ما می دهد.
برای در نظر گرفتن این عدد، شایان ذکر است که اتریوم می تواند تقریباً 15 تراکنش در ثانیه را پردازش کند.
در عین حال، شایان ذکر است که برنامه ما شامل تراکنش های هتل ها نیز می شود - برای بارگیری و به روز رسانی مداوم اطلاعات در مورد اتاق های آنها. هتلها بهطور مکرر، گاهی حتی روزانه، قیمت اتاقها را بهروزرسانی میکنند، و هر تغییر قیمت یا توضیح نیاز به یک تراکنش در بلاک چین دارد.
در اینجا مشکلات اندازه نیز وجود دارد - وزن بلاک چین اتریوم اخیراً از مرز 2 ترابایت عبور کرده است. اگر برنامه های کاربردی با این رویکرد واقعاً محبوب شوند، شبکه اتریوم به شدت ناپایدار می شود.
چنین سیستم مبتنی بر بلاک چین میتواند افراد خارجی را به دلیل بیطرفی و عدم تمرکز آن که از مزایای اصلی فناوری بلاک چین است، حذف کند. اما بلاک چین ویژگی های دیگری نیز دارد - توزیع می شود و بازنویسی نمی شود، اینها ویژگی های عالی هستند، اما شما باید برای آنها در سرعت و کمیسیون تراکنش ها بپردازید.
بنابراین، توسعه دهندگان dapp باید به دقت ارزیابی کنند که آیا هر ویژگی با استفاده از بلاکچین واقعاً به توزیع و غیرقابل نوشتن نیاز دارد یا خیر.
به عنوان مثال: فایده توزیع داده های هر هتل در بین صدها دستگاه در سراسر جهان و ذخیره آن به طور دائم در آنجا چیست؟ آیا واقعاً مهم است که داده های تاریخی در مورد نرخ اتاق و در دسترس بودن همیشه در بلاک چین گنجانده شود؟ احتمالا نه.
اگر شروع به پرسیدن سوالاتی از این قبیل کنیم، متوجه می شویم که لزوماً به همه ویژگی های گران قیمت بلاک چین برای همه عملکردهای خود نیاز نداریم. بنابراین، جایگزین چیست؟
رویکرد شماره 2: معماری الهام گرفته از Blockstack
اگر چه تاکید اصلی
سمت چپ: اولین رویکرد، که در آن کاربران از طریق بلاک چین تعامل دارند. راست: کاربران به طور مستقیم با یکدیگر تعامل دارند و بلاک چین فقط برای شناسایی و موارد مشابه استفاده می شود.
بیایید به مثال رزرو هتل برگردیم. ما یک پروتکل بی طرفانه، مستقل و باز برای ارتباط مهمانان با هتل ها می خواهیم. به عبارت دیگر، ما می خواهیم واسطه متمرکز را حذف کنیم. به عنوان مثال، ما نیازی به ذخیره دائمی قیمت اتاق ها در یک دفتر کل توزیع شده مشترک نداریم.
چرا ما فقط به مهمانان و هتلها اجازه نمیدهیم بهجای استفاده از بلاک چین، مستقیماً با هم تعامل داشته باشند. هتلها میتوانند قیمتها، در دسترس بودن اتاق و هر اطلاعات دیگری را در جایی ذخیره کنند که در دسترس همه باشد - برای مثال IPFS، Amazon S3 یا حتی سرور محلی خودشان. این دقیقا همان چیزی است که سیستم ذخیره سازی غیرمتمرکز Blockstack نامیده است
برای ایجاد اعتماد، تمام داده های هتل به صورت رمزنگاری توسط خود هتل امضا می شود. صرف نظر از جایی که این داده ها ذخیره می شوند، یکپارچگی آن را می توان با استفاده از کلیدهای عمومی مرتبط با هویت آن هتل که در زنجیره بلوکی ذخیره شده است تأیید کرد.
در مورد Blockstack، فقط اطلاعات هویتی شما در بلاک چین ذخیره می شود. اطلاعات در مورد نحوه به دست آوردن داده های هر کاربر در فایل های منطقه ذخیره می شود و از طریق یک شبکه همتا به همتا با استفاده از گره ها توزیع می شود. و بار دیگر، لازم نیست به دادههایی که گرهها میدهند اعتماد کنید، زیرا میتوانید با مقایسه آنها با هشهایی که در بلاک چین و سایر کاربران ذخیره میشوند، صحت آن را تأیید کنید.
در یک نسخه ساده شده از سیستم، مهمانان از شبکه همتا به همتا Blockstack برای جستجوی هتل ها و کسب اطلاعات در مورد اتاق های خود استفاده می کنند. و صحت و یکپارچگی تمام داده هایی که دریافت می کنید را می توان با استفاده از کلیدهای عمومی و هش های ذخیره شده در
این معماری پیچیده تر از رویکرد اول است و نیاز به زیرساخت جامع تری دارد. در واقع، این دقیقا همان جایی است که Blockstack وارد می شود و تمام اجزای لازم برای ایجاد چنین سیستم غیرمتمرکزی را فراهم می کند.
با این معماری، ما فقط داده هایی را روی بلاک چین ذخیره می کنیم که واقعاً نیاز به توزیع دارند و بازنویسی نمی شوند. در مورد Blockstack، شما فقط به تراکنش های روی بلاک چین نیاز دارید تا ثبت نام کنید و مشخص کنید که داده های شما باید در کجا ذخیره شوند. اگر میخواهید هر یک از این اطلاعات را تغییر دهید، ممکن است نیاز به انجام معاملات بیشتری داشته باشید، اما این یک رویداد تکراری نیست.
علاوه بر این، منطق برنامه، برخلاف رویکرد اول، در سمت مشتری اجرا می شود و نه در قراردادهای هوشمند. این به توسعه دهنده اجازه می دهد تا این منطق را بدون به روز رسانی قراردادهای هوشمند پرهزینه یا حتی گاهی غیرممکن تغییر دهد. و با نگه داشتن داده های برنامه و منطق خارج از زنجیره، برنامه های غیرمتمرکز می توانند به سطوح عملکرد و مقیاس پذیری سیستم های متمرکز سنتی دست یابند.
نتیجه
برنامههایی که روی Blockstack اجرا میشوند میتوانند بسیار بهتر از برنامههای بلاک چین معمولی مقیاس شوند، اما این رویکرد جوانتر با مشکلات و سوالات بیپاسخ خود است.
به عنوان مثال، اگر یک برنامه غیرمتمرکز بر روی قراردادهای هوشمند اجرا نشود، این امر نیاز به توکن های کاربردی را کاهش می دهد. با توجه به اینکه ICOها منبع اصلی بودجه برای برنامه های غیرمتمرکز (از جمله خود Blockstack) بوده اند، می تواند برای کسب و کارها مشکلاتی ایجاد کند.
در اینجا مشکلات فنی نیز وجود دارد. به عنوان مثال، اجرای یک تابع رزرو هتل در یک قرارداد هوشمند نسبتا آسان است، جایی که در یک عملیات اتمی، رزرو اتاق در ازای توکن انجام می شود. و خیلی واضح نیست که رزرو در یک برنامه Blockstack بدون قراردادهای هوشمند چگونه کار می کند.
برنامه هایی که بازارهای جهانی را با پتانسیل میلیون ها کاربر هدف قرار می دهند، برای موفقیت باید مقیاس بسیار خوبی داشته باشند. این یک اشتباه است که برای دستیابی به این سطح از مقیاس پذیری در آینده نزدیک، صرفاً به بلاک چین ها اعتماد کنیم. برای اینکه بتوانند با بازیگران بزرگ بازار متمرکز مانند Booking.com رقابت کنند، توسعه دهندگان برنامه های غیرمتمرکز باید رویکردهای جایگزینی را برای طراحی برنامه های خود در نظر بگیرند، مانند روش ارائه شده توسط Blockstack.
منبع: www.habr.com