آکادمی مزدکس
پلتفرم مزدکس
/

مقیاس پذیری در بلاکچین + راهکارهایی برای بهبود آن

احتمالا این عبارت برایتان سوال است که معنای مقیاس‌پذیری در بلاکچین چیست؟ اصطلاحی که درباره بلاکچین بسیار شنیده می‌شود. از مسئله مقیاس پذیری (Scalability) همیشه به‌عنوان پاشنه آشیل بلاکچین یاد می‌شده تا جایی که عده‌ای آن را بزرگ‌ترین مانع پیش روی این فناوری برای دستیابی به پذیرشی فراگیر دانسته‌اند. اما آیا واقعا این چنین است؟ اگر روزی رمزارزها بتوانند در جهان به صورت گسترده پذیرفته شوند و صدها میلیون کاربر برای خود دست و پا کنند، بلاکچین می‌تواند از پس پردازش میلیون‌ها تراکنش بربیاید؟

آیا بلاکچین قادر است رویای دنیای نامتمرکز عاری از حاکمیت مرکزی را محقق کند؟ یا آنکه فاقد ظرفیت فنی لازم برای دستیابی به این آرزوی دیرینه است؟ این پرسش بسیار مهمی است. اگرچه در حال حاضر، پاسخ آن منفی است؛ اما بلاکچین روز به روز در حال پیشرفت است و شاید در آینده‌ای نزدیک بتواند راه را برای میزبانی از صدها میلیون کاربر هموار کند.

در این مقاله از آکادمی مزدکس می‌خواهیم ابعاد مختلف مسئله مقیاس‌پذیری را واکاوی کنیم، از چیستی و چرایی آن در حوزه بلاکچین بگوییم و در نهایت ببینیم که چه راهکارهایی برای بهبود آن وجود دارد.

مقیاس‌پذیری به چه معناست؟

مقیاس‌پذیری به معنای عام کلمه، توصیف‌گر توانایی یک سامانه برای پاسخگویی به تقاضای فزاینده کاربران است. در حوزه رایانش و سخت‌افزار، می‌توان با ارتقای اجزای دستگاه، ظرفیت و در نتیجه مقیاس پذیری آن را برای انجام وظایف دشوارتر افزایش داد. در بلاکچین اما وقتی حرف از مقیاس‌پذیری به میان می‌آید، بیش از هر چیز، افزایش ظرفیت شبکه برای پردازش تراکنش‌های بیشتر، مد نظر است.

پروتکل‌هایی همچون بیت‌کوین به‌رغم بهره‌مندی از مزیت‌های بسیار با چالش‌های متعددی نیز دست به گریبان هستند که مقیاس‌پذیری، یکی از آن‌ها است. اگر نرم‌افزار بیت‌کوین در بستر یک پایگاه داده متمرکز، اجرا می‌شد، آنگاه افزایش ظرفیت و توان عملیاتی آن کار دشواری نبود؛ اما ساختار و ماهیت نامتمرکز بیت‌کوین به گونه‌ای است که افزایش توان آن برای پردازش تراکنش‌های بیشتر، بسیار دشوارتر است؛ زیرا تمامی اعضای شبکه بیت‌کوین برای راستی‌آزمایی تراکنش‌ها باید دست‌کم یک رونوشت از بلاکچین آن را در اختیار داشته باشند و به‌طور همزمان و پیوسته آن را بروزرسانی کنند.

مفهوم مقیاس‌پذیری در بلاکچین | Scalability

یک بلاکچین در بهترین حالت می‌تواند از سه مولفه سرعت، امنیت و تمرکززدایی، دارای دو عنوان باشد و به ناچار باید یکی را فدا کند. تا به حال هیچ بلاکچینی پا به عرصه نگذاشته که توانسته باشد به‌طور همزمان، سریع، امن و غیرمتمرکز باشد. با این حال، توانسته‌ایم تا اندازه‌ای به ساخت چنین بلاکچین ایده‌آلی نزدیک شویم.

بنابراین اگر بخواهیم به‌طور خلاصه، یک بلاکچین ایده‌آل را توصیف کنیم، باید بگوییم که این بلاکچین باید:

● سریع و مقیاس‌پذیر باشد و بتواند از پس پردازش هزاران تراکنش در ثانیه بربیاید.

● امن و تا جای ممکن، عاری از هرگونه باگ و اشکال نرم‌افزاری باشد. همچنین بتواند در برابر انواع تهاجم سایبری از حمله ۵۱ درصد گرفته تا حملات منع سرویس (Denial-of-Service) مقاومت کند.

● غیرمتمرکز باشد. یک بلاکچین ایده‌آل باید غیرمتمرکز باشد تا هیچ فرد یا گروهی نتوانند با دخالت بی‌جا زمام کنترل آن را در اختیار بگیرند و بنا بر ترجیحات محدود خود تراکنش‌ها را مسدود یا سانسور کنند.

آنچه مقیاس‌پذیری بلاکچین را بسیار دشوار ساخته، این است که تحقق هر یک از این سه هدف، دو هدف دیگر را قربانی می‌کند. اگرچه سازوکارهای بسیاری برای افزایش سرعت بلاکچین وجود دارد؛ اما برای تحقق آن باید ضرر کاهش امنیت را نیز به جان خرید.

پس تا اینجا دریافتیم که تحقق هر سه هدف یاد شده به‌طور همزمان، بسیار دشوار است. ما هرگز نمی‌توانیم بلاکچینی بسازیم که سریع‌تر از یک پایگاه داده متمرکز متعارف باشد. بنابراین نکته کلیدی در این میان، آن است که تا کجا حاضریم سرعت را قربانی کنیم.

مقیاس‌پذیری در بلاکچین بیت کوین

برای درک بهتر معضل مقیاس پذیری بیت‌کوین، بد نیست که نگاهی به روزهای ابتدایی راه‌اندازی آن بیندازیم. بیت‌کوین، چیزی جز یک بلاکچین ساده با یک کاربرد آشکار نیست و آن «ارسال و دریافت پول دیجیتال» است.

کاربران بیت‌کوین از همان ابتدا متوجه شدند که مقیاس‌پذیری می‌تواند به پاشنه آشیل این رمزارز بدل شود. آن‌ها این پرسش را مطرح می‌کردند که بیت‌کوین به‌عنوان یک شبکه غیرمتمرکز چگونه می‌تواند از پس مدیریت خیل انبوهی از کاربران و تراکنش‌های آن‌ها بربیاید؟

مشکل مقیاس‌پذیری بیت‌کوین، ریشه در محدودیت‌های ذاتی شبکه‌های رایانه‌ای دارد. در هر شبکه‌ای از جمله بیت‌کوین، پهنای باند محدودی برای ارسال و دریافت داده‌ها در دسترس است. افزون بر این، ساختار بیت‌ٰکوین به گونه‌ای طراحی شده که هر تراکنش باید با رکوردهای پیشین، راستی‌آزمایی شود و این مستلزم صرف توان رایانشی هنگفتی است.

به تدریج با رشد کاربران بیت‌کوین، اتفاقی که مورد انتظار بود، رخ داد و پروتکل بیت‌کوین، اشباع شد. در نتیجه، پردازش تراکنش‌ها با اختلال مواجه شد و سرعت شبکه به شدت کاهش یافت. حتی در ادامه نیز عده‌ای با ناامیدی از بیت‌کوین، تلاش کردند تا نسخه‌ای مجزا و بهبودیافته از آن را راه‌اندازی کنند؛ اما کدهای آن‌ها رونوشت‌هایی ساده از کد بیت‌کوین بود و هیچ‌یک نتوانستند معجزه‌ای را رقم بزنند.

در ادامه اما شماری از کارشناسان توانستند راهکارهای مناسبی را برای افزایش مقیاس پذیری در بلاکچین بیت‌کوین در اختیار بگذارند که در ادامه به آن‌ها اشاره می‌کنیم.

موانع مقیاس پذیری در بلاکچین کدامند؟

