ایران اکسچنج

اندازه بلاک بیت کوین چیست؟ Block Weight، SegWit و محدودیت 4M WU

اندازه بلاک بیت کوین چیست؟ Block Weight، SegWit و محدودیت 4M WU

ترمه افضلی
زمان تقریبی مطالعه: 10 دقیقه
فهرست عناوین

اندازه بلاک بیت‌کوین مشخص می‌کند چه مقدار داده تراکنش می‌تواند در هر بلاک ثبت شود؛ اما در شبکه فعلی بیت‌کوین، صحبت‌کردن فقط از «محدودیت ۱ مگابایت» تصویر کاملی ارائه نمی‌دهد. پس از فعال‌شدن SegWit، قانون اصلی اجماع به مفهوم Block Weight متکی است و حداکثر وزن معتبر هر بلاک 4,000,000 Weight Units است.

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

اندازه بلاک بیت کوین دقیقاً چقدر است؟

پیش از SegWit، محدودیت شناخته شده Bitcoin برای Block Size برابر 1,000,000 Byte بود. BIP141 این مدل را تغییر داد و Block Weight را معرفی کرد.

فرمول Weight در SegWit به‌صورت زیر تعریف می‌شود:

Block Weight = Base Size × 3 + Total Size

و قانون اجماع می‌گوید:

Block Weight ≤ 4,000,000 WU

در نتیجه، یک بلاک دارای تراکنش‌های SegWit می‌تواند از نظر Serialized Size از ۱ مگابایت بزرگ‌تر باشد. مقدار دقیق Byte به ترکیب Base Data و Witness Data وابسته است. تعریف رسمی این سازوکار در BIP141 - Segregated Witness آمده است.

بنابراین جمله «اندازه بلاک بیت کوین در حال حاضر ۱ مگابایت است» باید از مقاله حذف شود یا صرفاً به‌عنوان Legacy Limit پیش از SegWit توضیح داده شود.

قانون فعلی Bitcoin Core برای Block Weight چیست؟

در کد فعلی Bitcoin Core، مقدار MAX_BLOCK_WEIGHT برابر 4,000,000 تعریف شده است. مقدار MAX_BLOCK_SERIALIZED_SIZE نیز در کد 4,000,000 Byte است، اما قاعده شبکه برای ظرفیت بلاک بر Weight استوار است.

منبع مستقیم این ثابت‌ها در فایل consensus.h در Bitcoin Core قابل مشاهده است.

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

اندازه بلاک چه اثری بر تعداد تراکنش‌ها دارد؟

تراکنش‌ها «به بلاک تبدیل نمی‌شوند»؛ ماینر یا Block Builder مجموعه‌ای از تراکنش‌های معتبر را از Mempool انتخاب می‌کند و آن‌ها را در بلاک Candidate قرار می‌دهد.

ظرفیت بیشتر بلاک می‌تواند اجازه دهد داده تراکنش بیشتری در هر بلاک ثبت شود، اما تعداد تراکنش دقیق ثابت نیست؛ چون اندازه هر Transaction با توجه به تعداد Input، Output، نوع Script و استفاده از Witness متفاوت است.

همچنین بلاک بزرگ‌تر لزوماً فاصله زمانی تولید بلاک‌ها را کوتاه نمی‌کند. اثر اصلی آن افزایش ظرفیت داده در هر بلاک و تغییر فشار رقابت برای Block Space است.

اندازه بلاک چه اثری بر کارمزد تراکنش بیت‌کوین دارد؟

زمانی که تقاضا برای Block Space از ظرفیت قابل‌دسترس بیشتر می‌شود، کاربران برای اولویت بالاتر معمولاً Fee Rate بیشتری پیشنهاد می‌کنند. بنابراین ظرفیت محدود می‌تواند در دوره‌های شلوغی با افزایش رقابت کارمزدی همراه شود.

در مقابل، افزایش ظرفیت می‌تواند بخشی از این فشار را کاهش دهد، اما کارمزد فقط به Block Size وابسته نیست؛ تقاضای کاربران، Mempool، سیاست انتخاب تراکنش ماینرها، نوع Transaction و شرایط بازار نیز اهمیت دارند.

پس جمله «بلاک کوچک همیشه باعث کارمزد بالا و بلاک بزرگ همیشه باعث کارمزد پایین می‌شود» نباید به‌صورت قانون قطعی نوشته شود.

