بهینهسازی بلاکچین: گلوگاههای اصلی
چرا بلاکچینها متوقف میشوند: سهراهی مقیاسپذیری، ممپولها، گس، هزینههای اجماع و توازنهای مهندسیِ نهفته در پسِ هر «بعداً درستش میکنیم».
زبانهای دیگر: EnglishРусскийEspañol中文ไทยFrançaisУкраїнськаTürkçeहिंदीالعربيةHausaPortuguêsTiếng Việt한국어日本語Bahasa IndonesiaDeutschTagalog

فهرست مطالب
برای یک کاربر معمولی، بلاکچینِ رمزارز ممکن است ماشینی بینقص و یکپارچه به نظر برسد که هیچ کاستی ندارد. با این حال، این نواقص تنها زمانی خود را نشان میدهند که از آنها استفاده کنید؛ مواردی مانند گیر کردن تراکنشها، از کار افتادن سرورها یا بروز باگها و غیره. چه چیزی پشت تمام اینهاست؟ بلاکچین برای افراد ناآشنا، یک دفتر کل دیجیتال مرموز است؛ موجودی اثیری که در همهجا و هیچکجا حضور دارد و انتقال ارزش را بلافاصله و بدون کوچکترین خطا پردازش میکند.
اما حقیقت این است که بلاکچین بسیار زمینیتر از این حرفهاست. وقتی تراکنشی ساعتها در ممپول (mempool) گیر میکند و باعث میشود کاربر یک لیکویید شدن مهم در دیفای (DeFi) را از دست بدهد، یا زمانی که ازدحام شبکه در طول یک مینت (Mint) محبوب NFT، به دلیل فراتر رفتن کارمزد گاز از کل ارزش تراکنش، تمام امیدها برای انجام یک معامله سودآور را از بین میبرد، اینها صرفاً باگهای نرمافزاری ساده نیستند. اینها عوارض جانبی گلوگاههای ذاتی هستند که هر شبکه غیرمتمرکزی با آنها مواجه میشود.
این مشکلات نه تنها ناشی از برنامهنویسی ناشیانه یا کمکاری نیستند، بلکه برعکس، برخی از باهوشترین دانشمندان کامپیوتر و رمزنگاران جهان بهصورت شبانهروزی برای حل آنها تلاش میکنند. اما آنها با محدودیتهای سخت فیزیکی، ظرفیت سختافزاری و موازنههای اجتنابناپذیر سیستمهای توزیعشده روبرو شدهاند. برای اینکه بدانید چرا تراکنش شما گیر کرده یا چرا شبکه کند است، باید نگاهی به زیر کاپوت و چرخدندهها و اهرمهایی بیندازیم که این ماشین را به حرکت در میآورند؛ از جمله اصطکاکی که سرعت آن را کاهش میدهد.
سهگانه مقیاسپذیری و محدودیتهای توان عملیاتی
سهگانه مقیاسپذیری (Scalability Trilemma) احتمالاً شناختهشدهترین گلوگاه در بلاکچین است. نظریه مثلث بلاکچینِ ویتالیک بیان میکند که یک بلاکچین تنها میتواند ۲ مورد از ۳ ویژگی زیر را همزمان داشته باشد: غیرمتمرکز بودن، امنیت و مقیاسپذیری. شما نمیتوانید همه آنها را در بالاترین سطح داشته باشید. این یک قانون کدگذاری شده بهصورت الگوریتمی نیست، بلکه یک محدودیت طبیعی در نحوه عملکرد شبکههای توزیعشده است.
اگر شبکهای میخواهید که بسیار سریع (مقیاسپذیر) و امن باشد، اغلب باید مصالحههایی انجام دهید که در آن تمرکززدایی با کاهش تعداد گرههای (نودهای) تأییدکننده تراکنشها، کمتر میشود. شما با یک موازنه روبرو هستید: اگر بخواهید شبکه هم غیرمتمرکز و هم امن باشد، مانند بیتکوین یا اتریوم، باید از سرعت چشمپوشی کنید. به همین دلیل است که بیتکوین میتواند حدود ۷ تراکنش در ثانیه (TPS) و اتریوم حدود ۱۵ تا ۳۰ تراکنش در ثانیه در لایه پایه انجام دهد، در حالی که ویزا (Visa) میتواند دهها هزار تراکنش را مدیریت کند.در اینجا، گلوگاه اصلی اندازه و زمان بلاک است. یک راهکار ساده و بدیهی برای افزایش ظرفیت پردازش (throughput)، بزرگتر کردن اندازه بلاک برای گنجاندن تراکنشهای بیشتر، یا کاهش زمان بلاک برای استخراج سریعتر بلاکهاست. اما در اینجا با یک محدودیت فیزیکی مواجه میشویم: تأخیر در انتشار (propagation delay). زمانی که یک استخراجگر (ماینر) یا اعتبارسنج (ولیدیتور) بلاک جدیدی را کشف میکند، آن بلاک باید برای تمام گرههای دیگر در شبکه ارسال شود. این دادهها میتوانند از طریق کابلهای اینترنت، فیبرهای نوری و روترهای جهان منتقل شوند. البته محدودیتهایی وجود دارد؛ مانند سرعت نور و پهنای باند زیرساختهای اینترنت. اگر یک بلاک بیش از حد سنگین باشد، دانلود و تأیید آن زمان بیشتری میبرد. تولید بیش از حد و سریع بلاکها توسط استخراجگران مختلف بهطور همزمان، در حالی که بلاک ماقبل آخر هنوز در شبکه منتشر نشده است، میتواند منجر به ایجاد «فورکها» یا «بلاکهای یتیم» (یا در اتریوم «آنکلها») شود.
نرخ بالای آنکل نشاندهنده این است که شبکه قدرت پردازشی خود را صرف بلاکهایی میکند که وارد زنجیره اصلی نمیشوند؛ این امر امنیت را تضعیف میکند زیرا قدرت هشِ صادقانه (honest hashing) تقسیم میشود. بنابراین، محدودیت در TPS در واقع همان محدودیت همگامسازی شبکه است. علاوه بر این، هر بلاک دارای یک «حد گاز» (gas limit) یا محدودیت «وزن بلاک» است. این کار نه تنها برای محدود کردن ظرفیت پردازش، بلکه برای محافظت در برابر حملات منع سرویس (DoS) انجام میشود. اگر سقفی برای میزان محاسباتی که یک بلاک میتواند شامل شود وجود نداشته باشد، یک مهاجم میتواند با ارسال تراکنشهای پیچیدهای که پردازش آنها تا ابد طول میکشد، شبکه را اسپم کرده و کل سیستم را متوقف کند.
لایه ۲ و گلوگاه مقیاسپذیری ناشی از دردسترسبودن دادهها
برای دور زدن محدودیتهای لایه ۱، این صنعت راهکارهای لایه ۲ - بهویژه «رولآپها» (rollups) - را ابداع کرده است. این پروتکلها تراکنشها را خارج از زنجیره (off-chain) انجام میدهند، آنها را در یک بلاک جمعآوری کرده و سپس نسخهای فشرده یا اثباتی رمزنگاریشده را به زنجیره اصلی (لایه ۱) بازمیگردانند. این ایده عالی به نظر میرسد، اما بار اضافی جدیدی را تحمیل میکند: DA (دردسترسبودن دادهها). حتی اگر محاسبات خارج از زنجیره رخ دهد، باید اطلاعات کافی برای «بازسازی» وضعیت رولآپ روی زنجیره (on-chain) وجود داشته باشد تا هر کسی بتواند آن را بررسی کند.