برای درک موانع مقیاس پذیری بلاکچین، بهتر است نگاهی دوباره به بیت‌کوین بیندازیم. اجرای یک نود یا گره در نرم‌افزار بیت‌کوین، نسبتاً ارزان و حتی با دستگاه‌های ساده نیز انجام‌پذیر است. اما آنچه کار را دشوار می‌کند، این است که هزاران هزار گره باید همزمان رونوشتی کامل از بلاکچین بیت‌کوین را به‌روزرسانی کنند.

از نگاهی دیگر می‌توان بلاکچین را قطاری توصیف کرد که در فواصل زمانی معین حرکت می‌کند. این قطار دارای تعدادی کوپه و صندلی است و مسافران برای رزرو صندلی باید بلیت تهیه کنند. اگر همه مسافران بخواهند همزمان سوار قطار شوند، قیمت بلیت به شدت افزایش خواهد یافت. به‌طور مشابه، شبکه یا بلاکچینی که از تراکنش‌های معلق، اشباع شده باشد، کاربران را ملزم به پرداخت کارمزدهای بیشتری برای پردازش تراکنش‌ها می‌کند.

شاید یک راهکار، افزایش ابعاد واگن‌ها باشد. به این ترتیب، تعداد صندلی‌ها نیز افزایش خواهد یافت و توان مسافرگیری بیشتر می‌شود و بهای بلیت هم کاهش می‌یابد. با این حال، نمی‌توان تا بی‌نهایت، ابعاد واگن‌ها را افزایش داد. در بلاکچین هم به‌طور مشابه نمی‌توان ابعاد بلاک‌های حاوی تراکنش‌ها را به اندازه دلخواه، افزایش داد؛ چرا که باعث می‌شود اجرای گره‌های شبکه، بسیار گران تمام شود و این ممکن است از عهده هر کسی برنیاید و به افزایش تمرکزگرایی شبكه دامن بزند.

بنابراین باز هم می‌بینیم که بلاکچین‌ها برای افزایش مقیاس پذیری باید میان سرعت، امنیت و تمرکززدایی، بده‌بستان کنند و هر یک را بهبود بدهند، دو تای دیگر را تضعیف خواهند کرد.

از این رو بسیاری بر این باورند که باید بیرون از شبکه به دنبال راهکاری برای افزایش مقیاس پذیری بگردیم.

اثرات منفی مقیاس‌پذیری بیت کوین چیست؟

پیش‌تر نیز گفتیم که افزایش سرعت و مقیاس‌ پذیری در بلاکچین بیت‌کوین، جز با قربانی کردن امنیت و درجه تمرکززدایی آن امکان‌پذیر نخواهد بود. بنابراین در این زمینه با محدودیت‌های ذاتی مواجه هستیم و باید به راهکارهای برون‌زنجیره‌ای بیندیشیم تا امنیت و ساختار غیرمتمرکز بیت‌کوین را فدا نکنیم.

راهکارهای حل مشکلات مقیاس‌پذیری بلاکچین

برای بررسی راهکارهای حل چالش مقیاس پذیری بلاکچین، بار دیگر به مثال بیت‌کوین باز می‌گردیم.

فرض کنید در شبکه بیت‌کوین، کاربران پرشماری به ‌طور همزمان، اقدام به ارسال بیت‌کوین به یکدیگر کنند. از آنجا که در لحظه، تنها تعداد محدودی تراکنش، پردازش می‌شود، چه اتفاقی برای دیگر تراکنش‌ها می‌افتد؟

نتیجه کار، روشن است. با افزایش تراکنش‌ها و کمبود ظرفیت پردازش بلاکچین، زمان انتظار برای تأیید هر تراکنش به شدت افزایش پیدا می‌کند و این خود منجر به رشد سرسام‌آور کارمزدها می‌شود.

شاید در نگاه اول، این‌طور به نظر برسد که می‌توان این مسئله را با افزایش حجم داده‌های قابل ذخیره روی بلاکچین، حل کرد. عده‌ای می‌گویند که می‌توان اندازه هر بلاک و در نتیجه تعداد تراکنش‌های قابل پردازش در هر لحظه را دو برابر کرد.