آیا اندازه بلاک روی قیمت بیت کوین اثر مستقیم دارد؟

رابطه مستقیم و قابل اتکایی وجود ندارد که بگوییم افزایش یا کاهش ظرفیت بلاک به‌تنهایی باعث افزایش یا کاهش قیمت Bitcoin می‌شود. Block Capacity می‌تواند روی تجربه کاربر، Fee Market و بحث مقیاس‌پذیری اثر بگذارد، اما قیمت تحت تأثیر مجموعه بسیار بزرگ‌تری از عوامل عرضه، تقاضا، نقدینگی، شرایط اقتصاد کلان و رفتار بازار قرار دارد.

بنابراین به‌جای ایجاد رابطه علت و معلولی مستقیم، برای وضعیت بازار باید قیمت بیت‌کوین و داده‌های مستقل بازار بررسی شوند.

چرا افزایش Block Size با بحث تمرکززدایی مرتبط است؟

Trade-off اصلی بلاک‌های بزرگ‌تر این نیست که «ماینر بزرگ حتماً سود بیشتری می‌برد». مسئله مهم‌تر، هزینه منابع لازم برای دریافت، اعتبارسنجی، ذخیره و انتشار بلاک‌ها در شبکه است.

اگر بلاک‌ها بسیار بزرگ‌تر شوند، Full Nodeها ممکن است به پهنای باند، Storage و توان پردازشی بیشتری نیاز داشته باشند. بالا رفتن هزینه اجرای Node می‌تواند در بلندمدت تعداد افرادی را که قادر به اجرای Full Node مستقل هستند تحت فشار قرار دهد.

از طرف دیگر، ظرفیت بیشتر می‌تواند امکان ثبت داده تراکنش بیشتر در لایه پایه را فراهم کند. بحث Block Size در Bitcoin دقیقاً درباره پیدا کردن توازن میان ظرفیت، هزینه Node و غیرمتمرکز ماندن اعتبارسنجی است.

BIP101 چه پیشنهادی برای افزایش اندازه بلاک داشت؟

BIP101 در سال ۲۰۱۵ توسط Gavin Andresen پیشنهاد شد. این Proposal قصد داشت محدودیت ثابت ۱MB را با حداکثر Block Size بزرگ‌تر و قابل رشد جایگزین کند.

طبق Specification این BIP، سقف پیشنهادی از 8,000,000 Byte شروع می‌شد و تقریباً هر دو سال دو برابر می‌شد؛ در فاصله بین Doublingها نیز افزایش به‌صورت محاسبه‌شده انجام می‌شد. BIP101 در نهایت فعال نشد و وضعیت فعلی آن Closed است. متن رسمی BIP101

بنابراین متن فعلی که BIP101 را «راهکاری که به‌طور خطی اندازه بلاک را افزایش می‌دهد» توصیف می‌کند باید دقیق‌تر شود.

SegWit چگونه ظرفیت بلاک بیت کوین را تغییر داد؟

Segregated Witness یا SegWit داده Witness را از بخش اصلی Serialization تراکنش تفکیک کرد و مفهوم Weight را وارد قواعد اجماع کرد. نتیجه این تغییر این بود که شبکه بدون یک Hard Fork ساده برای تغییر «1MB به 2MB»، ظرفیت مؤثر بیشتری برای تراکنش‌های سازگار با SegWit به دست آورد.

بهتر است نگوییم SegWit صرفاً «اندازه بلاک را افزایش داد». بیان دقیق‌تر این است که SegWit نحوه محاسبه ظرفیت بلاک را تغییر داد و به Witness Data وزن کمتری نسبت به Base Data اختصاص داد.

چرا اختلاف درباره Block Size به فورک منجر شد؟

تغییر Ruleهای Consensus درباره ظرفیت بلاک می‌تواند نیازمند تغییرات ناسازگار با Nodeهای قدیمی باشد. در سال‌های گذشته اختلاف نظر درباره Scaling و Block Size یکی از موضوعات اصلی جامعه Bitcoin بود و بعضی پروژه‌ها مسیر Consensus متفاوتی انتخاب کردند.

برای درک تفاوت Hard Fork و Soft Fork و اینکه چگونه تغییر Rule می‌تواند شبکه‌ها را از هم جدا کند، مقاله فورک در بلاکچین چیست؟ را مطالعه کنید.

این مقاله نیازی ندارد فهرست طولانی Forkها یا اندازه فعلی بلاک آن شبکه‌ها را نگه دارد؛ چون این اعداد ممکن است تغییر کنند و Intent اصلی صفحه، قانون Block Size در خود Bitcoin است.

مقیاس‌پذیری بیت کوین فقط به Block Size وابسته است؟

خیر. Scaling Bitcoin فقط به افزایش Block Size محدود نمی‌شود. روش‌های مختلفی برای استفاده کارآمدتر از Block Space یا انتقال بخشی از تعاملات خارج از Base Layer وجود دارند.

  • SegWit: استفاده کارآمدتر از ظرفیت Block Weight.
  • Transaction Batching: ترکیب چند پرداخت در یک Transaction برای کاهش Overhead.
  • Lightning Network: انجام تعداد زیادی پرداخت خارج از زنجیره اصلی و تسویه نهایی روی Bitcoin.
  • بهبود Wallet و Fee Estimation: استفاده بهتر از Block Space موجود.

متن قدیمی که «Rollup و Sharding» را به‌صورت عمومی راه‌حل مقیاس‌پذیری Bitcoin معرفی می‌کند، برای این مقاله دقیق نیست و باید حذف شود؛ Sharding بخشی از Consensus فعلی Bitcoin نیست.

بلاک بزرگ‌تر یا کوچک تر؛ مزایا و معایب چیست؟

موضوعظرفیت بالاترظرفیت محدودتر
Transaction Data در هر بلاکبیشترکمتر
فشار Fee Market در تقاضای مشابهمی‌تواند کمتر باشدمی‌تواند بیشتر باشد
Bandwidth / Storage Nodeنیاز بیشترنیاز کمتر
Propagationداده بیشتر برای انتقالداده کمتر برای انتقال
تمرکززدایی Full Nodeممکن است هزینه اجرا را بالا ببرداجرای Node می‌تواند سبک‌تر بماند

هدف طراحی شبکه پیدا کردن یک Trade-off مناسب است؛ نه اینکه «بلاک بزرگ همیشه بهتر» یا «بلاک کوچک همیشه بهتر» باشد.

جمع بندی؛ در بیت‌کوین امروز «Block Weight» مهم‌تر از عدد ساده 1MB است

بحث اندازه بلاک Bitcoin دیگر با جمله «هر بلاک 1MB است» قابل توضیح نیست. SegWit سازوکار Weight را وارد شبکه کرد و حداکثر Consensus Block Weight را روی 4 میلیون WU قرار داد.

افزایش ظرفیت می‌تواند Transaction Data بیشتری در Base Layer جای دهد، اما در مقابل منابع بیشتری برای Full Node و انتشار بلاک نیاز دارد. به همین دلیل Block Size یک Trade-off میان Capacity، Fee Market، Node Cost و Decentralization است.

سوالات متداول

آیا اندازه بلاک بیت‌کوین هنوز 1MB است؟

نه به معنای ساده قبل از SegWit. قانون فعلی شبکه Block Weight حداکثر 4,000,000 WU است و Serialized Size بلاک‌های SegWit می‌تواند از 1MB بیشتر باشد.

Block Weight چیست؟

معیاری است که Base Data و Witness Data را با وزن متفاوت محاسبه می‌کند و ظرفیت بلاک پس از SegWit را تعیین می‌کند.

آیا بلاک بزرگ‌تر تراکنش را سریع‌تر می‌کند؟

ظرفیت بیشتر می‌تواند تراکنش‌های بیشتری را در هر بلاک جا دهد، اما زمان ایجاد بلاک و زمان نهایی تأیید به عوامل دیگری نیز وابسته‌اند.

آیا افزایش Block Size باعث کاهش کارمزد می‌شود؟

می‌تواند فشار رقابت برای Block Space را کاهش دهد، اما Fee به تقاضا، Mempool، Transaction Size و سیاست انتخاب تراکنش‌ها نیز بستگی دارد.

چرا Bitcoin Block Size را بسیار بزرگ نمی‌کند؟

چون افزایش شدید ظرفیت می‌تواند نیازهای Storage، Bandwidth و Validation Full Nodeها را بالا ببرد و Trade-offهایی برای تمرکززدایی شبکه ایجاد کند.