فضای بلاک در زنجیره اصلی ارزشمند و کمیاب است. برای مثال، ارسال مقادیر عظیمی از کالدیتا (call data) به شبکه اتریوم هزینهبر خواهد بود. به همین دلیل است که شاهد پیشنهادهایی مانند EIP-4844 (پروتو-دنکشاردینگ) هستیم که مفهوم «بلابها» (blobs) را مطرح میکنند؛ نوع جدیدی از ذخیرهسازی داده که ارزانتر و موقت است و صرفاً برای رولآپها طراحی شده است. اما حتی با وجود بلابها، محدودیتی برای مقدار دادهای که میتوان بدون حجیم شدن نودها وارد شبکه کرد، وجود دارد. هنگامی که لایه DA پر میشود، هزینه استفاده از آن لایههای ۲ بهطور قابلتوجهی افزایش مییابد، زیرا رولآپها برای قرار گرفتن در آن فضای محدود جهت ارسال دستههای (batches) خود با هم رقابت میکنند. این امر منجر به ایجاد بازاری میشود که در آن قیمت تراکنش در یک لایه ۲ ارزان، مستقیماً به تراکم یک لایه ۱ گرانقیمت بستگی دارد. این یک توازن میان تعهد به امنیت و هزینه ایمنسازی (ارسال به لایه ۱) و استفاده واقعی است.
بار تاریخ: گسترش وضعیت و ذخیرهسازی
یکی از مهمترین — و به همان اندازه فراموششدهترین — حبابها، «تورم وضعیت» (state bloat) است. یک بلاکچین شامل نسخهای یکسان از تمام تراکنشهایی است که تاکنون انجام شدهاند. با افزایش تعداد کاربران شبکه، این تاریخچه گسترش مییابد. اما موضوع فقط تاریخچه نیست؛ بلکه «وضعیت» (state) است — یعنی موجودی فعلی هر حساب و داراییهای هر قرارداد هوشمند. یک نود باید بتواند تراکنشی را تأیید کند تا بداند وضعیت فعلی چیست. نود باید به نحوی اطمینان حاصل کند که آلیس واقعاً ۱۰ توکنی را که میخواهد برای باب بفرستد، در اختیار دارد. هرچه وضعیت بزرگتر شود، برای دسترسی سریع به آن، به رم (RAM) و حافظه SSD بیشتری نیاز است.

اگر وضعیت بیش از حد بزرگ شود و در سختافزارهای معمولی جا نگیرد، تنها دیتاسنترهای بزرگ از عهده هزینهی اجرای نودها برمیآیند. این موضوع به تمرکززدایی آسیب میزند. بهینهسازی این مسئله بهشدت دشوار است. نمیتوان صرفاً دادههای قدیمی را هرس (Prune) کرد، زیرا وضعیت به کل تاریخچه زنجیره تا بلاک جنسیس (Genesis block) وابسته است. توسعهدهندگان در حال آزمایش «کلاینتهای بدون وضعیت» (stateless clients) و «انقضای وضعیت» (state expiry) هستند؛ به این صورت که دادههای قدیمی را ثبت کرده و در عوض تنها از اثباتهای (proof) مربوط به آنها استفاده میکنند. اما اینها راهکارهای رمزنگاری پیچیدهای هستند که پیادهسازی امن آنها سالها زمان میبرد. ما همواره در حال مبارزه با انباشت دادهها هستیم.
هر قراردادی که مستقر (Deploy) میکنید و هر توکنی که ضرب (Mint) میکنید، باری است که یک نود باید تا ابد با خود حمل کند. این مصرف منابع دلیلی است که برخی شبکهها مدلهای منابعی مانند «انرژی» (Energy) و «پهنای باند» (Bandwidth) را اتخاذ میکنند. کاربران احتمالاً برای تعامل با یک قرارداد هوشمند بدون صرف توکن، به شارژ مجدد امتیازات انرژی نیاز خواهند داشت، یا انرژی ترون تهیه میکنند که با آن تراکنشها در شبکه Tron بسیار سریعتر پردازش میشوند. چنین مدلهایی تلاشی برای دریافت هزینه صحیح بابت باری است که بر شبکه تحمیل میشود؛ افرادی که از یک وضعیت استفاده میکنند، باید برای پشتیبانی از آن هزینه بپردازند. بدون چنین مکانیسمهایی، «تراژدی منابع مشترک» منجر به ایجاد زنجیرهای میشد که کاملاً پر شده و غیرقابل استفاده گشته است.
اجماع و سربار آن از طریق مکانیسمهای اجماع
در قلب هر بلاکچین، یک مکانیسم اجماع قرار دارد؛ یعنی اینکه چگونه هزاران غریبه میتوانند به طور جمعی بر سر یک حقیقت واحد توافق کنند. صرفنظر از اینکه در مورد PoW یا PoS صحبت میکنیم، اجماع همیشه مستلزم سطحی از ارتباطات و محاسبات است. در PoW، کندی عمدتاً ناشی از میزان انرژی و سختافزاری است که برای تأمین امنیت شبکه صرف میشود. چالش تعدیل سختی (Difficulty Adjustment) این است که نرخ تولید بلوکها را به گونهای حفظ کند که نه بیش از حد سریع باشد (امنیت) و نه بیش از حد کند (سرعت). در PoS، با وجود بهینه بودن از نظر مصرف انرژی، گلوگاه در قالب سربار ارتباطی ظاهر میشود.
تأییدکنندگان (Validators) باید به طور مداوم مجموعهای از پیامها را برای گواهی دادن بر اعتبار بلوکها با یکدیگر تبادل کنند. با افزایش تعداد تأییدکنندگان جهت گسترش تمرکززدایی، تعداد پیامها نیز (به صورت نمایی) افزایش مییابد. این «گفتوگوهای شبکه» (chatter) میتواند بار اضافی به شبکه تحمیل کند. بهینهسازی الگوریتم اجماع به گونهای که بتواند بدون کاهش شدید سرعت تراکنشها، به راحتی برای هزاران تأییدکننده مقیاسپذیر شود، وظیفهای بسیار دشوار است. این فرآیند از ریاضیات پیشرفته و تکنیکهای «تجمیع امضا» (مشابه امضاهای BLS) استفاده میکند تا هزاران رأی را در یک قطعه داده کوچک واحد فشرده کند. علاوه بر این، «قطعیت» (finality) یک تراکنش — یعنی اطمینان از برگشتناپذیر بودن آن — نیز معمولاً ماهیتی احتمالاتی دارد.
در بسیاری از زنجیرهها، باید برای تعداد مشخصی بلوک منتظر بمانید تا از نهایی شدن تراکنش اطمینان حاصل کنید. این تأخیر زمانی ناشی از همگرایی اجماع شبکه است. این یک ویژگی امنیتی است، نه یک نقص فنی، اما برای کاربری که در انتظار تأیید است، میتواند مانند یک گلوگاه به نظر برسد. علاوه بر این، مسئله «عدم وجود ریسک» (Nothing at Stake) در طراحیهای اولیه PoS، استفاده از مکانیسمهای پیچیده «اسلشینگ» (slashing) را برای جریمه کردن رفتارهای نادرست ضروری کرد، که خود به معنای منطق پردازشی اضافی برای هر بلوک است.
گلوگاه پنهان دیگر «تنوع کلاینت» است. وقتی همه از یک کلاینت نرمافزاری مشابه (برای مثال Geth) استفاده میکنند، یک باگ واحد میتواند کل شبکه را از کار بیندازد. تشویق به تنوع کلاینتها در اکوسیستم به منظور ایجاد تابآوری اهمیت زیادی دارد، اما این کار سربار توسعه فراوانی را به همراه دارد.مالیات پنهان: MEV و گلوگاههای اجرا
ماشین مجازی (VM): این محیط اجرای قراردادهای هوشمند است. ماشین مجازی اتریوم (EVM) یک استاندارد رایج است، اما در ابتدا برای عملیات موازی با توان عملیاتی بالا طراحی نشده بود. این ماشین تراکنشها را یکییکی دریافت کرده و به ترتیبِ دریافت، پردازش میکند. اگر یک تراکنش بسیار پیچیده باشد و محاسبه آن زمان زیادی ببرد، بقیه باید در صف منتظر بمانند. این وضعیت مشابه داشتن تنها یک صف صندوق در یک فروشگاه مواد غذایی است. بلاکچینهای امروزی در تلاشاند تا به «اجرای موازی» دست یابند؛ حالتی که در آن تراکنشهای بدون تداخل (برای مثال پرداخت آلیس به باب و پرداخت چارلی به دیو) بتوانند بهطور همزمان توسط هستههای مختلف CPU پردازش شوند. اما گفتن این حرف گاهی آسانتر از عمل کردن به آن است. شناسایی تراکنشهایی که در لحظه با هم تداخل دارند، یک مسئله چالشبرانگیز در علوم کامپیوتر است.

و جدا از سرعت اجرا، گلوگاه MEV وجود دارد. از آنجایی که اکثر تراکنشها پس از ارسال به ممپول (mempool) قابل مشاهده هستند، رباتهای پیشرفته میتوانند با هدف سودجویی، تراکنشهای کاربران را «فرانتران» (front-run) یا «ساندویچ» کنند. این در واقع یک مالیات پنهان از سوی کاربران است که منجر به نرخهای تبادل بدتر و تراکنشهای ناموفق میشود. این موضوع شبکه را با اسپمِ رباتهایی که در حال جنگ با یکدیگر هستند، اشباع میکند. راهکار MEV یکی از مسائل کلیدی در بهینهسازی بلاکچین است.
رویکردهایی مانند «جداسازی پیشنهاددهنده-سازنده» (proposer-builder separation) تلاش میکنند تا این عامل تعیینکننده را بهصورت ضمنی لحاظ کنند، اما این موضوع همچنان یک ناکارآمدی مداوم باقی مانده که منجر به تجربه کاربری بسیار ضعیفی میشود.دنیای تکهتکه شده: چالشهای تعاملپذیری
با گذار به دنیای چندزنجیرهای، گلوگاه جدیدی پدیدار شده است: تعاملپذیری. ما جزایر کوچکی از ارزش ساختهایم. انتقال داراییها از اتریوم به سولانا یا از بیتکوین به یک شبکه لایه ۲ نیازمند «پلها» (bridges) است. این پلها نقاط ضعف اکوسیستم هستند و در برابر هکها و اکسپلویتها آسیبپذیری دارند. «رپینگ» (wrapping) یا بستهبندی توکنها، لایه دیگری از پیچیدگی و ریسک احتمالی است. گلوگاه در این زمینه، نبود یک پروتکل ارتباطی جهانی است. هر بلاکچین به زبان متفاوتی صحبت میکند و اجماع متفاوتی در مورد زمان و نهاییسازی (finality) دارد.
ساختن یک پل «بدون نیاز به اعتماد» (trustless) — پلی که به یک متولی متمرکز وابسته نباشد — از نظر ریاضی بسیار دشوار است. این کار مستلزم آن است که یکی از دو زنجیره، یک «لایت کلاینت» (light client) را اجرا کند (مثلاً برای تأیید هدرها و اثباتها). این فرآیند همچنین از نظر محاسباتی و دادهای بسیار سنگین است. جدا از دردسرهای جابهجایی نقدینگی بین زنجیرهها، این موضوع باعث تکهتکه شدن بازار و ناکارآمدی آن میشود. کاربران در یک زنجیره گیر میافتند و راه آسانی برای شارژ مجدد انرژی در شبکه TRON و انتقال داراییهای خود به جایی که بهترین بازدهی (yield) را دارد ندارند، مگر اینکه از میان شبکهای از پروتکلهای پیچیده و پرریسک عبور کنند. علاوهبر این، «ترکیبپذیری اتمی» (atomic composability) — این ایده که میتوان با چندین پروتکل بهطور همزمان در یک تراکنش واحد تعامل داشت — هنگام جابهجایی بین زنجیرهها از بین میرود. شما نمیتوانید یک وام آنی (flash loan) در زنجیره الف بگیرید تا از یک اتفاق عجیب در زنجیره ب آربیتراژ کنید، بدون اینکه با ریسک و تأخیر قابلتوجهی مواجه شوید.
لمس انسانی: حاکمیت و قابلیت ارتقا
در نهایت، ناامیدکنندهترین گلوگاه میتواند عامل انسانی باشد: حاکمیت (governance). بلاکچینها نرمافزار هستند و نرمافزار نیاز به بهروزرسانی دارد. اما در یک شبکه غیرمتمرکز، چگونه تصمیم گرفته میشود که چه زمانی و چگونه ارتقا انجام شود؟
برنامهریزی برای یک «هارد فورک» (نوعی ارتقا که با نسخههای قبلی سازگار نیست)، مستلزم توافق میان توسعهدهندگان، گردانندگان نودها در شبکه، ماینرها/تأییدکنندگان و همچنین اجماع عمومی جامعه است. اگر اختلافنظری وجود داشته باشد، زنجیره میتواند تغییر مسیر دهد؛ همانطور که برای اتریوم اتفاق افتاد و متعاقباً زنجیره آن به دو کوین امروزی یعنی اتریوم و اتریوم کلاسیک تقسیم شد.این تمایل به توافق اجتماعی، نهتنها مانعی برای تغییر، بلکه سدی در برابر نوآوری است. یک شرکت فناوری پلتفرممحور میتواند ظرف چند دقیقه بهروزرسانی جدیدی را روی سرورهای خود اعمال کند. اگر یک بلاکچین ملزم به پیروی از هر تابع f باشد، حتی برای جزئیترین توابع نیز پذیرش سریع بهبودهای جدید برای زنجیره غیرممکن میشود. این «حداقلسازی حاکمیت» اغلب یک هدف محسوب میشود، اما در روزهای اولیه، حاکمیت فعال برای رفع باگها و بهبود پروتکل ضروری است. توازن میان ابعاد «سریع حرکت کن و ساختارها را بشکن» در مقابل «پایداری و تغییرناپذیری»، همواره منبعی برای اصطکاک است. همین مسئله است که میتواند برخی از حیاتیترین بهینهسازیها، مانند افزایش اندازه بلاک یا حتی تغییر در مکانیزم کارمزد را به میدانهای نبرد سیاسی تبدیل کند که پیشرفت را برای سالها کند میسازند.
نتیجهگیری
گلوگاههای بلاکچین — مقیاسپذیری، دردسترسبودن دادهها، تورم وضعیت (State Bloat)، سربار اجماع، سرعت اجرا، MEV، قابلیت همکاری متقابل و حاکمیت — مرزهایی تصادفی نیستند. آنها محصول جانبی یک آرمان بلندپروازانه برای ساخت کامپیوتری جهانی، امن، غیرمتمرکز و بدون نیاز به اعتماد هستند. هر بهینهسازی یک توازن (Trade-off) است. افزایش اندازه بلاک به غیرمتمرکز بودن آسیب میزند. شاردینگ امنیت را به چالشی بسیار دشوارتر تبدیل میکند. اجرای موازی ریسک ناهماهنگی در وضعیت شبکه را به همراه دارد. بنابراین، مشاهده پیشرفتهایی در سطح سال ۲۰۲۶ در زمینه رولآپهای لایه ۲، نمونهبرداری و ترکیب در دسترس بودن دادهها، و اسنارکهای دانشصفر (چه برسد به کل مفهوم اثباتها بهطور کلی) که همین حالا و در اینجا توسط افرادی که چند سالی است «خارج از چارچوب» فکر میکنند به واقعیت تبدیل شده، شگفتانگیز بود.
اما به لطف نبوغ انسانی، ما همچنان آهسته اما پیوسته از این محدودیتهای فیزیکی و منطقی فراتر میرویم. با این حال، کاربران باید درک کنند که «اصطکاکی» که احساس میکنند، بهای فعالیت در سیستمی است که بر پایه قوانین فیزیک و اجماع سختگیرانه بنا شده، نه اعتماد به یک مرجع مرکزی. همانطور که ممکن است برای تأمین هزینههای تراکنش در یک شبکه توزیعشده به انرژی ترون (TRON Energy) نیاز داشته باشید، صنعت نیز برای مقیاسپذیر کردن این سیستمها برای کل جهان، به عرضه مداوم نوآوریهای جدید نیاز دارد.

در مورد افرادی که با پیچیدگیهای تأمین منابع در شبکه ترون سر و کار دارند، آنها میتوانند از ابزاری مانند ربات شارژ انرژی Netts (Netts Energy Charge Bot) استفاده کنند. شارژکنندگان، انرژی را برای انتقال به دست آورده و آن را به کاربران اجاره میدهند ($)؛ هنگام انتقال تتر در Charge_bot (تلگرام)، از این طریق کارمزدهای انتقال USDT کاهش مییابد. کاربران فقط کافی است یک کیف پول انتخاب کرده و مبلغ را به صورت TRX در آن واریز کنند؛ سپس میتوانند از ارز واسط برای شارژ مجدد انرژی به مدت یک ساعت استفاده کنند تا مجبور نباشند هنگام انتقال، مقادیر زیادی TRX بسوزانند. این کار به نوعی فرآیند را کمی سادهتر میکند: فقط یک کیف پول انتخاب کنید، آن را شارژ کنید و انتقال خود را انجام دهید؛ همچنین ربات احتمالاً منابع تقریبی مصرفشده را محاسبه میکند. این ابزاری کوچک اما ارزشمند برای بهبود تجربه کاربری (UX) در محیطی است که منابع در آن اهمیت حیاتی دارند!