آیا این ایده می‌تواند راهگشا باشد؟ پاسخ، منفی است. هر بلاک، هر قدر هم که بزرگ باشد، بالاخره پر می‌شود و ناچاریم دوباره آن را پر کنیم. از سویی دیگر نمی‌توان تا بی‌نهایت، اندازه بلاک را افزایش داد؛ چرا که دیگر اجرای نرم‌افزار بلاکچین روی دستگاه‌های متعارف کاربران، ناممکن خواهد شد.

عده‌ای دیگر گفته‌اند که شاید بتوان با کاهش زمان موردنیاز برای ایجاد بلاک‌های تازه، سرعت پردازش تراکنش‌ها را افزایش داد. اشکال این ایده، این است که تأیید و راستی‌آزمایی بلاک‌های جدید، مستلزم گذشت یک دوره زمانی معین است. اگر این دوره زمانی طی نشود، ممکن است تراکنش‌های نادرست مندرج در بلاک‌ها تأیید شوند و امنیت شبکه بلاکچین، نقض شود.

تمامی این راهکارها با عنوان «راهکارهای لایه اول» شناخته می‌شوند که هیچ‌یک در بلندمدت نمی‌توانند راهگشا باشند. با این حساب برای بهبود مقیاس پذیری بلاکچین، چه باید کرد؟

راهکارهای لایه دوم

راه‌حل‌های دیگری برای افزایش مقیاس پذیری بلاکچین در دست توسعه قرار دارند که از آن‌ها با عنوان «راهکارهای لایه دوم» یاد می‌شود. یک نمونه بارز از این راهکارها «کانال‌های پرداخت» هستند. ایده نهفته در ورای کانال‌های پرداخت، این است که می‌توان تراکنش‌های مشابه را گروه‌بندی و به‌طور یکجا در بلاکچین درج کرد تا فشار وارد شده بر شبکه، کاهش و ظرفیت پردازش تراکنش‌ها افزایش یابد.

برای مثال، وقتی من و شما به‌طور مرتب در حال دادوستد مالی با هم هستیم، می‌توانیم به جای درج یک‌یک تراکنش‌ها در بلاکچین و ایجاد بار اضافی پردازشی روی آن، پس از اتمام مراودات مالی، همه تراکنش‌ها را یک‌کاسه کرده و در قالب یک تراکنش بزرگ، روی بلاکچین درج کنیم. به این ترتیب، هیچ بار پردازشی مازادی بر شبکه تحمیل نمی‌شود.

می‌توان کاربرانی را که به‌طور پیوسته با هم دادوستد پولی دارند، به استفاده از کانال‌های پرداخت، ترغیب کرد تا شبکه دچار ازدحام نشود.

جمع‌بندی

مقیاس پذیری بلاکچین، طی دهه گذشته، به‌ طور چشم‌گیری بهبود یافته است. می‌توان وضعیت این فناوری نوظهور را با روزهای نخست پیدایش اینترنت مقایسه کرد. در آن زمان نیز شبکه‌های اینترنتی به دلیل افزایش نمایی شمار کاربران با چالش‌ها و محدودیت‌های بسیاری دست و پنجه نرم می‌کردند. امروزه راهکارهای بهبود مقیاس‌پذیری از جمله راهکارهای لایه دوم توانستند تا حدی انتظارات را برآورده کنند؛ اما هنوز برای پشتیبانی از بلاکچین در مقیاسی جهانی، ناکافی‌اند. با این حال، این راهکارها همچنان در حال توسعه‌اند و امید می‌رود که در آینده‌ای نزدیک بتوانند زمینه را برای پذیرش فراگیر بلاکچین فراهم کنند.

در نهایت، حل معضل مقیاس پذیری بلاکچین به راهکارهای ترکیبی نیاز دارد. برخی از کارشناسان بر این باورند که طی سال‌های آینده، ظرفیت پردازش بلاکچین‌های مختلف می‌تواند تا ۱۰۰ برابر هم افزایش پیدا کند. باید منتظر بمانیم تا ببینیم که آیا توسعه‌دهندگان و مهندسان شبکه می‌توانند از پس حل چالش مقیاس پذیری بلاکچین بربیایند یا نه.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *